Questo file non ha alcuna dipendenza da alcun certificato o chiave privata. Non è segreto neanche. Può anche essere condiviso tra vari server che non si fidano o si conoscono l'un l'altro.
Il file dh1024.pem
contiene i parametri Diffie-Hellman . Lo scambio di chiavi DH è un algoritmo riprodotto in un determinato gruppo finito ; vale a dire, gli interi formano un primo p . Per un successo con DH:
- Sono noti i parametri p (un grande primo) e g (un numero intero convenzionale nell'intervallo da 2 a p-2 , noto come generatore ).
- Parte A genera un valore segreto casuale a , calcola g a mod p e lo invia alla parte B .
- Party B genera un valore segreto casuale b , calcola g b mod p e lo invia alla parte A .
- Parte A calcola ( g b ) a mod p (aumentando il valore ricevuto da B al suo esponente segreto a ).
- Parte B calcola ( g a ) b mod p (aumentando il valore ricevuto da A al suo esponente segreto b ).
La magia di DH è che entrambi A e B finiscono con lo stesso valore, che l'intercettatore non può ricalcolare dai due valori che sono stati inviati attraverso i fili.
In tutto questo, i valori p e g sono i "parametri" e devono essere noti a entrambe le parti; ma non sono segreti La sicurezza è garantita a condizione che:
-
p è abbastanza grande (almeno 1024 bit, probabilmente 2048 bit sarebbero migliori).
-
p non è stato generato con una "struttura speciale" che rende più facile logaritmo discreto .
-
g genera un sottogruppo di interi modulo p la cui dimensione è un multiplo di un numero sufficientemente grande (l'ordine di g modulo p è il più piccolo intero r ≥ 1 tale che g r mod p = 1; è necessario che il massimo principale divisore di r abbia una lunghezza di almeno 160 bit, preferibilmente di 256 bit o più).
L'intero mondo potrebbe usare gli stessi parametri; ma molte persone preferiscono generare i propri parametri, solo per assicurarsi che i loro parametri non siano "cucinati". Questo è ciò che fa build-dh
. Il file risultante ( dh1024.pem
) contiene p e g , ma nient'altro. Questi valori non sono segreti. Non dipendono da alcun elemento esterno, né certificato, chiave privata o altro.