Introduction au chiffrement symétrique et asymétrique

Objectifs

  • Découvrir le chiffrement symétrique ;

  • Découvrir le chiffrement asymétrique ;

  • Connaître des technologies utilisant un chiffrement asymétrique.

Contexte

Durée : 2h

Environnement de travail : Linux en ligne de commande

Pré-requis : Aucun

Le chiffrement est une technique qui permet de garantir la confidentialité et l'origine des informations électroniques échangées ou stockées.

Pour garantir la confidentialité d'une information on applique un code qui rend le message incompréhensible tant que l'on ne connaît pas la manière de décoder. On appelle clé l'information qui permet de coder et de décoder.

Le chiffrement est aussi une façon de signer des informations afin de garantir qu'on en est l'émetteur.

L'usage du chiffrement s'est fortement développé ces dernières années notamment sur le Web avec la diffusion du protocole HTTPS. La multiplication des fuites de données et le développement de la cybercriminalité en sont une première cause.

Les révélations d'Edward Snowden en 2013 ont également montré que les états et les grandes entreprises espionnaient les échanges sur Internet. Le chiffrement est donc également un outil pour préserver l'intimité de chacun en ligne.

Découverte du chiffrement

FondamentalProcessus de transmission d'un message chiffré

Fondamental

Le chiffrement est un procédé cryptographique permettant de coder un message de telle façon que sa lecture ne soit possible que par le seul possesseur de la clé de déchiffrement

ExempleLe chiffre de César

Chiffre de César

Appliquer la notion

Décrypter le message suivant, chiffré par décalage  :

nc ocejkpg gpkioc pgvckv rcu ugewtkugg

On ne connaît pas la clé, mais on sait que le premier mot est la.

On peut calculer le décalage à partir de notre connaissance du premier mot : il correspond à la différence de position entre les lettres n et l, ou c et a.

Le décalage était 2 et le message : « La machine Enigma n'était pas sécurisée »

Chiffrement symétrique

DéfinitionLe chiffrement symétrique

ExempleSchéma d'utilisation classique

Bob souhaite chiffrer son disque dur pour qu'il soit le seul à pouvoir accéder à ses fichiers.

  1. Lors de l'installation de son système d'exploitation Bob décide de chiffrer son disque dur, il choisit un mot de passe P.

  2. La totalité du disque est chiffré avec une clé K générée par le système, cette clé est stockée sur le disque dur.

  3. La clé K est à son tour chiffrée grâce au mot de passe P (elle ne doit pas être accessible en clair sur le disque).

  4. À chaque déverrouillage de son ordinateur Bob entre le mot de passe qui permet de déchiffrer la clé K ; elle est alors chargée en mémoire afin d'être disponible rapidement.

  5. À chaque fois qu'un fichier est accédé en lecture il est déchiffré avec K ; à chaque accès en écriture il est chiffré avec K.

Ainsi, Bob est certain que tant que son mot de passe reste secret, ses données sont sécurisées même si quelqu'un accède au disque de son ordinateur.

Appliquer la notion

Le fichier aes.priv contient une clé AES utilisée pour le chiffrement de fichiers.

Enregistrer le fichier.

Le fichier secret_data.enc a été chiffré avec la clé aes.priv.

Enregistrer le fichier.

À l'aide d'un terminal ou d'un Repl Bash retrouver le contenu du message grâce à la commande openssl.

Le message a été chiffré OpenSSL. Le paramètre iter vaut 10000.

On utilise la commande :

openssl aes-256-cbc -pbkdf2 -iter 10000 -d -in secret_data.enc -out msg.txt -pass file:aes.priv

Le message est : « En savoir plus grâce à 'An Introduction to Number Theory with Cryptography' par J. Kraft et L. Washington »

Chiffrement asymétrique

DéfinitionLe chiffrement asymétrique

Fondamental

  • N'importe qui pourra utiliser la clé publique d'une personne pour lui envoyer un message (cette clé publique est connue de tous).

  • Ce message ne sera déchiffrable qu'avec la clé privée de cette même personne (qui n'est détenue que par elle-même).

ExempleSchéma d'utilisation classique

