Vous êtes sur la page 1sur 49

CHAPITRE5

HTTPS

132
HTTPS

 C’est la contraction des protocoles HTTP et


SSL
 Le protocole HTTPS permet de sécuriser le
paiement en ligne.

133
SSL : Services

 Authentification
 Serveur (obligatoire), client (optionnel)
 Utilisation de certificat X509 V3
 A l’établissement de la session.
 Confidentialité
 Algorithme de chiffrement symétrique négocié, clé
générée à l’établissement de la session.
 Intégrité
 Fonction de hachage avec clé secrète
 Non Rejeu
 Numéro de séquence
134
SSL : Protocoles

Application

SSL
Handshake

Alert CCS

Record

TCP

135
Handshake (1/5)

 Authentification du serveur et éventuellement


du client,
 Négociation des algorithmes de chiffrement
et de hachage, échange d’un secret,
 Génération des clés.

136
Handshake (2/5)

Message Type de Sens de Signification


message transmission
HelloRequest optionnel serveur → client Ce message demande au client d'entamer
le Handshake.
ClientHello obligatoire client → serveur Ce message contient :
le numéro de version du protocole SSL ;
le nombre aléatoire : client_random ;
l'identificateur de session : session_ID ;
la liste des suites de chiffrement choisies
par le client ;
la liste des méthodes de compression
choisies par le client.
ServerHello obligatoire serveur → client Ce message contient :
le numéro de version du protocole SSL ;
un nombre aléatoire : serveur_random ;
l'identificateur de session : session_ID ;
une suite de chiffrement ;
une méthode de compression.
Handshake (3/5)

Certificate Optionnel serveur → client Ce message contient le certificat du


client → serveur serveur ou celui du client si le serveur le lui
réclame et que le client en possède un.
ServerKeyExchange Optionnel serveur → client Ce message n’est envoyé par le serveur
que s’il ne possède aucun certificat, ou
seulement un certificat de signature.
CertificateRequest Optionnel serveur → client Par ce message, le serveur réclame un
certificat au client.
ServerHelloDone Obligatoire serveur → client Ce message signale la fin de l’envoi des
messages ServerHello et subséquents.
Handshake (4/5)

ClientKeyExchange Obligatoire client → serveur Ce message contient le PreMasterSecret


crypté à l’aide de la clé publique du
serveur.
CertificateVerify Optionnel client → serveur Ce message permet une vérification
explicite du certificat du client.
Finished obligatoire serveur → client Ce message signale la fin du protocole
client → serveur Handshake et le début de l’émission des
données protégées avec les nouveaux
paramètres négociés.
Handshake (5/5)

Ouverture d'une
session SSLv3
Client Serveur

Client Hello

Serveur Hello
Certificate
(Serveur Key Exchange)
(Certificate Request)
Server Hello Done

(Certificate)
Client Key Exchange
(Certificate Verify)
ChangeCipherSpec
Finished

ChangeCipherSpec
Finished
Application Data

Application Data

140
ChangeCipherSpec (CCS)

 ChangeCipherSpec signale au Record toute


modification des paramètres de sécurité,

 Constitué d’un message (1 octet)

141
Le protocole Record
 Reçoit les données des couches supérieures : (Handshake, Alert, CCS,
HTTP, FTP ...), et les transmet au protocole TCP.

 Après application de :
 la fragmentation des données en blocs de taille maximum de
214 octets
 la compression des données, fonction prévue mais non
supportée actuellement.
 La génération d’un condensât pour assurer le service
d’intégrité.
 le chiffrement des données pour assurer le service de
confidentialité.

142
Le protocole Alert

 Le protocole Alert peut être invoqué :


 par l’application,
 par exemple pour signaler la fin d’une connexion
 par le protocole Handshake suite à un problème
survenu au cours de son déroulement
 par la couche Record directement,
 par exemple si l'intégrité d'un message est mise en
doute

143
Le protocole Alert (2)

Message Contexte Type


bad_certificate échec de vérification d’un certificat fatal
bad_record_mac réception d’un MAC erroné fatal
certificate_expired certificat périmé fatal
certificate_revoked certificat mis en opposition (révoqué) fatal
certificate_unknown certificat invalide pour d’autres motifs que ceux fatal
précisés précédemment
close_notify interruption volontaire de session fatal
decompression_failure les données appliquées à la fonction de fatal
décompression sont invalides (par exemple, trop
longues)
handshake_ failure impossibilité de négocier des paramètres satisfaisants fatal
illegal_parameter un paramètre échangé au cours du protocole fatal
Handshake dépasse les bornes admises ou ne
concorde pas avec les autres paramètres
no_certificate réponse négative à une requête de certificat avertissement
ou fatal
unexpected_message arrivée inopportune d’un message fatal
unsupported_certificate le certificat reçu n’est pas reconnu par le destinataire avertissement
ou fatal
SSL : charges

 Les choix pour les calculs de la charge


