Si los atacantes pueden mover físicamente los datos, de Flash a Flash, entonces deberá recurrir a la criptografía. Si el chip A debe ser capaz de entender algunos bytes de datos, pero el chip B (del mismo modelo) no puede, entonces el chip A debe saber algo que B no sabe. Cifrado reduce el problema: si cifra todos sus datos confidenciales con una clave secreta conocida solo por A (llamémosla K A ) entonces su problema se convierte en: ¿cómo puede hacer que A almacene su clave, de manera que no pueda ser extraído? La longitud de KA normalmente será de 128 bits, es decir, de 16 bytes; ese es el valor agregado de la criptografía: el tamaño de su problema se ha reducido a 16 bytes.
El primer método normal es el siguiente: durante una fase inicial (generalmente al final de la línea de fábrica), se inyecta una clave específica del dispositivo KA Dispositivo A , que se almacenará en un chip resistente a la manipulación. Ese chip debe poder almacenar la clave (solo unos pocos bytes), hacer un poco de cifrado / descifrado con ella y resistir la extracción forzada (resistencia física). Un "servidor maestro" almacena una copia de todas las claves del dispositivo (¡advertencia! ¡Sensible!) Y encripta los elementos de datos que luego deben enviarse de forma segura al dispositivo A . Los teléfonos móviles usan ese modelo; El chip resistente a la manipulación es la tarjeta SIM.
Un método extendido implica un chip resistente a la manipulación con un poco más de potencia: puede hacer criptografía asimétrica ( digamos, RSA) y genere su propio par de claves privada / pública. Durante la fase de inscripción inicial, bajo condiciones controladas, el dispositivo genera su par de claves y exporta la clave pública; la clave pública se almacena externamente y se usa para el cifrado (cuando se deben enviar algunos datos de forma segura al dispositivo A ) y la autenticación (cuando el dispositivo A quiere probar su identidad) a un servidor en línea). Por lo general, durante la fase de inscripción, la clave pública se envuelve en una certificado y se utiliza en protocolos estándar como como SSL / TLS . Algunos terminales de pago utilizan este modelo.
Un TPM es un chip resistente a la manipulación que generalmente puede realizar criptografía asimétrica, incluida la generación y almacenamiento de una clave privada. Esta es la herramienta adecuada para el trabajo, pero aún tiene que usarla: el TPM no mágicamente, por su mera presencia, protegerá los datos; Tienes que diseñar la fase de inscripción inicial y hacer la gestión de claves. Como se describió anteriormente, esto más o menos implica ejecutar su propia PKI .