[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-discuss] Possible to uniquely identify KVM guests?

From: Jakob Bohm
Subject: Re: [Qemu-discuss] Possible to uniquely identify KVM guests?
Date: Thu, 16 Apr 2015 15:53:13 +0200
User-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0

On 16/04/2015 13:45, Caspar Smit wrote:
Hi All,

I searched the mailinglist archives for an answer but couldn't find
any so I hope this question wasn't asked already.

I'm looking for a way to uniquely identify a KVM guest on different
hosts (to prevent running a single license multiple times).

For instance I have a Windows 7 KVM Guest running an application which
requires a license. Once the license is installed it is possible to
clone the VM to a different identical host (keeping all UUID's and MAC
adresses of the vNIC the same) and the license still works because
there is no difference.

Is there a way to distinguish clones of the same VM from inside the
Windows Guest? Maybe some unique Registry key?

Kind regards and thanks in advance,
Caspar Smit

Sounds like you are the one writing the license enforcing
code, sosome people around here will refuse to help on

However, as a more pragmatic person, I can offer these
tidbits ofhelp:

   1. The Windows Registry is just some files on the disk
     and won'tidentify cloning (except as a side effect
     of other code detectingit somehow.

   2. Cloning the MAC address while staying on the same
     (virtual)network segment is going to cause severe
     communicationsproblems, so is less likely to be
     practical.  But people mightwork around this by
     placing each clone behind its own NATrouter, each
     giving it the same RFC1918 IPv4 address, while
     letting an outer NAT router map all these clones
     to the samepublic IPv4 address.  This will be
     less workable for IPv6,IPXand other non-NAT
     protocols.  It would also limit the boxesability
     to communicate with each otherdirectly.

   3. It is potentially possible that someof the
     virtualizationspecific CPUID or virtio interfaces
     will provide some perinstance identifiers, but it
     is also likely that those maychange when doing a
     virtual power off/on (i.e. stopping andstarting
     the qemu process itself).

   4. If your license checking code is talking to one
     of youroutside servers anyway, it could itself
     change a uniquevaluestored inside the virtual
     machine (on disk or registry)each time it does
     that, and your server could then objectif the
     unique values start deviating in ways that cannot
     be explained by snapshot rollbacks/ restores of

   5. If your license checking code is not phoning
     home (whichis the morally right thing to avoid),
     but is talking toother locally networked copies
     of your software, youcould try to detect if two
     licensed copies with the samepermanent unique
     install time ID (randomly generated during
     installation or license issuance) start directly
     orindirectly talking to each other.

   6. If your license checking code and the application
     beinglicense checked is not networked at all, then
     the taskbecomes near impossible, and you will have
     to rely onhuman/legal means of preventing bad


Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

reply via email to

[Prev in Thread] Current Thread [Next in Thread]