cryptographique de SSL:
 algorithme de chiffrement du protocole record : DES 64 bits;
 algorithme de chiffrement asymétrique : RSA 1024 bits ;
 fonction de hachage : MD5 ;
 certificat du serveur : autorité de certification unique, déjà connue du
client (un seul certificat dans le message Certificate) ;
 taille des informations contenues, du message Certificate : 500
Koctets (notons que la taille des informations du certificat est dans la
plupart des cas inférieure) ;
 seul le serveur est certifié.

145
Exercice 1
On s’intéresse à HTTPS
 Lors de l’authentification, le protocole utilise une clé publique contenue
dans un certificat que le serveur détient et diffuse au client à
l’établissement de la connexion. Quelles sont les services offerts par
l’utilisation d’un certificat serveur ?
 Comment l'utilisateur du navigateur peut-
il être assuré que cette clé publique
correspond bien à l'organisme auquel il souhaite accéder ?
 Pourquoi tolère-t-on l’absence d’authentification du client ?
 Décrire les faiblesses de l’authentification dans SSL.

146
Exercice 2

On s’intéresse au protocole FTPS.


1. Quels sont les services de sécurité offerts par ce protocole ?
2. Rappeler le principe du handchake SSL .
3. L’attaque par rejeu est elle possible dans ce cas ?
pourquoi ?
SSL utilise les certificats. La vérification d’un certificat comporte
différentes étapes.
4. Quels sont les traitements à réaliser pour vérifier un
certificat ?

147
CHAPITRE6
SÉCURISATION DES
SERVEURS DNS

148
Gestion des noms sur arpanet

 L’ARPANET des années 80 est constitué d’une centaines


d'ordinateurs reliés en réseaux. Un unique fichier
hosts.txt rassemble les correspondances entre nom
d'hôte et adresse IP.

 Le fichier est stocké sur le SRI-NIC . Après chaque


modification, des copies sont transférées par ftp vers les
ordinateurs du réseau.

(1) Advanced Research Program Agency Network

(2) Stanford Research Institutes Network Information Center


hosts.txt file (extrait)
HOSTS.TXT
Examples of Host Table Format
NET : 10.0.0.0 : ARPANET :
NET : 128.10.0.0 : PURDUE-CS-NET :
GATEWAY : 10.0.0.77, 18.10.04 :
MIT-GW.ARPA,
MIT-GATEWAY : PDP-11 :
MOS : IP/GW, EGP :
HOST : 26.0.0.73, 10.0.0.51
SRI-NIC.ARPA, SRI-NIC, NIC :
DEC-2060 : TOPS-20 :
TCP/TELNET, TCP/SMTP
TCP/TIME, TCP/FTP
TCP/ECHO, ICMP :
HOST : 10.2.0.11 : SU-TAC.ARPA,
SU-TAC : C/30 : TAC : TCP :m
Les inconvénients

 La taille du fichier hosts.txt augmente avec le


nombre d’hôtes

 En 1983, le réseau amorce son expansion


exponentielle.

 La fréquence des mises-à-jours des tables


devient proportionnelle au nombre de machines

 La consommation de bande passante est


proportionnelle au carré du nombre d’hôtes
J. Postel P. Mockapetris

1983-84 Paul Mockapetris et Jon Postel


proposent et développent une solution à
base de BD distribuée Domain Name
System
152
DNS

 Domain Name System (système de noms de domaine) est


un service permettant d'établir une correspondance entre
une adresse IP et un nom de domaine.
 Principaux composants:
 Base de données: arbre DNS and enregistrements des
ressources (Resource Records ou RR).
 Serveurs de nom: répondent aux requêtes.
 Clients: librairie logicielle, appelée resolveur, envoie des
requêtes aux serveurs de nom.

153
L’espace des noms de domaine
• La racine s’appelle « root »
• Chaque nœud porte un
. ou root nom, c’est une zone (domaine
ou sous-domaine)

ma de tn com info net


TLD « top-level » domaines

ac
domaines ac-tunis bnf
ipeti ump domaines

Univ-oujda
crdp
sous-domaines sous-domaines
www esto mail
hôtes 154
Résoudre un nom

Application : DNS du client


Quelle est l’adresse IP Resolver ou du FAI
de est.ump.ma ?

DNS
DNS root ou . DNS .ma
ump.ma

155
DNS: RR (Ressource Record)

 Les nœuds de l’espace sont décrits par des


RR (record ressource) maintenus à jour sur
des serveurs autorisés : opération manuelle.

 Le rôle des serveurs de noms est de


propager ces informations en répondant aux
questions des résolveurs.

