Certificats, PKI Et SSL - Séance 7
Certificats, PKI Et SSL - Séance 7
Certificats, PKI Et SSL - Séance 7
UAE – ENSAH
7 mars 2022
4- Certificats, PKI et SSL
Plan
1 Certificat électronique
3 Certificats SSL/TLS
4- Certificats, PKI et SSL
4.1- Certificat électronique
Problèmes
Distribution à Clés
Révocation
Certificat électronique
Certificat électronique
Certificat électronique
Mais :
B Le CA doit vérifier les détails de chaque utilisateur
B Risques pour la sécurité du CA
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Principaux
B Autorité de certification CA
B Autorité d’enregistrement RA
B Annuaire de publication
B Administrateurs
Complémentaires
B Base de données
B Serveur d’horodatage.
B Serveur HTTP, SMTP, POP.
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Infrastructure hiérarchique
Possibilité de certification entre 2 CAs appartenant à des arbres différents, c’est la
co-certification
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Infrastructure hiérarchique
Possibilité de certification entre 2 CAs appartenant à des arbres différents, c’est la
co-certification
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Infrastructure hiérarchique
Possibilité de certification entre 2 CAs appartenant à des arbres différents, c’est la
co-certification
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Infrastructure hiérarchique
Possibilité de certification entre 2 CAs appartenant à des arbres différents, c’est la
co-certification
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Infrastructure hiérarchique
Possibilité de certification entre 2 CAs appartenant à des arbres différents, c’est la
co-certification
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
Certificats X.509
× Norme :
? ITU-T X.509, ou ISO/IEC 9594-8
× Versions successives :
? 1988 : v1
? 1993 : v2 = v1 + 2 nouveaux champs
? 1996 : v3 = v2 + extensions
4- Certificats, PKI et SSL
4.2- Infrastructure à Clés Publiques (PKI)
IssuerUniqueIdentifie
B identifie de façon unique la clé utilisée par le CA pour signer le certificat
SubjectUniqueIdentifier
× Le concept d’origine des certificats X.509 est de relier l’identité d’une entité à une
clé publique
× Nouvelles situations :
× Solution :
Certificat électronique
Le Maroc ou on est ? ?
Certificats SSL/TLS
SSL (Secure Socket Layer) est un protocole à négociation (on parle du « HandShake »
SSL), développé à l’origine par Netscape. Il a pour but de sécuriser les transactions
Internet, par authentification du client (Un navigateur la plupart du temps) et du
serveur, et par chiffrement de la session.
TLS (Transport Layer Security Protocol), développé par l’IETF, est la version 3.1 de SSL.
TCP/IP
IP (Internet Protocol) est le nom donné au protocole qui déploie le trafic sur
l’Internet.
B Le trafic est transmis par petits paquets qui contiennent les adresses IP de l’expéditeur
et du destinataire.
TCP et IP
Le protocole IP est responsable du transport de paquets d’une adresse internet à
une autre.
B Chacun des petits paquets sait où il va et d’où il vient.
? les adresses IP.
B Deux paquets envoyés par le protocole IP ne sont pas nécessairement reçus dans le
même ordre.
La pile TCP/IP
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
La pile TCP/IP
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
La pile TCP/IP
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
La pile TCP/IP
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
La pile TCP/IP
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Trames-Datagrammes-Segments
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Trames-Datagrammes-Segments
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Connexion :
B Offre certains services de sécurité entre deux entités.
B Éphémère mais établie dans le cadre d’une Session SSL
Session :
B Association entre un client et un serveur
B Etabli lors du protocole de "Handshake"
B Un ensemble de paramètres de sécurité, dans chaque sens, est négocié une seule fois
et partagé par les connexions
B L’état courant défini les paramètres courants, l’état en attente ("Session pending
state") défini les paramètres suivants (cf. "Change Cipher Spec Protocol")
? Nota : il peut y a avoir plusieurs sessions établies entre 2 mêmes partenaires (rarement)
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
"Session identifier"
"Peer certificate" :
B certificat X509 ou rien
"Compression method"
"Cipher specification" :
B algo. de chiffrement et algo. d’authentification et leurs paramètres
"Master secret"
B 48 octets partagés entre le client et le serveur
"Is resumable" :
B Les paramètres de la session peuvent être utilisés pour établir une connexion
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
"Initialization vectors" :
B Utilisés en mode CBC. Le premier IV est issu du protocole "Handshake", puis le
dernier bloc chiffré sert d’IV pour la prochaine transmission chiffrée, au sein de la
même connexion.
"Sequence numbers" :
B Un numéro de séquence est mémorisé, un pour chaque sens de transmission.
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
L’anatomie de SSL
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
L’anatomie de SSL
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
L’anatomie de SSL
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Le champ "Level" :
B "warning" = 1
B "fatal" = 2 :
? la connexion est close et il n’y aura plus de
nouvelles connexions pour cette Session
Handshake Protocol
[0] Communications
[1]
[0] [0]
[1]
Client Hello
−−−−−−−−−−−−−−−−−→ [1]
Serveur Hello client Hello :
serveur Hello ←−−−−−−−−−−−−−−−−−−−−
B sélection de version SSL B la version SSL maximale
certif icat B liste d’algos supportés
B sélection d’algos −−−−−−−−−−−−−−−−−−−→
B un nonce
B un nonce échange de clé
−−−−−−−−−−−−−−−−−−−→
certificat :
certificat : f in hello
B Transmet certificat X509 −−−−−−−−−−−−−−−−−−−→ B certificat éventuel client
B signature de la discussion
B Demande certificat client (rare) certif icat
←−−−−−−−−−−−−−−−−−−−
échange de clé II :
échange de clé I : échange de clé
B Message complémentaire pour l’échange de clé
←−−−−−−−−−−−−−−−−−−−− B clé pré-master chiffrée
f in
fini : ←−−−−−−−−−−−−−−−−−− fini :
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Server certificate
B envoyé si le serveur doit s’authentifier, dès que Server Hello
a été envoyé
B ontient une chaîne de certificats X509 v3 (avec le certificat
racine en dernier), correspond à l’algo utilisé (RSA, DH, >)
=⇒ le client dispose donc de la clé publique du serveur
Server key exchange
B envoyé uniquement si le client n’a pas toutes les données
nécessaires
? ex : le serveur n’a pas de certificat
B paramètres de la clé de chiffrement (modulo, exposant>)
B hash MD5/SHA
? client.random + server.random+paramètres
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Certificate request
B envoyé uniquement si l’authentification du client est requise
B types de certificats admis
=⇒ noms d’autorités de certification reconnues
Server hello done
B le serveur attend une réponse du client
Client certificate
B envoyé uniquement si le serveur a réclamé une
authentification du client
B certificat
B si le client ne possède pas de certificat, une alerte est
envoyée au serveur. Suivant les cas, cela peut faire échouer
la négociation.
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Certificate verify
B envoyé si le client a envoyé un certificat qui permet de signer
B hash MD5 et hash SHA de tous les messages de négociation envoyés jusqu’ici
Comme nous venons de le voir, un client SSL n’est pas obligé de s’authentifier.
B SSL permet des sessions où seulement le serveur s’authentifie au client mais pas
l’inverse.
L’identification du client peut alors se faire (comme c’est le cas dans la pratique) en
demandant un mot de passe.
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Le client ne peut s’authentifier qu’au serveur qui connaît un mot de passe pour
celui-ci.
La sécurité d’une telle session est plus difficile à établir, puisque la gestion des mots
de passe n’est pas intégrée au protocole mais arrive plus tard.
De tels systèmes sont aussi sûrs que le mot de passe. Donc, il semble qu’un
système qui établirait l’identité d’un client basé sur un mot de passe dès le départ
serait au moins aussi bon :
B Plus précisément, nous pourrions avoir un protocole d’établissement de liaison qui ne
puisse être compromis plus rapidement que le temps nécessaire pour deviner le mot de
passe en ligne.
B Rien de mieux ne peut être obtenu.
B Un tel échange de clés est dit « échange de clés authentifié par mots de passe ».
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
HTTPS
HTTPs
= HTTP standard sur le port 443 (à la place de 80)
+ TLS
+ TCP/IP
Applications
Secure HTTP est le nom donné à l’utilisation de SSL ou TLS pour établir une connexion sûre entre
un serveur WEB et son client. Le résultat est un tunnel entre le client et le serveur, par
lequel chaque transmission est chiffrée sans que l’application ait à s’en soucier :
https://www.abc.def.com
VPN (Virtual Private Network) permet d’établir des connexions sûres entre un client distant et un réseau
local. Durant la phase d’initialisation entre le client et la passerelle VPN, celui-ci se voit
attribuer une adresse IP comme s’il était membre du réseau local.
B Une fois initialisées, toutes les communications sont chiffrées et authentifiées. Pour ce
faire, un échange de clé est nécessaire. Des VPN le réalisent avec leurs propres méthodes
tandis que d’autres utilisent IPSec ou SSL/TLS. VPN permet de travailler comme si le
client faisait partie du réseau local. Des employés peuvent travailler à la maison avec les
mêmes privilèges qu’au bureau.
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Les protocoles que nous avons rencontrés sont de bas niveau. Ils ne sont pas bien
adaptés aux humains !
B SSL ne peut être utilisé pour signer des courriels ou documents, car SSL ne reconnaît pas le
concept de document.
La cryptographie appliquée à des objets de plus haut niveau est offerte par d’autres
solutions.
MIME : un standard pour la transmission des courriels. S/MIME est un standard avec des
champs supplémentaires pour la signature et le chiffrement de courriels.
XML : un standard qui propose une extension de HTML qui, en particulier, permet de
chiffrer et de signer des pages Web.
PGP (Pretty Good Privacy) : permet de signer et de chiffrer des courriels. Au lieu de baser la
sécurité sur des CA, il utilise un concept de toile de confiance («web of trust»).
Votre ami(e) peut vous envoyer une clé publique d’une troisième personne qui
déclare que ceux-ci font confiance à cette clé. Vous pouvez décider de faire confiance
à cette clé si suffisamment de vos amis l’ont recommandée.
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
B intercepter trafic entre deux parties avant qu’elles ne débutent une session SSL.
L’intercepteur négocie alors une session avec chaque partie et fait suivre le trafic en le
déchiffrant et rechiffrant à la volée.
B E.g., dans le cas de l’utilisation du protocole HTTPS par un client web pour authentifier
un serveur, l’intercepteur crée un certificat ressemblant au certificat légitime du serveur
et détourne le trafic.
B Si, malgré l’avertissement du navigateur sur le certificat, le client poursuit sa session,
l’intercepteur obtiendra toutes les infos que le client envoie au serveur sans que ce
dernier ne s’en rende compte.
B ++ outils qui reproduisent cette attaque sont disponibles sur l’Internet.
4- Certificats, PKI et SSL
4.3- Certificats SSL/TLS
Fin de Séance
Vos Questions ?