Cryptographie : tout ce que vous n’avez jamais voulu savoir

Dans le monde numérique en constante évolution d’aujourd’hui, la cryptographie est essentielle à la sécurité des données. Mais que se cache-t-il derrière ce mot à la mode ? Partez à mes côtés à la découverte de la cryptographie !
Cryptographie : tout ce que vous n’avez jamais voulu savoir

Depuis que les humains ont commencé à utiliser le langage écrit, ils l’ont gardé secret. Pas l’écriture elle-même, évidemment, mais les messages qu’elle contient. Ce que nous appelons « cryptographie », à savoir la pratique consistant à garder des messages privés face à des adversaires, souvent avec du texte codé, est un concept fondamental depuis les hiéroglyphes, il y a environ 4 000 ans.

Il n’est cependant pas surprenant que face à la rapidité du monde actuel des communications numériques et des systèmes de paiement, la cryptographie soit devenue encore plus essentielle pour assurer la sécurité des données.

À vrai dire, la cryptographie est cruciale pour assurer la sécurité de vos données et de celles de vos clients, veiller à la sécurité de vos communications avec les mécanismes de paiement en ligne et garder, eh bien… secrets, les secrets critiques des entreprises et gouvernements. Elle est essentielle à la triade de confidentialité, d’intégrité et de disponibilité, un modèle commun qui sert de fondement au développement des systèmes de sécurité, et même à sauver des vies !

Non seulement la cryptographie est la science extrêmement intéressante qui consiste à garder des secrets, mais elle s’étend aux mathématiques, à la science, à la technologie, à la politique et aux droits de l’Homme. Chez Salesforce, elle nous aide à être à la hauteur de notre valeur principale, qui est la confiance. C’est aussi l’un des grands mots à la mode dans la tech, comme le sont les crypto-monnaies et les NFT.

On craint également que les standards de la cryptographie existants ne soient brisés à l’avenir en raison de (attention, voici un peu de jargon) la cryptographie post-quantique, où le coût de la cryptanalyse est considérablement réduit, ce qui signifie qu’il peut être possible de casser certains cryptosystèmes. Nous en sommes encore loin, alors ne vous inquiétez pas trop… pour le moment. Nous allons d’abord nous intéresser à l’historique de la cryptographie et à l’état actuel des choses.

Tout superhéros a un récit originel

Au fil du temps, la cryptographie a été utilisée pour sauver des vies. Malheureusement, dans certains cas, c’est le contraire qui s’est produit : une cryptographie mal exécutée ou facile à déchiffrer a conduit à des événements dramatiques et funestes. Par exemple :

Le chiffre de César : un code (un ensemble de règles ou une combinaison de deux algorithmes ou plus) nommé en l’honneur de Jules César, qui l’a utilisé pour chiffrer les messages gouvernementaux militaires et officiels. En utilisant une transposition de trois, le texte en clair était décalé de trois lettres dans l’alphabet pour produire le résultat du texte chiffré. Ainsi, le mot « confiance » serait chiffré en « frqildqfh ». Le F est trois lettres après le C, et ainsi de suite.

La conspiration de Babington : en 1587, Marie, reine d’Écosse, fut emprisonnée et étroitement surveillée. Dans l’impossibilité de communiquer avec le monde extérieur, elle a pu créer son propre code composé d’une nomenclature (des lettres et des symboles) et les envoyer à ses alliés en passant en cachette des parchemins avec le code au travers de tonneaux de bière. Il a finalement été déchiffré par une méthode appelée analyse fréquentielle (qui identifie les symboles chiffrés les plus courants et devine à quoi ils pourraient correspondre) et le complot de trahison de Marie contre la reine Elizabeth l’a conduite à un sombre destin. Si elle avait modifié sa nomenclature plus fréquemment, cela lui aurait peut-être sauvé la vie. 

La machine Enigma : pendant la Seconde Guerre mondiale, l’armée allemande a utilisé ce dispositif cryptographique mécanique pour chiffrer les messages et rendre leur décodage impossible pour les fouineurs indésirables. Elle ressemble à une machine à écrire coincée dans une boîte reliée à plusieurs rotors. Lorsque vous appuyez sur une touche, une lumière apparaît à l’extrémité du tableau mettant en évidence une lettre. Le but était que lorsque vous appuyiez sur la lettre A, vous n’obteniez pas la même lettre deux fois de suite, car le câblage mécanique de la boîte changeait grâce aux rotors, qui modifiaient la façon dont les touches produisaient du texte. Alan Turing a finalement pu déchiffrer l’appareil. Il est couramment admis que le déchiffrement de la machine Enigma a permis de mettre fin plus tôt à la Seconde Guerre mondiale, sauvant d’innombrables vies.

