Il mio server riceverà dati da diverse centinaia di computer. Come parte di tenere traccia di quale computer ha inviato cosa, mi occuperò delle impronte digitali dell'hardware e conserverò i risultati nel mio database.
Al giorno d'oggi la fonte più ragionevole da utilizzare è l'UUID SMBIOS. Questi numeri a 128 bit sono impostati dal produttore della scheda madre e dovrebbero essere unici, ma non così imprevedibili. Ad esempio, l'ultima parte contiene spesso l'indirizzo MAC della scheda NIC integrata e molti di questi sono specifici del produttore.
Dato che non guadagno molto conoscendo l'UUID esatto, sto usando un hash. Ciò introdurrebbe già un po 'di privacy. Tuttavia, dal momento che (senza ulteriori misure) gli hash possono essere calcolati rapidamente, e quegli UUID non forniscono effettivamente 128 bit di entropia, suppongo che sarebbe fattibile risalire all'hash di alcuni UUID.
varrebbe la pena introdurre una funzione hash più costosa per evitare quanto sopra, nel caso in cui il mio server fosse compromesso? Non penso che sarei in grado di usare salt con esso, perché non posso immagazzinare il sale nell'hardware e si suppone che i dati arrivino già in hash (per non comunicare mai l'UUID effettivo). Sul server dovrei essere in grado di raggruppare i dati provenienti dalla stessa fonte. Quanto potrebbe essere utile conoscere l'UUID di alcuni computer, che potresti anche sapere appartenere a una particolare azienda o individuo?
L'ID derivato da utilizzare deve sopravvivere alle reinstallazioni del sistema, quindi un'alternativa puramente basata sul software non funzionerà. L'introduzione di hardware personalizzato (ad esempio chiave hardware / dongle) non è un'opzione. Altre idee che ho avuto, di cui non sono sicuro quanto siano buone:
- Accorciare deliberatamente l'hash fino al punto che è ancora improbabile incontrare lo stesso hash più di una volta per un singolo utente (quindi sarò ancora in grado di distinguere i loro sistemi) mentre non conserverò abbastanza l'entropia da essere reversibile - I Non sono sicuro di quale sia la lunghezza appropriata e quanto di un miglioramento se invece di un UUID effettivo, si possa stabilire un insieme piuttosto limitato di potenziali UUID
- Aggiungere un po 'di hardware in più all'hash, a costo di aumentarne le probabilità, ma aumentare l'entropia della sorgente in qualche modo