Il solito modo in cui questo viene fatto è far sì che Alice firmi il set di parametri DH da usare. Ciò richiede che la chiave e il certificato di Alice siano appropriati per le firme. In due protocolli ampiamente distribuiti:
-
In SSL / TLS , quando Alice (il server) desidera utilizzare Diffie-Hellman per lo scambio di chiavi , seleziona una delle suite di crittografia DHE
. I parametri DH e la chiave pubblica DH (la metà del server DH) sono codificati come un messaggio ServerKeyExchange
, che il server firma con la sua chiave privata.
-
In S / MIME , quando Alice firma un'e-mail, può includere nell'oggetto firma (sotto la copertina della firma) un attributo SMIMECapabilities
che può contenere i parametri DH e la chiave pubblica da utilizzare, nel caso in cui il destinatario desideri rispondere ad Alice con una e-mail crittografata .
È anche possibile avere un certificato che contiene direttamente una chiave pubblica DH (e parametri), ma questo è molto più raro perché tali certificati non possono essere usati per le firme, solo per lo scambio di chiavi.
I parametri DH stessi (non la chiave pubblica) potrebbero anche essere "ben noti" e quindi distribuiti con il software. Questo è ciò che di solito accade con le varianti di curva ellittica di DH (costruire la propria curva è possibile ma relativamente costoso, e la maggior parte del software supporta solo un sottoinsieme di 15 curve NIST ).
Estensioni personalizzate significa che solo il tuo software sarà in grado di elaborarle, il che è spesso restrittivo, quindi è scoraggiato. Inoltre, l'incorporamento dei dati nel certificato implica che i dati (qualunque essi siano) sono scelti dalla CA e hanno la stessa durata del certificato stesso, che può essere o non essere adeguato (vale la pena considerare ).