Ce qui se passe derrière le masque

Vous vous demandez peut-être à présent ce que tout cela a à voir avec vous et vos données. Il est pourtant essentiel de comprendre comment les différentes époques de la cryptographie nous ont finalement conduits à la façon dont nous communiquons en toute sécurité sur Internet aujourd’hui et comment nous nous protégeons contre les acteurs malveillants. Ce n’est pas qu’une simple technologie, mais tout un art dont nous devons être reconnaissants dans le monde actuel de la cybersécurité. Il est également important de comprendre un certain nombre de termes fondamentaux pour nous plonger dans ce sujet extrêmement complexe. Voici quelques bases qui vous aideront à passer de zéro à héros de la cryptographie :

Texte en clair : un message dans sa forme originale

Texte chiffré : forme altérée du message en clair, illisible pour quiconque (si nous avons bien fait notre travail) à l’exception du destinataire visé ; également connu sous le nom de cryptogramme

Code : une série d’étapes bien définies qui permettent la mise en œuvre du chiffrement ; un algorithme de cryptage, également appelé moteur de chiffrement

Chiffrement : l’art de transformer un texte en clair en texte chiffré ; le fait de faire passer le texte en clair par le moteur de chiffrement

Déchiffrement : le processus inverse du chiffrement

Clé : une clé de chiffrement est une chaîne de bits utilisée par un algorithme de cryptage/chiffre pour transformer du texte en clair en texte chiffré ; elle contrôle le fonctionnement d’un algorithme de cryptage ; également appelée variable cryptographique

Longueur de clé : nombre total de valeurs possibles pour une clé dans un algorithme de cryptage ou d’autres mesures de sécurité telles qu’un mot de passe. Ainsi, un numéro à quatre chiffres comme un code PIN n’aurait qu’une longueur de clé de 10 000 : les nombres entre 0000 et 9999, soit 10 000 suppositions possibles.

Hachage : une fonction mathématique à donnée d’entrée variable unidirectionnelle qui produit un résultat de sortie de texte chiffré fixe. Nous vous en apprendrons davantage à ce sujet plus tard dans le blog. 

Cachés à la vue de tous   

Aujourd’hui, les algorithmes et les clés que nous utilisons sur Internet se trouvent à peu près partout, sauf si pour une raison quelconque vous avez fait tout votre possible pour désactiver vos paramètres de sécurité. En fait, en supposant que vous lisez cet article depuis un navigateur, vous devriez remarquer un cadenas à gauche de votre barre de recherche. Ce symbole indique que votre connexion au Web est sécurisée et que ces paramètres de sécurité sont mis en place en utilisant, vous l’aurez deviné, la cryptographie. 

Ce protocole-là s’appelle Secure Sockets Layer/Transport Layer Security (SSL/TLS), c’est ce que nous utilisons pour chiffrer le protocole HTTP (Hypertext Transfer Protocol). Il nous permet de transmettre des informations sur Internet et de fournir des informations à un site Web. Il peut s’agir à la fois de métadonnées et de valeurs que vous ajoutez dans des champs, comme des mots de passe et des informations de carte de crédit. Cependant, comme il est en clair, n’importe qui peut le voir avec un peu de recherche. En traitant avec le site Web à l’aide de la cryptographie à clés publiques, nous pouvons utiliser le certificat du site Web pour ensuite créer un canal de communication crypté et authentifié. Vous pouvez vérifier que la clé publique appartient à un site Web en la vérifiant à l’aide de ce que l’on appelle une autorité de certification.

Les clés de l’univers

Vous pouvez disposer des algorithmes les plus puissants au monde, mais votre clé constitue le mécanisme qui les verrouille et les déverrouille. Si quelqu’un l’obtient, il peut déchiffrer toutes vos communications. La clé est au cœur de la cryptographie, et sa sécurité et sa confidentialité sont essentielles pour garantir que vos systèmes cryptographiques sont en bonne forme. 

Si je souhaite chiffrer des données au repos, disons un grand volume de données sur un disque, j’utilise ce qu’on appelle une clé symétrique : une clé pour les gouverner tous. Cela signifie que c’est la même clé qui effectue l’opération de chiffrement et de déchiffrement. Le chiffrement symétrique est idéal pour les chiffrements en masse et gourmands en ressources (à savoir des téraoctets d’informations). Parmi les algorithmes/chiffres que nous utilisons aujourd’hui pour le chiffrement à clé symétrique se trouvent le DES, le 3DES et l’AES. Ainsi, lors de la protection des données des clients, nous utilisons ces types d’algorithmes pour assurer votre sécurité et celle de vos clients. J’utilise le texte en clair, je le fais passer par un moteur de chiffrement (le chiffre/l’algorithme), je mets ma clé dans le moteur et cela permet à la cryptographie d’avoir lieu. Tout comme pour démarrer une voiture, la clé est nécessaire pour l’activation. 

