I.

Pourquoi avons-nous besoin de communications sécurisées ?

Depuis l’essor d’Internet, nous y avons transféré des quantités considérables de communications. Internet, en tant que moyen de communication, relie des millions d’ordinateurs qui gèrent le transfert des bits d’information que nous échangeons. Nous laissons donc des traces de nos communications et de nous-mêmes en chemin.

Un tiers ne tirera sûrement pas grand-chose d’un seul de vos échanges. Néanmoins, notre utilisation d’Internet est telle que les volumes d’information laissés dernière nous, aussi fragmentés qu’ils soient, peuvent être agrégés en vue de vous identifier – et soyez sûr(e) qu’ils le seront. La publication de données peut en outre entraîner des fuites d’informations personnelles en ligne.

Faire en sorte que vos communications restent privées est essentiel pour limiter la quantité d’information que vous laissez derrière vous. Sécuriser vos communications, c’est avant tout les dissimuler aux sources accessibles au public. La plupart des méthodes permettant de garder vos communications confidentielles reposent sur le chiffrement. En résumé, le chiffrement cache vos communications à tous les autres ordinateurs sur lesquels transite l’information. L’algorithme de chiffrement détermine le niveau de sécurité du chiffrement. Toutefois, les données étant traitées par des ordinateurs non fiables (rappelez-vous : n’importe qui peut placer un nœud sur Internet), les méthodes d’échange de clés de chiffrement peuvent elles aussi constituer des points faibles.

Une brève introduction à la cryptographie

Vous n’avez pas besoin de connaître toutes les subtilités du chiffrement (encryption en anglais). Voici une présentation très brève de différentes méthodes de chiffrement simples – des choses que les gens trouvent généralement intéressantes. Après tout, certaines formes de chiffrement sont utilisées depuis des millénaires. Les premiers utilisateurs du chiffrement ont peut-être été les Égyptiens. Toutefois, des méthodes simples de substitution d’information visant à cacher un message d’origine ont possiblement été utilisées avant cela.

Note

Repensez au premier chapitre. Nous y avons présenté la triade CIA. Le chiffrement est une méthode courante qui couvre la dimension « confidentialité » de la triade.

Le chiffre de César

Les Romains étaient des adeptes du chiffrement. On sait que Jules César utilisait une forme de chiffrement par substitution que l’on nomme d’ailleurs aujourd’hui le « chiffre de César ». Le terme « chiffre » décrit un algorithme utilisé pour « chiffrer » et « déchiffrer » des données. Dans un chiffrement par substitution, un caractère est remplacé par un autre selon une méthode spécifique. Par exemple, César employait un chiffre selon lequel chaque lettre était substituée par la troisième qui la suit dans l’alphabet. Ainsi, un A devenait un D, un B devenait un E et ainsi de suite.

Le chiffre de César
Le chiffre de César

Comme vous pouvez le voir sur l’image, la clé de ce « chiffre » correspond à un « déplacement de trois crans vers l’avant dans l’alphabet ». Ce type de chiffre peut être déduit. Dans ce cas, c’est le système, plutôt que la clé, qui doit rester secret. Dans l’exemple du chiffre de César, la clé n’est pas clairement définie. On pourrait la deviner assez facilement en tentant toutes les combinaisons (attaque par force brute) ou en se basant sur la fréquence des lettres dans une langue donnée. Par exemple, si l’on sait, d’une part, que la lettre P est la lettre la plus fréquente dans le message encodé et, d’autre part, que la langue utilisée est l’anglais, on peut raisonnablement penser que le P du message secret est un E dans le texte en clair – puisqu’en anglais, le E est la lettre la plus courante. Différentes variantes de chiffres de substitution ont été utilisées pendant au moins mille ans, jusqu’à ce que les mathématiques nous fournissent de meilleures méthodes de chiffrement.

Note

Autre chiffrement de substitution bien connu et souvent cité : le chiffre du Kamasutra. Dans le Kamasutra, le chiffrement est défini comme l’art de cacher des messages. Il est réputé principalement employé par les femmes. Le chiffre du Kamasutra suggère de diviser l’alphabet en deux et de regrouper les lettres par paires. Les lettres de chaque paire se substituent l’une à l’autre dans le chiffre. Ce n’est ici donc pas un déplacement plus ou moins long dans l’alphabet.

Soit dit en passant, le chiffrement n’a pas besoin d’être parfait. Lors de conflits ou de guerres, s’assurer que le message n’est pas compris en quelques minutes ou quelques heures est parfois essentiel. Toutefois, dans le cas où les données chiffrées seraient confidentielles et susceptibles de causer plus tard des dommages, assurez-vous que votre méthode ne peut pas être contournée trop aisément.

Le chiffre de Vigenère

