¿Cómo funcionan las OTP de hardware?

2

Recientemente he encontrado varias tarjetas inteligentes de una sola vez (OTP) en algunas de las internet tiendas especializadas en equipos criptográficos.

Ahora sé / pienso saber cómo funciona OTP con los tokens YubiKeys y RSA:

  1. Obtiene el token, un secreto compartido con el servidor de producción está codificado
  2. Usted hace algo con el token y él le da la OTP (a través de una pantalla o un teclado simulado)
  3. Envía la OTP a su aplicación, que a su vez pregunta al servidor del fabricante si el código es correcto
  4. Se autenticó correctamente si el servidor respondió "sí"

Ahora las tarjetas reales (como Gemalto MD 830 ) funcionan de la misma manera, por ejemplo. codifique el secreto compartido y requiera los servidores en línea por parte del proveedor o ¿cómo llega el secreto a la tarjeta?

Además, ¿cómo se transfiere la OTP generada de la tarjeta a la computadora? ¿Se mostrará para que el usuario pueda copiarlo y pegarlo? ¿Requiere hardware adicional (excepto para el lector conectado a la PC)? ¿Debe ser recuperado por el software?

Nota: para el párrafo directamente arriba, estoy hablando explícitamente de tarjetas que no cuentan con una pantalla integrada.

    
pregunta SEJPM 04.05.2016 - 13:29
fuente

3 respuestas

3

Los sistemas basados en tarjetas inteligentes como el producto en el enlace que proporcionó están basados en PKI (infraestructura de clave pública), que es un medio para autenticar a un usuario según su capacidad para firmar algo con una clave privada (que se encuentra en la tarjeta inteligente) que Se puede probar con la aplicación de la clave pública. Dado que la clave privada nunca abandona la tarjeta (al menos, en implementaciones totalmente seguras) es un medio para garantizar que el usuario tenga la tarjeta, ya que no hay una forma práctica de duplicarla y tiene el reto de demostrar su valía durante cada firma. en.

Entonces, el RSA SecureID tiene un propósito similar (probar que el usuario tiene el objeto en su poder y es imposible de duplicar) pero no es tan robusto porque la tarjeta inteligente puede interactuar con el sistema operativo, para hacer cosas como forzar al usuario para cerrar sesión si se retira la tarjeta de la computadora y proporcionar otras funciones criptográficas, como firmar correos electrónicos.

En el caso del llavero, la sección "privada" todavía es conocida por RSA (o quien emitió el mando) porque es necesaria para validar el código. En el caso de la tarjeta inteligente, la clave privada solo podría (debería) existir en la tarjeta, y la clave pública se usa para validar la tarjeta.

    
respondido por el Jeff Meden 04.05.2016 - 15:04
fuente
3

@JeffMeden ofreció una buena descripción de cómo funciona la tarjeta inteligente PKI, pero no pudo señalar que utilizan protocolos y modelos de seguridad completamente diferentes en comparación con los tokens OTP.

Un token OTP utiliza algún tipo de secreto previamente acordado * para generar una contraseña. El protocolo solo puede probar que alguien en ese momento tiene el token. No puede verificar la identidad del servidor ni proteger contra el hombre en el medio, la reproducción (mientras la contraseña sigue siendo válida) o la duplicación del secreto. Estos deben ser migitados externamente (por ejemplo, utilizando TLS).

Por otra parte, una tarjeta inteligente PKI es como una pequeña computadora que puede manejar todo tipo de funciones criptográficas como generación de claves, firma y ecryption. La tarjeta puede defenderse contra todos los ataques mencionados anteriormente si se implementa correctamente. Es decir. solo la tarjeta puede establecer comunicaciones seguras con el servidor utilizando tuberías inseguras.

Dicho esto, las tarjetas PKI probablemente sean excesivas para las aplicaciones de autenticación pura.

* ya sea si el usuario registra una identificación en el token o si el usuario emite un código secreto que se carga en el dispositivo

    
respondido por el billc.cn 04.05.2016 - 16:24
fuente
1

@JeffMeden y @ billc.cn ya dieron una muy buena explicación. En tu pregunta original, mencionaste algo, me gustaría comentar sobre:

Dijo "Envia la OTP a su aplicación, que a su vez le pregunta al servidor del fabricante si el código es correcto" .

Esto puede ser cierto en algunos casos como el servicio de validación de yubico o servicios como dúo u onelogin. Estos son servicios que facilitan el proceso de inicio.

Pero también puede ejecutar su propio servicio de autenticación. Entonces su aplicación le preguntará a su propio servidor de autenticación, si la OTP es correcta. Aún así, como ambos apuntaron, el token OTP (fob) usualmente tiene el secreto compartido implantado por el fabricante. Es decir. El fabricante todavía puede saber este secreto compartido.

De todos modos, hay algunos dispositivos OTP donde puedes crear tu propio secreto compartido, como el yubikey, que puedes inicializar y autenticar contra tu propio servidor de autenticación. En tal caso, las claves secretas y la decisión de autenticación están bajo su control. Hay varias implementaciones de diferentes niveles de complejidad por ahí. privacyIDEA es un servidor de autenticación muy sofisticado, de código abierto y compatible con una amplia gama de diferentes tipos de tokens, lo que le permite tener el control en el asiento del conductor. .

    
respondido por el cornelinux 04.05.2016 - 23:01
fuente

Lea otras preguntas en las etiquetas