Un valore di gruppo Diffie-Hellman deve persistere?

1

Ho letto sull'attacco Logjam su Diffie-Hellman e su come proteggere i nostri server web basati su TLC sulla base dei recenti risultati.

La guida suggerisce di creare un gruppo Unique Diffie-Hellman. Come ho capito il protocollo, questo gruppo deve essere lo stesso per una sola connessione TLS. Ovvero, dal punto di vista del protocollo, il gruppo potrebbe essere generato ogni volta che viene creata una nuova connessione TLS, anche per lo stesso client. (Anche se il tempo di calcolo e le risorse necessarie per creare un nuovo primo lo renderebbero poco pratico.)

Voglio essere sicuro delle implicazioni di questo.

  1. Non è necessario mantenere il gruppo generato. Se il server muore e il gruppo muore con esso, non ci sono perdite.
  2. Diversi sottodomini possono avere gruppi diversi, anche quando si utilizza un certificato con caratteri jolly.
  3. I browser non avvisano gli utenti delle modifiche a questo gruppo.
posta David V 29.05.2015 - 18:18
fonte

2 risposte

2

Le tue inferenze sono corrette; infatti, sono più spesso espresse al contrario: mentre ogni istanza (handshake TLS) usa il proprio gruppo, è possibile riutilizzare lo stesso gruppo tra istanze, indipendentemente dal fatto che siano per il stesso server o un server distinto. Tutto il business di Logjam riguardava client e server che utilizzavano un gruppo weak (perché il modulo era troppo corto); il riutilizzo di quel gruppo da parte di molti server ha semplicemente esteso l'ambito dell'attacco.

Non esiste alcuna relazione tra il gruppo e il certificato o il dominio; i parametri di gruppo vengono inviati dal server per ogni handshake, in modo che i client non debbano ricordare nulla di quel gruppo e, in pratica, i client non provano a ricordare nulla sul gruppo, quindi non faranno nulla di speciale se un determinato gruppo viene riutilizzato o non riutilizzato.

Tuttavia , è necessario tenere conto del fatto che la generazione di gruppo è piuttosto costosa. Non è necessariamente lungo quanto OpenSSL, perché OpenSSL insiste nell'usare un "sicuro primo", che è eccessivo qui (e, probabilmente, non "più sicuro" in alcun modo rispetto a un primo non sicuro, perché la terminologia è semplicemente tradizionale). Tuttavia, produrre un nuovo gruppo è ancora questione di pochi secondi di CPU, quindi non si vuole farlo per ogni connessione in ingresso. Ciò che potrebbe essere fatto è generare nuovi parametri DH all'avvio del server, quindi i parametri non dovrebbero essere salvati in nessun file.

Pragmaticamente, i server Web esistenti (ad esempio Apache) possono leggere i parametri da un file e la guida che si collega si propone di generare un gruppo DH unico per il proprio server . Il valore principale nel generare il tuo gruppo è che ti permette di generare un gruppo strong , cioè con un modulo abbastanza grande. Che il gruppo non sia condiviso da altri server è solo di secondaria importanza.

Nota che per curve ellittiche , tutti lavorano con lo stesso gruppo (cioè la stessa curva), perché le implementazioni implementate sono specializzate per quella curva specifica (*) e non possono gestirne altre. Se il riutilizzo di gruppo fosse davvero un problema, allora le curve ellittiche dovrebbero essere disattivate al più presto. Fortunatamente, il riutilizzo non è un problema.

(*) In realtà due curve, NIST P-256 e P-384, che fanno parte di NSA Suite B ; per qualche ragione, questa suite è sempre più utilizzata dai venditori di browser come una sorta di Vangelo, da seguire alla lettera, altrimenti gli dei ti colpiranno di fulmini.

    
risposta data 29.05.2015 - 19:30
fonte
0

Corretto su tutti i conteggi. Il gruppo specifico in uso non ha nulla a che fare con l'identità del server (o dell'utente) e può essere modificato in qualsiasi momento.

Per ora un gruppo di 2048 bit dovrebbe essere adeguato, e se hai un tuo gruppo unico è estremamente improbabile che qualcuno utilizzi le risorse per fare tutto il pre-calcolo necessario per attaccarlo, anche quando i computer diventano abbastanza veloci quel 2048 bit è fattibile. Sarà un attacco molto costoso per un lungo periodo.

Quindi non è necessario cambiarlo una volta creato, ma se è necessario rigenerarlo per qualche motivo, nessun danno.

SRP è un protocollo in stile DH autenticato da password e con questo non si vorrebbe modificare i parametri del gruppo, in quanto ciò invaliderebbe i verificatori per tutti gli utenti (quindi le loro password non funzionerebbero). Non è così che funziona DH (dove normalmente solo il server è autenticato, usando un altro meccanismo indipendente dal gruppo DH).

    
risposta data 29.05.2015 - 18:36
fonte

Leggi altre domande sui tag