Au 16e siècle, une nouvelle méthode de chiffrement de meilleure qualité a été développée pour se protéger des attaques par analyse fréquentielle. Le chiffre de Vigenère utilise une clé en boucle. Les analyses fréquentielles sont donc inefficaces, puisque la lettre P, par exemple, ne correspond plus toujours à E dans les textes chiffrés.

Le chiffre de Vigenère utilise une clé variable qui rend le chiffre de substitution plus robuste. La clé est répétée en boucle et couvre ainsi le message dans son intégralité. La longueur de la clé est l’aspect le plus important du chiffre de Vigenère. Avec une clé d’un seul symbole, le chiffre de Vigenère devient un chiffre de César. Prenons un exemple.

Le chiffre de Vigenère
Le chiffre de Vigenère

Un exemple de table de Vigenère. Cette version du chiffre de Vigenère s’apparente à un chiffre de César décalé cycliquement.

Comme vous pouvez le voir dans la table ci-dessus, utiliser une clé composée du seul caractère « D » rend ce chiffre identique à celui de César. Regardez la ligne D et la colonne 1 de la table. Vous remarquerez que la lettre A, une fois chiffrée, correspond à la lettre D – exactement comment dans le chiffre de César.

Pour bien comprendre le potentiel du chiffre de Vigenère, prenons un exemple plus complet et une clé plus longue. À partir de la table de Vigenère ci-dessus, on peut, par exemple, chiffrer le message en texte clair « CYBERSÉCURITÉ » avec la clé « SECRET », comme suit :

Message : CYBERSÉCURITÉ

Clé : SECRETSECRETS

Texte chiffré :

Tout d’abord, nous devons repérer la colonne correspondant la lettre C dans la ligne S de la table. À partir de la table, on détermine que c’est la lettre U. Insérez-là comme première lettre du texte chiffré.

Message : CYBERSÉCURITÉ

Clé : SECRETSECRETS

Texte chiffré : U

La deuxième lettre du message en texte clair est Y sur la ligne E (la deuxième lettre de la clé de chiffrement). Cela donne C. UC sont donc les deux premières lettres du texte chiffré.

Message : CYBERSÉCURITÉ

Clé : SECRETSECRETS

Texte chiffré : UC

En suivant la même méthode, on obtient le texte chiffré suivant :

Message : CYBERSÉCURITÉ

Clé : SECRETSECRETS

Texte chiffré : UCDVVLWGWIMMW

Félicitations, vous avez chiffré votre premier message grâce au chiffre de Vigenère ! Ce chiffre a été utilisé avec succès pendant environ trois siècles jusqu’à ce qu’une méthode générale de déchiffrement soit découverte. Comme vous l’avez sans doute compris, certains messages étaient susceptibles d’être déchiffrés plus rapidement que d’autres. En effet, le niveau de confidentialité du message dépendait de la confidentialité et de la qualité de la clé.

Le chiffre de Vigenère est resté sécurisé pendant très longtemps, mais au 19e siècle des faiblesses intrinsèques ont été trouvées et publiées. Il est donc devenu possible de casser ce chiffrement, quelle qu’en soit la clé. Les attaques s’appuient sur des faiblesses et des répétitions dans la clé de l’algorithme. Elles permettent de déterminer la longueur (ou les longueurs possibles) de la clé. À partir de cette information, une attaque d’élimination de la clé peut être mise en œuvre pour trouver la clé utilisée. Différentes méthodes peuvent être employées pour deviner la longueur de la clé avec un pourcentage de certitude élevé.

Une variante de chiffre Vigenère a été utilisée par les forces confédérées pendant la guerre de Sécession. À l’époque, les forces de l’Union décryptaient régulièrement leurs messages, car plusieurs faiblesses avaient été repérées dans le chiffre.

On considère qu’un chiffre de Vigenère s’appuyant sur une clé aléatoire dont la longueur est égale à celle du texte en clair est incassable. On parle alors de « masque jetable » (ou one-time pad en anglais). Un masque jetable ne comporte pas les faiblesses dues à la répétition de la clé. Puisque les attaques par dictionnaire ne s’appliquent pas aux clés complètement aléatoires, la confidentialité du message repose sur la clé et pas sur le chiffre. L’utilisation des masques jetable n’est pas pour autant sans faiblesse : c’est alors la méthode d’échange de la clé entre les parties qui cristallise le risque.

Note

The Black Chamber (page en anglais) de Simon Singh est un site interactif très chouette qui répertorie de nombreux exemples de fonctions de chiffrement historiques.

L’essor du génie mécanique a permis d’inventer de nouvelles méthodes de chiffrement plus complexes. Sur certaines des nouvelles machines, presser une touche illuminait la lettre chiffrée. Ces premières machines de chiffrement mécanique ont également permis d’augmenter l’étendue du « vocabulaire » utilisable en alignant des rotors les uns à côté des autres. Lorsqu’un rotor de 26 caractères avait tourné une fois sur lui-même de A à Z, le rotor suivant se décalait alors d’un cran. Cela permettait de brouiller le motif répétitif de la clé. Un unique rotor fournissait ainsi une clé de 26 symboles. Ajouter un autre rotor étendait donc les combinaisons disponibles à 26x26=676 positions. Pour configurer la clé partagée, vous n’aviez qu’à communiquer la position initiale des deux rotors.