Parfait, nous avons maintenant examiné le chiffrement des données au repos. Mais que se passe-t-il si je veux communiquer avec vous via Internet et que je dois vous envoyer une clé ? Si quelqu’un espionne cette passerelle de communication, il pourra sûrement voir la clé privée, n’est-ce pas ? En effet, mais plusieurs méthodes existent pour l’en empêcher et c’est ainsi que nous pénétrons dans le monde du chiffrement à clé publique. 

Avec les clés symétriques, une seule clé permet de les gouverner tous. Dans le cadre de la cryptographie asymétrique, deux clés permettent de les gouverner tous. Le coût en calculs est plus élevé, ce qui entraîne une plus grande consommation de ressources. La première clé est une clé publique, ce qui signifie que tout l’Internet public peut la voir. La seconde est votre clé privée à laquelle vous seul, et personne d’autre, devriez avoir accès. Lorsque les deux clés correspondent, le processus de déchiffrement peut avoir lieu. 

Donc, imaginons que je veuille vous envoyer un message chiffré par Internet. Je dois d’abord vous contacter et obtenir votre clé publique. Celle-ci me permet alors de chiffrer le message que je compte vous envoyer à vous seul. Encore une fois, tout le monde aura votre clé publique, mais personne n’a accès à votre clé privée. Personne ne peut déchiffrer le message à l’exception du détenteur de la clé privée. 

Très bien, je sais maintenant comment effectuer le chiffrement. Mais comment pouvez-vous avoir la certitude que le message provient vraiment de moi ? 

Pourquoi ne changeons-nous pas l’utilisation de la clé ? Je veux prouver que je vous ai envoyé un message et prouver mon intégrité avec le message. Après tout, une personne à un bout du fil pourrait se faire passer pour quelqu’un d’autre. Alors, avant que je vous envoie un message chiffré, vous me demandez d’en vérifier l’intégrité. Cette fois, je signe le message avec ma clé privée. N’oubliez pas que je suis le seul à posséder ma clé privée, donc si je l’utilise pour signer mon message, il vient forcément de moi, n’est-ce pas ? 

Dans ce cas, lorsque nous disons que nous signons un message,nous voulons en fait dire que nous signons son hachage. Un hachage est une fonction mathématique à donnée d’entrée variable unidirectionnelle qui produit un résultat de sortie de texte chiffré fixe, également appelé synthèse du message. Ainsi, pour le message « Salesforce Rocks! », voici à quoi ressemblerait le hachage : 

cb3f2a6595c407552a961a9bb661371b62bea1dc55732eb032c2f5a49bf84272 

Je vais calculer ma synthèse, puis la chiffrer avec ma clé privée, créant ainsi ce qu’on appelle une signature numérique. Ensuite, lorsque vous recevez le hachage de ma part, vous pouvez faire correspondre ma clé publique et voir que c’est bien elle. Si le message est intercepté à tout moment, le hachage change. Disons, par exemple, que notre fouineur n’aime pas les majuscules et qu’il décide d’intercepter le message pour le remplacer par « salesforce rocks! », le résultat de sortie du texte chiffré fixe serait complètement différent et ressemblerait à ceci : 

80c7f510141d090a37b2865284fbe3593a911d9f81bcd2d80b5e2cc845e0dfc2

Ensuite, lorsque vous recevez le message, il est différent de ce qui a été signé à l’origine et la synthèse signée ne correspond pas à la synthèse reçue. Cela signifie que le non-reniement (la capacité de ne pas pouvoir nier) ne sera pas possible, ce qui signifie que vous ne pourrez pas faire confiance à l’expéditeur ou à l’intégrité du message lui-même. Le changement des valeurs de hachage à partir d’une modification mineure du texte en clair d’origine est connu sous le nom d’effet avalanche.

Nous pouvons avoir une transmission extrêmement sécurisée en demandant à quelqu’un de signer le message avec sa clé privée, puis en utilisant la clé publique du destinataire pour chiffrer le message. Ainsi, une cryptographie asymétrique complète intervient et votre canal de communication est sécurisé et vérifié. La cryptographie asymétrique est utilisée dans chaque canal de communication sur Internet pour vous assurer que vous pouvez faire confiance au destinataire final. RSA, DSA et Elliptic Curve sont quelques exemples d’algorithmes de chiffrement asymétrique.

