ssh-keygen: A cosa serve la passphrase?

3

Quando si utilizza ssh-keygen :
A cosa serve la passphrase?
Perché è opzionale?

Quali sono le implicazioni per la sicurezza di specificare (o non specificare) uno?

Di seguito è riportato un estratto da una sessione di shell (alcuni dettagli potrebbero essere stati modificati):

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               |
|                 |
|                 |
+-----------------+
    
posta tjt263 13.04.2018 - 13:03
fonte

1 risposta

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.

Quindi questa passphrase crittografa solo la chiave localmente. Un utente malintenzionato con accesso al tuo sistema non sarà in grado di leggere la chiave privata, perché è crittografata. (Potrebbero installare un keylogger, però.) Ad esempio, se il tuo laptop viene rubato, la tua chiave ssh potrebbe essere ancora sicura se hai una passphrase strong. O anche con una passphrase abbastanza debole (a patto che non sia banale), ti acquisterà un po 'di tempo per revocare la chiave e passare a una nuova, prima che gli hacker possano decifrarla.

È facoltativo perché puoi scegliere di accettare il rischio di non averlo crittografato nella memoria. O forse hai la crittografia del disco abilitata, che attenua alcuni degli stessi attacchi (ma non tutti, ad esempio: il malware può ancora rubare la chiave, anche con la crittografia del disco, d'altra parte, un laptop rubato è ancora sicuro se non rubato mentre è in esecuzione con la chiave in memoria).

Il server può richiedere l'uso sia di una chiave pubblica sia di una password per accedere. La sicurezza di questa operazione è diversa dall'utilizzo di una chiave pubblica crittografata con password. Se si utilizza una chiave crittografata, quindi:

  • non puoi cambiare la password sul lato server, dovrai generare una nuova chiave;
  • qualcuno potrebbe violare la password della chiave inosservata, perché possono farlo offline (se il server richiede una password, devono chiedere al server "è corretto aaaa? aaab è corretto?" ecc.);
  • qualcuno può craccare la chiave molto, molto più velocemente perché è un attacco offline senza limitazioni di rete; e
  • il server non può utilizzare qualcosa come fail2ban per rifiutare troppi tentativi di accesso, perché il cracking avviene offline.
risposta data 13.04.2018 - 13:11
fonte

Leggi altre domande sui tag