Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Pourquoi les signatures numériques ne sont pas des signatures

Vous pouvez réagir par rapport au contenu de cet article sur le forum. 14 commentaires Donner une note à l'article (5)

Article lu   fois.

Les deux auteur et traducteur

Traducteur : Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Pourquoi les signatures numériques ne sont pas des signatures

Lors de leur invention dans les années 1970, les signatures numériques ont fait une promesse étonnante : mieux qu'une signature manuscrite sur un document : infalsifiable et incopiable. Aujourd'hui, elles sont une composante fondamentale des affaires dans le cyberespace. De nombreuses lois, des États et maintenant du fédéral, ont codifié les signatures numériques en droit. (NdT : il s'agit des États-Unis d'Amérique.)

Ces lois sont une erreur. Les signatures numériques ne sont pas des signatures, et elles ne peuvent pas tenir leur promesse.
Pour comprendre pourquoi, il faut d'abord comprendre comment fonctionnent ces signatures.

Leurs mathématiques sont complexes, mais la mécanique est simple. Alice connaît un secret appelé clé privée. Quand elle veut « signer » un document (ou un message, ou tout paquet de bits), elle effectue un calcul mathématique en utilisant le document et sa clé privée ; puis elle ajoute le résultat de ce calcul - appelé la « signature » - au document. N'importe qui peut « vérifier » la signature en effectuant un calcul différent avec le message et la clé publique d'Alice, laquelle est accessible à tous puisque publique. Si le calcul de vérification réussit, c'est donc qu'Alice doit avoir signé le document, parce qu'elle seule connaît sa propre clé privée.

Mathématiquement, cela fonctionne à merveille. Sémantiquement, cela échoue lamentablement. Il n'y a rien dans la description ci-dessus qui constitue une signature. En fait, appeler ce qu'Alice a créé une « signature numérique » était probablement l'erreur de nomenclature la plus malheureuse de l'histoire de la cryptographie.

En droit, une signature sert à indiquer un accord sur le document signé, ou au moins un accusé de réception. Quand un juge voit un document papier signé par Alice, il sait que cette dernière a tenu le document dans ses mains, et a des raisons de croire qu'Alice a lu et accepté le contenu du document. La signature fournit la preuve des intentions d'Alice. (C'est une simplification. À quelques exceptions près, vous ne pouvez pas produire un document signé au tribunal et affirmer qu'Alice l'a signé. Vous devez obtenir qu'Alice témoigne qu'elle a signé, ou recourir à des expertises, et puis c'est votre parole contre la sienne. C'est pourquoi les signatures notariées sont utilisées dans de nombreuses circonstances.)

Lorsque le même juge voit une signature numérique, il ne sait rien sur les intentions d'Alice. Il ne sait pas si Alice a accepté le document, ou même si elle ne l'a jamais vu.
Le problème est que, si une signature numérique authentifie le document jusqu'à l'étape de l'ordinateur de signature, il n'authentifie pas la liaison entre l'ordinateur et Alice. C'est un point subtil. Je voudrais une fois pour toutes expliquer les mathématiques de signatures numériques avec des phrases comme : « Le signataire calcule une signature numérique du message m en calculant m ^ e mod n. » C'est complètement absurde. J'ai signé numériquement des milliers de documents électroniques, et je n'ai jamais calculé m ^ e mod n de toute ma vie. Mon ordinateur fait ce calcul. Je ne signe rien du tout ; c'est mon ordinateur qui signe.

PGP est un bon exemple. Ce programme de sécurité de courriel me permet de signer numériquement mes messages. L'interface utilisateur est simple : quand je veux signer un message, je sélectionne l'élément de menu approprié, j'entre mon mot de passe dans une boîte de dialogue, et je clique sur « OK ». Le programme décrypte la clé privée avec le mot de passe, puis calcule la signature numérique et l'ajoute à mon courriel. Que je le veuille ou non, c'est un article de foi complet de ma part de croire que PGP calcule une signature numérique valide. C'est un article de foi d'admettre que PGP signe le message que j'entends signer. C'est un article de foi de penser que PGP n'envoie pas une copie de ma clé privée à quelqu'un d'autre, qui peut alors signer ce qu'il veut en mon nom.

Je ne veux pas calomnier PGP. C'est un bon programme, et s'il fonctionne correctement, il signera en effet ce que je voulais signer. Mais un escroc pourrait facilement écrire une fausse version du programme qui affiche un message sur l'écran et signe un autre. Quelqu'un pourrait écrire un plug-in de Back Orifice qui capte mes clés et signe les documents privés sans mon consentement ou à mon insu. Nous avons déjà vu un virus informatique qui tente de dérober les clés privées PGP ; des variantes plus méchantes sont certainement possibles.

Les mathématiques cryptographiques, peu importe leur robustesse, ne peuvent pas combler l'écart entre moi et mon ordinateur. Parce que l'ordinateur n'est pas de confiance, je ne peux pas compter sur lui pour me montrer ce qu'il fait ou pour faire ce que je lui dis de faire. Vérifier le calcul à posteriori n'aide pas ; l'ordinateur non sécurisé ne peut être invoqué pour vérifier les calculs correctement. Il ne serait pas utile d'examiner le code, parce que l'ordinateur non sécurisé est en train d'exécuter le code (et vérifie probablement les tentatives d'examen). Cela n'aide pas non plus de stocker la clé de signature numérique dans un module sécurisé : le module doit encore se fier à l'ordinateur non sécurisé pour les entrées et les sorties.

