Académique Documents
Professionnel Documents
Culture Documents
é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.
1
Les protocoles SSL /
TLS : Généralités
Repose sur un procédé de cryptographie à clef publique
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
ConnexionSSL :
Offre certains services de sécurité entre deux entités.
Éphémère mais établie dans le cadre d'une Session SSL
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
"Session identifier"
"Peer certificate" :
certificat X509 ou rien
"Compression method"
"Cipher specification" :
algo. de chiffrement
et algo.
d'authentification et
leurs paramètres
"Master secret"
48 octets partagés
entre le client et le
serveur
"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
"Server and client random" :
Choisie à chaque nouvelle connexion.
"Server write MAC secret" et "Client write MAC secret "
Un secret utilisé pour vérifier l'intégrité des messages (un pour chaque
sens).
"Server write key" et "Client write key" :
Pour le chiffrement, dans le sens serveur-client et vice-versa.
"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.
"Sequence numbers" :
Un numéro de séquence est mémorisé, un pour chaque sens
de transmission.
Les protocoles SSL / TLS: Structure
TCP
IP
Les protocoles SSL /
TLS: Vue globale
SSL est composé des protocoles suivants :
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.
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.
ChangeCipher Protocol : Un message ou une entité annonce à
l’autre un changement de cipher_spec tel que négocié
précédemment.
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 :
frontières messages clients peuvent
être déplacées
Frag 1 Frag 2
fragments de 214 octets au plus
Compression (optionnelle) :
ajoute au pire 1024 octets
sans pertes Compressé
Sceau :
HMAC(MAC_write_secret,seq_num+type
de protocole TLS+version TLS+taille du
fragment compressé+fragment compressé)
Compressé MAC
+ = concaténation
Chiffrement :
le fragment peut être paddé (chiffrement
Fragment chiffré
par blocs)
on chiffre le fragment compressé + MAC
ajoute au pire 1024 octets
"Change Cipher Spec Protocol"
le mot de passe
est donc chiffré!
SSL
Limites de l’approche par mot
de passe
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 :
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.
Rien de mieux ne peut être obtenu.
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 :
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...
L’utilisation à long terme sur beaucoup de données cause des problèmes desécurité.
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.
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
Le même format de message.
L'un est propriétaire, l'autre publique
(IETF).
Les différences mineures résident dans :
version number
message authentication code
pseudorandom function (TLS : fonction PRF)
alert codes (TLS en ajoute plusieurs)
cipher suites
client certificate types
certificate_verify and finished message
cryptographic computations
HTTP
S
HTTPs = HTTP standard sur le port 443
(à la place de 80) + TLS + TCP/IP
Généralement le driver SSL/TLS est intégré
au navigateur
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.
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
Les protocoles que nous avons rencontrés sont de bas niveau. Ils ne sont pas
bien adaptés aux humains!
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.
SSL / TLS:
Attaques
Attaques sur les mise en œuvres des protocoles
Comme toute appli logicielle, les MeV de SSL/ TLS peuvent présenter
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
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 ;
Caractère virtuel :
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é :
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é
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
Transport L2TP
Couches GRE
(3-4) PPTP
Ph ys i 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
IPSec est un ensemble de protocoles qui accomplit des
fonctions semblables à SSL mais situé à un autre endroit de
la pile TCP/IP.
SSL
IPSec
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.
É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
IPSec
ESP AH
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
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)
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
Deux modes
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
Sy t è m e
avec IPsec
Payload
Next Header Length RESERVED
Security Parameters Index (SPI)
Seq uence Number
E n-
Charge utile IP
tête
IP
En -
Charge utile IP
tête
IP
Authentifié
Crypté
Authentifié
Crypté
crypté (ESP)
authentifié (AH)
Utilisation de AH et de ESP
en mode transport
crypté (ESP)
authentifié (AH)
des SA (SAD) ;
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 ;
Transform Transform
10 DES 15 DES
MD5 MD5
pre-share IKE Policy Sets pre-share
DH1 DH1
lifetime lifetime
Transform
20 3DES
SHA
pre-share
DH1
lifetime
Routeur A Routeur B
IKE IKE
Tunnel IKE
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/ SH A- ESP/ DES/ SH A-
1 Keys K1,K2,... 1 Keys K1,K2,...
lifetime= 3600 s lifetime= 3600 s
B vers A B vers A
ESP / DES/ SH A- ESP/ DES/ SH A-
1 1
k e y s K6,K7,... k e y s K6,K7,...
lifetime= 3600 lifetime= 3600
s s
La négociation des SAs ne concerne pas que la gestion des clés
ISAKMP est le protocole « cadre » qui va permettre à IKE de fonctionner, mais il
sert aussi à négocier les autres paramètres des SAs
ISAKMP sert à négocier les SAs, mais n’impose rien quant aux paramètres qui
composent ces SAs
ISAKMP définit les procédures et les formats de paquets pour créer, gérer,
détruire des SAs
186
ISAKMP permet aussi d’authentifier les partenaires d’une SA
IPSec : les 5
étapes
Host A Host B
Routeur A Routeur B
5 . Le t u n n e l IPSec e s t libéré.
Routeur A Routeur B
Routeur A Routeur B
Routeur A Routeur B
Etape 3 :
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
Routeur A Routeur B
Etape 5 :
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
Les performances sur le lien IPSec sont réduites à cause du chiffrement
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
La complexité de IKE conduit à des incompatibilités entre les différents
constructeurs
Le trafic est suspendu pendant le renouvellement des SAs
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
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
3 NHRP Redirect
–NHS (hub) répond à un spoke-to-spoke data plane packet via ce message.
–Similaire aux IP redirect
–Utilisé seulement en phase 3 pour construire les spoke-to-spoke tunnels.