SSL/TLS La protection HTTP. Stéphane Natkin 2006



Documents pareils
Action Spécifique Sécurité du CNRS 15 mai 2002

SSL/TLS: Secure Socket Layer/Transport Layer Secure Quelques éléments d analyse. GRES 2006 Bordeaux 12 Mai Ahmed Serhrouchni ENST-PARIS CNRS

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Protocole industriels de sécurité. S. Natkin Décembre 2000

Le protocole sécurisé SSL

WTLS (Wireless Transport Layer Security)

L3 informatique TP n o 2 : Les applications réseau

Le protocole SSH (Secure Shell)

Université de Reims Champagne Ardenne. HTTPS, SSL, SSH, IPSEC et SOCKS. Présenté par : BOUAMAMA Mohamed Nadjib AZIZ Xerin

Sécurité des RO. Partie 6. Sécurisation des échanges. SSL : Introduction. Rappel: Utilités la sécurité à tous les niveaux SSL SSH.

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

La Technologie Carte à Puce EAP TLS v2.0

La sécurité des réseaux. 9e cours 2014 Louis Salvail

Serveurs de noms Protocoles HTTP et FTP

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Tunnels. Plan. Pourquoi? Comment? Qu est-ce? Quelles solutions? Tunnels applicatifs ESIL INFO 2005/2006. Sophie Nicoud

Protocoles Applicatifs

Cours 14. Crypto. 2004, Marc-André Léger

Protection des protocoles

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Dans l'épisode précédent

Devoir Surveillé de Sécurité des Réseaux

Sécurité des réseaux IPSec

Présentation Internet

18 TCP Les protocoles de domaines d applications

(structure des entêtes)

Manuel des logiciels de transferts de fichiers File Delivery Services

L identité numérique. Risques, protection

Cours CCNA 1. Exercices

EMV, S.E.T et 3D Secure

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Présentation. LogMeIn Rescue. Architecture de LogMeIn Rescue

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Réseaux et protocoles Damien Nouvel

Du 03 au 07 Février 2014 Tunis (Tunisie)

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Sécurité des réseaux sans fil

TP 2 : Chiffrement par blocs

Les services usuels de l Internet

Utilisation des certificats X.509v3

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Les fonctions de hachage, un domaine à la mode

Vulnérabilités et sécurisation des applications Web

Les Réseaux Privés Virtuels (VPN) Définition d'un VPN

1 Introduction Propos du document Introduction De HTTP 1.0 à HTTP

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Chapitre : Les Protocoles

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

SSL/TLS: état des lieux et recommandations

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Application Web et J2EE

Hébergement de sites Web

Le protocole RADIUS Remote Authentication Dial-In User Service

SSH, le shell sécurisé

Programmation Internet Cours 4

Couche application. La couche application est la plus élevée du modèle de référence.

Développement des Systèmes d Information

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

Cisco Certified Network Associate

Développement Web. Les protocoles

SÉCURITÉ RÉSEAUX/INTERNET, SYNTHÈSE

Services Réseaux - Couche Application. TODARO Cédric

DISTANT ACESS. Emna TRABELSI (RT3) Chourouk CHAOUCH (RT3) Rabab AMMAR (RT3) Rania BEN MANSOUR (RT3) Mouafek BOUZIDI (RT3)

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Hébergement de site web Damien Nouvel

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Sécurité WebSphere MQ V 5.3

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

Quelques protocoles et outils réseaux

Les certificats numériques

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Table des matières Hakim Benameurlaine 1

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Mac OS X Server Administration des technologies Web. Pour la version 10.3 ou ultérieure

Le serveur HTTPd WASD. Jean-François Piéronne

Introduction à HTTP. Chapitre HTTP 0.9

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Architectures Web Services RESTful

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Architectures PKI. Sébastien VARRETTE

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

INSTALLATION D'OPENVPN:

Mise en œuvre des serveurs d application

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Transcription:

