Vous êtes sur la page 1sur 21

Année Académique 2022- 2023

Chargé du Cours : M BATAZI Kpaka

Instructions nécessaires à la réalisation

L’étudiant devra disposer de deux machines virtuelles en réseau:


 Une machine avec le nom lab02.ipnet.local avec une adresse 192.168.10.2 qui servira
de machine cliente. Une distribution ubuntu desktop avec une version supérieure ou
égale à 18.04 LTS
 Une machine ave le nom lab01.ipnet.local avec une adresse 192.168.10.1 qui servira
de serveur. Sur cette dernière machine une distribution ubuntu server avec une version
supérieure ou égale à 18.04 LTS

Page 1 sur 21
Semaine 1 : TD Chiffrement de JULES CESAR, VIGENERE, POLYBE, PAR
TRANSPOSITION
1. En utilisant 4 comme la valeur de la clé, appliquez le code secret de JULES CESAR sur
le texte en clair « IPNET » pour donner le texte chiffré. Vous travaillez dans l’ensemble
des lettres de l’alphabet :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
2. En raisonnant par rapport au nombre de possibilité de clés, pensez-vous que le code de
JULES CESAR soit robuste ?
3. En améliorant le code de JULES CESAR avec une substitution mono alphabétique dont
la clé est la suivante :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
M W Z Y J H I A U T B X R Q S G V N F O P L E D K C

 Donner le texte chiffré du texte en clair « IPNET »


 Combien de possibilités de clés avez-vous avec la substitution mono
alphabétique ?
4. En utilisant le carré de Vigenère suivant, chiffré le texte « cryptanalyse » avec la clé
« IPNET »

Page 2 sur 21
Page 3 sur 21
5. En considérant le carré de Polybe suivant, chiffrer le mot « CRYPTO»

6. En utilisant le chiffrement par transposition avec la clé 6, donnez le texte chiffré du


texte en claire « devoir surveille de la cryptographie »

Page 4 sur 21
Semaine 2 : TD Chiffrement affine, Chiffrement de Hill

Chiffrement affine : définition


