Secondo RFC5246 A.5 ci sono suite di crittografia TLS_DH_RSA_ * e TLS_DH_DSS _ *.
How / where does the signature algorithm RSA resp. DSA from the cipher suite come into play when using (non-ephermal) Diffie-Hellman key exchange ?
A mio parere, quando si utilizza il DH (non epossidico), lo scambio di chiavi tra client e server durante l'handshake TLS funziona come segue (supponiamo che non ci sia un certificato client):
- Il server invia il suo certificato nel messaggio ServerCertificate al client. Il certificato include i parametri DH p, ge il componente di chiave pubblica del server g ^ x mod p (RFC3279, 2.3.3, RFC 5246, 8.1.2).
- Dopo aver verificato il certificato, il client sceglie y privato, calcola g ^ y mod p e invia il componente di chiave pubblica g ^ y mod p nel messaggio ClientKeyExchange al server.
- La chiave privata comune g ^ (xy) mod p è nota al client e al server.
Per quanto posso vedere, non c'è bisogno di una firma qui (fino alla firma del certificato, ovviamente), dato che la modalità pubblica visibile non è di alcun aiuto per un utente malintenzionato a causa della durezza del calcolo un logaritmo discreto.
Aggiunto: Nessun duplicato perché la domanda collegata nei commenti richiede la sicurezza in avanti mentre questa domanda si interroga sulla notazione della suite di crittografia.