Cependant, la cryptographie asymétrique peut être gourmande en ressources, c’est pourquoi nous avons ce qu’on appelle la « cryptographie hybride ». Cette fois-ci, l’expéditeur génère une clé de session symétrique, également appelée clé partagée, mais avant d’envoyer cette clé, il prend la clé publique du destinataire et chiffre la clé de session. Il l’envoie ensuite par Internet, chiffrée avec une clé asymétrique. Le destinataire la déchiffre avec sa clé privée et le tour est joué : la communication chiffrée peut avoir lieu à l’aide de la clé de session (par exemple AES 128 bits) et permet aux deux parties d’effectuer un chiffrement symétrique plus rapide.

Certifié sécurisé

Pratique, n’est-ce pas ? Seulement, comment puis-je avoir la certitude que la clé publique d’une personne est bien sa clé publique ? Rappelez-vous cette clé qui a été demandée ci-dessus au destinataire, afin que nous puissions chiffrer le message que nous lui avons envoyé. Bienvenue dans le monde de l’infrastructure à clés publiques (PKI) et des autorités de certification (CA). Considérez la PKI comme l’épine dorsale cryptographique invisible de vos communications en ligne. Et les autorités de certification sont pour l’essentiel des organismes de vérification cryptographique tiers qui confirment que la clé publique d’une personne lui appartient. Cela se fait à l’aide de certificats numériques. 

Lorsque vous terminez un cursus ou que vous participez à une formation pour monter en compétences, vous recevez un certificat de cet organisme de formation avec un cachet indiquant « La personne X est certifiée par la présente institution ». Il en est de même pour le certificat numérique, qui contient votre clé publique et qui est délivré par un tiers de confiance. Ainsi, l’autorité de certification déclare pour l’essentiel « Oui, cette clé publique appartient à la personne X ». 

Vous avez peut-être déjà voulu consulter un site Web sur lequel vous avez été accueilli par le message : « Attention, n’entrez pas. Il existe un problème avec le certificat ». Dans ce cas, l’entité ne possède pas de certificat pouvant être validé par un tiers de confiance. Nous avons simplifié les choses pour que vous puissiez mieux comprendre, mais cette recette secrète contient beaucoup plus d’ingrédients que ceux mentionnés. 

Nous portons tous une cape

Qu’est-ce que tout cela a à voir avec vous et Salesforce ? Eh bien, la cryptographie est ce qui nous aide à protéger vos données et vos canaux de communication. Parmi une myriade de mesures de sécurité, Salesforce utilise les mécanismes décrits ci-dessus pour garantir la sécurité des données des clients, qu’elles soient au repos ou en transit. Plus important encore, nous disposons de moyens de nous assurer que les clés sont sûres et sécurisées : les modules de sécurité matériels (HSM). Il s’agit de matériel cryptographique spécial conçu pour le stockage des clés cryptographiques. Il nous permet également de calculer les clés cryptographiques sur ces appareils plutôt que de simplement rester dans un fichier sur nos serveurs, ce qui constitue une couche de sécurité supplémentaire. Donc, la prochaine fois que vous disposez de données en masse, assurez-vous de les chiffrer, ou si vous communiquez avec quelqu’un par Internet au sujet d’informations confidentielles extrêmement sensibles, utilisez le chiffrement à clé publique pour vous assurer de le faire en toute sécurité et intégrité. Encore une fois, n’oubliez pas que la cryptographie sauve des vies !

Si vous aspirez à une carrière dans la cybersécurité et que vous souhaitez en savoir plus sur la cryptographie, je vous recommande vivement de suivre une formation approfondie sur la PKI et la cryptographie. Vous pouvez trouver d’excellentes ressources sur YouTube comme celles des chaînes Neso Academy et Pico Cetef (recherchez des concepts tels que le principe de Kerckhoffs) et lire l’ouvrage intitulé Serious Cryptography: A Practical Introduction to Modern Encryption pour une exploration plus approfondie du fonctionnement de la cryptographie computationnelle, des chiffrements par blocs par rapport aux chiffrements par flux, et plus encore. Cela vaut également la peine de jeter un œil à l’un des algorithmes de clé publique originels (bien que certains diraient qu’il s’agit d’un échange de clés symétriques utilisant une infrastructure asymétrique), l’échange de clés Diffie-Hellman.

La plupart des formations en cybersécurité proposent également des modules sur la communication sécurisée. La notion de stéganographie est également à retenir : elle signifie le fait de cacher un message à la vue de tous (on pourrait par exemple cacher toutes les œuvres de Shakespeare dans une illustration de chien). La stéganographie peut être l’ennemie de la prévention des pertes de données (DLP). Enfin, ma porte reste toujours ouverte, alors n’hésitez pas à m’envoyer un message sur LinkedIn si vous voulez en savoir plus, j’adorerais échanger avec vous !

Témoignages à découvrir