Le chiffrement par décalage est un cas particulier du chiffrement par substitution
dans lequel on utilise une translation comme substitution. Un autre cas particulier du
chiffrement par substitution est le chiffrement affine. Dans ce procédé, on limite les
fonctions de chiffrement `a certaines fonctions de la forme

E(a,b)(x) = ax + b mod 26 (1)

Où a,b ∈Z26. Ces fonctions sont appelées des fonctions affines, d’où l’on a tiré le
nom du procédé. On remarque que l’on retrouve le chiffrement par décalage pour a =
1.

Pour que l’opération de déchiffrement soit possible, il est nécessaire que la fonction
affine soit bijective. Autrement dit, pour tout y ∈Z26, l’équation
ax + b = y mod 26 (2)

doit avoir une, et une seule, solution x. L’ équation (2) est équivalente à
ax = y − b mod 26 . (3)
Lorsque y parcourt l’ensemble Z26, y − b décrit également ce même ensemble. Donc, il
suffit d’étudier l’équation ax = z mod 26 pour tout z ∈ Z26. On démontre que cette
équation admet une unique solution pour tout z fixé, si, et seulement si, pgcd(a,26) = 1
(où pgcd est le plus grand diviseur commun de ses arguments); au passage on dit que a
et 26 sont premiers entre eux. En effet si a et 26 sont premiers entre eux (et seulement
dans ce cas), alors a admet un inverse a−1 ∈ Z26 (i.e., aa−1 = a−1a = 1 mod 26), et
l’unique solution de l’ équation ax = z mod 26 est x = a−1z mod 26. En particulier, x =
a−1(y − b) mod 26 est l’unique solution a l’équation (2).

Supposons donc que a et 26 sont premiers entre eux. On vient de voir que, dans ce cas,
l’application E(a,b) est inversible. Sa bijection réciproque est donnée par D(a,b)(y) =
a−1(y−b) mod 26. Nous pouvons maintenant décrire complétement le chiffrement
affine. Les ensembles de textes clairs P et chiffrés C sont tous les deux égaux à Z26.
L’espace des clefs secrètes est quant à lui donné par

K := {(a,b) ∈Z26 ×Z26 : pgcd(a,26) = 1} . (4)

Pour tout (a,b) ∈K, on définit

E(a,b)(x) := ax + b mod 26 (5)

et
D(a,b)(y) := a−1(y − b) mod 26 . (6)

Page 5 sur 21
Mise en œuvre du chiffrement affine
Soit (a,b) = (7,3).
1. Montrer que (a,b) ∈K et calculer a−1 dans Z26 ;
2. Vérifier par calcul que D(a,b)(E(a,b)(x)) = x pour x quelconque dans Z26 ;
3. Chiffrer le mot hot avec cette clef;
4. Enumérer les a ∈Z26 qui sont premiers avec 26;
5. Pour chacun des éléments a ∈ Z26 premiers avec 26, calculer son inverse (modulo
26);
6. Calculer le nombre de clefs possibles. Qu’en déduisez-vous quant à la solidité de
ce procédé de chiffrement?

Cryptanalyse du chiffrement affine


Dans cet exercice, on s’intéresse à une technique de cryptanalyse permettant de casser
un procédé de chiffrement affine. Cette technique est basée sur l’analyse des fréquences
d’occurrence des lettres dans un texte écrit dans une langue donnée (par exemple,
l’anglais ou le français). Dans le cas présent, on effectue une hypothèse simplificatrice :
on suppose que le texte clair est un message rédigé en anglais sans ponctuations ni
espaces.

Plusieurs personnes ont estimé la probabilité d’apparition des vingt-six lettres de


l’alphabet en faisant des statistiques sur de nombreux romans, magazines et journaux
quotidiens écrits en anglais. Les estimations suivantes sur la langue anglaise ont été
obtenues par Beker et Piper.
Fréquences d’occurrences des lettres dans les textes écrits en anglais (Beker & Piper)

lettre proba lettre proba


a 0,082 n 0,067
b 0,015 o 0,075
c 0,028 p 0,019
d 0,043 q 0,001
e 0,127 r 0,060
f 0,022 s 0,063
g 0,020 t 0,091
h 0,061 u 0,028
i 0,070 v 0,010
j 0,002 w 0,023
k 0,008 x 0,001
l 0,040 y 0,020
Page 6 sur 21
m 0,024 z 0,001
Nous allons utiliser ces statistiques pour déchiffrer un cryptogramme provenant d’un
message écrit en anglais. Supposons donc qu’Oscar ait intercepté le message suivant
(sans espaces ni signes de ponctuation) :
FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHH
RH.
1. Calculer le nombre d’occurrences de chacune des lettres de l’alphabet dans ce
message;
2. Expliquer pourquoi on peut supposer que la lettre R se déchiffre en E;
3. Supposons que la lettre D se déchiffre en T (et R en E). Trouver la clef (a,b) qui
en résulte, et expliquer pourquoi cette clef n’est pas valide;
4. Supposons que la lettre R se déchiffre en E, et K en T. Trouver la clef (a,b) qui en
résulte, et expliquer pourquoi cette fois-ci la clef est valide;
5. En vous basant sur ce que vous avez trouvé pour a à la question précédente,
calculer a−1 (dans Z26). Une fois cela fait, déchiffrer le message afin de vérifier
qu’il s’agit bien d’un texte écrit en anglais.

Le Chiffrement de S. Hill (Lester S. Hill (1891-1961))

Le chiffrement de Hill est un chiffrement polygraphique, c’est-à-dire que l’on ne (dé)chiffre


pas les lettres les une après les autres, mais par paquets, ici de deux lettres.

• Exemple pour coder le mot MATHEMATIQUE, on scinde en bloc de deux lettres :


MA TH EM AT IQ UE
• On remplace les lettres par leur rang dans l’alphabet en partant de 0 :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

• Les lettres 𝑥𝑘 𝑒𝑡 𝑥𝑘+1 sont codées en 𝑦𝑘, 𝑦𝑘+1 tels que

sont des entiers naturels donnés.


Le rang des lettres codées est 𝑟𝑘 ≡ 𝑦𝑘 [26] et 𝑟𝑘+1 ≡ 𝑦𝑘+1 [26]

• On pose

1. chiffrement de Hill
a. Montrer que le système (𝑆) est équivalent à une relation matricielle 𝑌 = 𝐴𝑋 dont on
précisera les matrices 𝑋 , 𝐴 et 𝑌.

Page 7 sur 21
b. Avec la clef de cryptage 𝑎 = 9 , 𝑏 = 4 , 𝑐 = 5 𝑒𝑡 𝑑 = 7.

Vérifier que le mot « NOEL » se code en « RHCT » et coder le mot « MATH ».

2.
a. Déterminer la matrice de cryptage 𝐴 correspondant à la clef :
𝑎 = 9 , 𝑏 = 4 , 𝑐 = 5 𝑒𝑡 𝑑 = 7 .
b. la matrice 𝐴 est elle inversible ? Justifier votre réponse.
c. déterminer la matrice inverse 𝐴−1 de 𝐴,

d. la matrice 𝐴−1 permet-elle de décoder un message, c’est-à-dire determiner


quand on connait ? Justifier votre réponse

Page 8 sur 21
Semaine 3 : TP Programmation et Hacking du chiffrement de JULES CESAR, affine et
VIGENERE

Les codes sources vous sont fournis pour ce TP. Il s’agira de comprendre et d’exécuter les codes
en Python de la programmation et du hacking des chiffrements affine, de Jules Cesar et
Vigénère puis de produire un rapport avec les imprime-écran de votre travail.

Page 9 sur 21
Semaine 4 : TD Diffie-Hellman, RSA, numéros jetables
Exercice 1(Diffie-Hellman et Man-in-the-middle) : On suppose qu’Oscar voit passer A et B.
Expliquer pourquoi Oscar ne peut alors pas facilement en déduire K.

Exercice 2 Alice et Bob conviennent des paramètres suivants : p = 541 et g = 2. Alice génère
le nombre secret a = 292. De son coté, Bob génère le nombre b = 426. Quelle est la clef secrète
résultant du protocole d’échange de Diffie-Hellman?

Exercice 3 (Cryptographie RSA et authentification). Un professeur envoie ses notes au


secrétariat de l’école par mail. La clef publique du professeur est (eP ,nP ) = (3,55), celle du
secrétariat (eS,nS) = (3,33).
1. Déterminer la clé privée du professeur et du secrétariat de l’école.
2. Pour assurer la confidentialité de ses messages, le professeur chiffre les notes avec la
clef RSA du secrétariat. Quel message chiffré correspond à la note 12?
3. Pour assurer l’authenticité de ses messages, le professeur signe chaque note avec sa clé
privée et chiffre le résultat avec la clef RSA du secrétariat. Le secrétariat reçoit ainsi le
message 23. Quelle est la note correspondante?

Exercice 4 (Numéros de carte bleue jetables). Une banque possède un mécanisme de


numéros jetables de carte bleue. Un utilisateur a reçu par courrier classique un code pour
générer de tels numéros sur le site internet de sa banque.
1. Quand l’utilisateur demande de générer un numéro jetable, quel est le type
d’authentification que cela entraîne?
2. En déduire une attaque permettant de récupérer le code.
3. Comment la banque peut-elle en fait contrer cette attaque?

Page 10 sur 21
Semaine 5 : TP AES RSA

NB : Ce TP devra se faire sur la machine cliente lab02.ipnet.local


Chiffrement symétrique AES
a) Créez un fichier texte contenant un petit paragraphe, et chiffrez ce document en AES
256 bits avec la commande openssl enc -aes-256-cbc -in inputfile -out outputfile.
Validez que le document est bien chiffré.
b) Déchiffrez le document chiffré avec la commande openssl enc -d -aes-256- cbc -in
inputfile -out outputfile. Validez que le document est bien déchiffré.

Chiffrement asymétrique RSA


a) Générez une clé privée RSA de 1024 bits avec la commande openssl genrsa -out server-
private.key 1024, et visualisez le contenu du fichier ainsi généré.
b) Affichez les paramètres de votre clé privée RSA avec la commande openssl rsa -in
server-private.key -text -noout, et commentez le résultat.
c) Générez une clé publique RSA à partir de votre clé privée avec la commande openssl
rsa -in server-private.key -pubout -out server-public.key, et visualisez le contenu du
fichier ainsi généré.
d) Générez un fichier aléatoire de 32 octets avec la commande openssl rand 32 -out
rand32.txt. Ensuite chiffrez le fichier avec la commande openssl rsautl -encrypt -pubin
-inkey server-public.key -in rand32.txt -out rand32enc.txt. Validez que le document est
bien chiffré.
e) Déchiffrez le fichier chiffré avec la commande openssl rsautl -decrypt -inkey server-
private.key -in rand32enc.txt -out rand32- dec.txt. Validez que le document est bien
déchiffré.

Page 11 sur 21
Semaine 6 : Génération de clé et connexion automatique
Ce TP devra se faire sur les deux machines
La commande ssh sous Linux lance un programme pour se connecter sur une machine distante
et pour exécuter des commandes sur cette machine, en suivant le protocole SSH. Dans le
répertoire .ssh, à la racine du répertoire utilisateur, ce programme maintient un fichier
known_hosts des serveurs sur lesquels l’utilisateur s’est connecté. La première connexion est
considérée comme sûre et les suivantes sont authentifiées par la clef publique stockée dans le
fichier .ssh/known_hosts.
1. Comment rendre cette authentification du serveur sûre?
2. Plusieurs méthodes d’authentification du client sont alors possibles (clef publique, mot
de passe, clavier); comment générer une paire clef publique / clef privée de type DSA sur
2048 bits avec l’utilitaire ssh-keygen?
3. Ajouter la clef publique ainsi générée au fichier authorized_keys dans le répertoire .ssh
d’un compte tiers; connectez-vous sur ce compte en utilisant ssh -v. Que constatez-vous?
4. Détruire le fichier known_hosts. Se reconnecter sur une autre machine. A quel message
doit-on s’attendre?`
Modifier le fichier known_hosts en changeant une clef publique. A quel message doit-on
s’attendre?

