Descargar operaciones de clave privada a un dispositivo de confianza

3

Si tengo un sistema de cifrado basado en PGP / GnuPG, puedo mantener mis secretos a salvo usando una tarjeta inteligente OpenPGP y almacenando mis claves privadas allí. Si en cambio estoy usando NaCl de DJB, ¿hay algún tipo de tarjeta inteligente programable que pueda usar para guardar mis claves privadas y también ¿El código NaCl que opera sobre ellos?

He leído sobre las tarjetas Java, pero parece que la única forma de poner su propio código en ellas fue a través del ahora desaparecido MUSCLE proyecto, por lo que no parece ser un enfoque viable. Sin embargo, me encantaría saber que estoy equivocado al respecto, ya que de lo contrario parecía prometedor.

Mi objetivo es, en última instancia, tener un cierto grado de cifrado de confianza en mi teléfono celular (un BlackBerry 10, pero una solución que funcione para Android y iPhone sería ideal), por lo que no estoy atado a las tarjetas inteligentes exactamente, pero sí la idea de descargar la parte de clave privada del cifrado en un dispositivo de confianza. Si hubiera alguna forma de cargar NaCl en un pequeño dispositivo Linux y hablar de eso desde mi blackberry a través de NFC, eso también funcionaría. Todas las sugerencias son bienvenidas.

    
pregunta tsuraan 20.09.2013 - 20:00
fuente

1 respuesta

3

En estos días, Java Cards tienen competencia: .NET Cards . El principio fundamental es el mismo: el código proporcionado por el usuario se ejecuta en una máquina virtual alojada por la propia tarjeta. Tu principal problema será el rendimiento.

Una parte importante de por qué estas tarjetas programables se consideran "seguras" se basa en esta máquina virtual: el código aplicativo no puede escapar de los límites de la máquina virtual; por ejemplo, no tendrá un desbordamiento de búfer ni podrá leer o escribir bytes arbitrarios en la RAM. Esta función tiene un precio elevado: todo el código aplicativo se interpreta . Una tarjeta inteligente ya tiene bastante poca potencia (una buena tarjeta inteligente puede presentar, por ejemplo, una CPU tipo ARM de 50 MHz) pero la interpretación implica un factor de desaceleración adicional de 10x o 20x, lo que significa que cualquier criptografía que desee realizar en tal El sistema será lento como el infierno.

Para hacer frente a eso, estas tarjetas inteligentes incluyen aceleradores de hardware, es decir, código nativo y circuitos dedicados para realizar algunas operaciones específicas, generalmente RSA. Por lo tanto, una tarjeta de este tipo aún puede calcular una firma RSA de 2048 bits en menos de un segundo, un rendimiento que es una gran hazaña, dado el hardware. Pero no tendrá un acelerador para curvas aún no convencionales como las de NaCl. Por lo general, no tiene ningún acelerador para la curva ninguna .

Las tarjetas inteligentes intentan lograr resistencia a la manipulación : un secreto almacenado en dicha tarjeta debe permanecer en secreto, incluso si lo es. Robado y el ladrón intenta abrirla. Este tipo de seguridad tiende a tener un alto precio. También puede ser bastante excesivo en tu caso.

    
respondido por el Tom Leek 20.09.2013 - 20:54
fuente

Lea otras preguntas en las etiquetas