Sono un programmatore C # e sto cercando il modo migliore per "sapere" su quale hardware è in esecuzione il mio software. Qual è il migliore "id hardware" non modificabile e unico in ogni computer?
Niente è "non modificabile"; ciò che la scienza può creare, la scienza può replicare con finanziamenti e tempo sufficienti, in particolare con un campione.
La cosa più vicina che otterrai ragionevolmente è un dongle crittografico, qualcosa come una smartcard che offri il tuo software, dopo aver generato le chiavi su detta smart card prima della spedizione. Se ottieni un modulo FIPS 140-2 convalidato che ha un livello globale di 4, questo è il migliore di cui sono a conoscenza negli Stati Uniti.
Potresti non sapere quale hardware stia effettivamente eseguendo il tuo software, ma avrai una certa quantità di certezza che qualunque cosa stia verificando tramite
, infatti, ha prontamente a disposizione la smartcard.
Avrai bisogno di capire come fornire le carte sostitutive, naturalmente.
E dovrai spendere dei soldi. La versione economica di questo utilizza qualcosa come un prodotto yubico e rinuncia alla certificazione FIPS, che ai livelli più alti include protezioni fisiche contro manomissioni nascoste e nascoste ( ad esempio, riempiendo l'interno con una colla strong, quindi è molto difficile aprirlo, cambiarlo e rimetterlo insieme senza lasciare segni).
Leggi altre domande sui tag authentication hardware