Bob veut envoyer un message à Alice :

  1. La clé publique d'Alice est disponible sur un site web.

  2. Bob la récupère et chiffre son message grâce à cette clé.

  3. Bob envoie le message chiffré à Alice.

  4. Alice reçoit puis déchiffre le message grâce à sa clé privée.

Appliquer la notion

Les fichiers public.pem et private.pem contiennent respectivement des clés publique et privée RSA.

Enregistrer le fichier public.pem.

Le fichier msg.enc ci-dessous a été chiffré avec la clé privée. Le mot de passe qui protège la clé privée est test (ne refaites pas ça chez vous !)

Enregistrer le fichier msg.enc.

Trouver le contenu du message.

On utilisera une commande de la forme :

openssl rsautl -decrypt -inkey cle_privée -in message_chiffré.enc -out message_en_clair.txt 

On peut utiliser cat pour afficher le contenu d'un fichier.

On peut utiliser la commande suivante pour déchiffrer.

openssl rsautl -decrypt -inkey private.pem -in msg.enc -out message_en_clair.txt 

Puis avec cat pour voir le contenu du message :

cat message_en_clair.txt

Qui est :

Bravo H4ck3rm4n

OpenPGP et GnuPG

Objectifs

  • Découvrir le standard OpenPGP ;

  • Savoir utiliser GnuPG.

Mise en situation

Il existe de nombreux algorithmes de chiffrement avec pour chacun des utilisations ciblées : échange d'informations et signatures typiquement. Pour faciliter les communications, il est nécessaire d'utiliser des standards assurant un bon niveau de sécurité, c'est à dire qui garantissent que le décryptage est difficile.

Parmi les nombreux standards existants pour les protocoles cryptographiques, l'un est devenu très répandu : OpenPGP.

Le logiciel GnuPG ou GPG (pour GNU Privacy Guard) est une implémentation libre du standard OpenPGP. Ce logiciel réputé très robuste est largement utilisé sur tous les systèmes d'exploitation actuels.

FondamentalOpenPGP

OpenPGP est un format de cryptographie permettant de standardiser messages, chiffrement et signatures. Ce système cryptographique est dit « hybride » car il a recours à la fois à de la cryptographie symétrique et à de la cryptographie asymétrique.

À la manière des chiffrements uniquement asymétriques, l'OpenPGP demande l'utilisation d'une clé publique et d'une clé privée (qui sera protégée par une phrase de passe). Ainsi, le fonctionnement extérieur de l'OpenPGP ressemblera de très près aux protocoles asymétriques bien qu'il y ait des recours à de la cryptographie symétrique.

ComplémentOrigine du standard

Le nom de ce standard vient du logiciel PGP (Pretty Good Privacy) qui était l'outil historique d'échange sécurisé de données. Il a été développé au début des années 90 par P. Zimmermann. Aujourd'hui la société a été rachetée et de plus en plus de monde se tourne vers l'alternative libre Gnu Privacy Guard (aussi nommé GnuPG ou GPG).

Utilisations classiques d'OpenPGP

Il y a trois utilisations très répandues d'OpenPGP :

  • Envoi sécurisé de documents ou de messages : il permet de chiffrer des messages ou des fichiers quelconques.

  • Signature : il peut produire des signatures permettant de vérifier l'identité de l'expéditeur. La signature est vérifiée par le destinataire grâce à la clé publique.

  • Vérification de documents : il permet de vérifier que le document qui vient d'être téléchargé était bien celui prévu. Cette pratique est répandue pour le téléchargement de logiciels afin de s'assurer qu'un attaquant n'a pas altéré ou modifié le fichier prévu initialement.

MéthodeGénérer ses propres clés GPG

Pour générer une paire de clés avec GnuPG, il suffit de lancer la commande ci-dessous. Après avoir entré cette commande, le nom et l'adresse e-mail de la personne sont demandés. Il est également conseillé de choisir un mot de passe très sécurisé.

gpg --generate-key