Avec trois rotors configurés sur la position initiale A, on obtient les positions suivantes à chaque pression de touche :

A A A

B A A

C A A

D A A

Z A A

A B A

B B A

Y Z Z

Z Z Z

A A A

L’équipement, le câblage et le fonctionnement de ces machines sont en réalité bien plus complexes que cet exemple pourrait le laisser croire, mais il a le mérite d’illustrer le potentiel de l’automatisation de la génération d’une clé de chiffrement réelle à partir d’une configuration initiale de machine mécanique.

Note

La plus célèbre de ces machines à rotors n’est autre qu’Enigma, très utilisée par les Allemands pendant la Seconde Guerre mondiale. Les machines Enigma utilisaient de trois à huit rotors. Les modalités d’utilisation de ces machines par les Allemands ont cependant permis à des cryptologues polonais et britanniques d’exploiter des faiblesses pour déchiffrer leurs messages.

Vous trouverez sur Wikipédia plus d’informations sur ce qui reste très certainement la machine de chiffrement la plus célèbre.

Les chiffres que nous avons étudiés jusqu’à maintenant sont qualifiés de symétriques : les clés utilisées pour le chiffrement et le déchiffrement sont identiques. Au fil des années, des méthodes s’émancipant de la nécessité de transmettre la clé secrète au destinataire du message ont été développées. C’est ce que l’on appelle le chiffrement asymétrique. Dans le chiffrement asymétrique, le message est chiffré grâce à une clé publique dérivée de la clé secrète du destinataire du message. Par exemple, si vous souhaitez que vos collègues chiffrent des messages à votre attention, vous leur envoyez votre clé publique afin qu’ils l’utilisent pour chiffrer leurs messages. Une fois les messages chiffrés, seule la personne qui possède la clé secrète (normalement vous) peut les déchiffrer. C’est ce que l’on appelle le chiffrement à clé publique, car la clé de chiffrement est... publique.

Vérifier l’intégrité grâce au hachage

Les fonctions de hachage sont très communément utilisées pour vérifier l’intégrité d’un message. Comme nous l’avons vu, l’intégrité est l’une des dimensions de la triade CIA (confidentialité, intégrité, accessibilité). La fonction de hachage peut être utilisée pour vérifier l’intégrité selon le même procédé qui permet à un mot de passe d’être protégé. Une fonction de hachage peut être utilisée pour calculer et attribuer une valeur à un message. Elle est ensuite envoyée avec le message d’origine. Le destinataire du mot de passe haché peut ensuite contrôler que la valeur de hachage (le « message digest » en anglais) correspond à la valeur calculée à l’arrivée. Certaines fonctions de hachage cryptographique intègrent un mécanisme d’authentification par le destinataire. Ces fonctions créent ce que l’on appelle un Message Authentication Code (MAC) (littéralement « code d’authentification de message » en français).

La cryptographie moderne

La cryptographie moderne dépend de la confidentialité de la clé. Elle repose sur des chiffres identifiés qui ont fait l’objet d’études approfondies. Les chiffres peuvent être connus puisque le secret dépend de la clé en elle-même, plutôt que de son utilisation. Par exemple, quand vous consultez votre compte en banque en ligne, votre navigateur et le serveur Web de la banque échangent de façon sécurisée une clé secrète (et longue) symétrique à usage unique. Elle est utilisée pour chiffrer le trafic entre votre navigateur et le serveur de la banque. De plus, le chiffrement à clé publique est généralement employé pour vérifier l’identité de l’autre partie. Chaque message est aussi vérifiable par l’intermédiaire d’un message authentification code (MAC). Ce processus d’échange de clés, de vérification et d’authentification entre navigateur et serveur est nommé TLS, acronyme de Transport Layer Security (littéralement « sécurité de la couche de transport » en français). Nous nous pencherons plus précisément sur ce sujet dans le chapitre suivant. Des versions précédentes s’appuyaient sur une méthode désormais obsolète nommée SSL, acronyme de Secure Socket Layer (littéralement « couche de sockets sécurisée » en français).

Note

La cryptographie en quelques points clés

  • La confidentialité de votre message dépend toujours de la confidentialité de la clé et pas de la confidentialité du système de chiffrement (c’est ce que l’on appelle le principe de Kerckhoffs).

  • Utilisez toujours des chiffrements qui ont été étudiés publiquement et sont considérés comme des normes certifiées. Utiliser un « système cryptographique secret » ou inventer son propre système est une mauvaise idée, car quand un système est connu et compris – comme celui de César – tous les messages peuvent être déchiffrés.

Next section
II. La messagerie instantanée et le chiffrement de bout en bout