156
DNS: RR (Ressource Record)
 La base de données DNS
 Format d’un enregistrement (RR):
 {nom} {TTL} Classe Type Valeurs
 Classe: IN (INternet) , CH (CHaosnet,)

 Types dans la classe IN


 A : Address record, @IPv4
 A6 ou AAAA : @IPv6
 NS: Name server record, serveur DNS du domaine
 CNAME: Canonical Name, (nom officiel vs alias)
 SOA: Start Of Authority record, indique le début d’une zone
 PTR: PoinTeR record, pour les resolution inverse
 MX: Mail eXchanger record, indique les machines ayant en charge la réception du mail
dans le domaine
 RR SOA: désigne le début obligé et unique d’une zone.

isetcom.tn. IN SOA isetcom.tn. admin.isetcom.tn. (


2003110301 ; Serial
10800 ; Refresh (3h)
3600 ; Retry (1H)
3600000 ; Expire (5w6d16h)
6400 ) ; Minimum ttl (1D)

Contact
Zone admin@isetcom.tn

Pour la cohérence
des bases
Pour la m.à.j

 RR NS: permet de déclarer les serveurs DNS du domaine (primaire et secondaires)

{name} {ttl} addr−class NS Name servers name


IN NS master.isetcom.tn.
IN NS slave1.isetcom.tn.
IN NS slave2.isetcom.tn.

158
 RR A: Associe un nom à une ou plusieurs @IP, c’est le RR le plus fréquent

Serv-ftp IN A 172.172.17.3
IN A 172.172.17.12
IN A 172.172.17.26

 RR PTR: associe une @IP à un nom, pour la résolution inverse

3 IN PTR serv-ftp.isetcom.tn
12 IN PTR serv-ftp.isetcom.tn
26 IN PTR serv-ftp.isetcom.tn

 RR CNAME: permet d’associer le nom officiel avec des alias

www.isetcom.news.tn IN CNAME serv-web2.isetcom.tn

 RR MX: Donne la liste des machines ayant en charge la réception des mails dans le domaine

isetcom.tn IN MX 10 smtp.isetcom.tn
isetcom.tn IN MX 20 mailhost.isetcom.tn

159
Vulnérabilités du serveur DNS
Attaques du DNS

 Empoisonnement de la cache
 DNS A reçoit une requête pour laquelle il n’a pas
de réponse, alors il demande à DNS B.
 DNS B répond avec des informations erronées.
 DNS A accepte la réponse de DNS B sans aucune
autre vérification et enregistre des données
erronées dans sa cache.
Attaques du DNS
Attaques du DNS

 Empoisonnement de la cache du DNS Cache


 Provoque des DoS:
 Un serveur DNS récursif se termine avec une auto
référence de sa cache. Exemple:
foobar.xyz.org. IN CNAME foobar.xyz.org.
 Un attaquant peut planter le DNS après injection de la
RR suivante dans sa cache en demandant un transfert
de zone à foobar.xyz.org
Attaques du DNS

 Flooding du Client :
 Le client envoie une requête DNS.
 L’attaquant envoie des milliers de réponses
apparaissant comme venant du serveur DNS..
 Le client accepte ces réponses car il n’a pas de
moyen pour vérifier leur origine.
Attaques du DNS

 Vulnérabilités du DNS Dynamic Update :


 C’est une forme de contrôle d’accès.
 Des protocoles tels que DHCP utilisent le DNS
Dynamic Update protocol pour ajouter et
supprimer des RRs.
 Un attaquant (utilisant l’IP spoofing d’un serveur
de confiance) peut lancer une attaque de DoS en
supprimant RRs, ou effectuer des redirections
malicieuses en changeant l’IP d’un RR lors de la
mise à jour.
Attaques du DNS

 Information Leakage: (fuite d’informations)


 Les transferts entre zones peuvent entrainer une fuite
d’informations sur les réseaux internes..
 Ou un attaquant peut tester chaque adresse IP afin de
connaitre les adresses qui ne sont pas assignées.
 Si le sytème a confiance dans le réseau IP entier, au lieu
de spécifier chaque hôte auquel il a confiance, alors le
système peut être vulnérable à une attaque utilisant des
adresses IP non assignées.
spoofing

 ID Spoofing du DNS
 La machine X a besoin de connaitre l’IP d’une machine Y
 X assigne un identificateur aléatoire (16 bits) à la requête
qu’il envoie au DNS et attend que ce nombre soit présent
dans la réponse du DNS.
 Un attaquant utilisant un sniffer intercepte la requête du
DNS et envoie une réponse à X contenant l’identificateur
correct mais avec un IP de son choix.
spoofing
Solution: DNSSEC

 DNSSEC: Domain Name System SECurity


Extensions
 Services:
 Distribution de clés.
 Authentification de l’origine des données
 Authentification des transactions et des requêtes.

169
RRs et RRsets

 Resource Record:
 name TTL class type rdata
