0% ont trouvé ce document utile (0 vote)
96 vues98 pages

Sécurisation des échanges avec SSL/TLS

Ce document décrit les protocoles SSL/TLS qui sécurisent les échanges applicatifs. Il explique les différentes couches protocolaires impliquées ainsi que les opérations effectuées par le protocole SSL Record pour le chiffrement et l'authentification des données.

Transféré par

brahimaghezaf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
96 vues98 pages

Sécurisation des échanges avec SSL/TLS

Ce document décrit les protocoles SSL/TLS qui sécurisent les échanges applicatifs. Il explique les différentes couches protocolaires impliquées ainsi que les opérations effectuées par le protocole SSL Record pour le chiffrement et l'authentification des données.

Transféré par

brahimaghezaf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Sécurité des échanges

applicatives
Préparé Par: Dr. Yassine Maleh

IEEE Senior Member


[email protected]
https://sites.google.com/view/maleh
Sécurisation des
échanges applicatifs:

Secure Layer Socket


SSL / Transport
Layer Security TLS
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.

Les Services fournis sont les suivants :

v Intégrité des données transmises (md5, sha-1) ;


v Confidentialité des données transmises (rsa, des, 3des…) ;
v Authentification de l’identité des correspondants la connexion est
fiable (X509 et MAC)
TCP/IP
v Pour comprendre SSL, il est utile de voir sur quoi il repose.

v IP (Internet Protocol) est le nom donné au protocole qui


déploie le trafic sur l’Internet. Le trafic est transmis par
petits paquets qui contiennent les adresses IP de
l’expéditeur et du destinataire.

v TCP (Transmission Control Protocol) repose au-dessus de


IP. Il est orienté connexion, ce qui signifie que certains
types de paquets sont transmis et acceptés dans le but
d’ouvrir une connexion. Les paquets qui suivent peuvent
alors être reconnus comme appartenant à une connexion
établie précédemment.
IP et TCP
v Le protocole IP est responsable du transport de paquets
d’une adresse internet à une autre. Chacun des petits
paquets sait où il va et d’où il vient (les adresses IP). Deux
paquets envoyés par le protocole IP ne sont pas
nécessairement reçus dans le même ordre.

v Le protocole TCP utilise le protocole IP pour établir des


connexions. Ceci permet de réordonner les paquets dans
l’ordre d’expédition. S’il y a perte d’un paquet, celui-ci sera
demandé à nouveau.

v TCP/IP est responsable de la communication à travers une


connexion entre deux adresses IP.

v L’architecture de TCP/IP est par couches («layers»).


La pile TCP/IP

Ensemble de services réseau faisant


l’interface entre le réseau et le
système d’exploitation. HTTP, FTP,
SMTP.

Permet d’identifier les programmes


sur lesquels les données message entête
transportées roulent. Réalise les
protocoles TCP et UDP.
entête
segment
Responsable de l’intégration des
adresses IP. La transport de datagramm entête
données vers des machines
distantes. Forme des datagrammes e
qui contiennent les données ainsi trame
que les adresses IP...

Première couche de la pile.


Responsable de la transmission des
données via un réseau physique
arbitraire. Achemine les données,
coordonne la transmission, formate,
conversion analogique/numérique,
contrôle d’erreurs. Entre machines
voisines.
Trames-Datagrammes-Segments
2
Fragmentation (en
paquets d’environ 1500
octets)

1
Les protocoles SSL / TLS :
Généralités
v Repose sur un procédé de cryptographie à clef publique
v Indépendant du protocole utilisé
▪ Transactions Web (HTTP), connexions via FTP, POP ou IMAP.
▪ Agit telle une couche supplémentaire, permettant d'assurer
la sécurité des données, située entre la couche application
et la couche transport
HTTP SMTP FTP
SSL/TLS

TCP/UDP

IP
Les protocoles SSL / TLS:
Généralités
Les protocoles SSL / TLS:
Connexion et session
SSL
v Connexion :
▪ Offre certains services de sécurité entre deux entités.
▪ Éphémère mais établie dans le cadre d'une Session SSL
v Session :
▪ Association entre un client et un serveur
▪ Etabli lors du protocole de "Handshake"
▪ Un ensemble de paramètres de sécurité, dans chaque
sens, est négocié une seule fois et partagé par les
connexions
▪ 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)
Les protocoles SSL / TLS:
Paramètres de la session
v "Session identifier"
v "Peer certificate" :
▪ certificat X509 ou rien

v "Compression method"
v "Cipher specification" :
▪ algo. de chiffrement
et algo.
d'authentification et
leurs paramètres
v "Master secret"
▪ 48 octets partagés
entre le client et le
serveur
v "Is resumable":
▪ Les paramètres de la session peuvent être utilisés pour établir une
connexion
Les protocoles SSL / TLS:
Paramètres de la connexion
v "Server and client random" :
▪ Choisie à chaque nouvelle connexion.

v "Server write MAC secret" et "Client write MAC secret "


▪ Un secret utilisé pour vérifier l'intégrité des messages (un pour chaque
sens).
v "Server write key" et "Client write key" :
▪ Pour le chiffrement, dans le sens serveur-client et vice-versa.

v "Initialization vectors" :
▪ 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.
v "Sequence numbers" :
▪ Un numéro de séquence est mémorisé, un pour chaque sens
de transmission.
Les protocoles SSL / TLS: Structure

SSL SSL SSL alert


Handshake cipher Application protocol
change Protocol (eg.
protocol protocol HTTP)
SSL Record Protocol

TCP

IP
Les protocoles SSL / TLS:
Vue globale
SSL est composé des protocoles suivants :

v Record Protocol : Responsable du transport des données brutes. Il


