Ce terme, que vous avez sans aucun doute déjà entendu, peut tout à fait vous parler, comme totalement vous être incompréhensible !
Le chiffrement, ça a tout l'air d'être pour les geeks en manque d'adrénaline Eh bien, détrompez-vous... Même s'il est vrai qu'aujourd'hui il est très compliqué de comprendre aisément le sujet, nous allons tenter d'apporter un peu de clareté.
Pour commencer, voici la définition officielle du chiffrement :
"Opération qui consiste à transformer un message à transmettre, dit « message clair », en un autre message, inintelligible pour un tiers, dit « message chiffré », en vue d'assurer le secret de sa transmission." [1]
Nous l'avons déjà vu dans l'article sur l'hygiène numérique, l'idée même du chiffrement est extrêmement ancienne et consiste donc à rendre un message illisible pour ceux qui ne détiennent pas le secret.
Les historiens datent son apparition dès l'antiquité, rien que cela ! Nous pouvons par exemple penser aux grecs avec leurs Scytales, ou aux romains qui se sont amusés avec le "code de César", en passant par le 16è siècle où les français furent prolifiques en cryptologie (Blaise de Vigenère, Rossignol des Roches...). Jusqu'au plus récent équipement Enigma (Machine de Lorenz) utilisé par les allemands, lors de la seconde guerre mondiale.
Tous ces procédés ont en commun la cryptographie c'est à dire l'art de protéger un message.
Bien qu'ancienne, certains pans de la cryptographie moderne sont très récents : la cryptographie asymétrique par exemple a fait son apparition au 20è siècle. Le site techno-science.net propose des détails vulgarisés [2] intéressants sur la cryptographie moderne, que nous n'allons pas paraphraser dans cet article car ce n'en est pas le but. Egalement, nous ne rentrerons pas dans les considérations techniques liées à la cryptographie, sous peine de vous voir partir en courant ! Sauf si vous le demandez
Intéressons-nous plutôt à la présence du chiffrement dans nos usages quotidiens. Sans le remarquer, nous utilisons tous les jours du chiffrement. Par exemple vous utilisez sûrement votre navigateur pour accéder à votre banque : ici le chiffrement est assuré par l'utilisation de certificats dans votre navigateur. Niveau technique : on parle alors de reqûetes HTTP avec une couche de protection TLS.
Il existe plusieurs façons d'appliquer un chiffrement :
De manière générale, et afin de renforcer la sécurité des informations échangées lors de conversations personnelles, et par extension améliorer notre vie privée, l'utilisation du chiffrement est un avantage à ne pas négliger.
Afin de bien débuter, un petit point vocabulaire s'impose afin de faciliter l'entrée dans les concepts et leurs usages.
Déjà évoqué en introduction, la cryptographie est la discipline dont le but est de protéger la transmission de messages.
Loin de moi l'idée de donner un cours de grammaire, mais l'importance des mots et de leur sens a toute sa place; surtout lorsque le sujet évoqué est complexe.
Contrairement à ce qui est régulièrement évoqué lorsque certains tentent de vulgariser, dans la langue française, Chiffrer et Crypter n'ont pas le même sens :
Il est donc important de comprendre que la notion de "crypter" n'est pas utilisée en français, lorsque nous faisons de la cryptologie. En tout cas pas autant qu'en anglais; et il s'agit en français, soit d'un abus de langage, soit d'une anglicisation du terme "chiffrer" lorsque l'on parle de "
crypter" ou de "cryptage" (respectivement chiffrer et chiffrement, qui sont donc les termes corrects dans notre situation).
Un algorithme est une suite d'opérations permettant la résolution de problèmes.
Dans le cas du chiffrement (ou du déchiffrement), qui nous intéresse particulièrement ici, il s'agit de toutes les transformations du message à effectuer afin de le rendre illisible (chiffrement), ou afin de le rendre de nouveau lisible (déchiffrement).
Une clé de sécurité, souvent appelée par défaut de vulgarisation clé de chiffrement, est un paramètre donné en entrée d'un algorithme afin que celui-ci fournisse le résultat attendu en sortie. Il s'agit du fameux secret !
De l'anglais "End to End Encryption", pour chiffrement de bout-en-bout. Le chiffrement bout en bout décrit en fait la manière dont les données sont chiffrées entre émetteur et destinataire : dans ce cas, les données sont chiffrées avant qu'elles ne quittent l'appareil de l'émetteur et celles-ci ne peuvent être déchiffrées uniquement que sur l'appareil du destinataire, de sorte qu'aucun intermédiaire, y compris les fournisseurs de services, ne peut accéder à leur contenu.
On oppose ce procédé au chiffrement client-serveur, dont le ou les serveurs vont jouer les intermédiaires et déchiffrer la donnée, pour la chiffrer de nouveau puis la transmettre au destinatire. L'intermédiaire a donc un potentiel accès aux données en transit sur ses serveurs.
De façon schématique et très simplifié, voici comment nous pourrions décrire ces 2 procédés :
Mettons un émetteur Alice et un destinataire Bob :
Chiffrement client-serveur :
Chiffrement de bout-en-bout :
Attention E2EE n'est pas un standard de chiffrement.
Alors, non, nous n'allons pas vous faire un cours de cryptographie (en tout cas pas comme l'article sur PGP !), ni même discuter de choix cryptographiques, sinon vous risquez de décrocher, et nous souhaitons garder notre audience attentive !
L'objectif de cette partie est de vous présenter les algorithmes qui aujourd'hui sont recommandés du fait de leur robustesse reconnue contre les attaques.
Précisons qu'il s'agit là de l'état de l'art à 2022. Comme toute technologie, et encore plus en cryptographie, ceci est amené à évoluer (surtout avec l'apparition d'équipements quantiques). Il est donc important de prendre cet aspect en considération.
Lorsque nous devons appliquer un chiffrement, il nous est toujours demandé de choisir l'algorithme qui sera appliqué afin de pouvoir générer les clés de sécurité, pour ensuite dérouler toutes les procédures (de chiffrement) sur la/les donnée(s).
Le choix dans les algorithmes est important, car il va conditionner la rapidité d'exécution, la complexité et la robustesse du résultat de sortie. Et il est souvent difficile pour le néophyte de choisir le bon algorithme, quand bien même l'outil donnerait des explications sur ce-dit algorithme. Par ailleurs, certains algorithmes sont plutôt adaptés pour une partie spécifique d'un chiffrement, et d'autres pour d'autres aspects...
Voici donc, suivant les usages spécifiques, les choix que nous recommandons :
Chiffrement Fichier / Repertoire / Disque :
Sécurité navigateur internet (via HTTPS) :
Signature messages ou fichiers avec PGP/GPG :
Clés SSH :
ECH, et eSNI avant lui, sont 2 procédés imaginés afin de protéger les échanges durant une phase particulière du TLS : le "handshake" - ou l'initialisation d'une communication, dans laquelle certaines métadonnées sont échangées entre client et serveur (comme clé de sécurité, SNI, ALPN...). En particulier lors du tout premier message appelé "Client Hello", le plus critique :
La première façon de protéger ses informations de façon isolée consiste à appliquer un chiffrement sur des fichiers, voire des répertoires.
La CNIL propose un article sur le chiffrement de ces données, avec quelques tutoriels : comment chiffrer ses documents et ses repertoires
Nous recommandons principalement les outils suivants, basés sur des solutions de chiffrement de fichiers :
* AESCrypt Documentation
** EcryptFS Tutoriel
GnuPG avec Chiffrement à clé publique :
Mettons que vous avez un fichier mon-fichier.txt à chiffrer dans votre répertoire personnel ~/ et que l'ID de la clé 0xA6F76D3B09BC268A:
Entrez :
gpg --output ~/mon-fichier.txt.gpg --encrypt --recipient 0xA6F76D3B09BC268A ~/mon-fichier.txt
Puis faites :
ls
La sortie de commande vous donne :
[...]
-rw------- 1 toi toi 32 nov. 17 18:40 mon-fichier.txt
-rw------- 1 toi toi 629 nov. 17 18:36 mon-fichier.txt.gpg
[...]
Pour déchiffrer, voici la commande :
gpg --output ~/mon-fichier.txt --decrypt ~/mon-fichier.txt.gpg
GnuPG avec Chiffrement symétrique :
Entrez :
gpg --output ~/mon-fichier.txt.gpg --symmetric ~/mon-fichier.txt
Puis faites :
ls
La sortie de commande vous donne :
[...]
-rw------- 1 toi toi 32 nov. 17 18:40 mon-fichier.txt
-rw------- 1 toi toi 117 nov. 17 18:46 mon-fichier.txt.gpg
[...]
Pour déchiffrer, voici la commande :
gpg --output ~/mon-fichier.txt --decrypt ~/mon-fichier.txt.gpg
Il est possible de faire appel à un logiciel spécifique afin de chiffrer des données sur certains de vos Clouds propriétaires (Google Drive, OneDrive, Dropbox, iCloud drive, etc.) :
La documentation de Cryptomator est très explicite.
Enfin, 2 outils commencent à monter dans la communauté :
Attention : nous n'avons que très peu de recul sur ces outils, même s'ils utilisent les derniers algorithmes, robustes. Veillez à les utiliser en toute connaissance de cause.
Si vous estimez que chiffrer votre ou vos partition(s) est nécessaire, voire votre disque, nous recommandons 2 outils que vous connaissez probablement :
Les commandes qui suivent vont supprimer TOUTES vos données sur la partition que vous allez chiffrer. Vous perdrez TOUTES vos informations ! Il est donc crucial que vous fassiez une sauvegarde intégrale sur une source externe, comme un second disque dur ou un NAS, avant d'exécuter les commandes.
Afin de sauvegarder votre partition sur un disque dur externe, voici la commande que vous pouvez utiliser :
Nous sauvegardons ici la partition /dev/sda3, veillez à bien connaitre la partition que vous souhaitez sauvegarder, elle peut être différente...
dd if=/dev/sda3 of=/media/user/MONDISQUEEXTERNE status=progress
Passons maintenant à la protection de cette partition :
sudo apt install cryptsetup
cryptsetup --help
La sortie de cryptsetup
vous donne :
Clé compilée par défaut et paramètres de phrase secrète :
Taille max. fichier de clé : 8192 ko, longueur max. interactive de phrase secrète 512 (caractères)
PBKDF par défaut pour LUKS1 : pbkdf2, temps d'itération : 2000 (ms)
PBKDF par défaut pour LUKS2 : argon2id
Temps d'itération: 2000, Mémoire requise: 1048576 ko, Threads parallèles: 4
Paramètres de chiffrement compilés par défaut :
loop-AES: aes, Clé 256 bits
plain: aes-cbc-essiv:sha256, Clé: 256 bits, Hachage mot de passe: ripemd160
LUKS: aes-xts-plain64, Clé: 256 bits, Hachage en-tête LUKS: sha256, RNG: /dev/urandom
LUKS: La taille de clé par défaut en mode XTS (deux clés internes) sera doublée.
Bien, ici si l'on essaye de traduire :
Ce petit aperçu nous donne une piste quant à l'utilisation de LUKS1 ou LUKS2, bien sûr vous l'aurez compris, nous utiliserons LUKS2. Ce qui tombe bien, à priori, puisque LUKS2 est utilisé par défaut...
Passons maintenant de la théorie à la pratique : vous trouverez un tutoriel très bien détaillé ici. Veillez à respecter scrupuleusement les indications !
Pour synthétiser, vous l'aurez sûrement compris : afin de chiffrer vos partitions ou votre disque complet sur GNU/Linux, préférez LUKS, sur d'autres systèmes d'exploitation, VeraCrypt sera la solution.
Lorsque nous allons chiffrer un fichier avec un mot de passe, il va nous falloir nous demander comment allons-nous transmettre ce mot de passe à notre interlocuteur afin qu'il puisse déchiffrer le fichier ?
Plutôt compliqué, le risque étant que ce mot de passe puisse être intercepté, et en toute honnêteté ceci peut se produire aujourd'hui plutôt facilement si aucune mesure de sécurité n'est appliquée (nous ne vous faisons fais pas un dessin, vous avez sûrement vu ou entendu parler de ce genre de choses, vu que vous lisez cet article !).
Alors oui, aujourd'hui tout le monde envoie ses mots de passe par courriel ou messagerie, y compris et surtout par messagerie non chiffrée (ouch!). Et ça n'a que peu d'incidence, et c'est surtout par simplicité d'usage et par... fainéantise !
Il est donc recommandé, autant que faire se peut, d'abandonner ces techniques d'envoi "en clair", et d'adopter des pratiques plus respectueuses de votre vie privée... Et aussi de la vie privée de vos interlocuteurs, qui peuvent être votre famille en premier lieu !
Ainsi, le chiffrement n'est pas spécifiquement utilisé pour des données stockées, mais peut également être utilisé pour des données en transit sur internet. Généralement, il s'agira de créer un tunnel sécurisé : ici plutôt que d'appliquer le chiffrement à la donnée, il s'agira d'appliquer la couche de confidentialité au canal lui-même. Ainsi chaque information en transit à l'intérieur de ce canal 'sécurisé' sera protégé, même si aucun chiffrement n'aura été appliqué au préalable à la donnée.
Bien sûr, un canal sécurisé n'appliquera pas qu'une protection liée à la confidentialité (chiffrement), mais aussi une protection liée à l'intégrité, et une façon d'authentifier les échanges.
Cela dit, cet article ne traite que du chiffrement, voilà pourquoi nous ne parlons ici que de cet aspect (sauf exception explicitement mentionnée).
Il y a plusieurs avantages à l'utilisation d'un canal chiffré : dans un premier temps, nous réduisons les opérations à effectuer sur les données, ce qui de plus réduit le risque de corruption involontaire (moins d'opération d'écriture). Ensuite, dans certaines circonstances, cela simplifie également pour l'utilisateur les actions à effectuer.
Nous vous l'accordons, c'est un peu complexe à appréhender comme cela, mais retenez ceci :
Voyons voir...
Pour les plus techniques d'entre vous, vous aurez sûrement entendu parler, il y a quelques années, des décisions autour du renforcement de la sécurité concernant la navigation sur internet, au travers notamment du HTTP-S[4].
Aujourd'hui la majorité des sites déploient une sécurisation des échanges entre leurs serveurs et nous mêmes. Mais ce ne fut pas le cas il y a encore 6 ans ! C'est donc encore tout à fait récent...
Techniquement, il s'agit de l'utilisation du TLS (SSL pour les anciens !) : mécanisme qui ouvre un canal sécurisé entre votre navigateur internet et le serveur du site visité, à l'aide de certificats numériques (délivrés par des autorités tierces, à l'issue du processus de certification). De sorte que vos échanges soient chiffrés, hormis quelques métadonnées qui restent en clair (adresse IP, etc.).
C'est déjà un bon début, surtout lorsque vous consultez votre banque ou vos compagnies d'assurance.
Il est donc fortement recommandé de forcer le HTTPS dans votre navigateur internet ou d'installer une extension comme HTTPS Everywhere / HTTPS Partout (nous vous renvoyons à l'article sur les navigateurs) : si un site s'avère être resté en HTTP (bouh pas bien !!), vous serez alors averti et ce sera à vous de prendre la décision de le consulter ou non. En se basant sur la confiance que vous faites à ce site, et connaissant donc le risque potentiel de communiquer avec ce site totalement en clair !
Voici un exemple de l'avertissement en question :
Exemple pour forcer le HTTPS sur votre navigateur web (exemples respectivement pour Firefox et Chromium):
Ah le très fameux et très ancien courriel, très souvent appelé e-mail par anglicisme, pour 'electronic mail' (courrier électronique). Si vous avez lu l'article sur l'hygiène numérique, vous avez sans doute compris que nous ne portons pas forcément dans notre coeur le courriel.
En effet, bien qu'ancien, rien n'est fait aujourd'hui pour renforcer la sécurité autour de ce type de messages, ou si peu... En effet, il s'avère que l'avènement des messageries a porté un coup dur aux courriels. Néanmoins, ceux-ci sont tout de même encore beaucoup utilisés (surtout en entreprise, mais ce n'est pas notre sujet ici !), et malheureusement encore trop souvent non (assez) sécurisé. Ce qui porte la confidentialité des échanges à néant.
Il y a quelques années, l'histoire autour d'Edward Snowden a quelque peu changé les choses ; PGP a été mis en lumière et il s'avère qu'aujourd'hui, ce mécanisme est de plus en plus utilisé pour protéger les communications par courriels. Beaucoup d'outils (en ligne ou hors ligne) implémentent une façon d'utiliser des clés PGP simplement.
Faisons un point sur les outils courriels actuels permettant d'utiliser PGP, afin de chiffrer nos courriels.
Bien que cet article traite du chiffrement, nous ajouterons exceptionnellement le côté signature car généralement ces 2 aspects se font de concert dans les échanges.
On peut tout de même transmettre un courriel uniquement chiffré, sans signature, mais dans ce cas impossible pour le destinataire de confirmer l'émetteur et l'authenticité du message !
Pour terminer autour des fournisseurs, vous voyez qu'il est possible de protéger vos échanges facilement. En revanche, point très important, ceci n'est conseillé que pour les personnes qui ne sont pas exposées et peuvent avoir une pleine confiance dans ces fournisseurs. Notez enfin que vous pouvez générer vous même une bi-clé sur votre machine (cf. utilisation de PGP) puis la transférer sur votre compte ProtonMail (Tutanota ne le permet pas) ; cepandant nous ne recommandons pas du tout cette façon de faire (tout comme d'ailleurs ProtonMail) car vous devrez transférer votre clé privée... ce qui est contraire aux bonnes pratiques en terme d'hygiène numerique. Protonmail ne peut certifier que le transfert se fasse d'une façon assez sécurisée et assez robuste pour garantir que la clé privée ne soit pas compromise ! A oublier donc...
Nous ne répèterons jamais assez que la sécurité malheureusement aujourd'hui vient avec quelques contraintes dans l'utilisation des outils : il y aura toujours un choix à faire entre niveau de sécurité et facilité d'utilisation.
Une seconde possibilité vous est offerte si vous souhaitez toujours utiliser vos messageries habituelles, consultables via votre navigateur internet (client webmail) : Gmail, Outlook, Yahoo, Mailbox... Bon ce n'est pas ce que l'on vous recommande, mais si votre modèle de menaces vous impose une protection de vos échanges courriel sans toutefois être critique, graĉe à des extensions de navigateur, vous allez pouvoir chiffrer et signer vos courriels via PGP d'une manière assez simple.
keyserver.ubuntu.com
). Nous vous renvoyons ici à l'article sur PGP, afin de savoir ce que vous devez faire car ceci n'est pas sans conséquence,Bien entendu, votre interlocuteur devra effectuer les mêmes actions avec son client webmail, bien qu'ici il puisse utiliser un autre que le vôtre.
Afin d'envoyer un courriel via Gmail : vous verrez maintenant apparaitre une icone Mailvelope à côté du bouton "Nouveau Message". Cliquez sur ce bouton, celui-ci ouvre l'extension et vous demande de vous connecter avec votre compte Google. Vous pourrez ensuite rédiger votre courriel dans la fenêtre Mailvelope, qui vous montrera les personnes avec qui vous pourrez protéger vos échanges, ces personnes vous ayant transmis leur clé publique.
Une petite particularité ici est de ne pas mettre d'information sensible dans l'objet du message. En effet, celui-ci n'est pas chiffré, donc pensez à rester vague.
Pour terminer sur mailvelope, deux points importants :
Terminons par la solution la plus indiquée pour ceux qui ont besoin d'une sécurité maximale dans leurs échanges courriel. Il est possible ici d'utiliser un gestionnaire de courriel indépendant et gérer entièrement les clés utilisées pour protéger vos échanges, sans devoir passer par des tiers. Vous maitrisez donc toute la chaine de confiance, ce qui est idéal.
Cette solution nécessite néanmoins un compte courriel capable de pouvoir être géré par un client externe ; par exemple, Gmail le permet via IMAP ou POP, mais Protonmail ne le permet pas. Alors attention ici cela reste un exemple car avec une utilisation de Gmail, ayez bien en tête que quand bien même vous protégeriez vos échanges, les informations seraient tout de même en transit sur les serveurs de Google (collecte des métadonnées) ! Donc bien entendu, nous ne recommandons pas cette solution. Il y d'autres façons de trouver un fournisseur voire d'auto-héberger son propre serveur courriel.
Nous ne traiterons ici que d'un outil, qui est le plus connu des clients courriel sur GNU/Linux : Thunderbird. Il s'agit de l'outil le plus pratique afin de configurer PGP du fait de son intégration : avant le version 78, une extension était nécessaire afin d'intégrer PGP à Thunderbird, Enigmail [5]. C'est aujourd'hui de l'histoire ancienne, PGP étant complètement intégré au logiciel. Enigmail reste cela dit disponible pour la rétro compatibilité.
L'idée dans cet outil sera de :
Vous trouverez ici un tutoriel intéressant et bien documenté.
Bien que PGP soit de plus en plus utilisé pour les courriels, il est tout à fait possible d'utiliser des alternatives via d'autres outils de gestions de clés asymétriques. Nous vous avons donné 2 logiciels dans la partie chiffrement, qui sont ici indiqués comme alternatives à PGP (ou GnuPG) :
L'un comme l'autre sont des alternatives crédibles à PGP.
Pour Kryptor, ce sera vraisemblablement plus simple de générer et gérer une paire ou deux paires de clés (1 pour le chiffrement/déchiffrement et 1 seconde pour les signatures, afin de respecter les bonnes pratiques en cryptographie !), car il n'y aura qu'un seul gestionnaire de clés. Quand à Age + Minisign, deux gestionnaires de clés seront à gérer, même si Minisign propose des algorithmes à la pointe (ed25519 et blake2) et est plutôt rapide et simple.
Un article dédié est déjà publié, et vous présente les solutions les plus respectueuses de votre vie privée et les plus sécurisées aujorud'hui. Je vous y renvois donc : les messageries.
Simplement, discutons ici chiffrement dans ce cas de figure :
Lorsque vous utilisez une application de messagerie aujourd'hui, centralisée et grand public (hors modèle pair à pair donc), il est souvent mis en avant le fait que celles-ci vous proposent un chiffrement bout-en-bout (E2EE), mais ce n'est pas si simple... Sur le même principe que Protonmail (ou d'autres fournisseurs de services courriels d'ailleurs), une majorité des messageries génèrent elles-mêmes les clés de chiffrement et les gèrent pour vous afin que tout soit transparent. Néanmoins, cela implique plusieurs choses qui peuvent déranger :
Concernant les modèles pair à pair ou décentralisé, ces inconvénients n'existent pas : car il n'y a pas de tierces parties entre émetteur et destinataire qui gèrent vos clés, ou en tout cas elles ne gèrent pas ces clés pour vous.
Pour le reste, nous vous renvoyons vers l'article dédié.
Avec tous les mots de passe que vous avez vu passer, il est évident que vous ne pourrez retenir la totalité de vos mots de passe. Certains outils très pratiques ont été créé pour cela.
Nous avons rédigé un article dédié à ce sujet les gestionnaires de mots de passe.
Le point chiffrement sera rapide ici : il s'agit de créer une base de donnée qui sera chiffrée grâce à du chiffrement symétrique via des algorithmes très robustes (AES mais aussi d'autres, cf. partie algorithme), protégés donc par mot de passe. Bien évidemment ici, un mot de passe très fort sera choisi afin de résister à différentes attaques (brute force, etc.).
Ici le point important est de ne pas se fier à des outils qui proposent des services en ligne mais bien de générer vous même votre base de données de mots de passe, la stocker chez vous à 2 ou 3 endroits au maximum et ne jamais la transférer par internet ! Malheureusement peu d'outil respectent ces exigences, comme mentionné dans l'article sur les gestionnaires de mots de passe.
Nous en avons terminé, vous êtes maintenant censé être un expert en chiffrement !
Bravo, toutes nos félicitations !
Plus sérieusement, vous aurez ici toutes les informations nécessaires pour prendre vos décisions quant à l'utilisation du chiffrement dans votre vie numérique de tous les jours.
Par Ayo
Chiffrement, Larousse ↩︎
Pop!OS 22.04 et chiffrement partition. ↩︎
S pour Secure dans HTTPS. ↩︎