SSL/TLS La protection HTTP Stéphane Natkin 2006

SSL/TLS

Service SSLV3.0 et TLS offrent des connexions asymétrique et possédant toutes les fonctionnalités des connexions TCP. Elles assurent en outre : Une authentification forte d'un ou des deux parties en utilisant un système de certification basé sur le RSA, Diffie Hellman ou le DSA. Le protocole ne précise rien sur la gestion des certificats proprement dite. Une protection contre les attaques d'interception: une fois la connexion établie l'échange est garanti se dérouler entre les parties authentifiées. Une protection en intégrité des messages et du flux de messages, par utilisation conjointe d'un numérotation des messages et une fonction de hachage sécurisée (basée sur le MD5 ou SHA1).

Service (2) Optionnellement la compression des données en utilisant tout algorithme de compression implanté de part et d'autre. Optionnellement une protection en confidentialité des données en utilisant tout algorithme cryptographique symétrique implanté de part et d'autre et une clef de session unique par connexion. La plus part des implantations supportent le DES, le 3DES (à clefs de 112 et 168 bits), le RC5. La suite cryptographique utilisée est négociée à l'ouverture de connexion.

Positionnement architectural HTTP LDAP IMAP POP3 Telnet Secure sockets layer SSL ou TLS TCP/IP Application Session

Architecture 2 sous couches: SSL record protocol réalise les fonctions de sécurité essentielles Au dessus trois protocoles gèrent les paramètres et les erreurs: Handshake, Change Cipher Spec, Alert Deux niveau de persistance Connexion, correspond aux connexions TCP + Paramètres de sécurité propres A transport with some service, associated with a session Session Créé par Handshake, gère les contextes communs à plusieurs connexions

Architecture TLS Handshake HTTP/LDAP... SSL/TLS Record TCP/IP

Contexte de session Un identifiant de session. Un certificat de l entité distante. éventuellement nul. Une méthode de compression. Les spécifications du chiffrement. algorithme de chiffrement symétrique (nul, DES, etc.) algorithme de hachage (comme MD5 et SHA-1). La clé maître. Un secret de 48 octets partagé entre le client et le serveur. Un indicateur indiquant si la session peut couvrir plusieurs connexions TCP.

Contexte de connexion Server_random et Client_random: nonces aléatoires de 32 octets, générés par le client et le serveur lors de chaque connexion. Server_MAC_write_secret: clé secrète utilisé par le serveur pour calculer les MACs Client_MAC_write_secret: clé secrète utilisé par le client pour calculer les MACs Server_write_key: clé symétrique utilisé par le serveur pour le chiffrement des données. Client_write_key: clé symétrique utilisé par le client pour le chiffrement des données. Initialization vectors: vecteur d'initialisation pour le chiffrement par bloc en mode CBC (Cipher Bloc Chaining), l'un du coté serveur et l'autre du coté client. Sequence number: chaque message est numéroté, l'un pour le serveur, l'autre par le client, et chacun codé sur 8 octets

TLS Handshake Le protocole TLS Handshake consiste en une suite de trois sous protocoles qui sont utilisées par les entités communicantes pour s authentifier entre elles, créer un contexte de sécurité négocié utilisé ensuite par TLS Record et gérer et signaler des conditions d erreur: Négociation Changement des paramètres de chiffrement Alerte

MSC de Handshake et Record Client Server ClientHello (protocolversion, random, sessionid, CipherSuite, compressmethod) ServerHello(protocolVersion, random, sessionid, ciphersuite, compressmethod) Certificate* ServerKeyExchange* certificaterequest* ServerHelloDone TLS Handshake Protocol Certificate* ClientKeyExchange* Finished Finished Application Data TLS Record Protocol