communique avec la couche transport. Il chiffre et authentifie (calcule
un CAM) l’information en utilisant le cipher_spec . Si le cipher_spec
est vide, alors l’information n’est ni chiffrée ni authentifiée.
v Handshake Protocol : Responsable de l’échange de clés
authentifiées. Le but de ce protocole est d’amener le client et le
serveur qui ne partagent pas de clés à s’entendre sur un
cipher_spec , choisi parmi ceux voulus par le client, avant d’exécuter
l’échange de clés authentifiées.
v ChangeCipher Protocol : Un message ou une entité annonce à
l’autre un changement de cipher_spec tel que négocié
précédemment.
v Alert Protocol : Un message indiquant une erreur.
L’anatomie de SSL
Opérations du "SSL Record protocol »
Opérations du "SSL Record
protocol »
Données applicatives
Fragmentation :
n frontières messages clients peuvent être
déplacées
Frag 1 Frag 2
n fragments de 214 octets au plus
Compression (optionnelle) :
ajoute au pire 1024 octets
Compressé
n

n sans pertes
Sceau :
n HMAC(MAC_write_secret,seq_num+type de
protocole TLS+version TLS+taille du
fragment compressé+fragment compressé)
Compressé MAC
+ = concaténation
Chiffrement :
n le fragment peut être paddé (chiffrement
Fragment chiffré
par blocs)
n on chiffre le fragment compressé + MAC
n ajoute au pire 1024 octets
"Change Cipher Spec Protocol"

v Lorsque la "cipher suite" doit être changée :


▪ à la réception de ce message d'un octet, on
substitue à la spécification courante la spécification
en attente ("pending state").
"Alert Protocol "

v Transmission d'un message d'alerte aux entités.


▪ Ces messages peuvent être compressés et
chiffrés comme les autres messages de la
Niveau Description
même session.
v Le champ "Level" :
▪ "warning" = 1
▪ "fatal" = 2 : la connexion est close et il n'y
PDU alerte
aura plus de nouvelles connexions pour
cette Session
v Le champ "Alert" spécifie l'erreur :
▪ "unexpected_message", "bad_record_MAC",
"decompression_failure",
"handshake_failure", "illegal_parameter" //
"close_notify",
"Handshake Protocol
Serveur client hello
serveur Hello
certificat
échange de clé
fin hello
certificat
échange de clé
fini
serveur Hello : client Hello :
-sélection de version SSL fini
-sélection d’algos -la version SSL maximale
échange de clé I : fini : -liste d’algos supportés
-un nonce Message -change cipher_spec -un nonce
certificat : complémentaire pour
certificat
-Transmet certificat l’échange de clé
-certificat éventuel client
X509 fini : -signature de la discussion
-Demande certificat -change cipher_spec
client (rare) échange de clé II :
clé pré-master chiffrée
SSL / TLS: Négociation de session

Déroulement habituel d'un


handshake SSL avec
authentification mutuelle :
en noir, les échanges initiés par
le serveur.
en rouge, les échanges initiés
par le client.
SSL / TLS: Négociation de session
Phase 1 : Etablissement des paramètres de sécurité
v Client Hello
• heure
• tirage nbre aléatoire client.random (28 octets)
• session Id : vide = nouvelle session,
session Id : renseigné = utiliser session déjà
ouverte
• choix d’algorithmes de chiffrement
supportés
• méthode de compression supportés
• n° version du client SSL utilisé
v Server Hello
• le serveur sélectionne la version
• tirage nbre aléatoire : server.random (28 oct)
• session Id : renseigné = numéro nouvelle
session, ou session à réutiliser ,
session Id : vide = session à ne pas
mettre en
cache
• algorithme de chiffrement sélectionné
• méthode de compression à utiliser
v Si session réutilisée, passer en FINISH
SSL / TLS: Négociation de session
Phase 2 : Authentification du serveur et échange des clés
v Server certificate
• envoyé si le serveur doit s’authentifier,
dès que Server Hello a été envoyé
• contient 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

v Server key exchange


• envoyé uniquement si le client n’a pas
toutes les données nécessaires (ex: le
serveur n’a pas de certificat)
• paramètres de la clé de chiffrement
(modulo, exposant>)
• hash MD5/SHA (client.random +
server.random+paramètres)
SSL / TLS: Négociation de session
Phase 2 : Authentification du serveur et échange des clés
v Certificate request
• envoyé uniquement si l’authentification
du client est requise
• types de certificats admis
• noms d’autorités de certification
reconnues
v Server hello done
• le serveur attend une réponse
du client
v Client certificate
• envoyé uniquement si le serveur a
réclamé une authentification du client
• certificat
• 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
SSL / TLS: Négociation de session
Phase 3 : Authentification du client et échange des clés
Clé publique du
serveur
N° Version (2 bits) Pre Master Secret
RSA Key sécurisé
Pre Master Secret Key (46 bits)
Client Key Exchange
v Client key exchange
• dans le cas de l’algorithme RSA, le client génère un “pre-master
secret” de 46 octets + 2 octets n° version (pour détecter les «
rollback attacks »)
• il chiffre ce pre-master secret avec la clé publique du serveur
v Calcul des clés
• le pre-master secret, client.random et server.random permettent
au client et au serveur de calculer :
• 2 clés de sessions (une pour chaque sens), et
• 2 clés secrètes à utiliser pour les MACs.
SSL / TLS: Négociation de session