Vous allez être redirigé sur un utilitaire qui va vous permettre de créer la paire de clef. Il faut saisir prénom nom et une adresse e-mail. Une phrase de passe pour la clé privée sera aussi demandée. Vous obtiendrez une sortie similaire à cela :

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 44E6F43C654279CF marked as ultimately trusted
gpg: directory '/home/john/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as
'/home/john/.gnupg/openpgp-revocs.d/DA27A19AE74135DEB4BF30B144E6F43C654279CF.rev'
public and secret key created and signed.
pub   rsa4096 2020-04-28 [SC] [expires: 2020-04-29]
      DA27A19AE74135DEB4BF30B144E6F43C654279CF
      uid                      John Smith <john@smith.xyz>
      sub   rsa4096 2020-04-28 [E] [expires: 2020-04-29]

La paire de clé publique et privée ainsi qu'un certificat de révocation ont ici été générés.

ExempleExemple de clé publique

Chaque clé publique a un identifiant (une version raccourcie de la clé) qui permettra de simplement rechercher des clés sur des serveurs de clés. Dans l'exemple précédent, il s'agit de :

DA27A19AE74135DEB4BF30B144E6F43C654279CF

MéthodeChiffrer et déchiffrer

Pour chiffrer et déchiffrer un message, il est nécessaire d'utiliser les commandes ci-dessous. Il est possible tester ces commandes dans la console d'un repl Bash. Pour chiffrer, on spécifie l'adresse mail de la clef publique du destinataire (recipient) du message message.txt.

gpg --output msg.txt.gpg --encrypt --recipient paul@blabla.bla message.txt

Pour déchiffrer, on utilise :

gpg --output message.txt --decrypt msg.txt.gpg

Ici, la clé par défaut de l'utilisateur sera utilisée pour déchiffrer.

ComplémentRévoquer sa clé

Il peut arriver qu'une clé privée fuite. Ainsi, la sécurité et l'identité du propriétaire peuvent être atteintes. Un attaquant pourra utiliser la clé pour déchiffrer les documents ou même pour usurper l'identité en signant des mails trompeurs grâce à cette clé privée.

Pour éviter cela, le propriétaire de la clé pourra générer, grâce à sa clé privée, un certificat de révocation qu'il transmettra à ses contacts. Ce certificat est une sorte de preuve cryptographique que la clé n'est plus d'actualité. Ainsi, un attaquant ne pourra plus se servir de la clé privée.

Dans l'exemple de génération donné plus haut, le certificat de révocation a été créé et enregistré dans le fichier :

'/home/john/.gnupg/openpgp-revocs.d/DA27A19AE74135DEB4BF30B144E6F43C654279CF.rev'

À retenir

  • OpenPGP permet de sécuriser et certifier ses communications.

  • GnuPG est un outil très simple permettant de générer, gérer et utiliser des clés OpenPGP.

Appliquer la notion

Nous allons manipuler des clés GPG sur un repl Bash.

Générer une paire de clés pour un utilisateur « John Smith » d'adresse e-mail john@smith.xyz.

On utilise :

gpg --generate-key

On entre les informations et on choisit une phrase de passe suffisamment grande.

Créer un fichier message.txt de contenu :

Message secret

Et le chiffrer pour vous même avec gpg en un fichier msg.txt.gpg.

On utilisera une commande de la forme.

gpg --output fichier_chiffré --encrypt --recipient addresse_email fichier_à_chiffrer

On utilise :

gpg --output msg.txt.gpg --encrypt --recipient john@smith.xyz message.txt

Faire une copie de ce fichier nommée copy.txt.gpg et changer quelques octets dans la copie.

On pourra utiliser la commande cp.

cp msg.txt.gpg copy.txt.gpg
nano copy.txt.gpg

Le fichier étant chiffré, dans l'éditeur de texte, il y aura des caractères illisibles. Il suffit de supprimer un ou deux caractères au milieu du fichier pour l'altérer.

Déchiffrer le fichier original msg.txt.gpg et le fichier altéré copy.txt.gpg.

Que se passe-t-il dans le cas du fichier altéré ?

On déchiffre ainsi le premier fichier :

gpg --output message_dechiffre.txt --decrypt msg.txt.gpg

Le contenu est identique au contenu du fichier original message.txt.

Pour la copie altérée, le déchiffrement est impossible.

gpg --output copy.txt --decrypt copy.txt.gpg
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: Unknown system error