Authentification du serveur Suite à la requête d'un client, le serveur envoie son certificat au client et lui liste les algorithmes cryptographiques, qu'il souhaite négocier. Le client vérifie la validité du certificat à l'aide de la clé publique du CA (Certificate Authority) contenue dans le navigateur. Si le certificat est valide, le client génère un pré-master secret (PMS) de 48 octets qui servira à dériver le master secret (MS) de même taille. Le PMS est chiffré avec la clé publique du serveur puis transmis à ce dernier. Les données échangées par la suite entre le client et le serveur sont chiffrées et authentifiées à l'aide de clés dérivées de la clé maître.

Authentification (optionnelle) du client Le serveur (et seulement lui) peut demander au client de s'authentifier en lui demandant tout d'abord son certificat. Le client réplique en envoyant ce certificat puis en signant un message avec sa clé privée :ce message contient des informations sur la session et le contenu de tous les échanges précédents.

Messages de HANDSHAKE ClientHello : ce message contient: la version: version du protocole SSL,client_random: nombre aléatoire, session_id:l'identificateur de session, cipher suite :la liste des suites de chiffrement choisies, et algo décompression: la liste des méthodes de compression. ServerHello : ce message contient: la version: version du protocole SSL,Server_random: nombre aléatoire, session_id:l'identificateur de session, cipher suite :la liste des suites de chiffrement choisies, et algo décompression: la liste des méthodes de compression. Certificate : ce message contient soit le certificat de serveur ServerKeyExchange : contient le certificat de signature CertificateRequest : le serveur réclame un certificat au client ServerHelloDone : la fin de l'envoi de message ClientKeyExchange : ce message contient le PreMastersecret crypté à l'aide PreMastersecret crypté à l'aide de la clé publique du serveur. CertificateVerify : vérification explicite du certificat du client Finished : fin du protocole Handshake et le début de l'émission des données

Suite cryptographique Forme SSL_X_WITH_Y_Z où : X désigne l'algorithme utilisé pour l'échange de clés : RSA ou Diffie-Hellman avec signature DSS ou RSA. Y désigne l'algorithme de chiffrement Z l algorithme de hachage Exemple SSL_RSA_WITH_DES_CBC_MD5

Génération des paramètres cryptographiques Création du Master secret. Le pre-master-secret est échangé dans un premier temps. RSA, or Diffie-Hellman. Les deux parties calculent le Master Secret à partir du pre-master-secret et des nonces. Génération des paramètres cryptographiques. Clefs symétiques client/servuer d intégrité (MAC) et de confidentialité, vecteur d intialisation (IV) pour le CBC.

Master secret Client génère (RSA ou DH) un pre-mastersecret de 48 octets s p Master secret: s m =MD5(s p SHA( A s p r c r s )) MD5(s p SHA( BB s p r c r s )) MD5(s p SHA( CCC s p r c r s )) ou r c,s : nonce client, serveur

Clefs de chiffrement Clef de session: même principe le master secret est utilisé à la place de s p pour générer une suite binaire don t les éléments sont les clefs et IV.

SSL Record Protocol 3 services: Confidentialité, intégrité des messages et du flot de messages, compression Opérations: Fragmentation Compression des données Calcul d un message authentication code (MAC) = h(s:secret m:message) Chiffre avec la clef client (cw) ou serveur (sw) Transfère via TCP

PDU Record Intégrité: Données, MAC (16/20 octets) Confidentialité chiffrement par blocs: Données, MAC, Padding Confidentialité chiffrement en continu Données, MAC

Remarques L'authentification du client est facultative et au bon vouloir du serveur. Elle est en fait rarement utilisée L'authentification du réseau intervient dans tous les cas avant celle du client. Comme dans IPSec (IKE phase 1), l'authentification reprend les échanges précédents et valide ainsi tout le handshake. Seule la clé publique du serveur est utilisée pour faire du chiffrement; celle du client ne sert que pour de la signature.

