Chiffrement

Cette note me permet de consigner ce que j'ai appris à propos des techniques de chiffrement.

Qu'est-ce que le chiffrement de bout en bout ?

Le chiffrement de bout en bout, ou end-to-end encryption (E2EE) en anglais, est une méthode de sécurisation des communications. Cela peut concerner des messages instantannés (Signal, SimpleX Chat, Session, etc.), des courriels (Proton Mail, Tutanota, etc.), des fichiers dans un service de stockage en ligne (Proton Drive, Tresorit, etc.), des notes synchronisées avec un serveur (Standard Notes, Notesnook, etc.), etc.

Avec l'E2EE, seuls les personnes qui possèdent les clefs de déchiffrement peuvent lire les informations contenus dans ces échanges. Ces échanges peuvent être entre deux humains ou plus (comme dans le cas de Signal ou Proton Mail) ou entre un utilisateur humain et un serveur (comme dans le cas de Proton Drive ou Standard Notes).

On peut également différencier ces deux cas en parlant de :

  • Chiffrement de bout en bout pour les communications entre deux utilisateurs ou plus
  • Chiffrement côté client (client-side encryption) pour les communications entre un utilisateur et un serveur

En pratique, le terme chiffrement de bout en bout est également utilisé à la place de chiffrement côté client.

Chiffrement de bout en bout entre deux utilisateurs ou plus

Dans le cas d'échange entre des personnes, chaque utilisateur possède une clef de déchiffrement, ce qui lui permettra de lire le contenu des messages, courriels ou fichiers. Personne d'autre ne peut lire les informations, pas même le fournisseur du service.

Selon Wikipédia :

En principe, il empêche l'écoute électronique, y compris par les fournisseurs de télécommunications, par les fournisseurs d'accès Internet et même par le fournisseur du service de communication. Avec le chiffrement de bout en bout, personne n'est en mesure d'accéder aux clés cryptographiques nécessaires pour déchiffrer la conversation.

Les systèmes de chiffrement de bout en bout sont conçus pour résister à toute tentative de surveillance ou de falsification, car aucun tiers ne peut déchiffrer les données communiquées ou stockées. En particulier, les entreprises qui offrent un service de chiffrement de bout en bout sont incapables de remettre une version déchiffrée des messages de leurs clients aux autorités.

Chiffrement côté client

Quand l'utilisateur utilise un service nécessitant l'utilisation de serveurs distants, le chiffrement de bout en bout fonctionne de sorte à ce que le contenu est chiffré en local sur l'appareil de l'utilisateur, avant d'être envoyé aux serveurs. Les clefs de chiffrement et de déchiffrement ne sont alors connues que de l'utilisateur et sont stockées localement. Les serveurs et les fournisseurs de ces services ne peuvent alors en aucun cas lire les informations envoyées par l'utilisateur. En anglais, on peut également parler de zero-knowledge service (ou service/application à connaissance zéro), puisque le service fonctionne sans jamais avoir connaissance des contenus des utilisateurs.

Selon Wikipédia :

Le chiffrement côté client utilise une clé de chiffrement qui n'est pas disponible au fournisseur de services, ce qui rend impossible pour le fournisseur de déchiffrer les données hébergées. Le chiffrement côté client permet la création d'applications à connaissance zéro dont les fournisseurs ne peuvent pas accéder aux données stockées par leurs utilisateurs, offrant ainsi un haut niveau de confidentialité.

Le chiffrement côté client est une stratégie de sécurité des données exceptionnellement robuste. En éliminant la possibilité que les fournisseurs de services (ou les tiers qui peuvent contraindre les fournisseurs de services à fournir l'accès aux données) puissent consulter les données, le chiffrement côté client assure que les données stockées dans le nuage ne peuvent être visualisées que du côté client. Cela empêche la perte de données et la divulgation non autorisée de fichiers personnels ou privés, offrant une plus grande tranquillité d'esprit à la fois pour les utilisateurs personnels et les utilisateurs professionnels.

La plupart des services chiffrent les données lors du transit entre l'appareil de l'utilisateur (le client) et le serveur (chiffrement en transit ou encryption in transit). Mais ces données sont ensuite déchiffrées une fois arrivées sur le serveur, pour être lues par ce dernier (que ce soit par nécessité pour assurer le service proposé ou pour d'autres raisons plus obscures (ciblage de la publicité par exemple)) puis rechiffrées avant d'être stockées (chiffrement au repos ou encryption at rest). Dans ce cas, le serveur connaît et conserve les clefs de chiffrement et déchiffrement.

Les grandes catégories de la cryptographie

Le chiffrement peut être effectué de multiples façons, qui peuvent être classées dans 2 catégories distinctes :

  • La cryptographie symétrique ou cryptographie à clef secrète (symmetric-key cryptography en anglais)
  • La cryptographie asymétrique ou cryptographie à clef publique (public-key cryptography en anglais)

La cryptographie hybride est un système qui va combiner ces deux grandes catégories ensemble afin de bénéficier de leurs avantages.

Cryptographie symétrique

Cette catégorie de chiffrement repose sur l'utilisation d'une seule clef, qui sert à la fois :

  • pour le chiffrement du texte en clair en texte chiffré
  • et pour le déchiffrement de ce texte chiffré en texte clair

Cela signifie donc que la clef doit être communiquée en secret entre les parties communiquantes, via un canal différent de celui utilisé pour transmettre le texte chiffré.

Cryptographie asymétrique

Le chiffrement asymétrique repose sur l'utilisation de deux clefs :

  • La clef publique permet le chiffrement du texte
    • Le destinataire partage cette clef librement aux personnes qui souhaitent communiquer avec lui
  • La clef privée permet de déchiffrer ce qui a été chiffré grâce à la clef publique
    • Cette clef est connue uniquement par le destinataire

La clef publique ne permet en aucun cas de déchiffrer le texte qui a été chiffré grâce à elle-même. La clef privée ne peut pas être trouvée ou calculée à partir de la clef publique.

L'inconvénient de ces techniques asymétriques est qu'elles sont beaucoup plus lentes à chiffrer et déchiffrer et que la taille des fichiers chiffrés est beaucoup plus grande.

Signature numérique

Pour prouver l'identité d'un expéditeur, celui-ci peut envoyer un message qui sera signé via sa clef privée (tout ou partie du texte sera alors chiffré par la clef privée). Grâce à la clef publique de l'expéditeur, les personnes pourront alors déchiffrer cette signature et ainsi s'assurer que le texte a bien été chiffré par l'expéditeur, seul à posséder la clef privée.

Cryptographie hybride

Vu que les système de chiffrement asymétrique demande beaucoup plus de calcul que les systèmes symétriques, il est possible de mélanger les deux. La façon la plus simple pour cela est d'utiliser un jeu de clefs asymétriques (publique/privée) afin de chiffrer et communiquer une clef symmétrique, qui à son tour permettra de chiffrer et déchiffrer le contenu à protéger.

Références

En anglais

Wikipedia

Autres

En français

Wikipédia


You'll only receive email when they publish something new.

More from Raphaël
All posts