v Certificate verify
v envoyé si le client a envoyé un certificat qui permet de signer
v hash MD5 et hash SHA de tous les messages de
négociation envoyés jusqu’ici
v Client Finish et Server Finish
v envoyé après un Change Cipher Spec et donc chiffré avec les
nouveaux algorithmes négociés.
v client et serveur doivent envoyer un “Finish” et vérifier celui qu’il
reçoive de la partie opposée.
v PRF(master_secret,finished_label, Hash MD5 +Hash SHA de
tous les messages de négociations envoyés jusqu’ici) sur 12
octets, finished_label = “client finished” ou “server finished”.
SSL sans authentification du client
v Comme nous venons de le voir, un client SSL n’est pas
obligé de s’authentifier. SSL permet des sessions où
seulement le serveur s’authentifie au client mais pas
l’inverse.
v Dans bien des situations, c’est la meilleure chose
possible, car les clients n’ont pas nécessairement de clés
publiques certifiées.
v Dans cette situation, le client sait qu’il parle au bon
serveur, mais le serveur ne sait rien de l’identité du
client.
v L’identification du client peut alors se faire (comme c’est
le cas dans la pratique) en demandant un mot de passe.
L’authentification du client par
mot de passe
v Supposons qu’un serveur WEB détient une liste d’utilisateurs + mots de
passe mais les utilisateurs n’ont pas de clés publiques certifiées. Seul le
serveur possède une telle clé publique.
v Le serveur veut authentifier un utilisateur qui se connecte.

v Comment faire?

v Ouvrir une session SSL,

v Demander à l’utilisateur de fournir son mot de passe.

le mot de passe
est donc chiffré!

SSL
Limites de l’approche par mot de
passe
v Le client ne peut s’authentifier qu’au serveur qui connaît un mot
de passe pour celui-ci.
v 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.
v 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 :
v 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.
v Rien de mieux ne peut être obtenu.
v Un tel échange de clés est dit « échange de clés authentifié
par mots de passe ».
Échange de clés authentifié par mot de
passe
Ceci semble facile. Les deux parties connaissent un secret pw :

v Nous n’avons qu’à dériver une clé secrète directement à partir de pw ou même utiliser
pw directement pour le chiffrement et le calcul de CAM...

v L’utilisation à long terme sur beaucoup de données cause des problèmes desécurité.

v Les mots de passe doivent être assez courts pour être faciles à mémoriser. Le nombre
de mots de passe possibles est donc beaucoup plus petit que le nombre de possibilités
pour la clé secrète d’un chiffrement symétrique.

v L’adversaire, ayant intercepté un cryptogramme, peut donc tenter le déchiffrement en


essayant les mots de passe possibles hors ligne...tandis que deviner le mot de passe en
ligne peut résulter en une désactivation du compte après quelques essais infructueux.

Ce problème difficile a des solutions connues (p.ex. Bellare et al. Eurocrypt’2000) .


Quelques-uns (sans preuve formelle de sécurité) sont considérés pour standardisation par
l’Internet Engineering Task Force et IEEE Ne sont pas utilisés par les produits
commerciaux...
SSL versus TLS
v Le même format de message.
v L'un est propriétaire, l'autre publique
(IETF).
v Les différences mineures résident dans :
n version number
n message authentication code
n pseudorandom function (TLS : fonction PRF)
n alert codes (TLS en ajoute plusieurs)
n cipher suites
n client certificate types
n certificate_verify and finished message
n cryptographic computations
HTTP
S
v HTTPs = HTTP standard sur le port 443 (à
la place de 80) + TLS + TCP/IP
vGénéralement le driver SSL/TLS est intégré
au navigateur
Applications
v 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 :

v https://www.abc.def.com

v 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.

v 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.
Applications de haut
niveau
v Les protocoles que nous avons rencontrés sont de bas niveau. Ils ne sont pas
bien adaptés aux humains!

v SSL ne peut être utilisé pour signer des courriels ou documents, car SSL ne
reconnaît pas le concept de document.

v La cryptographie appliquée à des objets de plus haut niveau est offerte par
d’autres solutions.

v 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.

v XML : un standard qui propose une extension de HTML qui, en particulier, permet de
chiffrer et de signer des pages Web.