ALERT Génère des messages d'alerte suite aux erreurs que peuvent s'envoyer le client et le serveur. Type d erreur Fatal ou Warning. Fatal, la session SSL est abandonnée: bad_record_mac: réception d'un MAC erroné decompression_failure: les données appliquées à la fonction de compression sont invalides handshake_failure: impossibilité de négocier les bons paramètres illegal_parameter: un paramètre échangé au cours du protocole Handshake ne correspondait pas avec les autres paramètres unexpected_message: message non reconnu.

ALERT (2) Les warnings : bad_certificate: le certificat n'est pas bon certificate_expired: certificat périmé certificat_revoked: certificat révoqué certificat_unknown: certificat invalide pour des raisons précisés au dessus close_notify: la fin d'une connexion no_certificate: réponse négative à une demande de certificat unsupported_certificate: le certificat reçu n'est pas reconnu

Implantation Mode Proxy Mode intégré (navigateurs) Bibliothèques Nombreuses offrent serveur» SSLeay» Netscape Entreprise Server» Apache» Oracle Web Apllication Server» Internet Information Server (IIS)» Lotus Domino d'ibm» Java Server de Sun Microsystems

Ports SSL HTTPS (HTTP en SSL) 443 SMTPS (SMTP en SSL) 465 NNTPS 563 LDAPS (LDAP en SSL) 636 POP3S 995 IMAPS 995 TELNETS992

HTTP

HTTP terminologie du WWW HTTP :HyperText Transfert Protocol : protocole de transport de pages hypertexte/hypermédia URL: :Uniform Ressource Locator : adresse planétaire d'une ressource HTML : Langage Hypertexte qui permet de décrire les documents hypertextes gérés par le Web

Documents hypermédia page CNAM Page d'accueil Liens Hypertexte Le musée vient du musée de chicago L'informatique au CNAM Images du Pendule de Foucault Vidéo de l'inscription en informatique Le département informatique Les autres enseignements en informatique sur Paris Vers le musée du Louvre... vers un serveur de l'ecole centrale Vers le serveur de Jussieu

Format d un URL protocole : chemin-d-acces forme BNF : nom-protocole:nomserveur[:port]{/répertoire}*/resso urce Exemples d'url : http://www.cnam.fr/marillion/ Marillion.html news:fr.rec.cuisine ftp://ftp.cnam.fr/pub/atari/0new0

HTML HyperText Markup Language <TITLE>CNAM</TITLE> <h1>conservatoire National des Arts et Métiers, une tradition d'avance</h1> <img src="/images/cnam.gif"> <p>yes, we do have a <a href="/index_english.html">home page in English</a>. <p> Bienvenue sur le serveur du CNAM, à; <a href="http://www.cnam.fr/louvre/paris/">paris</a>, France (vous ne <a href="http://meteora.ucsd.edu/~norman/paris">connaissez pas Paris</a>?). Vous pouvez venir <a href="http://metro.jussieu.fr:10001/bin/ext/french/france/paris/set1">en métro</a>.<p> Vous avez des <a href="http://web2.cnam.fr/cnam/accueuil_cnam.html"> informations pratiques</a> sur le CNAM et des <a href="/images/cnam/">photos</a>. Vous pouvez aussi consulter le <a href="http://web2.cnam.fr/vms/equipe/am3.html">catalogue de la bibliothèque</a>.<p> <img src="/museum/chapellep1d.gif"><p> Visitez le <a href="/museum/">musée des Arts et Métiers</a>, notre musée virtuel des techniques (photos et textes en français).<p>

Fonctionnement d un serveur Web adresse de la page :URL requête http Serveur Web Pages Html pointeurs href Client Mosaic réponse http requête http réponse http Serveur Web Pages Html

HTTP: principe de fonctionnement Client Le client demande à se connecter Serveur Le serveur accepte et attend la requête Le client fait une requête Le serveur envoie le document et ferme la connexion. Le client analyse le document HTML (interprêteur HTML), s'il y a des liens sur des images, il refait une requete pour chaque image Le serveur envoie l'image et referme la connexion L'image est reçue par le serveur et est affichée.