Page 12 sur 21
Semaine 7 : TP PKI ,Certificats , validation de certificat

OpenSSL est un ensemble d’utilitaires de cryptographie implémentant SSL v2/v3 (Secure


Sockets Layer) et TLS v1 (Transport Layer Security) et les standards qu’ils requièrent (en
particulier ceux des PKI).
L’autorité de certification sera sur la machine lab01.ipnet.local. La demande de certificat
utilisateur sera faite à partir de la machine lab02.ipnet.local
1. Création d’un fichier de caractères aléatoires : Sous Linux (depuis la version 1.3.30), il
existe un fichier, réservoir d’entropie, (/dev/urandom, crée à partir de différentes sources
aléatoires hardware). A l’aide de dd, comment créer un fichier aléatoire .rand d’au moins
16ko, avec 16 blocs distincts?
2. Mise en place d’un CA1 : Créer un répertoire demoCA et des sous répertoires private,
certs, crl et newcerts. Entrer un numéro de série dans le fichier demoCA/serial, et créer
un fichier demoCA/index.txt. Définir les droits d’accès à tous ces répertoires et fichiers.
(a) Avec openssl genrsa, comment créer une paire de clefs de 4096 bits en utilisant votre
fichier aléatoire? Cette clef sera stockée dans un fichier demoCA/private/cakey.pem
et cryptée sur le disque par AES-256 bits.
(b) Avec openssl req, comment créer un nouveau certificat racine auto-signé, à l’aide
de la clef précédente? Ce certificat devra être au format X509, stocké dans le fichier
demoCA/cacert.pem et valable 365 jours.
3. Certificat utilisateur.
– Avec openssl, comment créer une paire de clefs RSA de 1024 bits?
– Comment faire une requête de certificat, avec openssl req, en utilisant cette clef. Cette
requête devra contenir également la clef et être valable 2 mois.
– Avec openssl ca, comment demander au CA de répondre à votre requête? Cette requête
devra créer un fichier certificat newcert.pem et spécifier la politique de sécurité par
défaut policy_anything.
4. Application à l’envoi de courriels sécurisés.
Des clients de courriel (par exemple Thunderbird) utilisent plutôt le format PKCS12 pour
les certificats au lieu du format X509. Comment ajouter un certificat créé ci-dessus à un
client de ce type? Que se passe-t-il si la clef privée associée à ce certificat est perdue?
En particulier :
(a) Peut-on toujours envoyer des courriels chiffrés? En recevoir?
(b) Peut-on toujours signer des courriels qu’on envoie? Vérifier les signatures des
courriels reçus?