v 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.
SSL / TLS: Attaques
Attaques sur les mise en œuvres des protocoles
• Comme toute appli logicielle, les MeV de SSL/ TLS peuvent présenter
vulnérabilités permettant à un utilisateur mal intentionné d'exécuter du
code arbitraire à distance ou de provoquer un DoS.
Appliquer CORRECTIFS correspondants aux MAJ de ces applis
Attaques rollback (sur anciennes versions)
• l'attaquant cherche à modifier le choix des algos d'échanges de clés de
façon à ce que les 2 entités n'utilisent pas les mêmes (RSA et DH par
exemple).
• cet attaquant pourra déchiffrer le message car les paramètres fournit
par le serveur dans le cas d'un algorithme n'offrent aucune sécurité si
on les applique à un autre...
• Cette attaque peut-être réalisée si une session 3.0 est résumée en
session 2.0 par exemple.
SSL / TLS: Attaques
Attaque de type "man in the Middle "
• 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.
• 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.
• 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.
• ++ outils qui reproduisent cette attaque sont disponibles sur
l'Internet.
SSL / TLS: Solutions
Vérifier correctement le certificat présenté par le serveur. C'est Vérifier
correctement le certificat présenté par le serveur. C'est la seule manière
de s'assurer que la connexion ne sera pas la seule manière de s'assurer
que la connexion ne sera pas interceptée par un éventuel attaquant.
interceptée par un éventuel attaquant.
n Dans les navigateurs, les certificats racine de certaines autorités de
certification sont pré-installés.
n Lorsque le certificat présenté par un serveur n'a pas été signé par l'une de ces
autorités, le navigateur demande confirmation avant d'accepter le certificat. Il
faut alors s'assurer que le certificat présenté par le serveur est le bon
certificat.
n Cette vérification peut se faire à l'aide de deux champs du certificat : le
numéro de série et l'empreinte numérique (empreinte md5 ou sha1). Pour
vérifier la concordance des informations, il faut disposer d'un moyen de
communication de confiance (téléphone, courrier, diffusion de la main à la
main, ...) par lequel pourront être comparés les numéros de série et les
empreintes. De même, il ne faut installer un certificat d'autorité qu'après s'être
assuré que le certificat est correct.
SSL / TLS: Limites
SSL/TLS servent à sécuriser les échanges d'informations entre un client et un serveur et à
obtenir une authentification mutuelle.
Une session SSL/TLS correctement établie va donc protéger les échanges entre les parties,
mais ne sera en protéger les échanges entre les parties, mais ne sera en aucun une garantie
de sécurité pour les systèmes client aucun une garantie de sécurité pour les systèmes client ou
serveur. ou serveur.
Ainsi, si un pirate installe par exemple un enregistreur de frappe (ou keylogger) sur le poste
client, il sera en mesure frappe (ou keylogger) sur le poste client, il sera en mesure de
récupérer les mots de passe ou toute information de récupérer les mots de passe ou toute
information confidentielle, même si celle-ci a été émise lors d'une confidentielle, même si celle-
ci a été émise lors d'une session SSL/TLS. session SSL/TLS.
De même, un serveur qui utilise des sessions SSL/TLS pour récupérer des données sensibles
peut être compromis et récupérer des données sensibles peut être compromis et les données
recueillies pourront être volées. les données recueillies pourront être volées.
ll est donc primordial d'utiliser les protocoles SSL/TLS en prenant certaines précautions, et ne
pas leur prêter une prenant certaines précautions, et ne pas leur prêter une trop grande
garantie de sécurité sur l'ensemble de la trop grande garantie de sécurité sur l'ensemble de la
chaîne d'information chaîne d'information.
Travaux pratiques

SSL/TLS et configuration avancée


Objectifs
• Mettre en place une configuration
SSL/TLS
• Analyse du traffic SSL/TLS
Outils à utiliser

• Serveur/Client
Linux
• GnuTLS
• Wireshark
Sécurisation des
échanges applicatifs:

SSH (Ou Secure Shell)


Le protocole SSH
Le protocole Telnet : simple mais dangereux
Un protocole très simple, très
basique, a été créé dans les
années 80 : c'est Telnet. Il sert
juste à échanger des messages
simples d'une machine à une
autre.
En théorie donc, on peut
communiquer avec un serveur à
l'aide du protocole Telnet. Le
problème de ce protocole… c'est
justement qu'il est trop simple :
les données sont transférées en
clair sur le réseau. Il n'y a aucun
chiffrement
Le protocole SSH: Généralités

SSH (Ou Secure Shell) est un protocole servant à créer une


connexion sécurisée entre deux systèmes.

v Mesures de sécurité offertes :


▪ Assurance du client de la connexion au même serveur lors des
sessions suivantes ;
▪ Transmission de ses données d'authentification au serveur, telles
que son nom d'utilisateur et son mot de passe, en format crypté ;
▪ Transfert de façon chiffrée des données envoyées et reçues à lire ;
▪ Possibilité pour le client d’utiliser des applications X11 lancées à
partir de l'invite Shell. Cette technique fournit une interface
graphique sécurisée (appelée retransmission X11).
Le protocole SSH: Généralités

v Création d’une couche transport sécurisée ;


v Chiffrement de la communication au moyen d'un chiffre symétrique ;
v authentification, une fois la connexion sécurisée établie avec le serveur et
client ;
v Utilisation de nombreux services différents de façon sécurisée, tels
qu'une session Shell interactive, des applications X11 et des ports TCP/IP
Tunnellisés.

L'ensemble du processus de connexion se fait sans que le système local


n'ait à faire de nombreuses opérations supplémentaires.
Le protocole SSH: Mode de
fonctionnement
Lorsqu'un client communique avec un serveur au moyen d'un protocole SSH, de
nombreux éléments importants sont négociés afin que les deux systèmes puissent
créer correctement la couche transport :
v L'échange des clés ;
v L'algorithme de clé publique à utiliser ;
v L'algorithme de chiffrement symétrique à utiliser ;
v L'algorithme d'authentification de message à utiliser ;
v L'algorithme repère (Hash) à utiliser.
Le protocole SSH: Mode de
fonctionnement
Permet de créer un tunnel chiffré vers un réseau ;

Etapes :

Exécution d’un script qui à l ’aide d’une session SSH, lance PPP sur la
passerelle et redirige les entrées/sorties de façon à faire ; passer PPP
dans SSH ;

Routage des données à destination du réseau interne vers l’interface PPP


résultante ;

Passerelle joue le rôle de Proxy-Arp pour le nomade, qui semble ainsi


appartenir au réseau interne.
Le protocole SSH: Démo

v Se connecter via SSH à partir


d'une machine Windows
v Se connecter via SSH à partir
d'une machine Linux
v L'identification automatique par
clé
Sécurisation des
échanges applicatifs:

Virtual Private Network


VPN
VPN: Généralités

UN VPN (Virtual Private Network) est une liaison sécurisée


entre deux parties via un réseau public, en général Internet.
Cette technique assure l’authentification des deux parties,
l’intégrité des données et le chiffrage de celles-ci.

Permet à un hôte distant d ’accéder à l’Intranet de son entreprise ou à


celui d’un client grâce à Internet tout en garantissant la sécurité des
échanges ;

Permet à l’entreprise d’échanger des données en toute sécurité avec ses


sites distants ou ses partenaires ;
VPN: Généralités