HTTP format des requêtes Format d'une requête: ligne requête en-tête (0 ou plus) <ligne blanche> Corps (seulement sur la requête POST) Le format de ligne requête est requête URL HHTP-version

Types de requêtes Les types de requêtes supportées en HTTP 1.1 sont : GET : accès en lecture à une URI, HEAD : accès en lecture à l en tête d une URI (permettant de connaître sa structure), POST : Passages de paramètres vers un URI dynamique (un script CGI par exemple) PUT : Créer ou modifier une URI DELETE : Détruire une URI TRACE : permet de tester l accès par demande d un retour de commande.

Format des réponses état de ligne en-tête (0 ou plus) <ligne blanche> Corps (seulement sur la requête POST) Le format de état de la ligne est HHTP-version code-de-réponse phrase de réponse

Exemples (1) % telnet cedric.cnam.fr 80 Trying 163.173.136.10... Connected to tulipe.cnam.fr. Escape character is '^]'. GET /index.html HTTP/1.0 HTTP/1.0 200 Document follows Date: Fri, 25 Apr 1997 14:21:54 GMT Server: NCSA/1.5.2 Last-modified: Fri, 29 Nov 1996 11:10:41 GMT Content-type: text/html Content-length: 2272 <title> Centre d'etude et de Recherche en Informatique du CNAM </title> <img src="logocedric.gif" alt="[cedric}"><p> <strong>bienvenue au CEDRIC, le Centre d'etude et de Recherche en Informatique du <a href="http://www2.cnam.fr/">cnam</a>!</strong><p> Le laboratoire regroupe des enseignants-chercheurs du <a href="http://deptinfo.cnam.fr/">dèpartement d'infor matique du CNAM</a> <a href="http://meteora.ucsd.edu/~norman/paris/">paris</a>,...

Exemples (2) telnet cedric 80 Trying 163.173.136.10... Connected to tulipe.cnam.fr. Escape character is '^]'. GET ind.html HTTP/1.0 HTTP/1.0 404 Not Found Date: Fri, 25 Apr 1997 14:33:47 GMT Server: NCSA/1.5.2 Content-type: text/html <HEAD><TITLE>404 Not Found</TITLE></HEAD> <BODY><H1>404 Not Found</H1> The requested URL ind.html was not found on this server. </BODY> Connection closed by foreign host.

Asynchronisme du mode client/serveur HTTP Le client n attend pas (comme dans un RPC standard) la réception de réponse. Il continue à faire des requêtes en fonction de l analyse de la page. Sur un client standard il peut y a voir 4 à 8 requêtes simultanées en cours de traitement En HTTP 1.1 il peut demander au serveur de ne pas fermer la connexion.

Authentification dans HTTP

Modes d authentification du client En clair: très vulnérable Résumé (Hash) MD5: le serveur envoie une requête avec un nonce, le client hache son login le password et le nonce En théorie doit être refaite à chaque accès Vulnérable aux attaques par le milieu

Contrôle d accès Les serveurs utilisent ce mécanismes conjointement à des listes de contrôle d accès. Les droits portent sur type de requête et la ressource (URI : Unified Ressource Locator) demandée. Il est possible aussi d attribuer des droits à un groupe. En l absence d authentification ce mécanisme permet d autoriser ou d interdire un type de requête à tout le monde.

HTTPS HTTP au dessus de SSL/TLS Accès par une URL https://webmail.cnam.fr/src/login.php?secure_lo gin=yes Le serveur doit s authentifier par certificat Le client peut soit s authentifier par certificat soit par un autre mode, une fois la session SSL ouverte Par exemple en utilisant l authentification HTTP

Conclusion HTTPS est en théorie une bonne solution si: 1. Les certificats étaient gérés et contrôlés correctement 2. Les Pwd étaient bien gérés 3. Les serveurs étaient bien protégés Avec des si