ssh-keygen: ¿Para qué es la frase de contraseña?

2

Al usar ssh-keygen :
¿Para qué es la frase de contraseña?
¿Por qué es opcional?

¿Cuáles son las implicaciones de seguridad de especificar (o no especificar) una?

A continuación se muestra un extracto tomado de una sesión de shell (Algunos detalles pueden haber sido alterados):

user@localhost:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /user/.ssh/id_rsa.
Your public key has been saved in /user/.ssh/id_rsa.pub.
The key fingerprint is:
60:8b:50:1e:0f:bc:5a:2a:13:1e:83:2b:d9:95:38:9e user@localhost
The key's randomart image is:
+---[RSA 2048]----+
|   .+            |
|   o.+           |
|. ...o+          |
|ooo.=o o         |
|.*oB. . S        |
|*.E              |
|.o               |
|                 |
|                 |
+-----------------+
    
pregunta tjt263 13.04.2018 - 13:03
fuente

1 respuesta

8
$ man ssh-keygen
[...]
It is possible to specify a passphrase when generating the
key; that passphrase will be used to encrypt the private
part of this file using 128-bit AES.

Así que esta frase de paso simplemente cifra la clave localmente. Un atacante con acceso a su sistema no podrá leer la clave privada, porque está cifrada. (Podrían instalar un keylogger, sin embargo). Si su computadora portátil es robada, por ejemplo, su clave ssh podría ser segura si tiene una contraseña segura. O incluso con una frase de contraseña bastante débil (siempre que no sea trivial), le dará tiempo para revocar la llave y pasarla a una nueva, antes de que los atacantes puedan descifrarla.

Es opcional porque puede optar por aceptar el riesgo de que no esté cifrado en el almacenamiento. O quizás tenga habilitado el cifrado de disco, que mitiga algunos de los mismos ataques (pero no todos, por ejemplo: el malware aún puede robar la clave, incluso con el cifrado de disco; por otro lado, una computadora portátil robada sigue siendo segura a menos que se la robe mientras se ejecuta) con la llave en la memoria).

El servidor puede requerir el uso de una clave pública y una contraseña para iniciar sesión. La seguridad de esto es diferente a usar una clave pública cifrada con contraseña. Si usa una clave encriptada, entonces:

  • no puede cambiar la contraseña en el lado del servidor, tendrá que generar una nueva clave;
  • alguien podría descifrar la contraseña de la clave sin ser detectada, ya que pueden hacerlo sin conexión (si el servidor requiere una contraseña, deben preguntar al servidor "¿es aaaa correcto? ¿Es aaab correcto?", etc.);
  • alguien puede descifrar la clave mucho más rápido porque es un ataque sin conexión sin limitaciones de red; y
  • el servidor no puede usar algo como fail2ban para rechazar demasiados intentos de inicio de sesión, porque el cracking ocurre fuera de línea.
respondido por el Luc 13.04.2018 - 13:11
fuente

Lea otras preguntas en las etiquetas