v Un VPN est un réseau privé virtuel.


v Il permet de créer un lien entre deux réseaux LAN distants.
v Un VPN host-to-lan se crée entre un PC et un réseau
LAN. v Un VPN lan-to-lan se crée entre deux LAN.
v Pour créer un VPN, on envoie les paquets au travers d'un
tunnel.
v Un tunnel permet, grâce à plusieurs protocoles :
• L'authentification
• l'intégrité des données
• La sécurité des données
VPN: Généralités

Caractère virtuel :
n C’est la technique du tunneling qui permet d’étendre de façon
« virtuelle » le réseau privé à travers un réseau public

Caractère privé :
n C’est le cryptage qui confère son caractère privé aux données
puisqu’elles ne peuvent être décodées que par les interlocuteurs
d’extrémité

Réseau Virtuel : tunneling

Réseau Privé : cryptage


VPN: Généralités

Méthode utiliser pour faire transiter des informations privées sur un


réseau public ;
Garantit la confidentialité et l’intégrité des données ainsi que
l ’authenticité des deux parties ;
Chaque paquet est complètement chiffré et placé à l’intérieur d’un
nouveau paquet.
VPN: Généralités

Exemples de protocoles de tunneling :


n GRE (Generic Routing Encapsulation)
n L2TP (Layer 2 Tunneling Protocol)
n IPSec
VPN: Scénarios
Qui crée des VPN ?
Les administrateurs réseaux des entreprises :
- ils créent des VPN LAN to LAN aussi bien que des VPN d’accès

distant, pour les besoins des personnels et des partenaires de


l’entreprise
Les opérateurs téléphoniques et les fournisseurs d’accès à
Internet :
- ils créent des VPN LAN to LAN « clefs en main » qu’ils proposent aux
entreprises
- ces offres de VPN s’accompagnent souvent de services comme :
• l’accès à Internet
• l’hébergement de serveurs
• le filtrage de paquets
• la fonction FireWall
• l’antivirus
• la détection d’intrusions
VPN: Choix de Technologie

Application
Couches (5-7)

Couche Réseau

Ré se a u / IPSec L2F
L2TP
Transport GRE
Couches PPTP
(3-4)
Ph ysi q u e/
Liaison
Couches
(1-2)
Protocoles VPN Description Standard
L2TP Layer 2 tunneling Protocol RFC 2 6 6 1
GRE Generic Routing RFC 1 7 0 1 et 2 7 8 4
Encapsulation
IPSec Unternet Protocol RFC 2 4 0 1
Security
IPSec
v IPSec est un ensemble de protocoles qui accomplit des
fonctions semblables à SSL mais situé à un autre endroit de
la pile TCP/IP.

SSL

IPSec

v IPSec est de plus bas niveau que SSL/TLS. Le résultat est ce qui
est appelé une association de sécurité entre deux adresses IP.
v Étant de plus bas niveau implique que même les informations de
contrôle, les numéros de séquences utilisés pour gérer la
connexion TCP, sont chiffrés.
IPsec: Principe de fonctionnement
Créez un tunnel avec IPsec
Différents cas d’usage d’IPsec

Interconnexion de deux sites PC à Routeur/Concentrateur VPN

Interconnexion de plusieurs sites avec PC à Firewall / Routeur à Firewall


routage
IPsec: Principe de fonctionnement

IPSec

ESP

AH
Encryption Integrity Integrity

DES, 3DES, AES MD5, SHA1, SHA2, SHA3


Sécurité et IP

v Mécanismes cryptographiques :
▪ Authenticité = Code d’authentification de message (MAC)
authentification de message (MAC)
▪ Confidentialité = Chiffrement
▪ Protection contre le Protection contre le rejeu = Numéro
de séquence
v Deux en-tête d’extension :
▪ En-tête d'extension d'authentification (Authentification
Header, AH)
▪ En-tête d'extension de confidentialité (Encapsulating
Security Playload Header, ESP)
v Mécanismes ci-dessus font appel à la cryptographie et utilisent donc
un certain nombre de paramètres (algorithmes utilisés, clefs,
mécanismes sélectionnés …).
IPsec: Modes Transport et Mode
tunnel
v Deux modes

IPSec en mode transport

En-tête En-tête En-tête Données


IP TCP
IPSec
IPSec en mode tunnel
Nouvel En-tête En-tête En-tête Données
En-Tête IP IP D’origine TCP
IPSec
IPsec: Mode Transport

v En mode transport, on chiffre/authentifie la partie data d'un


paquet IP excepté les champs
variables de l’en-tête (TTL,
….)
v En mode tunnel, on protège le paquet complet (y
compris
l’en-tête IP) et on l'encapsule dans un nouveau paquet, avec
un nouvel en-tête IP qui sert à transporter le paquet jusqu'à
la fin du tunnel, où l’en-tête d’origine est rétablie.

▪ Offre une protection plus importante contre l’analyse du trafic, car il


analyse du trafic, car il masque les adresses de la source et de la
destination finale. masque les adresses de la source et de la
destination finale.
Comparaison avec SSL
v IPSec demande qu’un client soit installé sur chaque unité pour permettre le
chiffrement. Sa configuration est plus difficile que pour SSL (transparent).
v SSL est inclus dans les navigateurs, ce qui ne nécessite pas l’installation de
clients.
v SSL fonctionne plutôt pour des applications Web, ce qui n’est pas le cas
d’IPSec.
v IPSec est utilisé pour les communications site à site qui ne sont pas de
type client-serveur.
v Certains routeurs NAT (Network Adress Translation) ont de la difficulté avec
IPSec. SSL n’a pas ce problème.
v Certains fournisseurs d’accès Internet demandent d’être payés pour des
communications IPSec. C’est impossible à faire avec SSL.
v Si IPSecv6 devenait supporté par les applications, alors SSL pourrait
devenir
inutile.
IPSec : protocoles
• Authentication Header (AH)
• Encapsulation Payload (ESP)
• Security Association (SA)
• Security Association Database
(SAD)
• Security Policy Database (SPD)
• Internet Key Exchange (IKE)
• Internet Security Association Key
• Management Protocol (ISAKMP)
Ipsec: Mode de fonctionnement

