Pourqoi les signatures numériques ne sont pas des signatures

Auteur

Bruce Schneier

Traducteur

http://www.developpez.net/forums/u49697/namica/

Vous pouvez réagir par rapport au contenu de cet article sur le form : Commentez

- Titre : Pourqoi les signatures numériques ne sont pas des signatures

- Auteur : Bruce Schneier

- Traducteur : http://www.developpez.net/forums/u49697/namica/

- Parution : 28 janvier 2015

- Licence : Copyright ® 2015 Bruce Schneier . Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Pourqoi les signatures numériques ne sont pas des signatures

- II. Biographie

- III. Remerciements

I - Pourqoi 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 in-copiable. Aujourd'hui, elles sont une composante fondamentale des affaires dans le cyberespace. Et de nombreuses lois, des États et maintenant du Fédéral, ont codifié les signatures numériques en droit.

Ces lois sont une erreur. Les signatures numériques ne sont pas des signatures, et elles ne peuvent pas tenir leur promesse.
Comprendre pourquoi nécessite de comprendre comment elles fonctionnent.

Leur mathématique est complexe, mais la mécanique est simple. Alice connait un secret, appelé une clé privée. Quand elle veut "signer" un document (ou un message, ou tout seau de bits), elle effectue un calcul mathématique en utilisant le document et sa clé privée ; puis elle ajoute les résultats 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 au public. Si le calcul de vérification réussit, c'est donc que Alice doit avoir signé le document, parce qu'elle seule connait sa propre clé privée.

Mathématiquement, il fonctionne à merveille. Sémantiquement, il é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 Alice a tenu le document dans ses mains, et a des raisons de croire qu'Alice a lu et accepté les mots sur le document. La signature fournit la preuve des intentions d'Alice. (Ceci est une simplification. À quelques exceptions près, vous ne pouvez pas prendre un document signé au tribunal et faire valoir qu'Alice 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és 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 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. Pendant des années, je voudrais 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 ne 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 que 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 que PGP calcule une signature numérique valide. C'est un article de foi que PGP signe le message que j'entends signer. C'est un article de foi 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 entrain d'exécuter le code (et effectue probablement la vérification). 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 que 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 de les signer avec ce clavier. Tant que l'ordinateur de signature est digne de confiance, ses signatures sont approuvées. (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és 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 assez bon, et où aucune autre authentification 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 la clé privée était présent dans un ordinateur au moment de la signature d'Alice a été calculé. C'est un petit pas de plus que de supposer qu'Alice aie entré cette clé dans l'ordinateur au moment de la signature. Mais c'est un pas beaucoup plus grand de supposer que Alice aie eut 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é 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 pseudo-alé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, bugs, 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 Why 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 … pour la correction des fautes.