È considerato che vale la pena sostituire il file dei moduli di OpenSSH?

12

Conseguenze di manomissioni / etc / ssh / moduli descrive un possibile rischio se il file di moduli per un server OpenSSH è stato manomesso.

Portando la logica un ulteriore passo avanti, c'è qualche preoccupazione con il file predefinito fornito con OpenSSH ? Chiedo perché l'articolo Secure Secure Shell menziona questo:

If you chose to enable 5 [diffie-hellman-group-exchange-sha256], open /etc/ssh/moduli if exists, and delete lines where the 5th column is less than 2000. If it does not exist, create it:

ssh-keygen -G "${HOME}/moduli" -b 4096
ssh-keygen -T /etc/ssh/moduli -f "${HOME}/moduli"
rm "${HOME}/moduli"

Questo mi sembra come se i primati del DH meno del 2048 siano considerati insicuri e dovrebbero essere sostituiti con numeri primi più grandi. Tuttavia, gli sviluppatori OpenSSH, persone intelligenti, non hanno sostituito il file che viene fornito per impostazione predefinita con uno che include numeri primi più grandi. Mi manca qualcosa?

    
posta evaryont 12.01.2015 - 22:58
fonte

1 risposta

11

Processo di scambio / selezione

Perché rimuovere i primi più brevi di 2000 bit? Secondo RFC4419 , lo scambio di chiavi inizia con il client che invia le sue preferenze al server sotto forma di 3 numeri:

  • la lunghezza minima del modulo accettabile,
  • la lunghezza massima accettabile
  • e la lunghezza preferita.

Quindi il server sceglie un primo casuale che soddisfa meglio questo requisito.

In pratica (almeno con OpenSSH 6.7), il minimo e il massimo del client sono sempre 1024 e 8192. La lunghezza preferita è 8 volte il livello di sicurezza del codice simmetrico. Il server sceglie quindi in questo modo:

  • scarta i numeri primi al di fuori dell'intervallo min-max,
  • quindi seleziona la lunghezza più breve disponibile che non sia inferiore alla lunghezza preferita
  • infine, ne sceglie uno a caso tra quelli.

Con AES-128, ci ritroviamo con un modulo a 1024 bit che è più simile a uno sforzo di rottura di 2 ^ 80. (Non è lineare, non puoi moltiplicare per 8).

Perché rigenerare?

Perché rigenerare il file da zero? Per citare RFC4419 :

The use of multiple moduli inhibits a determined attacker from
precalculating moduli exchange values, and discourages dedication of
resources for analysis of any particular modulus.

Ciò è stato dimostrato nell'attacco Logjam .

Non è così efficace se tutti usano lo stesso file di moduli distribuito con il pacchetto SSH. Per questo motivo, ho generato diversi file di moduli su ogni host.

Nota: il moderno SSH utilizza Diffie-Hellman a curva ellittica, che in teoria è più sicuro.

Se vuoi generare nuovi primi non curve ellittici, fai questo:

ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates

Quindi sostituisci il contenuto del tuo modulo (di solito /etc/ssh/moduli ) con il contenuto di moduli-2048

    
risposta data 28.01.2015 - 04:43
fonte

Leggi altre domande sui tag