0

My firm wants to create license files, based on a unique identifier of the PC. Currently hostname and serial ID are used, but I know that simply copying a virtual machine also copies those parameters.

What parameter can be used for that? The idea behind this idea is to create an individual license file, based on that one unique identifier of that PC, so that even copying the whole PC (using virtual machine technology) doest not copy this one unique identifier.

Thanks in advance

8
  • 2
    There is no simple answer. You will have to research your precise requirements and threat model, budget versus risk, and so on. If you are not qualified to do this, employ an expert. There is no easy answer. (Or contract with a company that does this.) Commented May 15, 2017 at 9:15
  • Meanwhile I've also checked UUID (wmic csproduct get UUID), but while copying a virtual machine, this also seems to be copied. By the way, why is this question downvoted?
    – Dominique
    Commented May 15, 2017 at 9:21
  • 5
    Because it's the equivalent of "how do I build a bridge". There's no clear problem statement, no budget, no explanation of the threat model, or any other information a competent expert would need to give you a useful answer. What answer can we give you other than "find a person or company who specializes in problems of this type"? Commented May 15, 2017 at 9:33
  • 1
    Right, so that's your problem. And there's an entire industry devoted to different ways of solving it based on different problem requirements, budgets, threat models, and so on. (Punch "software license management" or "software copy protection" into your favorite search engine.) Now, do you have a specific question? Commented May 15, 2017 at 10:52
  • 1
    Contrary to what has been said, such identifiers do exist and good-enough heuristics can be defined that will work for many cases (probably even the majority of cases). I don't think that this post should have been put on hold.
    – harrymc
    Commented May 16, 2017 at 7:18

3 Answers 3

2

Inside a virtual machine, you can only enumerate a set of ids that are unique for some virtualization products (but not all).

  1. VMware Workstation maintains a unique UUID that can be retrieved from the BIOS:

The UUID is based on the physical computer's identifier and the path to the virtual machine's configuration file. This UUID is generated when you power on or reset the virtual machine. As long as you do not move or copy the virtual machine to another location, the UUID remains constant.

  1. Most virtualization products will detect that a VM was moved and will automatically generate a new MAC address (user OK may be required) to avoid network conflicts.

  2. Some virtualization products will pass-through the CPU or the GPU for efficiency.

  3. For a physical machine, the motherboard id is the best identifier.

So making an identifier that is a combination of all the above may be the best strategy.

2

When considering virtual machines, nothing about a computer is unique.

Virtual machines are precisely specified by a set of files. Virtualization software reads these files to know how a VM is specced, what identifiers the virtualized hardware has, which virtual hard disks should be connected to it and on which ports etc. (Virtual hard disks are files too.) Basically, VMs are entirely contained in a set of files.

Files can always be cloned, effectively creating an exact clone of a virtual machine. You can always clone a VM, creating an indiscernible copy.

-2

You could use a hashed combination of Mac address + computer name + anythingelse.

Anything else is anything you can "read" from the computer. Serial number, windows key, hard drive serial and such things.

3
  • Mac address and hostnames get copied while working with virtual machines, so this is not a good idea.
    – Dominique
    Commented May 15, 2017 at 9:23
  • 2
    @Dominique Why does that matter? Isn't a copy of a machine, by definition, the same machine. That's what "copy" means - -it means the two are the same. (Except for location, I guess.) Are you looking for something uncopyable? Because your question says no such thing. Commented May 15, 2017 at 9:37
  • @Dominique: You are too pessimistic - some attributes are not copied, for example the BIOS which is constructed on-the-fly by the virtualization software. See my answer.
    – harrymc
    Commented May 15, 2017 at 15:25

Not the answer you're looking for? Browse other questions tagged .