Les Forums

Les Forums

Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer

Diffie-Hellman

Bonjour,

Je me pose une question au sujet de l'échange de clé Diffie-Hellman.

En effet, on lit souvent que DH offre un service appelé "Perfect Forward Secrecy". Celui-ci permet en cas de découverte du "secret à long terme" de ne pas compromettre la clé de session.

Mes questions sont les suivantes:

Qu'est ce que le secret à long terme?

Pourquoi cela ne compromet pas la clé de session?

Pourquoi utiliser DH plutôt que RSA?



Merci d'avance

Ce n'est pas un service mais une propriété de l'algorithme. Et je pense que le terme "perfect" montre que la clef de sessions ne peut être trouvée à moins d'avoir accès aux clefs privées, ce qui n'est pas possible en théorie.


Aucune idée.


Aucune idée, je ne vois pas d'où vient cette idée.


Ce sont deux algorithme qui n'ont rien à voir.
RSA est un algorithme de chiffrement asymétrique, Diffie-Hellman est une algorithme de création de secret partagé. DH te permet de créer une clef de session entre deux personnes sans avoir à échanger de donnée secrète.
En effet, le "PFS" n'est pas un service mais bien une propriété.

Concernant, le "secret à long terme", on retrouve cela dans les cours du célèbre "HSC". (http://www.hsc.fr/ressources/cours/crypto/crypto.pdf)

J'ai bien compris que RSA est utilisé pour le transport (clé de session par exemple) alors que DH est utilisé pour la génération d'une clé proprement dit.

Ma question est plus de savoir pourquoi certains contextes (SSL/TLS) font appel à RSA alors que d'autre préfère s'appuyer sur DH (IPSec IKE par exemple) ?

Merci bien
Après quelques recherches:


la clé de session. Il est aussi utilisé pour l'authentification.

un secret partagé (une clé). DH seul n'est pas suffisant car il ne permet pas de fournir l'authentification. On utilise souvent pour cela DSS ou encore des valeurs signés (via certificats). L'avantage que propose DH est le PFS. Cela implique que si quelqu'un trouve le secret à long terme (la clé privé) cela ne compromet pas la clé de session et surtout, cela ne permettra pas à la personne de signer un document (authentification) à votre place (contrairement à RSA).

Voila

Voici un petit lien sympa:

http://www.scramdisk.clara.net/pgpfaq.html
RSA nécesite l'utilisation de clef privée sur au moins l'un des hotes, donc d'un élément secret initialement sur un ou chaque poste ((authen forte mutuelle).
Il faut aussi connaitre la Kpub du destinataire si on a pas d'IGC/PKI cf AC racine et X509.
Avec DH tu peux sans disposer d'un élément secret, réaliser la génération d'une clef de session de part et d'autre sans jamais la transferer, alors que dans RSA, un hote génére la clef et la transmet chiffrée.
Mais attention DH est vulnérable MITM, d'ou la version DHE 'extended'.
NB +
On peut utiliser les 2 conjointement
RSA pour l'authen
DHE pour la génération de la clef de session
AES pour le chiffrement de la session
SHA1 pour la signature HMAC

Ce qui donne dans openssl le cipher
DHE-RSA-AES256-SHA1 pour TLS v1
salut
je veux savoir comment ce fait l'implementation de l'algorithme de deffi helman sur openssl ?
est ce qu'il y a l'algorithme en c++?