Calculer le Secret Partagé
Ceci est l'étape finale et la plus importante. Ici, les deux parties utiliseront leur propre clé privée et la clé publique de l'autre partie pour calculer indépendamment le secret partagé. Si le protocole réussit, elles parviendront toutes deux à la valeur secrète exacte.
Premièrement, calculons le secret partagé du point de vue de la Partie A. La Partie A utilise sa clé privée (a_private_key.pem) et la clé publique de la Partie B (b_public_key.pem).
Exécutez la commande suivante :
openssl pkeyutl -derive -inkey a_private_key.pem -peerkey b_public_key.pem -out a_shared_secret.bin
pkeyutl: Un utilitaire pour effectuer des opérations de clé publique.
-derive: Cette action indique à l'utilitaire de dériver un secret partagé.
-inkey a_private_key.pem: Spécifie la clé privée propre à la Partie A.
-peerkey b_public_key.pem: Spécifie la clé publique de l'autre partie (le "pair").
-out a_shared_secret.bin: Enregistre le secret binaire résultant dans un fichier.
Ensuite, calculez le secret partagé du point de vue de la Partie B. La Partie B utilise sa clé privée (b_private_key.pem) et la clé publique de la Partie A (a_public_key.pem).
Exécutez la commande suivante :
openssl pkeyutl -derive -inkey b_private_key.pem -peerkey a_public_key.pem -out b_shared_secret.bin
Maintenant, vous avez deux fichiers, a_shared_secret.bin et b_shared_secret.bin. Pour vérifier le succès de l'échange de clés, ces deux fichiers doivent être identiques. Vous pouvez utiliser la commande cmp (compare) pour vérifier cela.
cmp a_shared_secret.bin b_shared_secret.bin
Si les fichiers sont identiques, cette commande ne produira aucune sortie et se terminera silencieusement. Ce silence signifie le succès !
Pour une confirmation plus visuelle, vous pouvez également calculer le hachage cryptographique des deux fichiers. Les hachages doivent correspondre.
sha256sum *.bin
Vous devriez voir une sortie où les deux fichiers ont exactement le même hachage SHA256. Les valeurs de hachage réelles varieront entre les exécutions, mais elles doivent être identiques pour les deux fichiers :
e3705a4ab5ae5d86f59dfe968f0177b49d5144e2d731dbd8d41b2eda318412ec a_shared_secret.bin
e3705a4ab5ae5d86f59dfe968f0177b49d5144e2d731dbd8d41b2eda318412ec b_shared_secret.bin
(Note : Vos valeurs de hachage seront différentes de cet exemple, mais l'important est que les hachages pour a_shared_secret.bin et b_shared_secret.bin doivent être identiques, prouvant que les deux parties ont dérivé le même secret partagé.)
Félicitations, vous avez réussi à effectuer un échange de clés Diffie-Hellman !