Rien de tout cela n'est de bon augure pour les signatures numériques. Imaginez Alice au tribunal, répondre à des questions au sujet d'un document qu'elle a signé. « Je ne l'ai jamais vu », dit-elle. Oui, les mathématiques prouvent que ma clé privée a signé le document, mais je ne l'ai jamais vu ». Et puis un témoin expert comme moi est appelé à la barre, qui explique au juge qu'il est possible qu'Alice n'a jamais vu le document, que des programmes peuvent être écrits pour signer des documents à l'insu d'Alice, et que la signature numérique d'Alice ne signifie rien sur ses intentions.

Résoudre ce problème nécessite un ordinateur de signature sécurisé. Si Alice avait un petit ordinateur portable, avec son propre écran et le clavier, elle pourrait afficher des documents sur cet écran et les signer avec ce clavier. Tant que l'ordinateur de signature est digne de confiance, ses signatures le sont aussi. (Mais des problèmes demeurent. Regarder un document Microsoft Word, par exemple, implique généralement un logiciel des plus susceptibles d'accueillir un virus dans l'ordinateur.) Dans ce cas, nous ne nous appuyons plus sur les mathématiques pour la sécurité, mais sur la sécurité matérielle et logicielle de cet ordinateur de confiance.

Cela ne veut pas dire que les signatures numériques sont inutiles. Il y a de nombreux cas où les insécurités discutées ici ne sont pas pertinentes, ou lorsque la valeur en dollars des signatures est suffisamment petite pour ne pas s'en soucier. Il y a aussi des cas où l'authentification à l'ordinateur de signature est suffisamment bonne, et où aucune autre authentification n'est requise. Et il y a des cas où les relations du monde réel peuvent parer aux exigences légales que les signatures numériques ont été requises à satisfaire.

Les signatures numériques prouvent mathématiquement qu'une valeur secrète connue sous le nom de clé privée était présente dans un ordinateur au moment ou la signature d'Alice a été calculée. C'est un petit pas de plus que de supposer qu'Alice ait entré cette clé dans l'ordinateur au moment de la signature. Mais c'est un pas beaucoup plus grand de supposer qu'Alice ait eu l'intention de signer un document particulier. Et sans un ordinateur inviolable auquel Alice fait confiance, vous pouvez vous attendre à ce que des « experts en signature numérique » se présentent au tribunal pour contester un grand nombre de signatures numériques.

II. Biographie

L'auteur, Bruce Schneier, né le 15 janvier 1963 à New York, est un cryptologue, un spécialiste en sécurité informatique et un écrivain américain.
Il est l'auteur de plusieurs livres sur la cryptographie et il est le fondateur de la société Counterpane Internet Security.
Bruce Schneier a obtenu un master en informatique à l'American University et un bachelor en physique décroché à l'Université de Rochester. Avant de créer la Counterpane, il a travaillé au Département de la Défense des États-Unis ainsi qu'aux Bell Labs. Suite au rachat de Counterpane par BT Group en octobre 2006[1] Schneier est devenu le responsable en chef de la sécurité des technologies pour BT. Counterpane est à présent une branche de BT Group dénommée BT Managed Security Solutions (en).
Son livre, Cryptographie appliquée remporte un franc succès. Il est également l'inventeur de plusieurs primitives cryptographiques :

  • Blowfish, algorithme de chiffrement symétrique par bloc, très populaire et inviolé à ce jour ;
  • Twofish, algorithme de chiffrement symétrique par bloc, qui fut candidat pour le Standard de chiffrement avancé (AES) ;
  • MacGuffin, algorithme de chiffrement symétrique par bloc ;
  • Yarrow et Fortuna, générateurs de nombres pseudoaléatoires ;
  • Skein (hash function), fonction de hachage candidate à la compétition de fonction de hachage du NIST pour SHA-3 ;
  • Solitaire, un algorithme de chiffrement « manuel ».

Schneier dénonce dans ses livres la mauvaise utilisation du chiffrement dans les institutions et les entreprises. En particulier, il insiste sur les risques liés à des protocoles qui ne seraient pas suivis à la lettre (par exemple, clés envoyées en clair dans des courriels), de même que les défauts inhérents aux ordinateurs (plantage, bogues, complexité trop grande, etc.). Dans Cryptographie pratique, il tente de donner une voie à suivre pour établir des recommandations pour les utilisateurs et implémenter correctement les primitives cryptographiques.

Bruce Schneier est aussi l'auteur d'un blog sur la sécurité. Il apparaît souvent dans les journaux pour dénoncer les failles dans la sécurité, de la biométrie à la sécurité liée au terrorisme.

III. Remerciements

Cet article est une traduction de Image non disponibleWhy Digital Signatures Are Not Signatures de Bruce Schneier. L'équipe de Developpez.com le remercie sincèrement pour nous avoir permis de traduire et de diffuser son article sur le site. Merci également à Namica pour avoir traduit ce billet, Little White pour la relecture et milkoseck pour la correction des fautes.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Licence Creative Commons
Le contenu de cet article est rédigé par Bruce Schneier et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2013 Developpez.com.