Dans le cas où l'altération (légère) est réalisée en début ou en fin de fichier, il est possible que le déchiffrement reste réalisable car seul l'entête ou la signature est légèrement touchée

Signer ses mails

Objectifs

  • Comprendre ce qu'est une signature au sens OpenPGP ;

  • Savoir signer ses mails.

Mise en situation

Dans le cadre de communications électroniques, la confidentialité du message n'est pas le seul élément important. Il est également nécessaire de pouvoir être certain de l'identité de la personne qui nous envoie le message.

Les attaques par hameçonnage consistent typiquement à se faire passer pour une personne de confiance, afin de recueillir des informations confidentielles, comme par exemple un mot de passe.

La cryptographie asymétrique est également utilisable pour signer des messages.

On utilise dans ce cas sa clé privée pour chiffrer une signature qui est diffusée en même temps que le message. N'importe qui disposant de la clé publique peut déchiffrer la signature et ainsi vérifier que le message a bien été signé par le détenteur de la clé privée correspondante. On note donc que les clés privées et publiques peuvent être utilisées toutes deux pour chiffrer et pour déchiffrer.

OpenPGP et GnuPG permettent également de gérer les signatures.

Il est possible par exemple d'utiliser GnuPG avec un logiciel de mail, comme Thunderbird, pour envoyer des messages chiffrés et signés.

FondamentalSignature grâce à GPG

La signature consiste à chiffrer (avec la clé privée) le condensat du message et de joindre ce cryptogramme au message à envoyer. Le destinataire n'aura qu'à déchiffrer la signature avec la clé publique pour bien vérifier que le message a été envoyé par le propriétaire de la clé privée. Cette identification du signataire est permise car le chiffrement asymétrique garantit qu'il n'existe qu'une clé publique pouvant déchiffrer un message de la clé privée (et l'inverse est également vrai).

Dans le même temps, la signature garantit l'intégrité du message : le condensat du message reçu est comparé avec le condensat chiffré (signature). Si les deux condensats sont différents, le message a été altéré en chemin et on ne peut pas lui faire confiance.

ConseilUtilité

Signer un mail permet d'assurer son identité à ses interlocuteurs. Si ces interlocuteurs signent également leur mails, cela permet d'éviter à coup sûr des tentatives d'hameçonnage. Ceci est complémentaire de l'usage de mails au contenu chiffré.

MéthodeSigner manuellement

Voici comment signer un message :

# sig.asc est le fichier contenant la signature
gpg --detach-sign -o sig.asc msg.txt

Voici comment vérifier la signature d'un message :

gpg --verify sig.asc msg.txt

Si la signature est correcte et que le message n'a pas été modifié, on obtiendra un message similaire à :

gpg: Signature made Fri 15 May 2020 04:10:56 PM CEST
gpg:                using RSA key CC15797D1FFEB346F5A87AFE0547178FEEDE7D6B
gpg: Good signature from "Quentin Duchemin <quentinduchemin@tuta.io>" [ultimate]

MéthodeEnigmail

Enigmail est un add-on du client mail Thunderbird. Avec cet add-on, il est possible de générer et gérer ses clés directement avec l'interface graphique. Cet outil a également une mise en place pour débutants qui facilite une première utilisation de clés GPG. Voici le guide pour installer et mettre en place Enigmail : https://enigmail.net/index.php/en/user-manual/quick-start.

Une fois l'add-on bien configuré, lors de chaque envoi de mail, il suffira d'appuyer sur un simple bouton pour chiffrer ou signer le message. Pour chiffrer, il est nécessaire de posséder la clé publique du destinataire.

À chaque réception d'un mail, si Enigmail trouve une clé publique correspondant à l'adresse mail de l'expéditeur, la signature GPG sera automatiquement vérifiée.

Attention

Les versions les plus récentes de Thunderbird (supérieures à la version 78) intègrent directement la gestion de OpenPGP, sans avoir besoin d'installer Enigmail. Le fonctionnement reste très similaire à celui de l'extension.

ComplémentPublier sa clé publique

