¿Es mejor tener un canal seguro o una entrada de PIN segura para tarjetas inteligentes?

4

Supongamos que tengo una computadora, un teclado conectado por USB y un lector de tarjetas chip basado en contactos (confiable) conectado por USB con un pinpad de hardware.

Ahora hay dos tipos de tarjetas inteligentes relevantes para esta pregunta

  1. Los que establecen un canal seguro (similar a TLS para el transporte APDU) entre el middleware en la computadora y la tarjeta. Requieren una entrada de PIN basada en el teclado.
  2. Los demás no establecen un canal seguro entre el middleware y la tarjeta. Pueden usar el pinpad HW del lector de tarjetas chip.

¿Cuál de los dos enfoques proporciona menos superficie de ataque, por ejemplo? es probable que sea más seguro?

La compensación I que se ve aquí es la siguiente:

  • Las tarjetas sin un canal seguro pueden ser vulnerables a la modificación maliciosa de las APDUs en transferencia y a las escuchas ilegales en los resultados de los cálculos y, especialmente, a la modificación maliciosa de lo que está firmado por la tarjeta
  • Las tarjetas con un canal seguro sufren la amenaza estándar de los registradores de teclas y software similares y, por lo tanto, permitirían un uso legítimo ilimitado de la tarjeta mientras se inserta

Nota: El hecho de que haya menos PIN posibles (= contraseñas) con los pinpads no será importante para esta pregunta, así como para el escenario de uso remoto de dicha tarjeta. Se puede suponer que el canal seguro es realmente seguro y se puede suponer que el middleware se ha codificado correctamente, pero el PIN aún se suministraría desde una aplicación de usuario (potencialmente defectuosa) (como Firefox, pkcs11-tool , Windows, ... ) utilizando sus propios diálogos.

    
pregunta SEJPM 25.06.2016 - 00:32
fuente

1 respuesta

2

La superficie de ataque es más pequeña con el teclado PIN del hardware. El canal seguro entre el controlador de la tarjeta inteligente y la tarjeta no puede proteger contra el husmeo por USB entre el teclado y la computadora, ni puede proteger las teclas que se leen cuando llegan al sistema operativo antes de ir al controlador de la tarjeta inteligente y luego El canal seguro. Ambas amenazas se incluyen en los ataques del registrador clave que mencionó, y ambas se mitigan con fuerza mediante la entrada del PIN del hardware porque no hay una ruta USB conectable para monitorear, ni hay una infraestructura compleja de controladores y kernels que maneje cada pulsación de tecla. Algunos dispositivos PIN de hardware incluso tienen una carcasa a prueba de manipulaciones para revelar si alguien intentó implantar el monitoreo en la propia almohadilla.

Independientemente de cómo el PIN llegue a la tarjeta, todavía existe la amenaza de que la tarjeta firme los problemas maliciosos después de que el PIN haya desbloqueado la función de firma. Además de utilizar la seguridad de la brecha de aire, una forma de detectar comportamientos maliciosos es saber cuántas cosas pretende firmar (posiblemente con un registro de auditoría) y hacer coincidir las firmas esperadas con el contador de la tarjeta, que es como un odómetro para Operaciones de firma.

Un teclado PIN de hardware también puede hacer que las solicitudes de firma maliciosas sean obvias, ya que un atacante tendría que hacer que su tarjeta firme sus datos en lugar de los suyos, lo que luego requeriría otra firma para sus datos. Las almohadillas de PIN del hardware ayudan aquí al requerir siempre una entrada de PIN para cada firma. Si ingresa su PIN, algo se firma y no es lo que usted necesitaba firmar, algo sospechoso puede estar sucediendo. Si bien puede configurar algo como GnuPG para requerir un PIN para cada firma o desafío, corre el riesgo de que un atacante vuelva a habilitar el almacenamiento en caché de PIN para firmar tanto los datos maliciosos como los suyos con una entrada de PIN.

Los dispositivos como el YubiKey 4 tienen una versión más ligera de esta protección en la que tienes que tocar la tarjeta para cada firma. Esto sigue siendo una buena manera de detectar a alguien que firmó maliciosamente sus datos en lugar de los suyos (porque tocaría y algo se firmaría, pero sus datos aún no se firmarían).

No creo que el canal seguro sea suficiente para evitar que se creen firmas maliciosas porque solo cierra el ataque entre el controlador y la tarjeta, mientras que algo fuera de ese sistema tiene que iniciar el proceso de firma. El software malicioso en el mismo sistema operativo aún podría solicitar firmas.

Por otra parte, sin el canal seguro, un atacante podría monitorear las firmas del lector a través de la interfaz USB, pero ese es el mismo ataque que podría capturar una entrada de PIN de un estándar Teclado y luego solicitar directamente firmas de la tarjeta. El ataque de captura de PIN es el más fácil, también. Puedo comprar un registrador de claves en Amazon.com , pero dudo que pueda fácilmente tener una herramienta prefabricada. para interceptar tráfico de firma de tarjetas inteligentes. Una vez que tenga el PIN, podría ejecutar un host USB conectado al lector de tarjetas a través de una Raspberry Pi, y podría firmar la próxima vez que se inserte la tarjeta.

En resumen, una almohadilla de PIN de hardware proporciona una protección efectiva contra la captura de PIN maliciosa, así como una fácil detección de solicitudes de firma maliciosas (a través de una entrada de PIN = una firma). Salvo en la seguridad de la brecha de aire y los procedimientos de auditoría pesados, eso es lo mejor que puede hacer.

    
respondido por el David Timothy Strauss 08.11.2016 - 23:14
fuente

Lea otras preguntas en las etiquetas