windows - Reliable way of generating unique hardware ID -


Question: I have to come up with unique IDs for each network client, such as: < / P>

  • When the client software is installed on the target computer, it should continue (id), and if the computer is installed evenly on the same computer and should continue on the same OS install, / Li>
  • Hard drive with installed client software similar to hardware con Configuration (or, as the clone on another computer with as much as) possible, it should not change. Client software should be aware of that change
  • A little bit of detail and some back-story:

    This question is basically the old question that is the subject of software copy protection Also touches, because some of the mechanisms used in that area are mentioned here. I should be clear at this point that I am not looking for a counter-protection plan, please read on :)

    I am working on a client-server software that works in the local network is. One of the solutions to me is to identify each unique customer in the network (there is no such problem), so that I can implement certain features for each specific client, during those deployment life-time, those characteristics The client can maintain and implement

    When I was looking for a solution, I knew about the following:

    • Windows activation system uses some kind of fingerprint mechanism Amendments are extremely sensitive to the hardware,
    • Disk imaging software copies all the volume IDs (related to each partition formatted), and custom, exclusively generated IDs during installation, first run During, or any other way, which is strictly stored in its nature, and in the registry or on the hard drive, it is very easy to confuse the two.

    A clear choice for this type of problem would be to find BIOS identifiers (not 100% sure if it is unique through the same motherboard model, though) because it is only one The thing on which I can trust is not repeated on it, it is transferred by cloning, and it can not be changed (not using at least some user space program).

    The sub-question that I want to ask is the question that I want to ask, is not all that reliable (Mac cloning, anyone?), Or is being demanded is. Am I doing it correctly, architecture-wise? Perhaps there is a better tool for work that I have to fulfill ...

    Another way in my mind is the similarity of the handshake system, where a server connects an internal lookup table of the connected client ID (which That can be completely software-based and non-unique at any time), and asks the customer to come up with a different ID, if duplicate ID is provided during the handshake. Unfortunately, this approach does not play well with one of the requirements to tie specific client qualities throughout life.

It seems that you should create a unique ID related to your needs

This ID can be made as hash (such as MD5, SHA1 or SHA 512) with important information (some information about software and hardware components) for you.

If you sign this kind of hash with your private key and verify during the beginning of your software, then the key ( signed hash value ) was signed (Only public key should be installed with you software). Anyone can extend this kind of solution with different online services, but corporate customers can get a very good online service.


Comments