Prima assicuriamoci di parlare della stessa cosa. In SSL , ci sono "suite di cifratura DH effimere" (DHE) e "suite di crittografia DH non effimera" (DH) .
Con DHE, la chiave privata del server (quella permanente, quella che è archiviata in un file e la cui chiave pubblica è nel certificato del server) è di tipo RSA (suite di crittografia DHE_RSA) o DSS (suite di crittografia DHE_DSS) e viene utilizzato solo per firme . Il server genera una nuova coppia di chiavi DH casuale (la chiave privata non deve essere memorizzata, che è come perfeziona in avanti la segretezza è stata raggiunta: una chiave privata non può essere rubata in seguito se non è mai stata archiviata) e invia la chiave pubblica al client, in un messaggio che il server firma con la sua chiave privata RSA o DSS.
Con le suite di crittografia DH, la chiave privata del server permanente è una chiave privata DH. Il certificato del server contiene la chiave pubblica DH. Il server non può vedere la sua chiave RSA essere rubata perché il server non ha una chiave RSA. Il server ha solo un tasto DH. Quando una suite di crittografia è denominata "DH_RSA", significa "la chiave del server è una chiave DH e il certificato del server era emesso (cioè firmato) da un'autorità di certificazione che utilizza una chiave RSA ".
Rubare la chiave privata DH di una parte coinvolta in uno scambio di chiavi DH consente un'ulteriore ricostruzione del segreto condiviso, proprio come RSA. In "DH effimero", la PFS è ottenuta attraverso "effimero", non attraverso "DH". Tecnicamente, sarebbe possibile avere "RSA effimero" ma non è fatto in pratica (*) perché generare una nuova coppia di chiavi RSA è piuttosto costoso, mentre produrre una nuova coppia di chiavi DH è economico.
(*) Le chiavi temporanee RSA erano possibili con vecchie versioni di SSL come parte delle suite di cifratura "export", intese a rispettare le normative di esportazione degli Stati Uniti precedenti al 2000: il server poteva avere un 1024 bit < em> signature chiave RSA e generare una coppia di chiavi RSA a 512 bit effimera per lo scambio di chiavi, utilizzata in modalità di crittografia. Non ricordo di averlo mai visto in natura, però, ed è un punto controverso dal momento che le normative statunitensi sulle esportazioni delle dimensioni delle chiavi sono state rimosse.
Esistono suite di codici DH non effimeri per consentire il funzionamento dei server con certificati DH. Le chiavi DH nel certificato esistono perché nei tempi più vecchi, RSA era stato brevettato ma DH non lo era, quindi gli organismi di standardizzazione, in particolare il NIST, stavano spingendo il DH come standard imprescindibile.
La realtà lo ha raggiunto, però. Non ho mai visto un server SSL che utilizza un certificato DH. Tutti usano RSA. Il brevetto RSA è scaduto un decennio fa comunque.