v ESP : Encapsulating Security Payload ; Assure au choix un ou


plusieurs des services suivants :
▪ Confidentialité des données et protection partielle contre l’analyse
du trafic si l ’on utilise le mode tunnel ;
▪ Intégrité Des Données en mode connecté et authentification de
l’origine des données, protection partielle contre le Rejeu.

v AH : Authentification Header.
▪ Assure l’intégrité en mode non connecté et l’authentification de
l’origine des datagrammes IP sans chiffrement des données
▪ contient tout les paramètres relatifs à chaque SA ;
▪ La confidentialité assure que ce standard pourra être le plus
répandu
sur Internet.
Ipsec: Mode de fonctionnement

v SAD : Security Association Database.


▪ Gère les associations de sécurité actives ;
▪ Contient tout les paramètres relatifs à chaque SA ;
▪ Consultée pour savoir comment traiter chaque paquet reçu ou à
émettre.
v SPD : Security Policy Database.
▪ Etablie et maintenue en place par un utilisateur, un administrateur ou
une application mise en place par ceux-ci.
v IKE : Internet Key Exchange ;
▪ Authentifie chaque correspondant ;
▪ Négocie la stratégie de sécurité ;
▪ Gère l’échange des clés de session ;
▪ Protocole hybride combinant différentes parties des protocoles
suivants : ISAKMP, OAKLEY, SKEME.
IPSec : Authentification Header
E n- E n-tête Charge utile IP
tête IPSec sécurisé Internet
IP ou Réseau Privé

Sy t è m e
avec
IPsec
Payload
Next Header Length RESERVED
Security Parameters Index (SPI)
Sequence Number

Données authentifiées
(Variable)

E n-
Charge utile IP
tête
IP

E n-
Charge utile IP
tête
IP

AH (Authentication Header) - Protocole de sécurité qui


fournit l'authentification, l'intégrité des données
AH est dans la charge utile du paquet
IPSec : Authentification Header
IPSec : Authentification Header
IPSec : Encapsulated Security
Payload
IPv4 En- tête
TCP Donnée s
IP original
(a) Paquet IP original

Authentifié

Crypté

IPv4 En- tête En- tête Que ue Auth


TCP Donnée s
IP original ESP ESP ESP

(b) Mode Transport

Authentifié

Crypté

IPv4 Nouveau En- tête En- tête Que ue Auth


TCP Donnée s
En- tête IP ESP IP original ESP
ESP
(c) Mode Tunne l

v ESP (Encapsulation Security payload) - Protocole de sécurité qui


fournit la confidentialité (entre autres)
v ESP encapsule les données à protéger
IPSec : Encapsulated Security
Payload
IPsec, AH et ESP en
mode transport
v Indépendamment du choix entre AH et ESP, il est possible d’utiliser IPsec
dans deux modes distincts : le mode tunnel et le mode transport. Le
mode tunnel rend le service attendu dans la majorité des cas
v En mode transport, les en-tête IP d’origine sont conservés
v Il est utilisé pour sécuriser la communication entre deux postes ayant des
adresses publiques
v Ce n’est donc pas ce mode qui sera utilisé pour réaliser un VPN, puisque
nous souhaitons adresser des machines privées
v On peut utiliser cette technique pour sécuriser la communication entre
une machine publique sur Internet (l’administrateur depuis son domicile
par exemple) et un serveur publique (pour du paramétrage à distance
par exemple), mais pour ce cas, il existe d’autres techniques comme SSH
(Secure Shell)
AH et ESP en mode transport

IP En-tête IP DATA

IPsec En-tête IP AH ESP DATA ESP

crypté (ESP)
authentifié (AH)

Utilisation de AH et de ESP
en mode transport

v AH et ESP peuvent, dans ce mode, être vus comme un protocole


intermédiaire entre TCP et IP
v L’en-tête IP doit porter des adresses publiques pour voyager à travers
Internet
AH et ESP en mode tunnel

v En mode tunnel, les en-tête d’origine sont cryptés, et un


autre en-tête IP sera ajouté (on encapsule de l’IP dans de
l’IP)
v Il est utilisé pour sécuriser la communication entre deux
équipements d’interconnexion (entre des routeurs ou des
firewalls)
v C’est le mode qui sera utilisé pour réaliser un VPN,
puisque nous souhaitons adresser des machines privées
v C’est la technique la plus répandue pour faire du LAN to
LAN VPN
AH et ESP en mode tunnel
En-tête IP(ancienne) DATA
IP
IPsec En-tête IP(nouvelle) AH ESP En-tête IP (ancienne) DATA ESP

crypté (ESP)
authentifié (AH)

Utilisation de AH et de ESP en mode tunnel


v ESP crypte le paquet d’origine, en-tête IP compris
v AH assure l’authentification et l’intégrité de l’ensemble
v L’en-tête IP initiale peut contenir des adresses privées puisqu’elle n’est pas
utilisée par les routeurs d’Internet
v L’en-tête IP ajouté portera les @ IP des routeurs (ou firewalls)
d’interconnexion, qui sont forcément publiques
IPSec : Security Policy
v Le terme « Security Policy » désigne, dans le contexte
IPsec, le choix pour un lien unidirectionnel donné :
▪ de l’utilisation obligatoire ou facultative ou de la non-
utilisation d’IPsec ;
▪ de l’utilisation du mode tunnel ou transport ;
▪ de l’utilisation d’AH ou d’ESP.