Pour faciliter les échanges de clés publiques, il est possible de les publier sur des serveurs de clés qui centralisent un grand nombre de clés publiques. Par exemple, celui du MIT est très utilisé : https://pgp.mit.edu/. Si une clé doit être retirée, il est également possible d'envoyer le certificat de révocation à ce type de serveur.

Ces serveurs de clés sont un des moyens (avec le système de certification de clés) qui permet de s'assurer qu'on possède la bonne clé publique de l'expéditeur d'un mail et qu'un attaquant n'a pas transmis une fausse clé publique pour hameçonner sa cible.

ComplémentLes sous-clés

Pour aller plus loin dans l'utilisation de clés GPG, il est très pratique d'utiliser des sous-clés. La première clé primaire est nommée « clé maîtresse » et peut générer des sous-clés dont l'usage peut être restreint : signer uniquement, chiffrer et/ou certifier. Cela facilite les manipulations en cas de fuite de clé.

Si une sous-clé fuite, il suffira de la révoquer et d'en générer une nouvelle.

Si la clé maîtresse fuite, il faut générer une nouvelle paire de clés et transmettre sa nouvelle clé publique à tous ses contacts.

À retenir

  • Signer ses mails permet aux interlocuteurs d'être certain de l'identité de l'expéditeur et de vérifier l'intégrité du document.

  • La signature GPG de ses mails peut facilement être mise en place grâce au plugin Enigmail pour Thunderbird.

Appliquer la notion

On se propose de vérifier la signature d'un document. Utiliser pour ce faire un shell local ou un repl Bash.

Le fichier public.gpg contient une clé publique GPG d'un certain Marc Studi.

Enregistrer le fichier public.gpg sur votre ordinateur.

Importer ce fichier dans l'utilitaire gpg.

On peut utiliser l'aide de gpg pour obtenir plus facilement l'information :

gpg --help

L'option --import permet d'importer une clé manuellement.

On utilise :

gpg --import public.gpg

On obtient en sortie :

gpg: key 0x613572E5E3D19D73: "Grace Hopper <grace.hopper@ibm.com>" imported
gpg: Total number processed: 1
gpg:              imported: 1

Vous recevez un message message.txt accompagné de sa signature signature.asc. Télécharger les deux fichiers.

Enregistrer le fichier signature.asc sur votre ordinateur.

Enregistrer le fichier message.txt sur votre ordinateur.

Vérifier la signature du fichier ci-joint. Quelle est l'adresse mail du signataire ?

Utiliser

gpg --verify signature.asc message.txt

L'adresse est celle de Grace Hopper : grace.hopper@ibm.com

ComplémentAttention aux usurpations d'identité !

Comme le montre cet exemple il est possible de générer une clé avec n'importe quelle adresse e-mail.

Il est donc important de vérifier la clé de l'émetteur avant de lui faire confiance.

GPG introduit un mécanisme de certifications, qui consiste grossièrement à dire « cette clé appartient bien à cette personne » grâce à des mécanismes cryptographiques. Si une clé est suffisamment certifiée par plusieurs personnes, on pourra lui faire confiance.

Essentiel

Le chiffrement symétrique consiste à utiliser une clé qui permet à la fois de coder et de décoder de l'information. C'est une technique qui est utilisée pour des échanges temporaires entre deux personnes ainsi que pour protéger des données que l'on ne souhaite pas partager.

Le chiffrement asymétrique implique de disposer d'une paire de clés. Imaginons qu'Alice possède la clé publique alice.pub et la clé privée associée alice.pri :

  • N'importe qui peut utiliser la clé publique alice.pub pour chiffrer des messages confidentiels pour Alice. On est certain que seule Alice pourra les lire, car c'est la seule à posséder la clé privée de déchiffrement alice.pri.

  • Alice peut aussi utiliser sa clé privée alice.pri pour chiffrer des signatures. N'importe qui pourra déchiffrer cette signature avec la clé alice.pub, ce qui prouvera que le message vient d'Alice, puisque, encore une fois, elle seule a pu chiffrer une telle signature.

OpenPGP est un standard qui permet de définir une façon robuste de créer des clés et de les utiliser pour chiffrer et signer.

GnuPG est un logiciel libre multi-plateformes qui implémente ce standard.