1 Tous les noms suivants peuvent être modifiés dans le fichier openssl.cnf.

Page 13 sur 21
Semaine 8 : Activation du SSL sur un serveur web

L’objectif principal de ce type est de savoir activer le SSL sur un serveur web. A des fins de
TP, une solution open source mantisBT sera déployée.
1. Installer apache2, mariadb et php sur le serveur server.ipnet.local
2. Etapes de déploiement de la solution opensource
Etape 1: Créer la base de données Mantis

Lancer la commande suivante:

sudo mysql -u root -p

Créer une base de données appellee mantis

CREATE DATABASE mantis;

Créer un utilisateur mantisuser avec un mot de passe

CREATE USER 'mantisuser'@'localhost' IDENTIFIED BY 'new_password_here';

Donner tous les privileges à l’utilisateur sur la base de données mantis.

GRANT ALL ON mantis.* TO 'mantisuser'@'localhost' WITH GRANT OPTION;

Etape2: Télécharger une version de mantis

cd /tmp
wget https://excellmedia.dl.sourceforge.net/project/mantisbt/mantis-stable/2.22.1/mantisbt-
2.22.1.zip
unzip mantisbt-2.22.1.zip
sudo mv mantisbt-2.22.1 /var/www/mantis

Donner les droits sur les répertoires de mantis

