I was hoping to ask for some design help on VMWare.
I am developing a new licensing feature for a desktop app.
A typical solution to this problem is a stand-alone license server which
just counts concurrent licensed instances on the LAN. Unfortunately,
the customer has taken that offtheytable and require us to do software
only, disconnected, per seat activation. I know their environment and
their reasons are mission critical for them...
So to implement the license policy requires us to uniquely identify each
physical machine the app is installed with a UUID. For the case of
Windows running hardware, we can make a hash value from the serial
numbers in the bios through WMI and treat the hash value as a UUID.
Although there is a risk a determined cheat could spoof their bios we
decided that was an acceptable risk since bios spoofing is clumsy.
Above a certain level of effort they could just edit our assembly and
crack the security check anyway...
The case of Windows in a guest OS on VMWare is harder to design
something robust to very simple cheating. Just about everything in the
guest OS is configurable and easily replicated with thevmxand
checkpointing. So guest OS features like the bios or MAC addresses just
seem too easy for a user to spoof by making many instances of particular
(licensed) guest image.
I am looking for something an application can query which identifies the
underlying host in a robust way.
One solution I been exploring is using theVMXhIO port to query the
underlying host. Using the IO Port was very attractive since it
seemed to require minimal dependencies, installation and configuring
and was typically on by default
According to
https://sites.google.com/site/chitchatvmback/backdoor#cmd0fh
command 13h will provide the bios UUID but then I realized that VMWare
allows multiple instances of a particular guest image as long as they
run on physically distinct hosts. It seems I really need to be asking
for the/HOST's/UUID
The PowerCLI does seem to provide that data with the Get-VMHost command
https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/Get-VMHost.html
something like
(Get-VMHost -Name MY_VCENTER_IP).ExtensionData.hardware.systeminfo.uuid
Is therea IOPort way to get the same or equivalent value - the physical
host UUID?
I just need a stable and robust way to identify what (physical)
machine the app is running on. Ideally, one which is simple to
implement and does not have a lot of dependencies or configuration for
the customer to deal with.
thanks
Karl Meissner
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
open-vm-tools-discuss mailing list
open-vm-tools-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-vm-tools-discuss