¿Está generando una clave RSA con contraseña y luego eliminándola es más segura que ninguna contraseña?

6

Hace algún tiempo encontré esta pregunta sobre SO; pregunta cómo eliminar la frase de paso de una clave RSA existente utilizando un equivalente de PHP al comando openssl rss existente.

He publicado una respuesta con la solución, pero dentro del hilo de comentarios, el OP afirmó lo siguiente:

  

La clave cifrada, que luego se descifra, ofrece una mejor seguridad que la no cifrada en la generación. fuente

Para mí eso suena como BS total; ¿Cómo podría una clave ser más segura generándola con una frase de contraseña y luego eliminándola?

¿Pero quizás hay un razonamiento válido detrás de este "hecho"?

    
pregunta Jack 27.10.2013 - 02:11
fuente

3 respuestas

2

Disa se referiría al hecho de que si un atacante roba la clave cifrada, también debe robar la frase de contraseña que asegura la clave.

Entonces, Disa se refiere a seguridad operacional en lugar de seguridad matemática. La clave encriptada no es más segura matemáticamente, el nivel de entropía no ha cambiado desde el punto de vista de un ataque de fuerza bruta 1 . Pero el robo o la copia del disco duro no perderán necesariamente la clave para el atacante, ya que la frase de contraseña nunca se almacenará en la computadora; fuera de su propio administrador de contraseñas.

1. A menos que la entropía inicial del par de claves fuera tan mala , el cifrado de la clave agrega temporalmente más entropía ...

    
respondido por el LateralFractal 28.10.2013 - 11:01
fuente
2

Dentro de OpenSSL, el mismo código exacto se usa para generar un par de claves RSA, independientemente de lo que se haga después con esa clave, por ejemplo. si se almacena en un archivo con o sin alguna capa de cifrado adicional.

Tenga en cuenta, sin embargo, que las claves privadas son objetos sensibles; deberás esforzarte para que sean escritos en un medio físico tan raramente como sea posible. Esto es, genéricamente, un problema para las aplicaciones que envuelven la utilidad de línea de comandos openssl , porque esa utilidad tiende a crear archivos . Es posible que una aplicación desee generar un par de claves en la RAM, y utilizarla, y tal vez almacenar la clave privada "en otro lugar", pero si la aplicación se basa en llamar a openssl , entonces es probable que una copia de la clave privada lo haga para Algunos discos duros. En esa situación , asegurarse de que la copia falsa esté cifrada (con una frase de contraseña aleatoria completa que se guarda solo en la memoria RAM) puede mejorar la seguridad. En tal caso, sería mejor, sin embargo, usar OpenSSL, la biblioteca , directamente, en lugar de la herramienta de línea de comandos (que siempre ha sido más un ayudante de depuración de todos modos).

    
respondido por el Tom Leek 28.10.2013 - 15:35
fuente
0

Por lo que puedo decir (aunque no sea obvio en la nota de Disa), parece que esto puede ser más seguro principalmente si la clave no se genera en el sistema donde se usará más adelante (o si necesitará hacerlo). almacenar una copia de seguridad de la clave en algún lugar).

En tal caso, la clave se escribirá en el sistema de archivos donde se ha generado, lo que deja huellas incluso después de la eliminación habitual del archivo, entonces la clave deberá transmitirse en el sistema de destino, ya sea por red o por cualquier otro media (medios extraíbles, etc.), que deja huellas y puede ser potencialmente interceptado. Usted tiene más posibilidades de que estos rastros y el posible riesgo de intercepción afecten a una versión cifrada de la clave que a una clara, incluso si el servidor de destino realmente utilizará una versión clara.

Por lo tanto, creo que esto simplemente aporta más seguridad en el proceso de manejo de la clave que en la propia clave, que sigue siendo la misma, la generaría encriptada o no.

    
respondido por el WhiteWinterWolf 04.11.2013 - 22:50
fuente

Lea otras preguntas en las etiquetas