Partage
  • Partager sur Facebook
  • Partager sur Twitter

question sur le chiffrement asymétrique

Sujet résolu
13 avril 2016 à 17:18:07

Salut,

j'aimerais comprendre un truc sur le SSL : pour authentifier l'origine d'un message, la page wikipédia dit :

D'autre part, l'utilisation par Alice de sa clé privée sur le condensat d'un message, permettra à Bob de vérifier que le message provient bien d'Alice : il appliquera la clé publique d'Alice au condensat fourni (condensat chiffré avec la clé privée d'Alice) et retrouve donc le condensat original du message

Si un "man in the middle" intercepte la clé publique au départ d'Alice, et qu'il intercepte ensuite le message envoyé par Alice encrypté avec la clé privée d'Alice, il pourra obtenir le "condensat", c'est-à-dire le résultat du hash, et comme la fonction de hashage n'était pas privée, le man in the middle connaît la méthode de hashage et peut lire le message. J'aimerais savoir pourquoi ceci n'est pas possible, puisque la méthode est dire "sûre". 

Pour l'autre sens, ça me paraît plus clair : Alice envoie sa clé publique à Bob, elle garde sa clé privée, Bob encrypte son message avec la clé publique, et seule Alice peut lire le message de Bob. Mais c'est moins clair pour savoir comment Bob authentifie Alice avec le hash et la clé publique...

  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2016 à 20:25:20

La méthode décrite ici sert plutôt à signer un message, c'est à dire assurer à Bob qu'Alice est bien l'auteure du message. Pour le chiffrer, on utilisera la clef publique en chiffrement, et la clef privée en déchiffrement, ainsi, pas de problème de man in the middle.

  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2016 à 23:13:54

Oui, chiffre et déchiffrer j'ai bien compris, c'est cette histoire de condensat lu par Bob qui me perturbe un peu. Mais bon, je vais rester sur l'explication générale, une clé publique et une clé privée, merci quand même ;)
  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2016 à 9:55:45

Erroll a écrit:


comme la fonction de hashage n'était pas privée, le man in the middle connaît la méthode de hashage et peut lire le message. 

Bonjour,

Voici l'erreur que tu as faite. Le man in the middle peut récupérer H(M), mais les propriétés des fonctions de hachage sont telles qu'il ne peut pas déterminer M à partir de H(M) même en connaissant H.



  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2016 à 15:55:57

Comment c'est possible? Par exemple, si c'est du "sha1", on encrypte en sha1, puis on décrypte en sha1. Si H(M) est un message crypté, et H représente sha1, pourquoi ne peut-on pas retrouver M?
  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2016 à 16:09:44

Il s'agit d'un message hashé et non chiffré, et c'est là toute la différence, l'opération n'étant pas réversible.

  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2016 à 16:25:40

Erroll a écrit:

Comment c'est possible? Par exemple, si c'est du "sha1", on encrypte en sha1, puis on décrypte en sha1. Si H(M) est un message crypté, et H représente sha1, pourquoi ne peut-on pas retrouver M?


Sha1 n'est pas un algorithme de chiffrement mais une fonction de hachage. On ne crypte ou ne décrypte pas avec sha1, on hash. Mathématiquement, ce sont deux fonctions mais qui ont des propriétés bien différentes (Cf Wikipédia fonction de hachage & algorithme chiffrement).

Par exemple si je te dis : 66c58c93ae3a1612f14a49552c639d871f797878

Ci dessus je te donne H(M), la fonction de hachage utilisé est sha1. Tu ne peux pas retrouver M (en tout cas en pratique). C'est tout l'intérêt d'une fonctione de hachage, c'est ce qu'on appelle le one-way. 

Plus haut, tu as parlé du mécanisme de signature, Bob va récupérer M grâce à sont algorithme de déchiffrement,sa clef privé et E(M) (soit C), il obtient M=C(E(M),Kp) , puis va le hasher et le comparer à la signature. En d'autres termes il ne va pas comparer M et -H(H(M)) mais H(M) et H(M), vois-tu ?

  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2016 à 18:39:35

D'accord, je comprend mieux. Merci de vos réponses ^^

  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2016 à 18:44:49

Avicularia a écrit:

Plus haut, tu as parlé du mécanisme de signature, Bob va récupérer M grâce à sont algorithme de déchiffrement,sa clef privé et E(M) (soit C), il obtient M=C(E(M),Kp) , puis va le hasher et le comparer à la signature. En d'autres termes il ne va pas comparer M et -H(H(M)) mais H(M) et H(M), vois-tu ?

Il me semble que ce que tu décris là définie la vérification de l'intégrité du message via une somme de contrôle, pas à authentifier Alice comme expéditrice du message. Il faut encore pour cela qu'Alice chiffre le résultat du hashage avec se clef privée.

  • Partager sur Facebook
  • Partager sur Twitter
15 avril 2016 à 10:24:29

entwanne a écrit:

Avicularia a écrit:

Plus haut, tu as parlé du mécanisme de signature, Bob va récupérer M grâce à sont algorithme de déchiffrement,sa clef privé et E(M) (soit C), il obtient M=C(E(M),Kp) , puis va le hasher et le comparer à la signature. En d'autres termes il ne va pas comparer M et -H(H(M)) mais H(M) et H(M), vois-tu ?

Il me semble que ce que tu décris là définie la vérification de l'intégrité du message via une somme de contrôle, pas à authentifier Alice comme expéditrice du message. Il faut encore pour cela qu'Alice chiffre le résultat du hashage avec se clef privée.

J'ai décris un peu rapidement le fonctionnement de la signature, celle-ci permet la vérification de l'intégrité et de l'authentification. J'ai effectivement omis de préciser qu'Alice doit chiffrer le résultat du hash avec sa clef privée :)
  • Partager sur Facebook
  • Partager sur Twitter