Zuverlässige Methode zum Generieren einer eindeutigen Hardware-ID

Frage Ich muss für jeden vernetzten Client eine eindeutige ID festlegen, so dass:

it (ID) sollte bestehen bleiben, sobald die Client-Software auf dem Zielcomputer installiert ist, und sollte weiterhin bestehen bleiben, wenn die Software auf demselben Computer und auf demselben Betriebssystem erneut installiert wird.it sollte sich nicht ändern, wenn die Hardwarekonfiguration in den meisten Fällen geändert wird (außer beim Ändern des Motherboards).Wenn die Festplatte mit installierter Client-Software auf einen anderen Computer mit identischer Hardware-Konfiguration (oder so ähnlich wie möglich) geklont wird, sollte die Client-Software diese Änderung kennen.

Eine kleine Erklärung und eine Hintergrundgeschichte:

Diese Frage ist im Grunde eine uralte Frage, die auch das Thema Software-Kopierschutz berührt, da hier einige der in diesem Bereich verwendeten Mechanismen erwähnt werden. An dieser Stelle sollte mir klar sein, dass ich kein Kopierschutzschema suche. Bitte lesen Sie weiter. :)

Ich arbeite an einer Client-Server-Software, die in einem lokalen Netzwerk funktionieren soll. Eines der Probleme, die ich lösen muss, besteht darin, jeden einzelnen Client im Netzwerk zu identifizieren (nicht so sehr ein Problem), damit ich bestimmte Attribute auf jeden bestimmten Client anwenden und diese Attribute während der Bereitstellungslebensdauer eines bestimmten Clients beibehalten und durchsetzen kann Klient

Während ich nach einer Lösung suchte, war mir Folgendes bewusst:

Windows-Aktivierungssystem verwendet eine Art Mechanismus für starke Fingerabdrücke, der extrem empfindlich auf Hardwaremodifikationen reagiert.ie @ Disk-Imaging-Software kopiert alle Volume-IDs (die bei der Formatierung an jede Partition gebunden sind) sowie benutzerdefinierte, eindeutig generierte IDs, die während des Installationsvorgangs, während des ersten Starts oder auf andere Weise ausschließlich Software sind und in der Registrierung gespeichert werden oder auf der Festplatte, so ist es sehr einfach, zwei zu verwechseln.

Die offensichtliche Wahl für diese Art von Problem wäre, BIOS-IDs herauszufinden (nicht 100% sicher, ob dies durch identische Motherboard-Modelle eindeutig ist), da dies das einzige ist, auf das ich mich verlassen kann, das nicht dupliziert, übertragen von Klonen, und das kann nicht geändert werden (zumindest nicht mit einem User-Space-Programm). Alles andere schlägt fehl, weil es entweder nicht zuverlässig ist (MAC-Klonen, irgendjemand?) Oder zu anstrengend (weil es zu empfindlich für Konfigurationsänderungen ist).

Unterfrage, die ich stellen möchte, ist, mache ich das in Bezug auf die Architektur richtig? Vielleicht gibt es ein besseres Werkzeug für die Aufgabe, die ich erfüllen muss ...

Ein anderer Ansatz, den ich mir vorgestellt habe, ähnelt einem Handshake-Mechanismus, bei dem ein Server eine interne Nachschlagetabelle mit verbundenen Client-IDs verwaltet (die zu jedem Zeitpunkt sogar vollständig softwarebasiert und nicht eindeutig sein können) und dem Client mitteilt um während des Handshakes eine andere ID zu erhalten, wenn bei der Verbindung eine doppelte ID angegeben wird. Dieser Ansatz passt leider nicht zu einer der Anforderungen, Attribute im Laufe des Lebens an einen bestimmten Client zu binden.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage