Signature, Chiffrement/Déchiffrement des e-mails via RSA: comment ça marche ?

13 juillet 2009 par Anthony Laisser une réponse »

En cette péri­ode de doute quant au secret des cor­re­spon­dances élec­tron­iques, mais aussi avec la démoc­ra­ti­sa­tion de l’Internet, il devient de plus impor­tant de con­trôler son e-dentité. Au niveau des e-mails, nous avons dis­posons de plusieurs out­ils (GnuPG, OpenPGP, PGP…) dont les fonc­tions (prin­ci­pales) sont les suivantes:

  • Signer un message/Vérifier la sig­na­ture d’un message
  • Chiffrer/Déchiffrer un message

Mais, com­ment ça marche ?

Tout d’abord, un petit rap­pel sur les pro­priétés des clefs RSA  (cryp­togra­phie asymétrique, à base d’un cou­ple de clef publique/clef privée et reposant sur les nom­bres RSA et leurs propriétés):

  • Un mes­sage chiffré avec une clef privée ne peut être déchiffrer qu’avec la clef publique du cou­ple, et vice-versa
  • Il est impos­si­ble à par­tir de la clef publique de retrou­ver la clef privée

La sig­na­ture numérique

Il s’agit de garan­tir l’intégrité et l’authen­tic­ité de l’émetteur du mes­sage. C’est-à-dire que l’ont doit être cer­tain que le mes­sage n’a pas été altéré, et que l’émetteur du mes­sage est bien la per­sonne dont on pos­sède le cer­ti­fi­cat publique.

Le proces­sus de sig­na­ture est le suivant:

  1. Créa­tion d’une empreinte du mes­sage, via une fonc­tion de hachage cryp­tographique. A l’heure actuelle, on utilise SHA-1.
  2. Sig­na­ture de l’empreinte avec la clef privée.
    Pourquoi signe-t-on l’empreinte et pas le mes­sage ? Tout sim­ple­ment parce que l’opération de sig­na­ture est une opéra­tion plus coû­teuse que la fonc­tion per­me­t­tant de générer une empreinte. Il est donc moins cou­teux de signer une empreinte de 160 bits qu’un mes­sage d’une taille n.
    Qui plus est, une empreinte SHA-1 présente les car­ac­téris­tiques suivantes:

    • La moin­dre vari­a­tion du mes­sage entraine une empreinte totale­ment différente
    • Il est dif­fi­cile de trou­ver des col­li­sions, c’est-à-dire  (2^52 opéra­tions sont néces­saires, le record de cal­culs étant de 2^64 opéra­tions sur un super­cal­cu­la­teur en 1 an et demi)
    • Il est extrême­ment dif­fi­cile à par­tir d’un empreinte don­née de trou­ver une empreinte iden­tique avec un autre con­tenu (résis­tance à la deux­ième pré-image): 2^180 opéra­tions néces­saire à l’heure actuelle

    On peut donc con­sid­érer que l’empreinte SHA-1 est rel­a­tive­ment sûre (même s’il est aujourd’hui pos­si­ble de trou­ver des collisions)

  3. On joint la sig­na­ture au mes­sage et on l’envoi. La sig­na­ture se présente sous la forme d’un fichier dont l’extension est asc, qui con­tient entre les balises BEGIN et END PGP la sig­na­ture codé en Base64.
Signature d'un message

Sig­na­ture d’un message

Le proces­sus de véri­fi­ca­tion de la sig­na­ture, quant à lui:

  1. Cal­cul de l’empreinte du mes­sage reçu
  2. Véri­fi­ca­tion avec la clef publique de l’émetteur que le mes­sage n’a pas été altéré et à bien été émis par celui-ci
Vérification de la signature d'un message

Véri­fi­ca­tion de la sig­na­ture d’un message

La sûreté de la sig­na­ture d’un mes­sage repose donc sur les bases suivantes:

  • Fonc­tion de hachage sûre (ce qui n’est plus le cas de MD5)
  • Clef privée con­nue unique­ment de l’émetteur (non com­pro­mis­sion de la clef)
  • Serveur de clef publique sûr
  • Sûreté de l’algorithme RSA

A noter que la sig­na­ture d’un mes­sage est pro­pre à son émet­teur et au mes­sage (il est impos­si­ble d’utiliser la sig­na­ture pour un autre message).

Enfin, il est à noté égale­ment qu’afin d’être sûr que la per­sonne est bien celle qu’elle pré­tend être, il faut passer par un tiers de con­fi­ance, qui va garan­tir que anthony chez desver­nois point fr avec le cer­ti­fi­cat pub­lic donné est bien Anthony Desvernois.

Le chiffrement/déchiffrement

Il s’agit cette fois de garan­tir la con­fi­den­tial­ité du mes­sage. Per­sonne d’autre que le des­ti­nataire du mes­sage ne peut lire son contenu.

L’algorithme de chiffre­ment de PGP est le suivant:

  1. Com­pres­sion du con­tenu du mes­sage (pour des raisons de temps de calcul)
  2. Généra­tion d’une clef de ses­sion (source d’aléa, ainsi deux mes­sages iden­tiques ne seront pas chiffrés de la même manière)
  3. Chiffrage du mes­sage com­pressé avec cette clef
  4. Chiffrage de la clef à l’aide de la clef publique du des­ti­nataire
Chiffrement avec PGP

Chiffre­ment avec PGP

L’algorithme de déchiffrement:

  1. Déchiffrage de la clef de ses­sion à l’aide de la clef privée du destinataire
  2. Déchiffrage du mes­sage com­pressé avec la clef de session
  3. Décom­pres­sion du message
Déchiffrement avec PGP

Déchiffre­ment avec PGP

Enfin, la com­bi­nai­son de ces deux opéra­tions est pos­si­ble; chiffrage du mes­sage, puis sig­na­ture du mes­sage et lors de la récep­tion véri­fi­ca­tion de la sig­na­ture puis déchiffrage du message.

Pour con­clure, un petit point sur la lég­is­la­tion: En France, depuis 2004, les moyens cryp­tographique sont totale­ment libre. Toute­fois, l’export à l’étranger (de solu­tion de cryp­togra­phie) est soumis à approbation.

Si le sujet vous intéresse et que vous souhaitez l’approfondir, quelques liens:

Con­cer­nant ElGa­mal, il s’agit d’un sys­tème dif­férent de RSA, non breveté, basé sur les log­a­rithmes dis­crets. Il est de plus employé en rem­place­ment de RSA. Il utilise égale­ment un sys­tème de clef publique/clef privée.

Et égale­ment, deux tuto­riels basé sur l’utilisation de GnuPG, respec­tive­ment pour Fire­fox et Thun­der­bird: FireGPG, Enig­mail.

VN:F [1.9.3_1094]
Rat­ing: 9.8/10 (16 votes cast)
VN:F [1.9.3_1094]
Rat­ing: +4 (from 6 votes)
Sig­na­ture, Chiffrement/Déchiffrement des e-mails via RSA: com­ment ça marche ?, 9.8 out of 10 based on 16 rat­ings If you enjoyed this post, make sure you sub­scribe to my RSS feed!
Publicité

3 commentaires

  1. totone dit :

    Salut
    Merci pour cet arti­cle très explicite.

  2. nlb dit :

    merci pour votre arti­cle
    J’ai une ques­tion qui me turlupine
    Bob — le fameux Bob — envoie un mes­sage signé  avec un cer­ti­fi­cat éman­ant d“une autorité de Cer­ti­fi­ca­tion StartSSL par exem­ple à josette@gmail.com.
    Que dois faire Josette pour répon­dre à Bob de façon cryp­tée ; elle a –si j’ai bien com­pris– reçu la clé publique de bob donc elle doit pou­voir chiffrer un mes­sage pour lui non ? Ce qui cor­re­spond à votre dessin Chiffre­ment avec pgp ?
    Merci pour d’éventuels éclair­cisse­ments.
     
     

  3. Anthony dit :

    Bon­soir,

    Josette (Alice) a unique­ment besoin de con­naitre la clef publique de Bob pour lui répon­dre de manière chiffrer.

Laisser un commentaire