Proteger datos en un dispositivo integrado

1

Debo lanzar un dispositivo de sistema en chip que, durante su vida útil, almacenará datos confidenciales. Quiero hacer que los datos sean difíciles de extraer o duplicar.

El cifrado es bueno para tratar con MiTM, pero no resuelve el problema de duplicar la memoria flash (y la dirección MAC) del chip y el hardware original.

Los

TPM's (o tokens de seguridad, etc.) son buenos para manejar la duplicación, pero surge un problema. Un atacante podría obtener un nuevo dispositivo, incluido un token de seguridad, en la tienda y transferir el token de seguridad a un dispositivo duplicado que contenga datos confidenciales.

No sé si puedo evitar que esto suene como "haga el diseño de mi producto por mí", pero soy muy nuevo en lo que respecta a la seguridad del hardware y alguien con experiencia podría ayudarme fácilmente apuntándome en una dirección significativa.

    
pregunta user907323 02.02.2014 - 16:04
fuente

1 respuesta

2

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 .

    
respondido por el Thomas Pornin 03.02.2014 - 13:20
fuente

Lea otras preguntas en las etiquetas