sudo chown -R www-data:www-data /var/www/mantis/


sudo chmod -R 755 /var/www/mantis/

Etape3: Configure Apache2

Lancer la commande suivante pour créer une nouvelle configuration mantis.conf

sudo nano /etc/apache2/sites-available/mantis.conf

Copier le contenu suivant et le coller dans le fichier créé.

Page 14 sur 21
<VirtualHost *:80>
ServerAdmin admin@ipnet.local
DocumentRoot /var/www/mantis
ServerName lab01.ipnet.local
ServerAlias www.ipnet.local

<Directory /var/www/mantis/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Enregistrer le fichier et quitter.

Etape 4: active le module mantis et rewrite

Après la configuration du VirtualHost, il faudrait l’activer aec les commandes suivantes

sudo a2ensite mantis.conf


sudo a2enmod rewrite
sudo systemctl restart apache2.service

Lancer un navigateur et taper l’URL suivante :

http://www.ipnet.local/

Saisir le nom de base de données et les informations du compte root .

Se connecter avec le compte par défaut:

Username: administrator
Password: root

3. passer l’application web en HTTPS


Tester le résultat avec le lien https://www.ipnet.local

Page 15 sur 21
Semaine 9 : Installation du serveur KERBEROS

Kerberos
Kerberos est un système d'authentification réseau basé sur le principe d'un tiers de confiance.
Les deux autres parties sont l'utilisateur et le service sur lequel l'utilisateur veut s'authentifier.
Tous les services et applications ne savent pas utiliser Kerberos, mais pour ceux qui en sont
capables, cela rapproche l'environnement réseau d'un système à authentification unique
(Single Sign On ou SSO).

Aperçu
Si vous débutez avec Kerberos, il y a quelques termes qu'il est bon de comprendre avant de
paramétrer un serveur Kerberos. La plupart des termes sont proches d'éléments qui peuvent
vous être familiers dans d'autres environnements.
 Donneur d'ordre : tous les utilisateurs, ordinateurs et services fournis par des serveurs
doivent être définis comme « donneurs d'ordre » Kerberos.
 Instances : sont utilisés pour les donneurs d'ordre de service et les donneurs d'ordre
administratifs spéciaux.
 Realms: le domaine de contrôle unique fourni par l'installation Kerberos.. Think of it
as the domain or group your hosts and users belong to. Convention dictates the realm
should be in uppercase. By default, ubuntu will use the DNS domain converted to
uppercase (IPNET.LOCAL) as the realm.
 Centre de distribution de clé : (KDC) se compose de trois parties, une base de données
de tous les donneurs d'ordre, le serveur d'authentification et le serveur accordant les
tickets. Pour chaque domaine, il doit y avoir au moins un KDC.
 Ticket d'octroi de ticket : émis par le serveur d'authentification (AS), le ticket d'octroi
du ticket (TGT) est chiffré avec le mot de passe utilisateur qui n'est connu que par
l'utilisateur et le KDC.
 Serveur d'octroi de ticket : (TGS) génère sur demande des tickets de service aux
