PKCS # 11 seguridad de objeto de sesión

4
  

El atributo CKA_TOKEN identifica si el objeto es un token   objeto o un objeto de sesión.

Podemos creer que cuando el objeto PKCS # 11 tiene el atributo CKA_TOKEN establecido en verdadero, entonces se almacena de forma segura dentro de la memoria del dispositivo habilitado para PKCS # 11. Por ejemplo, la clave AES secreta, especialmente cuando no es extraíble.

¿Qué pasa con las claves de sesión y su seguridad?

  

Cuando se cierra una sesión, todos los objetos de sesión creados por la sesión   Se destruyen automáticamente, incluso si la aplicación tiene otros   Sesiones “utilizando” los objetos.

¿Entonces cualquier persona que pueda escuchar mi sesión podrá ver el valor de texto claro de mi clave secreta? Por ejemplo, cuando me gustaría traducir la clave entre dos puntos finales, tiene que ser desenvuelta y envuelta con una clave diferente, lo que significa que debería estar en algún lugar de la sesión en texto sin cifrar durante un breve periodo de tiempo. ¿Está en la memoria del sistema? ¿O es de alguna manera asegurado?

    
pregunta user1563721 16.03.2016 - 16:56
fuente

1 respuesta

4

Las características de almacenamiento físico no forman parte de la definición de PKCS # 11. PKCS # 11 es una API : define el comportamiento de la biblioteca con respecto a las llamadas de función, no con respecto a la tecnología real . Una biblioteca puramente de software PKCS # 11, con todas las claves en la RAM, es perfectamente posible (y eso es exactamente lo que el navegador web Firefox usa internamente).

Con CKA_TOKEN habilitado, se supone que la clave es permanente , es decir, la encontrarás nuevamente después de abrir una nueva sesión. No implica necesariamente ningún tipo de protección, ya sea durante el uso o el almacenamiento. Hay otro atributo llamado CKA_EXPORTABLE, que declara si la clave se puede exportar o no; pero, nuevamente, no califica los ataques, solo lo que obtendrá si llama a la función de exportación. Dependiendo de cómo se implementa la biblioteca PKCS # 11, todas las claves pueden flotar en la RAM en algún momento.

Si desea saber dónde estará exactamente su clave, deberá consultar la documentación del dispositivo o sistema para el que tiene una biblioteca PKCS # 11. Si el dispositivo es un HSM y la documentación de HSM garantiza que las claves privadas almacenadas en el HSM nunca lo abandonen, entonces sabe que no se copiarán en la RAM de la PC, no debido a ningún atributo relacionado con PKCS # 11, sino porque el HSM lo hace así. La biblioteca PKCS # 11 es simplemente un consumidor de los servicios de HSM.

Dicho esto, es posible hacer algunas inferencias. Por ejemplo, si su dispositivo criptográfico es una tarjeta inteligente, entonces sus capacidades de E / S son muy limitadas (9600 baudios son típicas), por lo que es probable que cualquier cifrado masivo (AES) proporcionado por la API PKCS # 11 se maneje en el software. por lo tanto, su clave AES secreta sin envolver estaría realmente en algún lugar de la memoria RAM de la PC.

    
respondido por el Thomas Pornin 16.03.2016 - 17:15
fuente

Lea otras preguntas en las etiquetas