¿Cómo puede ser fácil de escribir pero "imposible" extraer la clave privada de un token criptográfico?

37

Varios dongles criptográficos afirman que es imposible extraer la clave privada almacenada una vez escrita.

Yubico :

  

La información de la clave AES de YubiKey nunca se puede extraer de una YubiKey   dispositivo - solo programado para ello.

Nitrokey :

  

Aparte de las soluciones de software comunes, las claves secretas son siempre   Almacenado de forma segura en el interior del Nitrokey. Su extracción es imposible.   lo que hace que Nitrokey sea inmune a virus informáticos y caballos de Troya.

La afirmación como se afirma literalmente parece una tontería de marketing. El dongle en sí tiene acceso a la clave privada, por lo que de alguna manera se puede leer.

Aún así, es una afirmación interesante. La elección de palabras - "nunca", "siempre", "imposible" - sugiere que hay algo que se puede probar aquí. O tal vez les estoy dando demasiado crédito. ¿Hay algo en esto? ¿Qué es?

Mi conjetura es que quieren decir que es imposible extraer la clave privada sin alterar físicamente la criptografía. Parece plausible que uno pueda mostrar que simplemente no hay un canal físico para transmitir la clave privada fuera del dispositivo. Eso complica escribir la clave y no puedo ver cómo podría resolverse. Una forma que pude ver es no escribir la clave literalmente, pero de alguna manera permitir que se asigne al azar, pero creo que estos dispositivos realmente permiten escribir la clave.

O tal vez hay más sustancia que eso. Por lo que sé, estos dispositivos utilizan algún mecanismo exótico para almacenar bits que realmente no se pueden leer directamente sin destruir el dispositivo.

Encontré una respuesta aquí sugiriendo que hay algo de carne real en esto, pero no entra en detalles.

enlace

  

Es casi imposible extraer claves privadas directamente de la tarjeta.   Con un poco de destrucción de paquetes de ácido y microscopía electrónica, un   equipo experto, y suficiente tiempo, dinero y suerte en teoría   extraer claves, pero implica no solo acceso físico sino también un escenario   donde la tarjeta será destruida físicamente.

    
pregunta Praxeolitic 08.07.2015 - 12:09
fuente

2 respuestas

43

Bueno, "imposible" es imposible de probar, por lo que en la respuesta vinculada dije "casi imposible", tal vez incluso eso lo esté exagerando. Al usar un dispositivo de hardware seguro, el vector de ataque va del "malware instalado de forma remota en el robo de host", a "el atacante necesita acceder físicamente al dispositivo de hardware y eliminar de forma destructiva la clave privada". Esto último no es ciertamente imposible, pero es mucho más difícil.

Esos dispositivos USB funcionan de manera muy similar a las tarjetas inteligentes. Tengo más experiencia con tarjetas inteligentes, así que usaré eso en la respuesta, pero se aplican la mayoría de los mismos principios. De hecho, muchos de esos dongles usb usan una tarjeta inteligente SoC internamente. Son baratos, programables y ofrecen una seguridad robusta, por lo que en muchas aplicaciones tiene sentido utilizar una tarjeta inteligente internamente en lugar de intentar construir algo nuevo.

Una tarjeta inteligente programable es una computadora completa en un solo chip o sistema en un chip (SoC). Ahora es una computadora muy limitada pero sigue siendo una computadora. La conexión al "mundo exterior" para la tarjeta inteligente es una simple interfaz serial de bajo privilegio. La tarjeta recibe un comando (más como una solicitud) del host y la tarjeta responde con una respuesta. Los comandos se limitan a lo que la tarjeta ha sido programada para hacer.

Entonces, si tenemos una tarjeta inteligente programada para firmar digitalmente una instrucción (como una solicitud de pago en tarjeta de crédito EMV), el host enviará una solicitud a través de la interfaz serial a la tarjeta que consta de un comando y algunas entradas. La tarjeta analizó el comando y, asumiendo que es válido, envía una firma digital al host a través de la misma interfaz. En muchos aspectos, se asemeja a una relación cliente-servidor con la tarjeta inteligente que es el servidor y el sistema host el cliente. La clave privada nunca abandona la tarjeta durante el proceso. Es solo solicitud en, respuesta fuera. El host no tiene ningún mecanismo para obligar a la tarjeta inteligente a devolver la clave privada o hacer algo para lo que no estaba programado. Por supuesto, esto supone que no hay un comando "por favor, dame todas las claves privadas" que obviamente no tendría sentido y no daría seguridad. La tarjeta inteligente puede tener un PIN asignado por el usuario y el PIN es parte del formato del comando. La tarjeta inteligente verifica el PIN y, si no es válido, rechazará el comando. Tiene su propia memoria interna, por lo que puede registrar internamente la cantidad de intentos no válidos y puede programarse para apagarse (o en casos extremos, borrar la tarjeta).