v L’ensemble des SP est regroupé dans une SPD : « Security


Policy Database ». À l’image des règles de flux d’un pare-
feu, les SP ont pour but de spécifier les flux que l’on veut
autoriser et ceux que l’on veut interdire.
Etablissement d’un lien IPsec
v Les mécanismes cryptographiques utilisés pour la protection
en intégrité ou en confidentialité sont paramétrés par une
ou plusieurs clés.
v Ces éléments doivent être partagés par les différents hôtes
employant IPsec.
v Deux approches sont possibles :
▪ mettre en place manuellement des clés sur chaque
hôte
▪ ou utiliser le mécanisme d’échange de clés IKE pour que
les hôtes puissent négocier ces clés.
IPSec : Security Association SA

v SA (Security Association) : c’est l’ensemble de principes


(politiques) et de clés utilisés pour protéger l'information
v Plusieurs SA sont utiles pour « monter » un tunnel
IPSec
v Il faut une SA pour IKE (tunnel de service, on dit aussi SA
ISAKMP)
v Il faut une SA pour IPSec (tunnel de données)

v Les SAs ISAKMP sont bidirectionnelles


v Les SAs IPSec sont unidirectionnelles
v Les équipements VPN stockent leurs SAs dans une base
de données locale appelée la SA Database (SAD)
IPSec : Security Association SA
v Les informations Les informations
échangées sont :
▪ index de la SA appelé (pour Security Parameter
Parameter Index)
▪ un numéro de séquence, indicateur utilisé pour
le service d'anti-rejeu
▪ une fenêtre d'anti-rejeu : compteur 32 bits
▪ dépassement de séquence
▪ paramètres d'authentification (algorithmes et
clés)
▪ paramètres de chiffrement (idem)
▪ temps de vie de la
▪ mode du protocole mode du protocole IPsec
(tunnel ou transport)

Attention : un SA est Attention : un SA est


Unidirectionnelle: protéger les deux sens d'une ger
les deux sens d'une communication classique
requiert communication classique requiert deux
associations.
IPSec : Security Association SA
IPSec : Security Association SA
1. IPSec reçoit les données à envoyer ;

2. Consulte la base de données des politiques de sécurité (SPD) ;


3. Si indication d’application des mécanismes de sécurité, elle récupère les

caractéristiques requises pour la SA correspondante et va consulter la base

des SA (SAD) ;

4. Si la SA existe déjà, elle est utilisé pour traiter le trafic ;

5. Dans le cas contraire, IPSec fait appel à IKE pour etablir une
nouvelle

SA.
IPSec : Security Association SA
1. IPSEC reçoit les données en provenance du réseau ;

2.Examine l’en-tête pour savoir si ce paquet s’est vu appliquer un ou

plusieurs services IPSEC et si oui, quelles sont les références de la SA ;

3.Consulte alors la SAD pour connaître les paramètres à utiliser pour la

vérification et/ou le déchiffrement du paquet ;

4.Consultation de la SPD pour savoir si l’association de sécurité appliquée

au paquet correspondait bien à celle requise ;


5. Dans le cas où le paquet reçu serait un paquet IP classique, la SPD

permet de savoir s ’il a néanmoins le droit de passer.


IPSec : SA
IKE
Host Host
A Router Router B
A B

10.0.1. Negotiate IKE


10.0.2.
3 Proposals
3
Transform 10 Transform
DES 15 DES
MD5 MD5
pre-share IKE Policy Sets pre-share
DH1 DH1
lifetime lifetime

Transform 20
3DES
SHA
pre-share
DH1
lifetime

v Exemple de SA IKE (on dit aussi SA


ISAKMP)
IPSec :
IKE
IPSec IPSec

Routeur A Routeur B

IKE IKE
Tunnel IKE

v IKE est un protocole utile pour négocier une partie de la politique de


sécurité (Security Association : SA) qui servira pour l’échange des
données
v IKE est orienté gestion des clés
v IKE est issu des anciens protocoles de gestion de clés SKEME et
Oakley
v IKE fonctionne dans le cadre de ISAKMP
v IKE n’est pas le seul protocole de gestion de clés disponible, mais il est
le seul utilisé en pratique pour IPSec
IPSec : ISAKMP
A B

Accès Accès
Backbone
c li e nt Opérateur c li e nt
SADB SADB

A vers B A vers B
ESP/ DES/ SHA- ESP/ DES/ SHA-
1 Keys K1,K2,... 1 Keys K1,K2,...
lif e t ime = 3600 s lifetime= 3600 s

B vers A B vers A
ESP/ DES/ SHA- ESP/ DES/ SHA-
1 1
ke ys K6,K7,... ke ys K6,K7,...
lif e t ime = 3600 lifetime= 3600
s s
v La négociation des SAs ne concerne pas que la gestion des clés
v ISAKMP est le protocole « cadre » qui va permettre à IKE de fonctionner, mais il
sert aussi à négocier les autres paramètres des SAs
v ISAKMP sert à négocier les SAs, mais n’impose rien quant aux paramètres qui
composent ces SAs
v ISAKMP définit les procédures et les formats de paquets pour créer, gérer,
détruire des SAs
18
v ISAKMP permet aussi d’authentifier les partenaires d’une SA 6
IPSec : les 5
étapes
Host A Host B

Routeur A Routeur B

1. A reconnait des informations à transmettre vers le B par le VPN


2. Les routeurs A et B n égocien t une se ssion IKE Phase 1

