Documente Academic
Documente Profesional
Documente Cultură
Toni SOUEID
Jacques SEIF
© 2002
Plan
1 – Historique ..................................................................................................................2
2 – Architecture ...............................................................................................................2
3 – Fonctionnement de SSL.............................................................................................3
3.1 – Services assurés ..................................................................................................3
3.2 – Les sous-protocoles de SSL................................................................................4
3.2.1 – Le protocole Handshake ..............................................................................4
3.2.1.1 – Authentification du serveur ...............................................................5
3.2.1.2 – Etablissement d’un canal sécurisé .....................................................6
3.2.2 – Le protocole ChangeCipherSpec .................................................................7
3.2.3 – Le protocole Record ....................................................................................8
3.2.4 – Le protocole Alert........................................................................................8
Le protocole SSL est le champion incontesté de l’authentification des sites WEB et du
chiffrage des données transactionnelles sur Internet. Des informations telles que les
numéros de cartes de crédit et les commandes en ligne sont sécurisées via SSL sur des
centaines de milliers de serveurs autour du globe chaque jour. En tant que un des
premiers et le plus répandu protocole de sécurisation des échanges, SSL est supporté
par pratiquement tous les serveurs et navigateurs WEB.
1 – Historique
Le besoin d’éliminer l’écoute sur le réseau par les parties non autorisées et d’empêcher
la contrefaçon de voler les informations des utilisateurs a conduit au développement
d’un standard permettant la transmission sécurisée des données via les navigateurs
WEB.
Netscape Communications est la compagnie qui a conçu le protocole SSL, le premier
protocole de sécurisation des communications via des navigateurs WEB.
Le protocole décrit une méthode d’authentification et de chiffrement des données entre
clients et serveurs. La technologie sous-jacente est basée sur les principes de la
cryptographie par clés publiques et par clés secrètes.
La première version du protocole a été publiée durant l’été de 1994 et intégrée dans le
navigateur Mosaic. La seconde version du protocole a été ensuite intégrée dans le
fameux navigateur Netscape Navigator fin 1994.
En hiver 1995 Netscape publia une nouvelle version du protocole (SSL v3.0) visant à
supprimer les faiblesses de la version antérieure.
En mai 1996 l’Internet Engineering Task Force (IETF) accepta d’en faire de SSL un
standard universel. Effectivement en janvier 1999, SSL fut renommé Transport Layer
Security (TLS) par l’IETF. En effet TLS v1.0 n’est qu’une extension de SSL v3.0.
De nos jours, la plupart des navigateurs WEB supportent le protocole. Ainsi SSL est
utilisée dans virtuellement toutes les transactions sur Internet des achats de livres aux
transferts de fonds.
2 – Architecture
Le protocole SSL permet de sécuriser tous types d’échanges entre clients et serveurs.
Il est une couche optionnelle se situant entre les couches d’application et de transport.
Le but de SSL est d’être un protocole de sécurité facile à déployer assurant une sécurité
totale des échanges de plusieurs applications.
Dans la pile protocolaire TCP/IP, SSL se situe entre les protocoles d’application et le
protocole TCP. En insérant SSL entre TCP est la couche d’application on évite des
changements significatifs aux protocoles existants tels que HTTP, FTP …
Ainsi le protocole d’application s’interface avec SSL de la même façon dont il s’interface
avec TCP. Pour TCP, SSL n’est qu’une application qui utilise ses services.
3 – Fonctionnement de SSL
L’objectif de SSL est de vérifier l’identité des parties impliquées dans une transaction
sécurisée et de s’assurer que les données échangées sont protégées de toute
interception ou modification.
Les principales fonctions assurées par SSL sont décrites ci-dessous.
Ø Intégrité : Elle est assurée par l’application d’un algorithme de hachage aux
données (SHA ou MD5) transmises. L’algorithme génère à partir des données et
d’une clé secrète appelée code d’authentification de message, une suite de bits.
Cette suite sert de signature pour les données. Ainsi tout changement appliqué
aux données implique un changement de la suite de bits générée par
l’algorithme de hachage et en conséquence provoquera la génération d’un
message d’erreur côté récepteur du fait que les deux suites sont différentes.
Ø Record assure la protection des données des applications et des messages des
autres sous protocoles, en mettant en œuvre les paramètres de sécurité
négociés durant la phase de Handshake.
Ø Alert a pour fonction de signaler les erreurs survenant dans les messages.
Ø Fragmentation des données en des blocs dont la taille maximale est de 214
octets.
Ø Compression de ces données, bien que cette fonctionnalité n’est pas
implémentée actuellement.
Ø Génération d’un condensât des données pour assurer l’intégrité.
Ø Chiffrement des données pour assurer la confidentialité.
Un entête est ajouté indiquant l’origine du message (Handshake, Alert, CSS, HTTP …)
la version SSL et la longueur des données encapsulées.
Côté récepteur l’inverse est effectué : déchiffrement, vérification de l’intégrité,
décompression et réassemblage des données.
Ce sous-protocole sert à générer des messages suite à toute erreur dans les messages
reçus et d’indiquer tout changement d’état.
Ces messages peuvent constituer des simples avertissements ou au contraire signaler
des erreurs fatales et cela selon la gravité de la situation.
Une erreur fatale provoque la fermeture immédiate de la session.
Cela révèle une faiblesse du protocole SSL qui est la fragilité aux attaques de type
« déni de service » mais le chiffrement des messages de la couche Alert par la couche
Record confère une certaine robustesse au protocole.
Un exemple de message fatal généré par le sous-protocole Alert est le message
bad_certificate que le client émet lorsqu’il n’arrive pas à vérifier l’identité du serveur.