La programación (flasheo) de una tarjeta inteligente se realiza antes del envío. Por supuesto, si un atacante pudiera reprogramar la tarjeta inteligente para ejecutar el programa "Dame todas tus llaves", no sería seguro, por lo que la mayoría de las tarjetas emplean algún tipo de bit de seguridad en la memoria de escritura una vez. Así se programa la tarjeta y se establece el bit de escritura. La tarjeta rechazará cualquier intento futuro de reprogramación.

Intenta no quedar atrapado en una tarjeta inteligente haciendo exactamente esto. Son dispositivos programables, por lo que variarán en la implementación, pero el concepto general es que usted tiene esta computadora autónoma con su propio almacenamiento seguro interno que ha sido programado para responder a las solicitudes de un host a través de una sencilla interfaz de bajo permiso. Estoy de acuerdo en que la palabra "imposible" es marketing, pero no está tan lejos de la verdad. Se podría decir que es prácticamente imposible. El diseño muy básico y la funcionalidad bloqueada significan que terminas con un dispositivo endurecido que es difícil de atacar.

Sin embargo, el antiguo axioma " no hay seguridad de la información sin seguridad física " todavía se aplica. La clave privada todavía está físicamente en la tarjeta inteligente. Con el acceso físico y la motivación suficiente, puede hacer prácticamente cualquier secreto "no secreto". Como en el ejemplo vinculado, la tarjeta inteligente se puede omitir y la clave puede leerse directamente de la memoria física. Un método común es tomar la tarjeta, quitar el SoC y usar la deconstrucción ácida para quemar el paquete. Usando un microscopio electrónico y suficiente habilidad, podría ubicar el punto en el silicio que almacena las teclas, conectar los cables y leerlos. Se ha hecho, por lo que definitivamente no es imposible, pero en la mayoría de los casos no es el tipo de ataque o atacante contra el que intentamos defendernos. Sinceramente, si su atacante alcanzara ese nivel, estaría más preocupado por una llave de $ 5 .

    
respondido por el Gerald Davis 08.07.2015 - 15:44
fuente
22

Los módulos criptográficos de hardware como este están regulados por un conjunto de estándares llamados FIPS 140-2 que especifican lo ridículo longitudes que deben recorrer los dispositivos para proteger las claves privadas dentro de ellos.

Hay cuatro niveles de FIPS 140-2 , resumidos brevemente como:

Nivel 1: hace cosas básicas de cifrado.

Nivel 2: "A prueba de manipulaciones"; es imposible extraer o modificar las claves privadas sin dañar el dispositivo de manera evidente (por ejemplo, romper un sello, volver a soldar los pines, etc.).

Nivel 3: Estos dispositivos deberían tener una "alta probabilidad de detectar el acceso físico" y, por lo general, ponen a cero las teclas si se detecta una manipulación indebida. Piense en los bastidores del servidor con sensores en los paneles de acceso. O en el caso de cool new DARPA research , circuitos que se disuelven cuando se exponen al aire y la humedad.

Nivel 4: refuerza los requisitos para la detección de manipulación y la puesta a cero de la clave. También debe ser altamente resistente a los ataques que utilizan temperaturas extremas y voltaje extremo.

Así que cuando dices

  

Aún así, es una afirmación interesante. La elección de palabras, "nunca", "siempre", "imposible", sugiere que hay algo que se puede probar aquí.

Supongo que significan "probado" en relación con los estándares FIPS 140-2. Y, de hecho, al hacer clic en los enlaces que proporcionó, ambos dispositivos están certificados según el nivel 2 de FIPS 140-2

    
respondido por el Mike Ounsworth 08.07.2015 - 16:13
fuente

Lea otras preguntas en las etiquetas