www.ripe.net. 7200 IN A 192.168.10.3

 RRset: RRs avec le même nom, classe et type:


www.ripe.net. 7200 IN A 192.168.10.3
A 10.0.0.3
A 172.25.215.2

 RRsets sont signés pas les RRs individuellement.


DNSSEC

 Introduit deux nouveaux types de RR :


 KEY: utilisé pour stoker une clé publique associée à un
nom de DNS. Elle peut être une clé d’une zone, d’un
utilisateur, d’un hôte,…
 SIG: lie le RRSet qui va être signé au signataire et à un
intervalle de validité.
 NXT: Répond à la non-existence d’un nom d’une manière
sûre.
DNSSEC
 Fonctionnement:
 RRSets contient zéro ou plus RRs ayant le même nom de
DNS, classe et type mais de données différentes.
 Chaque RRSet possède un SIG RR associé qui est une
signature numérique du RRset utilisant la clé privée de la
zone.
 Si un résolveur apprend de manière fiable une clé publiqe
d’une zone, il peut authentifier des données signées lues
à partir de cette zone.
 Un serveur va tenter de renvoyer, avec des RRs
retrouvés, les SIGs correpondants.
DNSSEC

 Obtenir la clé publique d’une zone:


 En la lisant à partir du DNS ou en la configurant
de manière statique.
 Pour la récupérer de manière sécurisée à partir
du DNS, la clé elle même doit être signée avec
une clé dans laquelle le résolveur a confiance.
 Le résolveur doit être configuré avec au moins
une clé publique authentifiant une zone (comme
départ). À partir de là, il pourra lire les clés
publiques d’autres zones.
DNSSEC

Authentification des transactions et des


requêtes:
Ceci est accompli en ajoutant un enregistrement
spécial de ressource SIG à la fin de la réponse ce qui
signe de manière numérique la concaténation de la
réponse du serveur et la requête du résolveur.
Vérification de l’arbre

Question: www.cnn.com

www.cnn.com A ? . (root)
dns.cs.umass.edu
lab.cs.umass.edu
Demander au serveur .com
www.cnn.com A ?
SIG(l’adresse IP et PK du serveur .com )
résolveur Serveur par sa clé privée
xxx.xxx.xxx.xxx récursif www.cnn.com A ?
.com
Signatures Demander au serveur cnn.com
des
SIG(l’adresse IP et PK du serveur .com )
transactions
par sa clé privée

add to cache
www.cnn.com A ?
slave servers
SIG(xxx.xxx.xxx.xxx)
Par sa clé privée Signatures de
la transaction

www.cnn.com cnn.com
Chaine de confiance DNSSEC
La clé publique du domaine
racine est source de confiance
Serveur de nom racine de
pour tous les serveurs de noms
l’arbre DNS
!

it. com.
Serveur de nom

Serveur de nom local host.foo.com. ? foo.com.


Serveur de nom
polito.it.

Il reçoit RRs: A, SIG, KEY host.foo.com.


131.195.21.25
176
Transaction de sécurité DNS

 Transaction Signature (TSIG) est une autre extension de


sécurité utilisant les clés symétriques
 Sécurise la communication entre le serveur des noms et le
résolveur.
 TSIG authentifie les requêtes et les réponses DNS
 TKEY est une meta RR contenant une clé secrète
 TSIG, TKEY – n’est pas stokée ni dans les fichiers ni
dans la cahce.
 PROBLEME: stockage d’une clé secrète!

177
DNS comme PKI

 Un DNS avec ces extensions de sécurité peut devenir une


première implémentation d’une PKI mondiale.
 La “chaine de confiance” de DNSSEC “chain of trust” est
un modèle de certification.

178
Exercice (1/2)
Vous souhaitez vous connecter à votre compte bancaire en passant par le
site Internet de votre banque.
1. Schématiser les différentes étapes vous permettant de vous connecter
au site de votre banque.
2. Donner la principale vulnérabilité du DNS.
3. Expliquer le RRset suivant :
www.mabanque.tn 7200 IN A 192.168.10.3
A 182.123.10.3
A 172.25.215.2
4. Proposez une attaque de type « DNS cache poisoning » dans ce
scénario.

179
Exercice (2/2)
5. Proposez une solution à l’attaque « DNS cache poisoning ».
6. Une des solutions proposées afin de sécuriser DNS est DNSSEC.
Expliquer son principe.
7. Changer le RRset de la question 3 afin d’appliquer les solutions de
sécurité offertes par DNSSEC.
8. Transaction Signature (TSIG) est une autre extension de sécurité
utilisant les clés symétriques.
 Expliquer son fonctionnement.
 Donner les principales attaques qui peuvent être résolues par TSIG.
 Donner deux inconvénients de cette extension.

180

Vous aimerez peut-être aussi