Enigmail est une extension du logiciel de mail Thunderbird qui permet d'envoyer des mails signés et chiffrés grâce à GnuPG.

Exercice final

Quiz - Culture

Le chiffrement nécessite obligatoirement l'utilisation d'une paire de clés.

Vrai

Faux

Le chiffrement symétrique est moins sécurisé car il n'utilise qu'une clé ?

Vrai

Faux

On peut utiliser le chiffrement symétrique dans les cas suivants :

Protocoles de communication sécurisé

Chiffrer un disque dur

Signer des fichiers ou des messages

Le chiffrement asymétrique est utilisé pour les raisons suivantes :

Protocole de communication sécurisé

Signer des fichiers ou des messages

Envoyer des messages confidentiels

Quiz - Méthode

Pour transférer une clé secrète AES à un contact, en toute sécurité, je peux :

Chiffrer la clé avec la clé RSA publique de mon contact et lui envoyer le cryptogramme.

Chiffrer la clé avec la clé GPG privée de mon contact et lui envoyer le cryptogramme.

Chiffrer la clé avec la clé GPG publique de mon contact et lui envoyer le cryptogramme.

Envoyer la clé dans une archive protégée par un mot de passe.

Laquelle de ces propositions correspond à ce qui est le plus adapté pour prouver son identité ?

OpenPGP

RSA

AES

César

Quiz - Code

Quelle commande faut-il lancer pour générer une paire de clés RSA utilisables pour SSH ?

Quelle commande faut-il lancer pour importer la clé publique contenue dans le fichier snowden.gpg ?

Quelle commande faut-il lancer pour vérifier la signature sig.asc du fichier prism.txt ?

Quelle commande faut-il lancer déchiffrer le contenu du fichier swartz.txt ?

Quiz - Culture

Le chiffrement nécessite obligatoirement l'utilisation d'une paire de clés.

Vrai

Faux

Vrai

Faux

Le chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer.

Le chiffrement symétrique est moins sécurisé car il n'utilise qu'une clé ?

Vrai

Faux

Vrai

Faux

D'un point de vue mathématique et technique, les chiffrements symétrique et asymétrique font appel aux mêmes propriétés, ils répondent à des besoins différents.

On peut utiliser le chiffrement symétrique dans les cas suivants :

Protocoles de communication sécurisé

Chiffrer un disque dur

Signer des fichiers ou des messages

Protocoles de communication sécurisé

Par exemple : SSL/TLS pour le Web

Chiffrer un disque dur

Signer des fichiers ou des messages

Le chiffrement asymétrique est utilisé pour les raisons suivantes :

Protocole de communication sécurisé

Signer des fichiers ou des messages

Envoyer des messages confidentiels

Protocole de communication sécurisé

Par exemple : SSH pour accéder à un serveur distant

Signer des fichiers ou des messages

Envoyer des messages confidentiels

Quiz - Méthode

Pour transférer une clé secrète AES à un contact, en toute sécurité, je peux :

Chiffrer la clé avec la clé RSA publique de mon contact et lui envoyer le cryptogramme.

Chiffrer la clé avec la clé GPG privée de mon contact et lui envoyer le cryptogramme.

Chiffrer la clé avec la clé GPG publique de mon contact et lui envoyer le cryptogramme.

Envoyer la clé dans une archive protégée par un mot de passe.

Chiffrer la clé avec la clé RSA publique de mon contact et lui envoyer le cryptogramme.

Chiffrer la clé avec la clé GPG privée de mon contact et lui envoyer le cryptogramme.

Il est très dangereux de partager ses clés privées RSA ou GPG avec d'autres personnes. De plus, n'importe qui avec la clé publique pourra déchiffrer le message.

Chiffrer la clé avec la clé GPG publique de mon contact et lui envoyer le cryptogramme.

Envoyer la clé dans une archive protégée par un mot de passe.

Il est possible de « casser » le mot de passe des archives et le transfert du mot de passe lui même demandera de sécuriser la communication.

Laquelle de ces propositions correspond à ce qui est le plus adapté pour prouver son identité ?

OpenPGP

RSA

AES

César

