Garantiert ein ASHWID eindeutig ein Gerät?

8

Wir möchten eine eindeutige Geräte-ID in einer Windows 8 Metro-App verwenden und die Empfehlung ist eine ASHWID, die hier dokumentiert ist:

Ссылка

Ich habe Mühe zu sehen, wie dies garantiert einzigartig sein kann. Das Format enthält zwei Bytes pro Hardwarekomponente, von denen die MAC-Adresse und die Seriennummer der Festplatte am eindeutigsten zu identifizieren sind. Aber nur zwei Bytes für diese Werte scheinen wirklich nicht genug zu sein.

Wenn die verwendeten Bytes etwas anderes sind als die niedrigstwertigen Ziffern (ganz rechts, wie ein Mensch sie liest), dann hätten zwei identische Laptops in der Produktionslinie wahrscheinlich die gleichen ASHWIDs. Die MACs und Laufwerksserien würden wahrscheinlich benachbart sein.

Also, ich denke, der Kernpunkt meiner Frage ist, wie viele Geräte mit dem gleichen CPU-Typ und der gleichen Speicherkonfiguration hergestellt werden müssen, bevor Sie wahrscheinlich ein Duplikat treffen. Scheint wie das gleiche Problem wie das Geburtstagsparadox , also habe ich einen Taschenrechner dafür gefunden und die Nummern eingesteckt :)

Mit einer MAC-Adresse und einer Festplatte mit jeweils zwei Bytes haben Sie etwa 4 Milliarden Permutationen. Sobald Sie nur 6.000 von ihnen zugewiesen haben, ist es etwa 50/50, dass Sie zwei gleich sind.

(gehen Sie zu Ссылка und schließen Sie "6563" und "4294967296" für die eigentliche Berechnung an).

Das scheint wirklich nicht sehr einzigartig zu sein. Bin ich recht skeptisch gegenüber diesem Identifikator, oder fehlt mir etwas wirklich Bedeutendes?

    
Chris Newman 21.09.2012, 16:42
quelle

2 Antworten

4

Nein, das ASHWID garantiert nicht eindeutig ein Gerät. Bei der Arbeit habe ich Dutzende von täglichen Kollisionen gesehen, bei denen ein Monat unsere Toleranz ist.

Außerdem kann sich die ASHWID häufig für das gleiche Gerät ändern, da Windows 8 häufig auf Laptops ausgeführt wird, die möglicherweise eine Dockingstation, einen USB-Stick oder einen Bluetooth-Adapter hinzufügen. Die beste Verwendung von ASHWID besteht darin, zu verifizieren, dass ein Benutzer Ihre App nur auf einer begrenzten Anzahl von Geräten installiert hat, indem Sie ASHWID analysieren und selektiv mit zuvor gesehenen ASHWIDs von diesem Benutzer vergleichen.

Wie für eine eindeutige Hardware-ID empfehle ich einen MD5-Digest einer Zeichenfolge, die mehrere Komponenten enthält, von denen einige Komponenten der ASHWID eine Rolle spielen können.

Sie könnten zufällig eine große Zahl (64+ Bits) erzeugen und diese speichern (zB in der Registry). Und natürlich sollte der Anmeldename / die ID des Benutzers für diesen Benutzer eindeutig sein, wenn Sie möchten, dass etwas anderes in einen Hash eingeschlossen wird. Sie müssen auch überlegen, was Sie tun möchten, wenn der Benutzer eine Betriebssysteminstallation klont oder die Festplatte nach einem Laufwerksausfall ersetzt.

In der Windows Desktop-Welt habe ich den MachineGuid-Registrierungsschlüssel und die Seriennummer des Startgeräts verwendet, aber ich kämpfe darum, in einer Windows Store-App auf diese Informationen zuzugreifen. Wenn Sie Zugriff haben, befindet sich MachineGuid in HKLM\SOFTWARE\Microsoft\Cryptography , was MS garantiert, eindeutig zu sein. Die Seriennummer des Boot-Geräts ::GetVolumeInformationW(::SHGetFolderPathW(~),~) wird ziemlich eindeutig sein, aber nur 32 Bit.

    
AndrewS 10.02.2014, 19:56
quelle
0

Aus dem Artikel:

  

Die ASHWID bietet eine starke Bindung zwischen der App / Paket und der   Gerät durch Darstellung mehrerer individueller Hardwareeigenschaften. Im   Um die Privatsphäre der Benutzer zu schützen, variiert die ASHWID von App zu App.   Wenn sich die zugrunde liegende Hardware nicht geändert hat, werden zwei Aufrufe von demselben Server ausgeführt   App führt zu identischen ASHWIDs. Die ASHWID ändert sich jedoch wenn   Das Hardwareprofil des Geräts ändert sich, z. B. wenn der Benutzer   entfernt einen USB Bluetooth Adapter. Der Back-End-Cloud-Dienst kann verifizieren   die ASHWID und vergleichen Sie sie mit zuvor gemeldeten Werten. Obwohl die   ASHWID variiert, es kann analysiert werden, um festzustellen, ob die Varianz einfach war   aufgrund einer geringfügigen Änderung, wie z. B. ein Hinzufügen von Speicher zu dem System. Das   Das Maß der Varianztoleranz bleibt der Umsetzung der   Back-End-Cloud-Service.

Die ASHWID besteht aus 9 Komponenten:

  1. CPU-ID des Prozessors
  2. Größe des Speichers
  3. Seriennummer des Festplattengeräts
  4. Netzwerkadapter (NIC-MAC-Adresse - erste Instanz)
  5. Audioadapter
  6. Dockingstation
  7. Bluetooth-Adresse
  8. ID des mobilen Breitbandgeräts
  9. BIOS

Die CPU-ID ist nur für das Prozessormodell eindeutig, aber die NIC-MAC-Adresse sollte sehr eindeutig sein. Allerdings können MAC-Adressen geklont und USB-NICs von Gerät zu Gerät verschoben werden. Obwohl ich denke, dass möglich für zwei Geräte dieselbe ASHWID haben kann, ist es sehr unwahrscheinlich. Die größte Herausforderung bei der Verwendung dieser ID ist die Tatsache, dass sich die Hardware ändern kann. Es ist Sache des Dienstes zu entscheiden, welche Teile des ASHWID sie ändern dürfen und welche nicht (akzeptable Varianz). Der Artikel selbst bietet eine Anleitung dazu.

    
Jared Bienz - MSFT 09.10.2012 20:48
quelle