¿Cómo se compara el almacenamiento de claves privadas GPG / SSH en tarjetas inteligentes con unidades USB simples?

22

Tengo un conocimiento básico de la criptografía de clave pública / privada y lo he estado usando para inicios de sesión SSH y cifrado / firma GPG desde hace un tiempo. Sin embargo, siempre he mantenido la clave privada / llaveros en la ubicación predeterminada, en mi directorio de inicio (.gnupg y .ssh). Obviamente, puedo transferir las claves a una unidad USB, lo que en teoría significa que ni un registrador de teclas en mi computadora o la unidad USB solo será suficiente para obtener mi clave privada.

¿Qué beneficios tienen las tarjetas inteligentes capaces de almacenar claves privadas y dispositivos como YubiKey Neo (que parece ser un lector de tarjetas inteligentes + usb en una sola mochila) ¿Ofrecer por encima del almacenamiento de claves privadas en una memoria USB usb simple?

¿La tarjeta inteligente "revela" alguna vez la clave privada a aplicaciones como SSH o GPG? Si es así, parece que cualquiera que tenga el PIN y el propio dispositivo todavía puede obtener la clave privada, y no ofrece ventajas sobre las unidades USB normales. Si no, ¿cómo funcionan exactamente las aplicaciones sin conocer la clave privada?

    
pregunta user3243135 14.07.2013 - 07:30
fuente

3 respuestas

16
  

¿La tarjeta inteligente "revela" alguna vez la clave privada a aplicaciones como SSH o GPG? Si es así, parece que cualquiera que tenga el PIN y el propio dispositivo todavía puede obtener la clave privada, y no ofrece ventajas sobre las unidades USB normales. Si no es así, ¿cómo funcionan exactamente las aplicaciones sin conocer la clave privada?

Idealmente, No.

La principal ventaja de este token es que mantiene su clave secreta y realiza actividades criptográficas (como descifrar, firmar, etc.) en el dispositivo de hardware, sin revelar la clave privada.

Entonces, por ejemplo, puede solicitar la clave pública al dispositivo y usar esa clave pública para cifrar un archivo (con o sin el dispositivo presente). Pero para descifrar el archivo, debe insertar el token y pedirlo para descifrar el archivo por usted.

Los detalles de la implementación real varían según los dispositivos, pero esta es la idea general de lo que quiere que suceda.

Además, estos tokens criptográficos a menudo emplean algunas medidas de seguridad física para ayudar a evitar que un atacante desarme el dispositivo y recupere la clave directamente. No es posible proteger con un 100% de certeza, pero son comunes medidas como usar un diseño de chip único (en lugar de incluir un chip de memoria discreto) y generosas ayudas de epoxi.

    
respondido por el tylerl 21.07.2013 - 06:54
fuente
6

OpenPGP smartcards no revela sus claves secretas. Las tareas básicas de firma y descifrado las realiza el procesador criptográfico incorporado de la tarjeta y solo están disponibles después de ingresar su código PIN.

Imagine que su cliente OpenPGP (por ejemplo, GnuPG) envía una solicitud "descifrar este bloque de cifrado" que luego realiza la tarjeta (el cifrado real se realiza mediante un cifrado de bloque que es mucho más rápido y en la CPU de la computadora) , o "firme este ID de usuario de esta clave", que se realiza nuevamente mediante la tarjeta.

Si la clave se generó en la tarjeta, nunca dejará la tarjeta. Alternativamente, las claves pueden generarse en su computadora y cargarse a la tarjeta; no volverán a dejar la tarjeta, pero podrían extraerse de la computadora en la que se crearon.

Las unidades de almacenamiento en miniatura almacenan la clave completa a la que se puede acceder. Si está conectado a su computadora, las claves privadas se pueden descargar desde ella.

    
respondido por el Jens Erat 14.07.2013 - 09:21
fuente
3

Honestamente, todo depende realmente de la propia tarjeta. Los dispositivos de seguridad externos para este trabajo normalmente toman una de tres formas: almacenar secretos que la PC calcula; hacer todo el almacenamiento secreto y computación ellos mismos; algo en el medio. Las tarjetas que proporcionan seguridad real hacen la firma con claves integradas, preferiblemente generadas en el dispositivo también. La idea es que la clave nunca abandona el dispositivo bajo ninguna circunstancia porque no se puede confiar en el cliente (es decir, en el malware).

El uso de estos te ayuda de dos maneras:

  1. El malware en la PC se reduce a falsificación de mensajes mientras que la tarjeta inteligente es una información privilegiada. Dependiendo de la configuración, también puede llevar la personalización del malware, lo que reduce su riesgo aún más.

  2. Perder una tarjeta inteligente a un ladrón no debería preocuparle tanto como perder una computadora portátil o unidad USB llena de secretos.

  3. Puede poner una tarjeta inteligente en la billetera que probablemente lleve consigo de todos modos.

  4. Bastantes computadoras portátiles comerciales tienen lectores de tarjetas inteligentes en estos días.

Una característica particular que debe buscar es un teclado de PIN integrado en el lector. La razón es que esto puede ayudarlo a establecer una ruta confiable donde su PIN va directamente a la tarjeta inteligente. Sin esto, es posible que lo haya ingresado en una computadora infestada con malware a través del teclado. Una ruta de confianza hubiera evitado compromisos a través de la contraseña / pin de ciertas memorias USB cifradas "certificadas". Un ejemplo de uno con esta característica está en el enlace de abajo. (Junto con los enlaces antiguos a las instrucciones de la tarjeta inteligente GPG).

enlace

OpenSSH con tarjetas inteligentes aquí.

enlace

    
respondido por el Nick P 21.07.2013 - 04:30
fuente

Lea otras preguntas en las etiquetas