clients.
 Tickets : confirment l'identité des deux donneurs d'ordre. Un donneur d'ordre étant un
utilisateur et l'autre un service demandé par l'utilisateur. Les tickets établissent une clé
de chiffrage utilisée pour la communication sécurisée pendant la session authentifiée.
 Fichiers Keytab : ce sont des fichiers extraits de la base de données KDC des
« principals » et qui contiennent la clé de chiffrement pour un service ou un hôte.
Considérez-le comme le domaine ou le groupe auquel appartiennent vos hôtes et vos
utilisateurs. La convention stipule que le domaine doit être en majuscules. Par défaut, Ubuntu
utilisera le domaine DNS converti en majuscules (IPNET.LOCAL) comme domaine.

1. Installer le serveur kerberos


2. Configurer le serveur kerberos
3. Installer un client kerberos et tester la connexion au serveur

Page 16 sur 21
Semaine 10: TP Pretty Good Privacy (PGP)

1. Chiffrer un texte clair avec GPG


echo "test" > texte.txt
gpg --symmetric texte.txt
┌────────────────────────────────────────────────────
──────┐
│ Entrez la phrase de passe │
│ │
│ │
│ Phrase de passe ********________________________________ │
│ │
│ <OK> <Cancel> │
└────────────────────────────────────────────────────
──────┘
ls texte.*
texte.txt texte.txt.gpg
cat texte.txt.gpg
ih�J��$)��cg��q�͆�H]<�JW�ķÐdcC�_6��=q�[

2. Déchiffrer un texte gpg


gpg --decrypt texte.txt.gpg
gpg: données chiffrées avec CAST5
gpg: chiffré avec 1 phrase de passe
test
gpg: Attention : l'intégrité du message n'était pas protégée
gpg --output texte.txt.dec --decrypt texte.txt.gpg
gpg: données chiffrées avec CAST5
gpg: chiffré avec 1 phrase de passe
gpg: Attention : l'intégrité du message n'était pas protégée
cat texte.txt.dec
test

3. Chiffrer et signer des messages


Dans ce scénario Bob envoit un message chiffré à Alice et Alice signe un message à destination
de Bob. Dans notre cas, Alice et Bob sont deux utilisateurs du système.

Créer des utilisateurs alice et bob, en tant que root :

Création d’un dossier partagé : /tmp est un lieu partagé par excellence

Page 17 sur 21
Créer des clés dans la session de Alice Alice <alice@localhost>

su - alice
sudo gpg --gen-key
[sudo] password for alice:
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: répertoire « /root/.gnupg » créé


gpg: nouveau fichier de configuration « /root/.gnupg/gpg.conf » créé
gpg: Attention : les options de « /root/.gnupg/gpg.conf » ne sont pas encore actives cette fois
gpg: le porte-clefs « /root/.gnupg/secring.gpg » a été créé
gpg: le porte-clefs « /root/.gnupg/pubring.gpg » a été créé
Sélectionnez le type de clef désiré :
(1) RSA et RSA (par défaut)
(2) DSA et Elgamal
(3) DSA (signature seule)
(4) RSA (signature seule)
Quel est votre choix ?
les clefs RSA peuvent faire entre 1024 et 4096 bits de longueur.
Quelle taille de clef désirez-vous ? (2048)
La taille demandée est 2048 bits
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
0 = la clef n'expire pas
<n> = la clef expire dans n jours
<n>w = la clef expire dans n semaines
<n>m = la clef expire dans n mois
<n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0)
La clef n'expire pas du tout
Est-ce correct ? (o/N) o

GnuPG doit construire une identité pour identifier la clef.

Nom réel : Alice


Adresse électronique : alice@localhost
Commentaire :
Vous avez sélectionné cette identité :
« Alice <alice@localhost> »

Faut-il modifier le (N)om, le (C)ommentaire, l'(A)dresse électronique


ou (O)ui/(Q)uitter ? O
Une phrase de passe est nécessaire pour protéger votre clef secrète.

De nombreux octets aléatoires doivent être générés. Vous devriez faire


autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
De nombreux octets aléatoires doivent être générés. Vous devriez faire
Page 18 sur 21
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
gpg: /root/.gnupg/trustdb.gpg : base de confiance créée
gpg: clef CDB148EC marquée de confiance ultime.
les clefs publique et secrète ont été créées et signées.

