Soy programador de C # y busco la mejor manera de "saber" qué hardware ejecuta mi software. ¿Cuál es la mejor "identificación de hardware" no editable y única en cada computadora?
Nada es "no editable"; lo que la ciencia puede crear, la ciencia puede replicarse con suficiente financiamiento y tiempo, particularmente con una muestra.
Lo más cercano que obtendrás razonablemente es un dongle criptográfico, algo así como una tarjeta inteligente que proporcionas su software, después de que haya generado las claves en dicha tarjeta inteligente antes del envío. Si recibe un módulo FIPS 140-2 Validated que tiene un nivel general de 4, eso es lo mejor que conozco dentro de los Estados Unidos.
Es posible que no sepa qué hardware está ejecutando realmente su software, pero tendrá una certeza razonable de que todo lo que esté ingresando a través de
de hecho, tiene la tarjeta inteligente disponible para ellos.
Por supuesto, deberá averiguar cómo suministrar tarjetas de reemplazo.
Y tendrás que gastar algo de dinero. La versión barata de esto usa algo como un producto de yubico y confía en la certificación FIPS, que en los niveles más altos incluye protecciones físicas contra la manipulación sutil y oculta ( por ejemplo, rellenando el interior con pegamento fuerte por lo que es muy difícil abrirlo, cambiarlo y volverlo a armar sin dejar signos).
Lea otras preguntas en las etiquetas authentication hardware