SYSTÈME DE SÉCURITÉ INFORMATIQUE
TRAVAIL PRATIQUE : PROTOCOLE TLS
INSTITUT SUPÉRIEUR DE GESTION INFORMATIQUE
( ISGI )
PRÉSENTÉ PAR :
KABUNDA KALOMBE SIMON
INTRODUCTION
La Transport Layer Security (TLS) ou « Sécurité de la couche de transport », et son
prédécesseur la Secure Sockets Layer (SSL) ou « Couche de sockets sécurisée »[1],
sont des protocoles de sécurisation des échanges par réseau informatique,
notamment par Internet. Le protocole SSL a été développé à l'origine par Netscape
Communications Corporation pour son navigateur Web. L'organisme de
normalisation Internet Engineering Task Force (IETF) en a poursuivi le
développement en le rebaptisant Transport Layer Security (TLS). On parle parfois de
SSL/TLS pour désigner indifféremment SSL ou TLS.
La TLS (ou SSL) fonctionne suivant un mode client-serveur. Il permet de satisfaire les
objectifs de sécurité suivants :
l'authentification du serveur ;
la confidentialité des données échangées (ou session chiffrée) ;
l'intégrité des données échangées ;
de manière optionnelle, l'authentification du client (mais dans la réalité celle-ci est
souvent assurée par la couche applicative).
Le protocole est très largement utilisé, et sa mise en œuvre est facilitée par le fait que
les protocoles de la couche application, comme le HTTP, n'ont pas à être
profondément modifiés pour utiliser une connexion sécurisée, mais seulement
implémentés au-dessus de la SSL/TLS, ce qui pour le HTTP a donné le protocole
HTTPS.
PRÉSENTATION
Au fur et à mesure qu'Internet se développait, de plus en plus de sociétés
commerciales se mirent à proposer des achats en ligne pour les particuliers. L'offre
se mit à croître régulièrement, mais le chiffre d'affaires dégagé par le commerce
électronique restait modeste tant que les clients n'avaient pas une confiance
suffisante dans le paiement par carte bancaire.
Une des façons de sécuriser ce paiement fut d'utiliser des protocoles
d'authentification et de chiffrement tels que SSL. La session chiffrée est utilisée pour
empêcher un tiers d'intercepter des données sensibles transitant par le réseau :
numéro de carte lors d'un paiement par carte bancaire, mot de passe lorsque
l'utilisateur s'identifie sur un site…
Avec un système SSL, la sécurité a été sensiblement améliorée et les risques pour le
client grandement réduits, comparés à l'époque où le paiement par internet était
encore une technologie émergente. Bien que, comme tout système de chiffrement, le
SSL/TLS ne pourra jamais être totalement infaillible, le grand nombre de banques et
de sites de commerce électronique l'utilisant pour protéger les transactions de leurs
clients peut être considéré comme un gage de sa résistance aux attaques
malveillantes.
En 2009, TLS est utilisé par la plupart des serveurs web. L'internaute peut reconnaître
qu'une transaction est chiffrée à plusieurs signes :
l'URL dans la barre d'adresse commence par https ( https://...) et non http ;
affichage d'une clé ou d'un cadenas, dont l'emplacement varie selon le navigateur :
généralement à gauche de la barre d'adresse mais aussi dans la barre inférieure de la
fenêtre ;
les navigateurs peuvent ajouter d'autres signes, comme le passage en jaune de la
barre d'adresse (cas de Firefox sur d'anciennes versions).
HISTORIQUE
protocole ssl
La première version de SSL parue, la SSL 2.0, possédait un certain nombre de
défauts de sécurité, parmi lesquels la possibilité de forcer l'utilisation
d'algorithmes de chiffrement plus faibles, ou bien une absence de protection
pour la prise de contact et la possibilité pour un attaquant d'exécuter des
attaques par troncature[3]. Les protocoles PCT 1.0, puis SSL 3.0, furent
développés pour résoudre la majeure partie de ces problèmes, le second
devenant rapidement le protocole le plus populaire pour sécuriser les
échanges sur Internet.
1994[4] : SSL 1.0. Cette première spécification du protocole développé par
Netscape resta théorique et ne fut jamais mise en œuvre[5].
Février 1995 : publication de la norme SSL 2.0, première version de SSL
réellement utilisée. Elle fut également la première implémentation de SSL
bannie, en mars 2011 (RFC 6176).
Novembre 1996 : SSL 3.0, la dernière version de SSL, qui inspirera son
successeur TLS. Ses spécifications sont rééditées en août 2008 dans la RFC
6101[6]. Le protocole est banni en 2014, à la suite de la publication de la faille
POODLE, ce bannissement est définitivement ratifié en juin 2015 (RFC 7568).
Protocole TLS
Le protocole TLS n'est pas structurellement différent de la version 3 de SSL,
mais des modifications dans l'utilisation des fonctions de hachage font que
les deux protocoles ne sont pas directement interopérables. Cependant TLS,
comme SSLv3, intègre un mécanisme de compatibilité ascendante avec les
versions précédentes, c'est-à-dire qu'au début de la phase de négociation, le
client et le serveur négocient la « meilleure » version du protocole disponible
par tous deux. Pour des raisons de sécurité, détaillées dans la RFC 6176 parue
en 2011, la compatibilité de TLS avec la version 2 de SSL est abandonnée [7].
La génération des clés symétriques est un peu plus sécurisée dans TLS que
dans SSLv3 dans la mesure où aucune étape de l'algorithme ne repose
uniquement sur MD5 pour lequel sont apparues des faiblesses en
cryptanalyse.
Janvier 1999 : Publication de la norme TLS 1.0. TLS est le protocole développé
par l'IETF pour succéder au SSL[8]. Plusieurs améliorations lui sont apportées
par la suite :
Authentification par certificat numérique
Dans la majorité des cas, l'utilisateur authentifie le serveur TLS sur lequel il se
connecte. Cette authentification est réalisée par l'utilisation d'un certificat
numérique X.509 délivré par une autorité de certification (AC). Des
applications web peuvent utiliser l'authentification du poste client en
exploitant TLS. Il est alors possible d'offrir une authentification mutuelle entre
le client et le serveur. Le certificat client peut être stocké au format logiciel sur
le poste client ou fourni par un dispositif matériel (carte à puce, token USB).
Cette solution permet d'offrir des mécanismes d'authentification forte.
Les messages échangés par le biais de TLS sont appelés record. En général,
ces messages sont encapsulés dans des datagrammes TCP. Une variante sur
UDP existe et s'appelle DTLS. Il existe quatre types de records :
Les messages Handshake permettent de négocier la version TLS, les suites
cryptographiques utilisées (ou cipher suites), les algorithmes de compression,
permettent le partage d'un secret (ou pre-master secret) et de données
aléatoires à partir duquel sera générée la clef de session (ou master secret)
pour chiffrer les données et, de façon optionnelle, l'authentification du serveur
et du client
Les messages de type Alert fournissent des erreurs et leur sévérité : warning
ou fatal. Toute erreur fatale a pour conséquence la terminaison de la session
Les messages de type Change Cipher Spec indiquent le changement de suites
cryptographiques dans les échanges
Les messages Application data correspondent aux données chiffrées et
compressées suivant les paramètres de chiffrement et de compression
préalablement établis entre le client et le serveur
Cryptographie
La sécurité est réalisée d'une part par un chiffrement asymétrique, comme le
chiffrement RSA, qui permet, après authentification de la clé publique du
serveur, la constitution d'un secret partagé entre le client et le serveur, d'autre
part par un chiffrement symétrique (beaucoup plus rapide que les
chiffrements asymétriques), comme l'AES, qui est utilisé dans la phase
d'échange de données, les clés de chiffrement symétrique étant calculées à
partir du secret partagé. Une fonction de hachage, comme SHA-1, est
également utilisée, entre autres, pour assurer l'intégrité et l'authentification
des données (via par exemple HMAC).
Plus exactement, les messages Application data sont chiffrés grâce à une clé
de chiffrement et un algorithme de chiffrement symétrique par bloc comme
AES 128 ou par flux comme CHACHA20. Ils sont authentifiés soit grâce une
fonction HMAC soit directement grâce au mode d'opération du chiffrement
symétrique par bloc.
Les clés de chiffrement et les clés HMAC sont générées à partir d'un secret
échangé entre les deux pairs (pre-master secret), les données aléatoires
échangées durant la phase d'Handshake et l'utilisation d'une fonction de
dérivation des clés se basant sur HMAC. Cet échange de secret peut être
authentifié (ou non) via l'utilisation d"un algorithme de signature numérique
comme DSA ou l'algorithme RSA.
CONCLUSION
Du fait de sa robustesse, de sa généralisation et de sa commodité, TLS est
donc un des constituants essentiels pour la mise en œuvre d’un réseau
sécurisé. En combinaison avec des solutions de VPN et de filtrage, il est
possible d’établir des architectures cohérentes pour quasiment toute
configuration.
C pourquoi pour mieux sécuriser ses données sur internet , TLS est un
protocole rassurant