Les concepts de protocoles et d'algorithmes cryptographiques
Cryptologie, résoudre des problèmes de sécurité associés à la communication
en réseau via des protocoles cryptographiques:
- L’échange confidentiel d’informations
- L’authentification des participants
Ces protocoles cryptographiques utilisent des algorithmes cryptographiques:
- de chiffrement
- De générateurs d’empreintes (fonctions de hachage)
Sécurité - M. DIOKH 1
Les concepts de protocoles et d'algorithmes cryptographiques
Quelques protocoles:
▪ PGP: protocole pour chiffrer et signer des e-mails
▪ S/MIME: protocole pour chiffre et signer des e-mails basé sur une PKI x509
▪ Kerberos: protocole assurant l’authentification et la confidentialité
▪ SSH: protocole assurant l’authentification et la confidentialité
▪ SSL: idem que SSH, basé sur un PKI 509
▪ IPSEC: Protocole VPN
Sécurité - M. DIOKH 2
Les concepts de protocoles et d'algorithmes cryptographiques
Les algorithmes de chiffrement
C’est algorithmes ont pour rôle de rendre incompréhensible un message à
toute autre personne que son destinataire.
Les algorithmes de chiffrement sont de deux types:
- Symétriques: à clé secrète
- Asymétriques: à clé publique
Sécurité - M. DIOKH 3
Les concepts de protocoles et d'algorithmes cryptographiques
Les algorithmes de chiffrement symétrique
Un message en clair est chiffré (crypté) en utilisant une méthode
cryptographique avant d’être transmis au correspondant.
Exemple: la méthode de Jules César, décalage de N lettres
Pour un décalage de 3 lettres BONJOUR devient …………………….
Sécurité - M. DIOKH 4
Les concepts de protocoles et d'algorithmes cryptographiques
Les algorithmes de chiffrement symétrique
Les algorithmes à clé secrète:
▪ DES
▪ 3DES
▪ AES
▪ RC4
▪…
Sécurité - M. DIOKH 5
Les concepts de protocoles et d'algorithmes cryptographiques
Les algorithmes de chiffrement symétrique
TP:
gpg --symmetric fichier
gpg --decrypt [Link]
openssl aes-256-cbc -in fichierEnClair -out fichierCrypter
openssl aes-256-cbc -in fichierCrypter -out fichierEnClair
vim -x fichier
file fichier
Sécurité - M. DIOKH 6
Les concepts de protocoles et d'algorithmes cryptographiques
Les algorithmes de chiffrement asymétrique ou à clé publique
L’algorithme à clé publique utilise deux clés, une clé publique et une clé privée.
Ces deux clés sont générées ensemble et elles dépendent l’une à l’autre.
La clé publique peut être publiée sans risque, mais la clé privée doit être
conservée secrète par son propriétaire.
La clé publique sert habituellement à crypter un message et la clé privée à la
décrypter, mais l’inverse est possible.
Sécurité - M. DIOKH 7
Les concepts de protocoles et d'algorithmes cryptographiques
Les algorithmes de chiffrement asymétrique ou à clé publique
TP:
▪ User1 génère un couple de clés
openssl genrsa -out [Link] 1024
▪ User1 extrait la clé publique
openssl rsa -in [Link] -pubout -out [Link]
▪ User2 chiffre le fichier en utilisant la clé publique de User1
openssl rsautl -inkey [Link] -pubin -in [Link] -out [Link] -encrypt
▪ User1 déchiffre avec sa clé privée
openssl rsautl -inkey [Link] -in [Link] -out [Link] -decrypt
Sécurité - M. DIOKH 8
Les concepts de protocoles et d'algorithmes cryptographiques
Les fonctions de hachage
Elles permettent de créer l’empreinte numérique d’un message. Si l’on modifie
le message, l’empreinte associée est complètement différente.
Les fonctions de hachage vérifient qu’un message ou un fichier n’a pas été
altéré.
Sécurité - M. DIOKH 9
Les concepts de protocoles et d'algorithmes cryptographiques
Les fonctions de hachage
TP
▪ sum fichier
▪ md5sum fichier
▪ sha1sum, sha256sum, sha512sum fichier
▪ openssl dgst -(md5 ou sha1 ou sha256 ou sha512) fichier
Sécurité - M. DIOKH 10
La signature numérique, les certificats X-509, la notion de PKI
La signature numérique
La signature numérique, comme une signature manuscrite, a pour objectif
d’identifier l’auteur d’un document et d’en prévenir toutes falsification.
Sécurité - M. DIOKH 11
La signature numérique, les certificats X-509, la notion de PKI
La signature numérique
TP
User1
openssl dgst -md5 [Link] > fichier.md5
openssl rsautl -sign -in fichier.md5 -inkey [Link] -out [Link]
User2 reçoit le fichier et la signature:
openssl dgst -md5 [Link]
openssl rsautl -verify -in [Link] -inkey [Link] -pubin
Sécurité - M. DIOKH 12
La signature numérique, les certificats X-509, la notion de PKI
Les certificats X-509
Un certificat numérique est un document qui comprend essentiellement une
clé publique et des renseignements sur le propriétaire de cette clé, le tout
signé avec la clé privée d’un organisme reconnu, un CA (Certification
Authority).
X509 permet l’authentification en réseau.
Sécurité - M. DIOKH 13
La signature numérique, les certificats X-509, la notion de PKI
Les certificats X-509
TP:
▪ Génération d’un certificat auto-signé
openssl req -x509 -nodes -newkey rsa:2048 -keyout [Link] -out [Link] -days 365
openssl x509 -in [Link] -text -noout
▪ Génération d’un certificat auto-signé avec l’option subj
openssl req -x509 -nodes -newkey rsa:2048 -keyout [Link] -out [Link] -days 365 \
-subj "/C=SN/ST=Senegal/O=Test/CN=[Link]"
Sécurité - M. DIOKH 14
La signature numérique, les certificats X-509, la notion de PKI
Les certificats X-509
TP: Requête de signature pour un certificat valide
▪ Créer un couple de clés publique/privée
openssl genrsa -out [Link] 2048
NB: la clé publique est contenue dans la clé privée:
openssl rsa -in [Link] -pubout
▪ Créer une requête de certificat
openssl req -new -key [Link] -out [Link]
Sécurité - M. DIOKH 15
La signature numérique, les certificats X-509, la notion de PKI
Les certificats X-509
TP: Requête de signature pour un certificat valide
Le fichier [Link] doit être à l’autorité de certification pour signature.
Exemple: [Link]
Sécurité - M. DIOKH 16
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
Une PKI (Public Key Infrastructure) est une organisation centralisée, gérant les certificats x509
afin d’instaurer la confiance dans les échanges de données, principalement en permettant
l’échange de clés publiques et l’identification des ordinateurs et des individus.
Composants d’une PKI:
- Les certificats
- Les CAs
- Les CRLs
Sécurité - M. DIOKH 17
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
1) Les certificats
Un certificat associe une clé publique et des données d’identités, le tout signé par un CA.
L’identité d’un utilisateur est généralement son adresse e-mail. L’identité d’un serveur est son
adresse DNS complète (FQDN).
Sécurité - M. DIOKH 18
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
2) Les CAs
Le CA (Certification Authority)
- Il crée les certificats (en les signant).
- Il doit vérifier l’authenticité des données présentes dans une requête de certificat.
Ainsi il les garantit via sa signature.
Il existe deux types de CA
- Les CA public : leurs certificats vérifient l’identité des serveurs sur Internet.
- Les CA privés : c’est un CA interne à une société. Ils permettent de créer une PKI interne
Sécurité - M. DIOKH 19
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
3) Les CRL (Certificate Revocation List)
Si un pirate obtient la clé privée d’un serveur, il peut écouter toutes les transactions de celui-ci.
Dès que la compromission a été détectée, il faut créer un nouveau certificat et révoquer l’ancien.
Une CRL contient, au niveau d’un CA, la liste des certificats révoqués qui n’ont pas encore expiré.
Sécurité - M. DIOKH 20
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
1. Création de l’arborescence: avec le compte d’un utilisateur simple
mkdir ~/SSL/
cd ~/SSL
mkdir private
mkdir cacerts
mkdir demoCA
mkdir newcerts
touch demoCA/[Link]
echo "01" > demoCA/serial
Sécurité - M. DIOKH 21
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
2. Génération d’un certificat auto-signé pour le CA
openssl req -x509 -days 3650 -newkey rsa:2048 \
-keyout private/[Link] \
-out cacerts/[Link]
Sécurité - M. DIOKH 22
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
3. Génération d’une requête de signature de certificat pour le serveur Apache et signature de la
requête par le CA
openssl req -nodes -newkey rsa:2048 -keyout private/[Link] \
-subj "/C=SN/ST=Senegal/L=Dakar/O=Test/CN=[Link]" -out private/[Link]
openssl ca -in private/[Link] -days 365 -cert cacerts/[Link] -keyfile private/[Link] \
-outdir newcerts/ -out newcerts/[Link]
Sécurité - M. DIOKH 23
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
4. Génération d’une requête de signature de certificat pour le client et signature de la requête par le
CA
openssl req -newkey rsa:2048 -subj "/C=SN/ST=Senegal/O=Test/CN=diokh" \
-keyout private/[Link] -out private/[Link]
openssl ca -in private/[Link] -days 365 -out newcerts/[Link] -notext \
-cert cacerts/[Link] -keyfile private/[Link] -outdir newcerts/
Sécurité - M. DIOKH 24
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
5. Enregistrer la clé et le certificat du client du fichier au format PKCS#12
mkdir pkcs12
openssl pkcs12 -export -inkey private/[Link] -in newcerts/[Link] \
-certfile cacerts/[Link] -out pkcs12/diokh.p12
!!! Importer le fichier sur la machine du client
Sécurité - M. DIOKH 25
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
6. Apache2 + SSL
sudo a2enmod ssl
sudo systemctl restart apache2
Sécurité - M. DIOKH 26
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
6. Apache2 + SSL
Fichier /etc/apache2/sites-available/[Link]
<VirtualHost _default_:443>
ServerName VOTRE_ADRESSE_IP
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /home/sysadmin/SSL/newcerts/[Link]
SSLCertificateKeyFile /home/sysadmin/SSL/private/[Link]
<VirtualHost>
!!! Activer le site avec la commande a2ensite
Sécurité - M. DIOKH 27
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
6. Apache2 + SSL + Vérification certificat client
<VirtualHost _default_:443>
….
SSLVerifyClient require
SSLVerifyDepth 10
SSLCACertificateFile /home/sysadmin/SSL/cacerts/[Link]
</VirtualHost>
Sécurité - M. DIOKH 28
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
7. Création d'un CRL
mkdir crl
echo 01 > demoCA/crlnumber
openssl ca -cert cacerts/[Link] -keyfile private/[Link] -gencrl -crldays 15 -out crl/[Link]
openssl crl -in crl/[Link] -text -noout
Sécurité - M. DIOKH 29
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
8. Révocation du certificat client:
openssl ca -cert cacerts/[Link] -keyfile private/[Link] -revoke newcerts/[Link]
mise à jour de la liste des certificats révoqués:
openssl ca -cert cacerts/[Link] -keyfile private/[Link] -gencrl -crldays 15 -out crl/[Link]
openssl crl -in crl/[Link] -text -noout
Sécurité - M. DIOKH 30
La signature numérique, les certificats X-509, la notion de PKI
La notion de PKI (Public Key Insfrastructure)
TP: PKI + Apache2: Imposer une authentification basée sur les certificats et gestion de la révocation
9. Apache2 + SSL + Vérification certificat client + gestion de la révocation
<VirtualHost _default_:443>
…
SSLCARevocationCheck chain
SSLCARevocationFile /home/sysadmin/SSL/crl/[Link]
</VirtualHost>
Sécurité - M. DIOKH 31