|
|||||||||||||||||||||||||||||||||||||||||||
|
La cryptographie (Bruce Lepper : voir aussi l'article de Corinne Villemin Gacon du mois dernier) est une discipline très ancienne dont le but est de protéger la confidentialité des informations. Dès son apparition, l'ordinateur en fut l'outil de prédilection, du fait de sa puissance de calcul. Mais aujourd'hui, l'ordinateur est responsable d'une seconde révolution pour la cryptographie : sa démocratisation. PGP ("Pretty Good Privacy", en français "Assez bonne confidentialité") est le plus populaire des logiciels de cryptage des données. Nous verrons prochainement quels en sont les principes et le mode d'emploi. Mais il faut d'abord préciser quels en sont les utilisations et les enjeux, sans oublier d'en aborder l'aspect légal : c'est que PGP est tout de même considéré comme munition de guerre ! 1. Grands principes 1.1 Grisbi virtuel et cyber-mouchards La sécurisation des transactions commerciales sur Internet est actuellement un de ses principaux enjeux techniques et économiques. Pour y parvenir il faut disposer de moyens de codage impénétrables. Depuis quelque temps déjà, des solutions sont en oeuvre : Netscape, le logiciel fourre-tout d'accès à Internet, intègre déjà deux systèmes de cryptage autorisant le commerce électronique dans des conditions acceptables de sécurité. De même, un certain nombre de sociétés permettent de commander par courrier électronique et de payer par carte Visa ou Mastercard, en protégeant les informations relatives à cette carte grâce à PGP. C'est le cas par exemple de NSDi, la société finlandaise qui commercialise AmiTCP, le logiciel de réseau pour Amiga. Par ailleurs, la généralisation de l'emploi d'Internet pour les communications d'ordre professionnel ou privé pose le problème de la garantie de la confidentialité de ces communications. En effet, toutes ces communications étant numériques, il est tout à fait aisé de construire des programmes filtrant les flots de messages parcourant Internet, à la recherche de telle ou telle information. Le problème n'épargne pas le domaine politique, puisque d'une part, ces informations peuvent être l'expression d'opinions politiques, et d'autre part, les gouvernements sont pour l'instant très méfiants vis-à-vis des moyens de cryptage. Certains voient même dans cette défiance un danger potentiel pour la démocratie... 1.2 Foule, met ta jaquette Aux États-Unis, et plus encore en France, tout ce qui touche le "chiffre" (au sens de cryptage) est tabou. C'est ainsi que l'administration américaine a récemment mis au point (et tenté d'imposer aux utilisateurs de cryptographie) le fameux circuit "Clipper", dont chaque exemplaire est muni d'une unique clé de codage, la copie étant conservée par l'administration ! Inutile de dire que d'inévitables empêcheurs de gouverner en rond s'opposent par tous les moyens au "Clipper", comme à toute tentative portant atteinte à la confidentialité. Ces dangereux déstabilisateurs réfutent en bloc l'argument, fallacieux d'après eux, selon lequel ne recherchent la confidentialité que ceux qui ont quelque chose à cacher, c'est-à-dire à se reprocher. Ils arguent même que si seuls les gouvernements y ont accès de droit et les organisations criminelles accès de fait, c'est bien entendu le citoyen lambda au beau milieu qui se fait avoir... Pour l'instant, l'alternative existe, notamment grâce à Philip Zimmerman, l'auteur de PGP, un logiciel de cryptage dit à clé publique dont il assure qu'il peut donner du fil à retordre même aux militaires ! La documentation de PGP Amiga (au format AmigaGuide) donne fermement l'impression que son auteur a réalisé là une véritable action politique, au sens noble du terme, une fois n'est plus coutume... Il va même jusqu'à qualifier PGP de "logiciel de guérilla" ! Cet article s'autodétruira dans dix secondes... La France est l'un des pays, avec l'Irak, où le cryptage est le plus sévèrement contrôlé, pour ne pas dire découragé... Au point que l'on peut y voir une atteinte aux Droits de l'Homme, dont la France est censée être la patrie. En France, l'utilisation de PGP tombe sous le coup de la loi 90-1170, parue au Journal Officiel du 30 décembre 1990. Cette loi stipule que l'utilisation, ou l'exportation, de moyens ou de prestations de cryptologie doit être soumise :
2. Principes d'utilisation 2.1 Crypte chaude Un système de cryptage repose sur deux éléments fondamentaux : l'algorithme de codage et le type de clé. L'algorithme de codage prend en entrée le texte à chiffrer et une clé et donne en sortie un texte méconnaissable, qui ne pourra être déchiffré qu'à l'aide de la clé. Si le système est de type "à clé unique", la même clé sert à chiffrer et déchiffrer, ce qui implique qu'un moyen sûr de transmettre cette clé à son interlocuteur reste à trouver. De plus, il faut créer autant de clés que l'on a de correspondants, sinon ceux-ci peuvent s'espionner les uns les autres. Dans un système dit "à clé publique", deux clés sont nécessaires, chacune permettant uniquement de décoder ce qui a été codé avec l'autre. Dans ce cas, l'une des clés, appelée "clé publique", est diffusée sans guère de précautions et quiconque désirant correspondre de manière confidentielle avec l'émetteur de cette clé, l'utilise pour chiffrer le texte qu'il lui destine. En effet, seul l'émetteur de cette clé possède la "clé secrète" permettant le déchiffrage. C'est ainsi qu'est assurée la confidentialité. Supposons que l'on désire commander le logiciel de réseau AmiTCP pour Amiga et payer par carte bancaire. Il suffit d'envoyer un message à l'adresse <info@nsdi.fi>. Un message est immédiatement renvoyé contenant les tarifs concernant le logiciel AmiTCP 4.3 pour Amiga, ainsi qu'un bon de commande et une clé publique PGP. Le futur client n'a plus qu'à remplir ce bon, dans lequel il doit donc faire figurer le numéro et la date d'expiration de sa carte, et le crypter à l'aide de cette clé. Mais la clé secrète peut être également utilisée pour chiffrer un fichier : dans ce cas, quiconque détient la clé publique est capable de déchiffrer un texte que seul le possesseur de la clé secrète a pu écrire. Ce mécanisme de signature permet donc l'authentification. L'archive lha contenant PGP est ainsi signée par l'auteur du portage sur Amiga, Peter Simons ; de sorte que si vous avez une clé publique de ce dernier, en laquelle vous avez la plus grande confiance, vous pouvez avoir la certitude que ce fichier n'a pas été bricolé par quelqu'un d'autre. De nombreux antivirus Amiga sont diffusés de la sorte, pour des raisons évidentes de sécurité. PGP implémente le système de cryptage à clé publique appelé RSA (Rivest, Shamir, Adleman) développé par le MIT. Le principe de l'algorithme de codage repose sur le fait que la multiplication de deux nombres premiers est une opération triviale à effectuer tandis que l'opération inverse, l'extraction de deux facteurs premiers, est d'autant plus couteuse que ces facteurs sont grands. Cependant, comme cet algorithme est très consommateur en temps de calcul, en partie du fait de sa nature à clés duales, l'auteur de PGP a eu l'ingénieuse idée de le coupler à un algorithme à clé simple, IDEA (créé en Suisse), pour en améliorer les performances. En fait, PGP commence par compresser le texte qu'on lui fournit, puis le crypte avec une clé simple IDEA générée aléatoirement et longue de 128 bits. Cette clé temporaire, dite clé de session, est ensuite chiffrée avec la clé RSA. PGP produit ainsi un fichier crypté formé du texte, codé par IDEA, et de la clé IDEA, codé par RSA. Quand on envoie le même message crypté à plusieurs personnes, le texte est ainsi codé une seule fois, tandis que la clé de session est codée autant de fois qu'il y a de destinataires. Avec le même souci de performance, la signature d'un texte ne consiste pas à en chiffrer la totalité mais seulement une sorte de résumé, de longueur réduite (128 bits), et choisi par un algorithme appelé MD5, qui assure que ce résumé aura de bonnes propriétés pour le cryptage. 2.2 Le talon d'Achille Il faut cependant mettre un bémol à cette présentation idyllique : la confiance que l'on peut avoir en un système à clé publique, tel que PGP, doit se limiter à la confiance que l'on a sur l'origine de ces clés... On peut, en effet, briser la confidentialité d'une communication entre deux individus se croyant protégés par PGP, à l'aide de clés factices. Imaginez qu'une personne mal intentionnée intercepte l'échange de clés publiques des deux interlocuteurs et y substitue deux clés de sa propre fabrication. S'il peut s'assurer de toujours pouvoir intercepter leurs communications de la même manière, il pourra toujours décoder les messages chiffrés avec ses fausses clés publiques (puisqu'il en possède les clés privées), avant de les retransmettre une fois recodés avec les clés publiques originales, pour entretenir l'illusion. Bien sûr, cela peut vous paraître difficile à réaliser techniquement, donc très improbable... Relisez donc ce paragraphe en remplaçant "personne mal intentionnée" par "pouvoir public qui vous veut du bien", pour voir... L'authentification des clés publiques est donc le problème majeur d'un tel système. De toute évidence, PGP ne peut s'accommoder d'un système centralisé d'authentification des clés, comme PEM (Privacy Enhanced Mail, en français "courrier à confidentialité accrue") que l'on cherche à imposer sur Internet. La philosophie de PGP consiste à se méfier de tout le monde (en particulier des organisations "officielles") à l'exception de ses proches. Chaque clé publique peut ainsi porter en elle un certificat d'authentification d'une ou plusieurs personnes qui ont de très bonnes raisons de croire qu'elle émane bien de son auteur présumé. Selon le principe "les amis de mes amis sont mes amis", la confidentialité de PGP repose sur la propagation de proche en proche de la confiance sur chaque clé. Il est amusant de constater que ce maillage est aussi le principe initial d'Internet... Malheureusement, ce principe de propagation a pour principal défaut d'être très lent, d'autant plus qu'un nouvel utilisateur de PGP n'a, quand il commence, aucune clé publique en laquelle avoir confiance et sa propre clé n'est reconnue par personne. Il existe donc plusieurs mécanismes qui permettent d'accélérer le processus de diffusion des clés : les serveurs de clés publiques. On peut ainsi demander par courrier électronique à un tel serveur de renvoyer la clé d'un individu, s'il l'a. Certains proposent également en accès FTP des archives contenant un grand nombre de clés. Qu'une seule de ces clés vous soit connue et vous pouvez faire confiance à toutes celles d'une telle archive qui auront été certifiées à l'aide de cette clé. Ajoutons pour finir, que ces serveurs sont aussi accessibles par le "Web". 2.3 Cet oeil qui vous suit La cryptologie est un sombre arcane dont la seule évocation engendre méfiance et suspicion. L'un de ses illustres mages, Philip Zimmerman, coupable d'avoir voulu doter les foules de cet art, a même été inquiété et s'est vu promettre le bûcher : une enquête est ouverte à son sujet et une subscription publique a été créée pour couvrir ses frais de défense en cas de procès ! Il semble cependant que la pression se relâche à son sujet, sans doute grâce à la mobilisation des utilisateurs d'Internet. En France, vouloir jouer les apprentis sorciers peut coûter cher, car les pouvoirs publics sont encore jaloux de leurs prérogatives au sujet du cryptage. Il y a là matière à un vrai débat, qui, au-delà de sa nature évidemment politique (l'État est-il seul garant de la démocratie ou bien est-ce aussi du ressort de chaque citoyen, qui doit "s'armer" en conséquence) peut prendre une dimension économique, tant il est vrai que cette anachronique chasse aux sorcières peut nous laisser en marge de bon nombre d'utilisations des "autoroutes de l'information" nécessitant la confidentialité. C'est ce dernier argument qui a décidé nos gouvernants à réagir : pour preuve, l'article 12 de la nouvelle loi sur les télécommunications (débattue à l'Assemblée depuis le 7 mai) qui traite de la cryptologie. L'assouplissement consiste à laisser entièrement libre l'utilisation de moyens de chiffrage à usage d'authentification et à imposer le dépôt des clés privées (normalement secrètes) chez un "tiers de confiance" (principe du notaire électronique, ayant obligation au secret sauf en cas d'enquête judiciaire) pour les usages de confidentialité. Je vous conseille de prendre connaissance de la loi sur le serveur du Ministère des Télécomunnications (voir dernière partie). 3. Utilisation logicielle de PGP Nous arrivons maintenant à la dernière partie de cette série. Je vous explique comment on peut utiliser PGP sur le plan logiciel. 3.1 Rite initiatique Notons tout d'abord que la dernière version de PGP publiée par Philip Zimmerman est PGP 2.3a. PGP 2.6.2 est l'oeuvre du MIT et présente l'inconvénient de requérir l'acceptation d'une licence (RSAREF), de ne pas être diffusée (théoriquement) hors des États-Unis et d'être incompatible avec les versions précédentes. Stale Schumacher a donc choisi de mixer les deux versions de manière à pouvoir lire les deux formats et écrire l'un ou l'autre : sa version est PGP 2.6.3i (International). La plus grosse difficulté de l'installation de PGP est d'en trouver l'archive : on peut ne pas la trouver sur les sites Aminet américains et français, en raison des dispositions légales concernant l'exportation de dispositifs de cryptage. Sur les autres sites Aminet (src. doc. ic. ac. uk par exemple) PGP se trouve dans le répertoire aminet/util/crypt. Ceux qui n'ont pas d'accès FTP peuvent sans doute se tourner vers les collections de disquettes et de CD en provenance d'Allemagne. Après avoir dûment décompressé l'archive "PGPAmiga-2.6.3i.lha", il faut éditer le fichier de configuration "bin/config.txt". Le minimum à faire est, à mon sens, de changer les paramètres suivants :
L'étape suivante consiste bien sûr à générer sa clé secrète (à conserver religieusement à l'abri...). La commande à cet usage est : "pgp -kg" PGP demande alors de choisir tout d'abord la taille de la clé parmi trois présélections :
PGP demande ensuite le nom d'utilisateur associé à cette clé : il semble pertinent de répondre par la même chaîne que celle affectée à "MyName" dans le fichier de configuration. Vient alors la saisie du mot de passe : il est bon de le choisir assez long et mêlant lettres, chiffres et ponctuation. Bien entendu, il faut faire en sorte qu'il reste en mémoire sans avoir à le noter sur un papier ! Plutôt qu'un mot sans queue ni tête, il vaut mieux choisir une petite phrase ayant un sens. Enfin, PGP demande de taper n'importe quoi au clavier, ceci pour se créer une véritable séquence aléatoire, en se basant sur les caractères saisis et l'intervalle de temps séparant chacun d'entre eux. PGP calcule alors la clé privée et la clé publique, qu'il range dans deux fichiers, que l'on appellera anneaux ou bien porte-clés, "secring.pgp" et "pubring.pgp", respectivement. Il ne reste plus qu'à extraire sa clé publique de son anneau pour pouvoir la diffuser auprès de ses correspondants : "pgp -kx Youri" À partir d'une portion du nom de son propriétaire, PGP retrouve la clé à extraire et demande le nom du fichier où la copier. Ce fichier sera de type binaire (extension ".pgp"). On peut préférer un fichier de type ASCII (extension ".asc"), pour l'inclure dans un message : "pgp -kxa Youri" 3.3 Un anneau pour les gouverner tous C'est dans l'anneau de clés publiques que PGP recherchera la clé permettant d'authentifier un message ou de chiffrer un fichier à destination d'un correspondant. Or, cet anneau n'a pour l'instant qu'une seule clé : celle correspondant à la clé secrète fraîchement créée. Pour commencer à garnir son anneau, on peut y ajouter les clés disséminées dans la documentation de PGP ou d'autres logiciels. Ainsi, pour ajouter la clé publique de l'auteur de Virus_Checker, John Veldthuis, la commande est-elle : "pgp -ka Virus_Checker.guide" PGP retrouve de lui-même la clé dans ce fichier AmigaGuide, en vérifie l'intégrité et les éventuels certificats d'authenticité. Dans le cas où cette clé n'est pas considérée comme certifiée, PGP demande alors si l'on veut la certifier soi-même, ce qui peut se révéler hasardeux pour un fichier en provenance d'Aminet, par exemple... PGP dispose évidemment d'une commande permettant de lister quelles sont les clés présentes dans l'anneau de clés publiques : "pgp -kv" donne le résultat : ![]() Nous avons vu qu'il suffisait d'une clé publique de son correspondant en laquelle on a confiance pour pouvoir assurer la confidentialité de ses communications avec lui. Ainsi, pour crypter le fichier "msg.txt" à l'intention de John Veldthuis, la commande est : "pgp -e msg.txt john". ![]() Le fichier produit, dit "fichier de transport armuré" est alors "msg.txt.asc". ![]() L'autre raison d'être de PGP étant l'authentification, on peut signer un fichier par la commande : "pgp -s msg.txt" En l'absence d'indication contraire, c'est la clé secrète de Youri qui sera utilisée ici (Cf. "config.pgp"), clé dont PGP demande bien sûr le mot de passe. Là encore, c'est un fichier binaire ("msg.txt.pgp") qui est produit, l'option "a" permettant d'obtenir son équivalent en ASCII ("msg.txt.asc") : "pgp -sa msg.txt". Attention ! Binaire ou ASCII, le fichier n'est de toute façon lisible qu'avec PGP. On a cependant la possibilité qu'un message demeure lisible normalement tout en étant signé : "pgp -sta msg.txt". ![]() Conclusion Nous voilà parvenus à la fin de cette exploration de PGP. Il ne nous reste plus qu'à attendre sagement d'avoir le droit de nous en servir. Cela ne devrait plus tarder : la position française a évolué récemment et le spectre d'un retard accru vis-à-vis des "autoroutes de l'information" (pour peu que cette expression ait un sens...) y est certainement pour quelque chose. Il ne s'agit pas toutefois d'une révolution : si l'utilisation de PGP devient légale, ce ne sera qu'à condition de déposer sa clé privée chez un dépositaire agréé par l'État, et de crypter tous ses messages confidentiels non seulement avec les clés publiques de ses correspondants mais aussi avec sa propre clé publique (de sorte que la Justice puisse en prendre connaissance à l'aide de la clé privée réquisitionnée chez le dépositaire). Liens annexes Quelques pages "Web" dans lesquelles trouver plus ample information : Site du logiciel PGP www.pgp.com/ Pourquoi j'ai écrit PGP, par Phil Zimmermann biblioweb.samizdat.net/article.php3?id_article=4 Nouvelle loi française www.telecom.gouv.fr/ (suivez le fil "1) Réglementation [...]", puis "La cryptologie" ou "texte de loi [...]" puis "projet de loi" et enfin "[Article] 12")
|