Quali sono le implicazioni dell'utilizzo degli stessi parametri DH in un server TLS?

6

Per un codice DHE, nginx codifica i parametri Diffie-Hellman per utilizzare la base 2 e un modulo fisso (modulo) a 1024 bit se non sono configurati parametri DH personalizzati.

Questi parametri sono pubblici (inviati in chiaro nel messaggio TLS ServerKeyExchange), la modifica del valore principale in qualche modo aumenta la sicurezza della connessione TLS? Mi interessa l'effetto di avere numeri primi diversi, non il numero di bit.

Ci sono altri effetti collaterali della modifica dei parametri DH, come i problemi di compatibilità con i client? ( Apache parla di problemi derivanti dall'utilizzo di numeri primi più grandi in Java 7 e precedenti , ma non riesco a riprodurre questo in OpenJDK 1.7.0_40.)

    
posta Lekensteyn 04.10.2013 - 18:15
fonte

2 risposte

7

Non sono noti effetti collaterali negativi per condividere gli stessi parametri DH con altre persone / server. Questo è di fatto il caso comune in curva ellittica DH, perché generare la propria curva è sostanzialmente più difficile rispetto alla generazione del proprio modulo primario per la DH classica, e la normale implementazione delle curve ellittiche è legata a uno specifico curva o un piccolo insieme di curve (perché è più facile e più efficiente scrivere in quel modo).

Ci sono state alcune preoccupazioni teoriche su come un utente malintenzionato potrebbe investire molto lavoro nel discreto logaritmo modulo un primo specifico e quindi riutilizzare i calcoli intermedi per interrompere rapidamente molte istanze DH che funzionano come modulo primo specifico. In questo senso, il riutilizzo dei parametri DH comuni potrebbe implicare un ulteriore potere di disturbo per l'attaccante. Ma questo tipo di condivisione dei costi non funziona per tutti gli algoritmi DL-breaking, e ciò presuppone anche che l'autore dell'attacco potrebbe interrompere DL modulo il primo, cioè che il primo era troppo corto o "forma speciale". Questo sarebbe un motivo molto più pressante per non usare quel primo: non che sia condiviso , ma che sia debole .

Pertanto, l'utilizzo di parametri DH condivisi esistenti non è un problema, purché sia possibile assicurarsi che i suddetti parametri non siano stati appositamente "cucinati" per consentire un'interruzione rapida (er). Questo di solito significa che l'algoritmo di generazione è stato completamente specificato e può essere verificato che sia stato seguito fedelmente (ad esempio, vedi questi ).

L'uso di parametri DH personalizzati dovrebbe funzionare con tutti i client, perché non vi è alcun vantaggio di implementazione per legare un'implementazione a un modulo specifico (contrariamente alle curve ellittiche). Finché il tuo modulo si adatta ai requisiti dimensionali di un'implementazione specifica, le cose dovrebbero andare bene (alcune vecchie implementazioni hanno problemi con dimensioni superiori a 1024 bit, altre non gradiranno un modulo le cui dimensioni non sono un multiplo di 32 o 64 bit ).

    
risposta data 04.10.2013 - 18:26
fonte
5

I numeri primi di 1024 bit rientrano nell'intervallo di calcolo per essere vulnerabili agli attacchi di precomputazione dagli attori a livello di stato.

link descrive il problema e anche l'attacco di downgrade logjam menzionato nei commenti su questa domanda.

    
risposta data 22.10.2015 - 15:09
fonte

Leggi altre domande sui tag