IKE SA IKE Phase 1 IKE SA

3. Les routeurs n égocien t une se ssion IKE Phase 2

IKE SA IKE Phase 2 IKE SA

4. Les information so nt éch an gées via le Tunne l IPSec

5. Le tunnel IPSec es t libéré.

v On distingue 5 étapes lors de l’utilisation d’un tunnel


VPN
IPSec : les 5
étapes Host A Host B

Routeur A Routeur B

1. A reconnait des informations à transmettre vers le B par le VPN


2. Les routeurs A et B n égocien t une se ssion IKE Phase 1

IKE SA IKE Phase 1 IKE SA

3. Les routeurs n égocien t une se ssion IKE Phase 2

IKE SA IKE Phase 2 IKE SA

4. Les information so nt éch an gées via le Tunne l IPSec

5. Le tunnel IPSec est libéré.

v Etape 1 : A reconnaît des informations à transmettre vers le B par le VPN


n le trafic est dit "intéressant" quand l'équipement VPN reconnaît que les données doivent
être protégées : définition d’une ACL
IPSec : les 5
étapes Host A Host B

Routeur A Routeur B

1. A reconnait des informations à transmettre vers le B par le VPN


2. Les routeurs A et B n égocien t une se ssion IKE Phase 1

IKE SA IKE Phase 1 IKE


SA

3. Les routeurs n égocien t une se ssion IKE Phase 2

IKE SA IKE Phase 2 IKE SA

4. Les information so nt éch an gées via le Tunne l IPSec

5. Le tunnel IPSec est libéré.


v Etape 2 :
n IKE Phase 1 authentifie les extrémités IPSec et négocie la SA IKE
(ou SA ISAKMP)
n Ceci crée un canal sécurisé pour négocier les SAs IPSec en
Phase 2
IPSec : les 5
étapes Host A Host B

Routeur A Routeur B

1. A reconnait des informations à transmettre vers le B par le VPN


2. Les routeurs A et B n égocien t une se ssion IKE Phase 1

IKE SA IKE Phase 1 IKE SA

3. Les routeurs n égocien t une se ssion IKE Phase 2

IKE SA IKE Phase 2 IKE SA

4. Les information so nt éch an gées via le Tunne l IPSec

5. Le tunnel IPSec est libéré.

v Etape 3 :
n IKE phase 2 négocie les SAs IPSec en cherchant une
correspondance entre les SAs IPSec des extrémités
IPSec : les 5
étapes Host A Host B

Routeur A Routeur B

1. A reconnait des informations à transmettre vers le B par le VPN


2. Les routeurs A et B n égocien t une se ssion IKE Phase 1

IKE SA IKE P h a s e 1 IKE SA

3. Les routeurs n égocien t une se ssion IKE Phase 2


IKE SA IKE Phase 2 IKE SA

4. Les information so nt éch an gées via le Tunne l IPSec

5. Le tunnel IPSec est libéré.


v Etape
4: n Le transfert de données est effectué entre les extrémités IPSec
sur la base des paramètres IPSec et des clés stockées dans les
SAs négociées en étape 3
IPSec : les 5
étapes Host A Host B

Routeur A Routeur B

1. A reconnait des informations à transmettre vers le B par le VPN


2. Les routeurs A et B n égocien t une se ssion IKE Phase 1

IKE SA IKE Phase 1 IKE SA

3. Les routeurs n égocien t une se ssion IKE Phase 2

IKE SA IKE Phase 2 IKE SA

4. Les information so nt éch an gées via le Tunne l IPSec

5. Le tunnel IPSec est libéré.

v Etape 5 :
n La libération du tunnel IPSec survient quand la session qui a motivé
le montage du VPN se termine ou sur « time out »
Critique d’IPSec
v Les performances sur le lien IPSec sont réduites à cause du chiffrement
v IPSec ne supporte pas le multicast : AH et ESP l’autorisent, mais IKE ne
prévoit pas de négocier des SAs entre plus de deux firewalls
v La complexité de IKE conduit à des incompatibilités entre les différents
constructeurs
v Le trafic est suspendu pendant le renouvellement des SAs
v La gestion des messages ICMP n’est pas triviale : si un message ICMP
vient d’un équipement par lequel transite le tunnel, il ne peut
remonter que jusqu’au firewall d’origine. Il faut alors que ce firewall
sache prévenir la vraie source des données pour lui faire comprendre
que le VPN est indisponible
v Il ne doit pas y avoir de NAT au dessus de VPN (le NAT en dessous de
VPN est courant, voire obligatoire sur un firewall)
OpenVPN

v OpenVPN cumule de nombreux avantages car il est :


v open source et fiable ;
v gratuit au niveau logiciel ;
v multi-plates-formes (c'est-à-dire compatible Windows, Linux,
Mac OS X...) ;
v très répandu ;
v capable de tourner sur n'importe quel port en écoute côté
serveur (y compris 80 ou 443).
OpenVPN

v OpenVPN cumule de nombreux avantages car il est :


v open source et fiable ;
v gratuit au niveau logiciel ;
v multi-plates-formes (c'est-à-dire compatible Windows, Linux,
Mac OS X...) ;
v très répandu ;
v capable de tourner sur n'importe quel port en écoute côté
serveur (y compris 80 ou 443).
Travaux pratiques

v Mise en place d’un tunnel sécurisé


entre deux réseaux (VPN avec Pfsense)
Objectifs
v Sécurisez votre infrastructure grâce à
pfSense
v Mettre en place un VPN sécurisé avec
OpenVPN
Outils à utiliser

v Pfsense
v OpenVPN
v Client Linux
v Client Windows

Vous aimerez peut-être aussi