Une clé OpenPGP est toujours rattachée à une identité (nom, adresse e-mail), qui fait l'objet de certifications d'autres personnes, ce qui augmente la confiance dans l'identité de la personne.

Quiz - Code

Quelle commande faut-il lancer pour générer une paire de clés RSA utilisables pour SSH ?

ssh-keygen

Quelle commande faut-il lancer pour importer la clé publique contenue dans le fichier snowden.gpg ?

gpg --import snowden.gpg

Quelle commande faut-il lancer pour vérifier la signature sig.asc du fichier prism.txt ?

gpg --verify sig.asc prism.txt

Quelle commande faut-il lancer déchiffrer le contenu du fichier swartz.txt ?

gpg --decrypt swartz.txt

Chiffrement symétrique

DéfinitionLe chiffrement symétrique
ExempleSchéma d'utilisation classique

Bob souhaite chiffrer son disque dur pour qu'il soit le seul à pouvoir accéder à ses fichiers.

  1. Lors de l'installation de son système d'exploitation Bob décide de chiffrer son disque dur, il choisit un mot de passe P.

  2. La totalité du disque est chiffré avec une clé K générée par le système, cette clé est stockée sur le disque dur.

  3. La clé K est à son tour chiffrée grâce au mot de passe P (elle ne doit pas être accessible en clair sur le disque).

  4. À chaque déverrouillage de son ordinateur Bob entre le mot de passe qui permet de déchiffrer la clé K ; elle est alors chargée en mémoire afin d'être disponible rapidement.

  5. À chaque fois qu'un fichier est accédé en lecture il est déchiffré avec K ; à chaque accès en écriture il est chiffré avec K.

Ainsi, Bob est certain que tant que son mot de passe reste secret, ses données sont sécurisées même si quelqu'un accède au disque de son ordinateur.

Mots de passe

Objectif
  • Acquérir une bonne politique d'utilisation de mots de passe.

Mise en situation

Une date de naissance comme mot de passe bancaire ? ou un mot de passe unique pour l'ensemble de ses comptes en ligne ? Beaucoup de personnes sont conscientes que leur politique de gestion de mots de passe présente des failles, mais elles ne savent pas nécessairement comment y remédier.

Il existe quelques méthodes assez simples pour construire des mots de passe compliqués et pour vérifier que les mots de passe que l'on utilise ne sont pas trop faciles à deviner.

Par exemple la méthode diceware permet de créer des mots de passe à la fois longs et faciles à apprendre. La liste OWASP contient quand à elle les 10.000 mots de passe les plus fréquents, ceux qu'ils faut éviter d'utiliser donc.

Fondamental

Une application avec les plus hautes normes de sécurité reste fragile sans une bonne politique de gestion des mots de passe.

Identifier un mauvais mot de passe

Il existe plusieurs types de mauvais mots de passe et il est important de savoir les identifier pour les éviter :

  • Les dates de naissance ou autre information facilement trouvable, par exemple : DiDiEr121287.

  • Un mot de passe unique pour tous les services.

  • Un mot de passe au schéma identifiable comme FRAMATEAM123azerty pour un compte sur le site framateam.org. Un attaquant comprendra que votre mot de passe framapiaf.org est FRAMAPIAF123azerty (ou quelque chose de ressemblant).

  • Un mot de passe trop simple, par exemple : mickey (il s'agit de l'un des 10 000 mots de passe les plus courants).

Attention

Il existe des listes des mots de passe courants comme la liste maintenue par l'OWASP Foundation : 10k-worst-passwords.txt.

En haut de cette dernière sont présents des mots de passe tels que :

  • password

  • football

  • jennifer

Ces listes sont très utilisées par les cybercriminels.

ExempleLes 20 premiers mots de passe de la liste OWASP
password
123456
12345678
1234
qwerty
12345
dragon
pussy
baseball
football
letmein
monkey
696969
abc123
mustang
michael
shadow
master
jennifer
111111
Trouver un bon mot de passe

Il existe plusieurs méthodes pour trouver un bon mot de passe :

  • Méthode des premières lettres ;

  • Méthode phonétique ;

  • Diceware, ou méthode du lancer de dé ;

  • Etc.

