We want to create a unique machine id - key fingerprint, in order to use it to identify a PC(s) over a secure network (probably ssl/tls), so that we are sure that the server delivers to the certain PC , and not to someone who has stolen the license. The pc(s) will be on Linux OS. How should we do it?
问题:
回答1:
Couple of suggestions.
Create a unique hashing algorithm that hashes the computer name and MAC address together, sends the hash back to the secure server, and stores it in a binary file on the local machine. When communicating, your protocol then requires the client to send it's hashcode fingerprint to the server to authenticate before communicating.
Generate a set of valid license keys (another hash) that you store in a special file. When the application boots for the first time, it registers the key and computer information with the server (ie: computer name) or username/password combo. As with #1, the computer must send the unique key to the server to authenticate before communicating. Set up your server code so the same key cannot come from two different devices.
Check out this stackoverflow answer to the same question. The author had some interesting insights to a very similar question.