J'ai appris que la parfaite transmission du secret est implémentée via DHE et ECDH mais quelle est la différence entre ces 2 échanges clés?
Quelqu'un peut-il aussi expliquer comment fonctionne le parfait secret avancé? J'ai trouvé une variété de réponses en ligne, allant de: il y a une clé de session secrète qui n'est jamais partagée qui est générée, il y a une clé de session qui change en fonction de l'entrée aléatoire des deux utilisateurs, et il y a une clé de session qui est dérivée d'un secret partagé qui seuls les 2 utilisateurs le savent.
Tout d'abord, mes excuses pour les mathématiques, et pour avoir trop simplifié les mathématiques!
La différence entre DHE et ECDH en deux points:
La méthode globale dans les deux cas est toujours Diffie – Hellman . (Ou l'appelle-t-on Diffie – Hellman-Merkle de nos jours?)
La confidentialité parfaite est obtenue en utilisant des paires de clés temporaires pour sécuriser chaque session - elles sont générées selon les besoins, conservées dans RAM pendant la session et jetées après utilisation).
Les paires de clés "permanentes" (celles validées par une autorité de certification) sont utilisées pour la vérification d'identité et la signature des clés temporaires lors de leur échange. Pas pour sécuriser la session.
Est-ce que cela explique un peu mieux les choses?
Edit: Pour examiner vos exemples en détail ...
clé de session secrète qui n'est jamais partagée
Eh bien, c'est la définition de l'échange de clés DH, mais ce n'est pas lié au secret de transmission parfait. DH permet aux deux parties de calculer indépendamment le secret partagé sera , sans transmettre le secret partagé en clair, sur le canal encore non sécurisé.
clé de session qui change en fonction de l'entrée aléatoire des deux utilisateurs
... Certes, les deux côtés de la connexion utiliseront des sources locales d'aléatoire pour dériver leurs clés de session temporaires, mais je pense que la formulation ci-dessus manque le but: une parfaite parfaite confidentialité est obtenue en jetant les clés de session après utilisation.
clé de session dérivée d'un secret partagé que seuls les 2 utilisateurs connaissent
A présent, vous pensez "Comment ce fait nous confère-t-il un parfait secret avant?" Pour mieux comprendre le point: une parfaite transmission du secret est obtenue en jetant les clés de session après utilisation.
La parfaite parfaite confidentialité (PFS) signifie que la compromission d'un matériel de clé à long terme ne compromet pas les clés de session qui étaient précédemment dérivées du matériel à long terme. Cela signifie qu'un écouteur qui a enregistré toutes vos exécutions de protocole précédentes ne peut pas dériver les clés de session passées même s'il a en quelque sorte appris votre clé à long terme qui pourrait être une clé privée RSA. Heureusement, ce dernier n'est utilisé que pour réaliser l'authentification au lieu de dériver la clé de session réelle (comme dans le protocole STS ou ECDH car DHE est vulnérable aux attaques de l'homme du milieu).
DHE et ECDH fournissent tous deux la PFS en raison de l'hypothèse qu'il est difficile de résoudre le problème mathématique Diffie – Hellman (calculer g ^ xy étant donné les valeurs de g, g ^ x et g ^ y) et le problème du logarithme discret (trouver k étant donné g ^ k et g) pour DHE et le problème du logarithme discret de la courbe elliptique (trouver n donné, nP et Q) pour ECDH. Ainsi, même avec la clé privée, un espion est incapable de dériver les clés de session à moins qu'il ne puisse résoudre les problèmes mathématiques "difficiles". L'ECDH est une variante du protocole Diffie – Hellman qui utilise la cryptographie à courbe elliptique pour réduire les exigences de calcul, de stockage et de mémoire.