security - example - ¿Cómo funciona la frase clave de contraseña privada de RSA?
rsa encryption online (3)
La frase de contraseña es solo una clave utilizada para encriptar el archivo que contiene la clave RSA, utilizando un cifrado simétrico (generalmente DES o 3DES). Para usar la clave para el cifrado de clave pública, primero debe descifrar su archivo utilizando la clave de descifrado. ssh lo hace automáticamente al pedirle la contraseña.
Si alguien obtiene el archivo de la clave, no podrán usarlo a menos que conozcan la frase de contraseña utilizada para encriptar el archivo.
A las claves privadas de RSA se les puede asignar una "frase de contraseña" que, según tengo entendido, tiene la intención de proporcionar cierta seguridad secundaria en caso de que alguien se lleve el archivo de la clave privada.
¿Cómo se implementa la capa de seguridad de la capa de contraseña?
Las claves privadas almacenadas en sistemas de archivos de uso general (a diferencia de los tokens de hardware de propósito especial y a prueba de manipulaciones) podrían ser fácilmente robadas si no están protegidas. Los permisos del sistema de archivos pueden parecer suficientes, pero a menudo pueden omitirse, especialmente si un atacante tiene acceso físico a la máquina.
Un fuerte cifrado simétrico, codificado con una buena contraseña, ayuda a prevenir esto. Una buena clave privada de RSA es demasiado larga para recordarla (para mí, de todos modos), pero las claves simétricas mucho más pequeñas pueden proporcionar el mismo nivel de seguridad. Una clave simétrica relativamente corta almacenada en el cerebro se usa para proteger una gran clave privada almacenada en el disco.
ssh-keygen usa OpenSSL para generar claves RSA y almacenarlo en formato PEM. La encriptación de la que está hablando es específica de PEM. Si miras tu archivo de clave,
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,5B01E932988DC66B
EPESt4ZVIrxnQXxxWWVa7cCR+vgNZ/4vTu4mdq6pjaW7jMZoB8HV+mA745mQkQw7
i+YtdVs/JqOeyGiw/3McxYYKZTlhyh7MvfIr1n8ZdZmcjQz+oFqMxChFU3r8BGgA
El encabezado "DEK-Info" contiene toda la información que necesita para descifrar la clave siempre que conozca la frase de contraseña. "DES-EDE3-CBC" significa Triple DES (en modo EDE). CBC es el modo de encadenamiento. El número hexadecimal es el vector inicial necesario para CBC.
PEM es un formato muy antiguo, por lo que solo es compatible con DES / TripleDES. AES y Blowfish se agregaron más tarde pero no son compatibles con todas las implementaciones. Mi ssh (OpenSSH 5.2) solo es compatible con DES y TripleDES.