MéthodeMéthode des premières lettres

Il s'agit de transformer une citation en mot de passe. Par exemple : « un tiens vaut mieux que deux tu l'auras » donnera 1tvMq2tL'a. Il faut veiller à ne pas utiliser que des minuscules pour compliquer la tache d'un attaquant.

Ici, toutes les lettres dont la position est un multiple de 4 sont des majuscules.

MéthodeMéthode phonétique

Il s'agit de retranscrire une phrase phonétiquement. Par exemple : « j'ai acheté huit cd pour cent euros cet après-midi » donnera ght8CD%E7am.

Les lettres en majuscule sont ici celle dont la prononciation représente le mot complet (« E » pour « euro » et « CD » qui est transparent).

MéthodeDiceware

Cette dernière méthode est très utilisée pour construire des phrases secrètes. Le mot de passe sera une phrase composée de plusieurs mots. Pour choisir chacun des mots il faut lancer 5 dés à 6 faces et mettre les résultats côte à côte. Puis il faut se munir d'une liste diceware qui propose 66666 mots. Dans cette liste, chaque résultat possible des 5 dés correspond à un mot.

Il en existe pour beaucoup de langues différentes, par exemple la liste de Matthieu Weber référencée sur Wikipédia propose 66666 mots en français.

Si l'on souhaite un mot de passe de 6 mots et qu'on obtient les résultats suivants: 16665; 15653; 56322; 35616; 65224. En se référant à la liste ci-dessus, on obtiendra le mot de passe suivant : « cajous bordes set juge verte ».

Ce mot de passe n'est pas trop compliqué à retenir car il contient une liste de mots très simples mais il est pour autant très robuste.

Un bon mot de passe ne suffit pas..

Pour compléter un bon mot de passe il reste nécessaire d'avoir d'autres pratiques rigoureuses qui permettront de conserver la sécurité de votre politique de gestion de mot de passe.

ConseilToujours changer le mot de passe initial

Il est absolument nécessaire de changer le mot de passe reçu initialement à la création d'un compte même si celui-ci semble aléatoire. D'une part, il arrive que certains éditeurs de matériel électronique fournisse un mot de passe identique pour chaque produit. D'autre part il est possible que le mail transmettant ce mot de passe ait été intercepté ou que ce mail soit récupéré lors d'une future fuite de données.

ConseilUne mot de passe doit rester confidentiel

Le propriétaire du compte doit être le seul à le posséder, même l'administrateur réseau ne doit pas le connaître (d'où la nécessité de modifier le mot de passe initial). Il est aussi préférable de ne pas enregistrer son mot de passe sur un support informatique non chiffré comme un fichier texte ou un mail brouillon.

ConseilChangement régulier de mots de passe

Changer régulièrement de mot de passe permet de conserver un niveau de sécurité optimal. Si un mot de passe a fuité sans qu'on le sache, un changement régulier de mot de passe pourrait vous protéger de toute attaque. À noter que cela n'est pas vrai pour des mots de passe qui ne sont pas sujet aux fuites, par exemple le mot de passe de son ordinateur personnel.

ConseilSensibiliser ses collaborateurs

Il est nécessaire de veiller à ce que tous les acteurs d'un projet aient une bonne politique de gestion de mots de passe afin que le projet soit protégé. Il suffit qu'un seul des comptes soit compromis pour qu'un attaquant accède et nuise aux données de tous.

Conseil

Pour gérer ses mots de passe il est conseillé d'utiliser un gestionnaire de mot de passe, comme par exemple KeePass.

ComplémentAller plus loin

Note technique de l'ANSSI traitant des recommandations de sécurité relatives aux mots de passe :

ssi.gouv.fr/uploads/IMG/pdf/NP_MDP_NoteTech.pdf

À retenir
  • Il existe plusieurs méthodes pour trouver un mot de passe considéré comme bon. Par exemple la méthode des premières lettres, la méthode phonétique ou la méthode DiceWare.

  • Un bon mot de passe ne peut être considéré comme sécurisé seulement s'il est complété de certaines bonnes pratiques : changer ses mots de passe, les conserver secret, sensibiliser ses collaborateurs.

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.