gpg: vérification de la base de confiance


gpg: 3 marginale(s) nécessaire(s), 1 complète(s) nécessaire(s),
modèle de confiance PGP
gpg: profondeur : 0 valables : 1 signées : 0
confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 1 u.
pub 2048R/CDB148EC 2016-09-28
Empreinte de la clef = 7E68 6D3E 937C F4B0 AA5D 787C C638 9CF9 CDB1 48EC
uid Alice <alice@localhost>
sub 2048R/FF629C2C 2016-09-28
Exportation et publication de la clé

sudo gpg --armor --export "Alice" > /tmp/alice.asc


Bob importe la clé publique d’Alice :

su - bob
gpg --armor --import /tmp/alice.asc
gpg: répertoire « /home/bob/.gnupg » créé
gpg: nouveau fichier de configuration « /home/bob/.gnupg/gpg.conf » créé
gpg: Attention : les options de « /home/bob/.gnupg/gpg.conf » ne sont pas encore actives cette
fois
gpg: le porte-clefs « /home/bob/.gnupg/secring.gpg » a été créé
gpg: le porte-clefs « /home/bob/.gnupg/pubring.gpg » a été créé
gpg: /home/bob/.gnupg/trustdb.gpg : base de confiance créée
gpg: clef CDB148EC : clef publique « Alice <alice@localhost> » importée
gpg: Quantité totale traitée : 1
gpg: importées : 1 (RSA: 1)

Bob envoie un message chiffré à Alice :

su - bob
echo "secret pour Alice" > bob_to_alice.txt
sudo gpg -r Alice --encrypt --armor -o /tmp/bob_to_alice.enc bob_to_alice.txt
Alice déchiffre le message avec sa clé privée :

su - alice
sudo gpg /tmp/bob_to_alice.enc
Une phrase de passe est nécessaire pour déverrouiller la clef secrète de
l'utilisateur : « Alice <alice@localhost> »

Page 19 sur 21
clef RSA de 2048 bits, identifiant FF629C2C, créée le 2016-09-28 (identifiant de clef principale
CDB148EC)

gpg: chiffré avec une clef RSA de 2048 bits, identifiant FF629C2C, créée le 2016-09-28
« Alice <alice@localhost> »
gpg: /tmp/bob_to_alice.enc : suffixe inconnu
Entrez le nouveau nom de fichier [bob_to_alice.txt]:

cat bob_to_alice.txt
secret pour Alice
Lister son trousseau de clés :

su - alice
sudo gpg --list-public-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/CDB148EC 2016-09-28
uid Alice <alice@localhost>
sub 2048R/FF629C2C 2016-09-28

[alice@localhost ~]$ sudo gpg --list-secret-keys


/root/.gnupg/secring.gpg
------------------------
sec 2048R/CDB148EC 2016-09-28
uid Alice <alice@localhost>
ssb 2048R/FF629C2C 2016-09-28
Alice crée et signe un message

su - alice
echo "Peux-tu vérifier la signature ? signé Alice" > alice_to_bob.txt
sudo gpg --clearsign -u Alice alice_to_bob.txt
Une phrase de passe est nécessaire pour déverrouiller la clef secrète de
l'utilisateur : « Alice <alice@localhost> »
clef RSA de 2048 bits, identifiant CDB148EC, créée le 2016-09-28
cp alice_to_bob.txt* /tmp
Bob vérifie ce message

su - bob
cat /tmp/alice_to_bob.txt
Peux-tu vérifier la signature ? signé Alice
gpg --verify /tmp/alice_to_bob.txt.asc
gpg: Signature faite le mer 28 sep 2016 19:26:55 CEST avec la clef RSA d'identifiant
CDB148EC
gpg: Bonne signature de « Alice <alice@localhost> »

Page 20 sur 21
gpg: Attention : cette clef n'est pas certifiée avec une signature de confiance.
gpg: Rien n'indique que la signature appartient à son propriétaire.
Empreinte de clef principale : 7E68 6D3E 937C F4B0 AA5D 787C C638 9CF9 CDB1 48EC

Page 21 sur 21

Vous aimerez peut-être aussi