La banque en ligne et le protocole TLS : exemple

Transcription

La banque en ligne et le protocole TLS : exemple
Richard MONTBEYRE
Master 2 Professionnel Droit de l’Internet – Administration – Entreprises
La banque en ligne et le protocole TLS : exemple
1
Introduction
Définition du protocole TLS
Transport Layer Security (TLS), peut se traduire littéralement par « sécurisation de la
couche transport ». Il s’agit d’un protocole de sécurisation des échanges de données sur
Internet reposant sur un procédé de cryptographie par clef publique. Son principe consiste à
établir un canal de communication sécurisé chiffré entre deux machines (client et serveur)
après une étape d'authentification
Le cryptage est réalisé à la fois par un chiffrement asymétrique1, qui permet l’authentification,
et par un chiffrement symétrique2, plus léger, qui assure la transmission des données. Le
cryptage asymétrique est en effet assez exigeant en terme de puissance de calcul, et donc
assez lent en comparaison au cryptage symétrique. Les algorithmes à clé publique sont
environ 1000 fois plus lents que les algorithmes à clé secrète, ce qui rend leur usage trop lourd
pour assurer la confidentialité d’échanges volumineux. En pratique, l’utilisation des deux
technologies est combinée : la cryptographie à clé publique sert à échanger une clé secrète,
valable la durée de la session.
En outre, pour garantir que les données transmises ne sont pas corrompues, on emploie
généralement une fonction de hachage.
Définition de la banque en ligne
La banque en ligne désigne l'ensemble des services bancaires assurés par voie
électronique.
« Les services de banque en ligne se sont considérablement développés. Ils permettent
désormais aux particuliers de consulter leurs comptes bancaires, effectuer des virements,
commander des chéquiers, simuler des propositions de crédit, etc.
Cette nouvelle manière d’envisager la relation bancaire n’est pas sans susciter de
nouvelles interrogations de la part des internautes sur la protection de leurs données
personnelles (sécurité des échanges d’information, collecte de nouvelles données, modalités
d’information des personnes, prospection par voie électronique, etc.). »3
Les origines du protocole TLS : de Netscape à l’IETF
1
Au moyen, par exemple, de l’algorithme de chiffrement RSA. Le RSA est un algorithme asymétrique de
cryptographie à clé publique, présenté en 1977 par Ron Rivest, Adi Shamir et Len Adleman, d'où le sigle RSA.
2
Le DES (Data Encryption Standard) par exemple. Le DES est une méthode de chiffrement utilisant des clés de
56 bits.
3
« Opération Audit de la banque en ligne », étude réalisée par la CNIL au 1er semestre 2005, p.2.
2
Le protocole TLS succède au système Secure Sockets Layer4 (SSL), développé à l'origine
par la société Netscape Communications Corporation en collaboration avec Mastercard et
Bank of America, pour le navigateur Netscape Communicator. La dernière version de SSL,
qui demeure utilisée, est SSL v3.0.
Le SSL, dont le brevet a été racheté à Netscape par l’IETF5, a évolué vers un nouveau
protocole : Transport Layer Security (TLS). Un groupe de travail issu de l'IETF a permis la
normalisation du protocole TLS version 1.0 dès 1999, au moyen de la RFC6 2246.
D’un protocole propriétaire, le SSL a ainsi évolué vers une norme officielle sous la forme
du TLS. Dans une certaine mesure, TLS constitue également une nouvelle version de SSL, et
les dernières évolutions apportées aux protocoles de sécurisation se font désormais sur le
TLS. Ainsi, le cryptage AES7 peut être utilisé comme algorithme symétrique après la
négociation TLS.
Il y a assez peu de différence entre la dernière version de SSL (v3.0) et la version 1.0 de
TLS, mais ces deux protocoles demeurent incompatibles. Heureusement, la plupart des
serveurs et des navigateurs web permettent d’utiliser l’un ou l’autre des deux protocoles. En
effet, les mises en oeuvre de TLS acceptent de basculer vers SSL v3.0 quand le partenaire ne
supporte pas TLS, au moyen d’un mécanisme alternatif de compatibilité.
Au titre des différences entre les deux protocoles, il convient de noter celle affectant la
génération des clés symétriques. TLS est plus sécurisé que SSL en la matière, dans la mesure
où aucune étape de son algorithme ne repose uniquement sur MD58. Il a en effet été reproché
à ce dernier de présenter quelques faiblesses en cryptanalyse.
Il convient de noter que, par un abus de langage, SSL et TLS sont souvent assimilés pour
être communément désignés sous le vocable global « SSL ». Dans cet étude, nous les
distinguerons néanmoins les deux protocoles, l’un tendant à remplacer l’autre.
4
Secure Sockets Layers se traduit littéralement par « couches de sockets sécurisée ».
L’IETF, Internet Engineering Task Force, est un groupe international informel ouvert à tout individu, qui
participe à l'élaboration de standards pour Internet. L'IETF produit la plupart des nouveaux standards d'Internet.
6
Request For Comment : ensemble de documents de référence rédigés et proposés par des experts techniques,
décrivant les différents standards et normes en usage sur Internet.
7
L’AES (Advanced Encryption Standard), est un algorithme de chiffrement symétrique, également appelé
Rijndael, du nom de ses deux concepteurs Joan Daemen et Vincent Rijmen. Ses clés peuvent atteindre 256 bits.
8
L'algorithme MD5, pour « Message Digest 5 », est une fonction de hachage cryptographique très populaire, qui
permet d'obtenir pour chaque message une empreinte numérique (séquence de 128 bits ou 32 caractères en
notation hexadécimale) avec une probabilité très forte que, pour deux messages différents, leurs empreintes
soient différentes.
5
3
Quant aux textes de référence du protocole TLS, il convient de citer le premier d’entre
eux est la RFC 2246, issu d’un groupe de travail de l’IETF et publié en 1999. Cette RFC est le
texte de naissance du protocole. Par la suite, ont notamment été élaborées la RFC 2818
(relative au HTTP sur TLS) et la RFC 3268 (relative à l’utilisation du système de chiffrement
AES pour TLS).
Les objectifs du protocole TLS : la sécurisation des échanges de données sur
Internet
Avec le développement d'Internet, de nombreuses sociétés commerciales proposent des
achats en ligne pour les particuliers. Une des meilleures manières de sécuriser les paiements
par cartes bancaires est d'utiliser des protocoles d'authentification et de chiffrement tels que
TLS. La session chiffrée est ainsi généralement utilisée, notamment lors de l'envoi du numéro
de carte bancaire.
TLS fonctionne entre un client et un serveur. I est destiné à remplir quatre objectifs de
sécurité :
-
l'authentification du serveur
-
la confidentialité des données échangées
-
l'intégrité de ces données
-
de manière optionnelle et depuis la version 3.0 de SSL, l'authentification du client au
moyen de certificats.
Le fonctionnement du protocole TLS : une certaine souplesse, à partir d’un
modèle rigide
Le SSL comme le TLS ont pour but de permettre l’établissement d’un « tunnel » sécurisé
entre l’utilisateur et le serveur Web afin de sécuriser leurs échanges. Dans une première
phase, un cryptage asymétrique permet à l’utilisateur et au serveur de s’échanger une clé de
cryptage symétrique. Par la suite, tous leurs échanges sont cryptés avec cette clé symétrique :
le tunnel sécurisé est en place.
A partir de ce mécanisme qui peut paraître assez rigide et rudimentaire, le protocole TLS
permet néanmoins la mise en œuvre de procédés plus élaborés :
-
Si l’utilisateur en dispose, il peut envoyer son certificat de sécurité au site lors de la
négociation.
4
-
Le protocole SSL peut être utilisé pour sécuriser n’importe quel protocole reposant sur
TCP, tels FTP9 (FTPS), SMTP10 (SMTPS), POP311 (POP3S)... Le protocole SSL est en
effet indépendant du protocole transport utilisé, ce qui signifie qu'il peut aussi bien
sécuriser des transactions faites sur le Web par le protocole HTTP que des connexions via
d’autres protocoles. En effet, TLS agit comme une couche supplémentaire, située entre la
couche application et la couche transport, et permet d'assurer la sécurité des données.
-
Lors de la négociation, tout type d’algorithme de cryptage symétrique peut en principe
être négocié entre l’utilisateur et le serveur.
-
Un algorithme de compression peut être utilisé pour réduire la taille des données passant
par le tunnel.
La sécurisation des transactions par TLS est basée sur un échange de clés entre client et
serveur. Le protocole TLS est en effet constitué de deux sous-protocoles : le protocole TLS
Handshake et le protocole TLS Record.
Le protocole TLS Handshake permet d'authentifier les deux parties, de leur permettre de
négocier les algorithmes et les clés de session, tandis que le protocole TLS Record a pour but
de chiffrer les connexions avec un algorithme symétrique et de vérifier leur intégrité.
L’échange se réalise en plusieurs étapes, quasi instantanées pour l’utilisateur :
-
Le client se connecte au site sécurisé par TLS et lui demande de s'authentifier au moyen
d’un certificat. Il envoie également la liste des systèmes de cryptage qu'il supporte, triée
par ordre décroissant selon la longueur des clés.
-
Le serveur hébergeant le site reçoit la requête du client, auquel il envoie un certificat
contenant la clé publique du serveur du site – signée par une autorité de certification (cf
infra). Il renvoie également la référence du système de cryptage avec lequel le client est
compatible, en choisissant le système commun ayant la plus grande longueur de clé.
-
Le client vérifie ensuite la validité du certificat, puis crée de manière aléatoire une clé
secrète. Il chiffre cette clé secrète à l'aide de la clé publique du serveur, puis envoie à ce
dernier la clé résultant de cette manipulation : la « clé de session ».
9
Le FTP (File Transfer Protocol) est un protocole de communication dédié à l'échange de fichiers sur un réseau
TCP/IP. Il permet notamment, depuis un ordinateur, de copier des fichiers depuis ou vers un autre ordinateur du
réseau.
10
Le SMTP (Simple Mail Transfer Protocol) est un protocole de communication utilisé pour transférer le
courrier électronique vers les serveurs de messagerie électronique.
11
Le POP3 (Post Office Protocol Version 3) est un protocole permettant de récupérer les courriers électroniques
situés sur un serveur de messagerie électronique.
5
-
Le serveur est en mesure de déchiffrer la clé de session avec sa clé privée. Ainsi, client et
serveur sont en possession d'une clé commune qu’ils sont seuls à connaître. Les
transactions peuvent dès lors être réalisées, au moyen de la clé de session, ce qui garantit
en principe l'intégrité et la confidentialité des données échangées. Cette première phase
s’appelle le handshake, ou « poignée de main ». Elle permet d’échanger de façon
confidentielle la clé qui permettra de crypter les échanges de données, au cours de la
seconde phase.
-
Dans la seconde phase, les données sont échangées entre le client et le serveur, au moyen
du sous protocole Record.
L’utilisation du protocole TLS par les banques en ligne : l’exemple de la BNP
Paribas
Du côté du client
La plupart des navigateurs affichent un cadenas fermé en bas de la fenêtre du programme,
lors de la connexion à un site sécurisé par TLS (Mozilla Firefox, Microsoft Internet
Explorer...). En outre, les serveurs web sécurisés par SSL ou TLS sont identifiés par une
URL commençant par HTTPS, « s » signifiant secured (sécurisé).
Internet Explorer
Mozilla
Il convient de noter que SSL est « transparent » pour l'utilisateur, qui n’a aucune
manipulation à effectuer pour l’utiliser et peut aller jusqu’à ignorer qu’il l’utilise. Les données
sont envoyées chiffrées, sans intervention de l’utilisateur.
Du côté de la banque
L’implémentation de SSL ou de TLS au sein des navigateurs Internet et des serveurs web
actuels du marché fait de HTTPS le protocole de sécurisation standard des transactions
bancaires. Le protocole est en effet présent dans le code des navigateurs Internet Explorer et
Netscape Communicator, et dans les principaux serveurs HTTP (Iplanet, Microsoft IIS, Lotus
et Apache).
6
Les banques désireuses de réaliser des opérations en ligne achètent le plus souvent un
certificat pour leurs serveurs, afin que l’ensemble des internautes puissent authentifier ce
dernier de manière sûre et participer à des échanges chiffrés. Les banques emploient
essentiellement les certificats proposés par la société Verisign.
L’exemple de la BNP
L'adresse
de
l'espace
sécurisé
de
bnpparibas.net
est
https://www.secure.bnpparibas.net/. Le site repose sur le protocole SSL 128 bits, lequel
correspond au niveau de chiffrement le plus élevé permis par les autorités françaises12.
Le client doit tout d’abord, d’après les recommandations de la banque, s’assurer
qu’il est bien connecté à l’espace sécurisé de bnpparibas.net.
Il doit notamment s’assurer qu’il a bien saisi l’adresse exacte de bnpparibas.net dans la
barre d’adresse de son navigateur Internet (ou à partir de ses favoris, si l’adresse a été
enregistrée au préalable une fois le certificat de sécurité vérifié).
Au contraire, le client ne doit jamais accéder à bnpparibas.net depuis un lien envoyé dans un
e-mail ou figurant sur un site Internet non identifié. Il existe en effet un risque important de
phishing.
Afin de pouvoir récupérer les données de leurs victimes et de les utiliser, les fraudeurs
envoient en effet des emails, en se faisant passer pour la banque de ces victimes et en les
incitant à consulter un site indûment présenté comme le véritable site de cette banque. Cette
usurpation d'identité ou « spoofing » s’accompagne en effet souvent d'une fraude, but de la
manœuvre frauduleuse, et qui vise à récupérer certaines informations confidentielles telles
que les codes secrets de connexion. Cette fraude est communément désignée sous le nom de
« phishing », déformation de fishing (« pêche »).
Pour prévenir de telles atteintes, les banques recommandent à leurs clients de vérifier
systématiquement l’identité de l’émetteur de l’email. Toutefois, il convient de remarquer que
l’identité de l’émetteur peut aisément être maquillée pour ressembler, à s’y méprendre, à
l’identité véritable de la banque.
En tout état de cause, les clients sont invités à ne pas suivre les liens insérés dans les
emails, et à ne se connecter aux sites bancaires qu’en tapant l’url exacte du site dans la barre
12
La fourniture et l’usage des algorithmes de chiffrement sont en effet réglementés : les textes de lois en vigueur
sont les décrets 99-199, 99-200 et l’arrêté du 17 mars 1999. Ils limitent la taille des clés suivant le type d’usage.
En France, c’est la DCSSI (Direction Centrale de la Sécurité des Systèmes d’Information) qui attribue les
autorisations d’utilisation de produits de chiffrement.
7
d’adresse du navigateur Internet. La vérification du certificat de sécurité permet également de
s’assurer, en principe, de la fiabilité du site, dans les conditions suivantes.
Le client doit ensuite vérifier le certificat de sécurité
Les propriétés du site doivent notamment faire figurer l’indication du protocole utilisé par
le site : SSL 3.0 ou TLS 1.0, avec cryptage en 128 bits. Le site fonctionne avec les
navigateurs dotés de la version 2.0 du protocole SSL ou d'un cryptage de 40 bits seulement,
mais la banque recommande à ses clients de mettre à jour leurs navigateurs Internet.
Ensuite, le certificat de sécurité (rubrique « certificats ») doit mentionner les informations
suivantes :
- Délivré à : www.secure.bnpparibas.net
- Délivré par : Secure Server Certification Authority
8
Le "chemin d'accès de certification" doit mentionner :
-
VeriSign/RSA Secure Server CA
-
www.secure.bnpparibas.net
-
Etat du certificat : ce certificat est valide.
9
Le rapport de la CNIL : « Opération audit de la banque en ligne »13
La Commission Nationale de l’Informatique et des Libertés a audité au cours du premier
semestre 2005 les dix principaux sites web de banques françaises, pour vérifier le respect de
la loi Informatique et Libertés. Au-delà de ce contrôle de la conformité des pratiques à la loi
de 1978, la CNIL a également voulu vérifier le degré de protection des données personnelles
et bancaires des internautes clients de banques en ligne.
Si sept banques offraient, à la date de l’étude, un niveau suffisant de sécurité et de
protection des données personnelles, la CNIL conseillait toutefois aux internautes de ne pas
négliger quelques précautions d'usage. Sans citer aucun nom d’établissement financier, elle
estimait que « sept respectent globalement la confidentialité et la sécurité des données, même
si des améliorations restent à prévoir » (p.3 de l’audit). Elle ne citait toutefois aucun nom
d'établissement financier.
L'étude a montré que les internautes disposaient d'un bon niveau d'information, passant
notamment par les recommandations des banques, l’aide en ligne et l’affichage par les
navigateurs Internet du passage en mode sécurisé.
La CNIL considérait que la sécurité de la connexion est « globalement satisfaisante »
(p.3). Les protocoles SSL et TLS étaient d’ores et déjà largement utilisés. Toutefois, sur
les dix services audités, quatre n'utilisaient pas de protocole de sécurisation des échanges dès
l'envoi des identifiant et mot de passe durant l'authentification de l'internaute, « la bascule en
mode sécurisé ne se faisant qu'après l'envoi de ces informations en clair sur le Net » (p.4).
Conclusion : les faiblesses de la sécurisation des échanges de données bancaires
sur Internet
Une difficulté persistante malgré le cryptage asymétrique : les attaques de type Man in
the Middle
Le cryptage asymétrique reste vulnérable aux attaques de type Man in the Middle (ou
MiM). Elle consiste, pour un tiers à l’échange, à s’insérer entre l’émetteur et le récepteur pour
intercepter les données échangées. Lorsque l’émetteur demande sa clé publique au récepteur,
le tiers renvoie alors sa propre clé publique. L’émetteur crypte donc son message avec la clé
du tiers malveillant et envoie le résultat. Il suffit ensuite au pirate de décrypter le message
grâce à sa propre clé privée. Au-delà de cette interception, le tiers peut même crypter le
13
Pour la référence de l’audit, cf supra, note 3.
10
message avec la clé publique du récepteur, et le lui envoyer, éventuellement après l’avoir
modifié. De cette façon, l’interception reste indécelable pour l’émetteur comme pour le
récepteur.
Pour éviter de telles attaques, l’émetteur doit s’assurer que la clé publique qui lui a été
fournie est bien celle du récepteur. Cette garantie peut passer par un échange de clé en main
propre, par une vérification par téléphone ou par écrit. En réalité, l’authentification passe le
plus souvent par un tiers de certification, ainsi que nous l’avons vu dans l’exemple de la BNP
Paribas. Il convient toutefois de remarquer que les intercepteurs n’hésitent pas à fournir au
client un faux certificat, ressemblant au véritable certificat du serveur.
En 2001, Serge Vaudenay14 lance une attaque contre le protocole SSL, en utilisant les
temps de réponse des serveurs, ce qui lui permet de découvrir les dernières données envoyées
et de les récupérer. L'attaque n'est toutefois valable que sous certaines conditions. Elle a
néanmoins pu être utilisée avec succès contre certains webmails, qui envoient plusieurs fois
les mêmes données.
14
Serge Vaudenay est un cryptologue français, ancien élève de l’ENS.
11