Sécurité : solutions protocolaires Ahmed Serhrouchni Telecom ParisTech
Sommaire Problématiques Architecture et sécurité Quelques statistiques Attaques sur les protocoles de la famille TCP/IP Classification des solutions Solutions intégrés aux applications Authentification Typologie Mot de passe Solution transparente aux applications Filtrage et proxy Protocole SSL/TLS (Secure Socket Layer/Transport Layer Secure) Protocole SET (Secure Electronic Transaction) 2
Problématiques Architecture et sécurité Architecture de communications en couche Partie traitement Dans le contexte utilisateur Indépendance entre les applications Partie transmission (4 premières couches) Intégrée au noyau du système d exploitation Peu de transparence entre les couches Protocoles de la couche application Plutôt orientée texte Complexité du côté client Seul l authentification est intégrée à quelques applications 3
Problématiques Architecture et sécurité Trois principales applications des SI La messagerie Le WEB L annuaire et bientôt la ToIP Le Web support et point d entré dans les SI Banque, achat, réservation, consultation, Cible idéale ou principale de toutes attaques Un réseau et des protocoles associés Ouvert Architecture: TCP/IP, Protocoles: HTTP, TCP, IP, ICMP, DNS, UDP 4
Problématiques Quelques statistiques Source: http://www.webappsec.org/projects/whid/ 5
Trafic de la messagerie Source: http://www.esafe.com/csrt/security-statistics.aspx 6
Internet Users 7
Problématiques Quelques statistiques Synthèse globale des attaques: 75% affectent les applications Web. 10% affectent la messagerie Si on considère le SPAM comme attaque alors on a 97% affectant la messagerie 1% affectent l annuaire 14% affectent les systèmes d exploitations et autres services et protocoles Attaques au niveau des navigateurs: 55% affectent Internet Explorer 45% affectent Firefox 8
Problématiques Attaques sur les protocoles de la famille TCP/IP Choix d implémentation Patchs Buffer overflow, Ping of death, land, Teardrop Design des protocoles Filtrage, Smurf, email :bombing, spamming, ftp bounce,tcp con. Killing, injection de tout types Usurpation d adresse ou d identité Authentification Sniffing, ARP spoofing, IP spoofing, TCP hijacking, email spoofing, dns cache poisoning, web spoofing, usurpation des identités, des mots de passe, Défaut d implémentation Patchs Voulue (chevaux de Troie, virus, iframe, ) Non voulue netscape server 9
Services de sécurité et cryptographie Confidentialité Intégrité Authentification Identification Non répudiation Horodatage 10
Problématiques Classification des solutions Les solutions protocolaires par extensions Etendre les protocoles concernés par des mécanismes protocolaires pour les renforcer Les solutions protocolaires transparentes Introduire des protocoles de sécurité entre les couches de manière transparente: SSH, SSL, TLS Les solutions protocolaires de signalisation Introduire des protocoles de sécurité au même niveau que le protocole à sécuriser: IPsec Les solutions de traitement locales Des solutions locales de filtrage, d analyse, de détection d intrusion, de conversion: firewall, IDS, Scan, anti-virus, Ces solutions sont en général transparentes 11
Solutions intégrés aux applications Authentification Seul le service d authentification est présent Application de la famille TCP/IP de type client/serveur (Requête/Réponse) Seul le client est authentifié Les données sont transmises en clair Authentification en général par mot de passe Souvent commun au système d exploitation Attaques: rejeu, homme au milieu, usurpation, 12
Solutions intégrés aux applications Authentification: typologie Authentification simple une seule entité est authentifiée Authentification mutuelle l ensembles des entités sont authentifiées Authentification souple basée sur une secret partagé Authentification forte basée sur un élément privé Peut être utilisée comme élément de preuve 13
Solutions intégrés aux applications Authentification: typologie Authentification peut être basée sur des éléments: logiques (mot de passe, certificat, ) physiques associés à l entité à authentifier (biométrie) Les mots de passe sont les plus usuels actuellement: Gestion relativement simple Stocké en clair ou «chiffré» du côté serveur Peuvent être stockées du côté client en clair Stockées de manière opaque et non gérable Authentification par certificats: Nécessitent une infrastructure 14
Solutions intégrés aux applications Authentification: par mot de passe Authentification par mot de passe en clair Échange en clair sur le réseau Peut être stocké en clair du côté serveur selon les applications Telnet, Ftp, POP, HTTP basic, bases de données (SQL), Parfois commun à plusieurs services Exemple: Protocole PAP (Password Authentication Protocol) Authentification par mot de passe avec challenge Le mot de passe ne transite pas durant l échange Est toujours stocké en clair du côté serveur Rarement commun à plusieurs services HTTP digest Exemple: protocole CHAP (Challenge Authentication Protocol) 15
Solutions intégrés aux applications Authentification: HTTP Basic Défini dans le RFC2617 Usuel dans SIP pour la VoIP et dans HTTP HTTP Basic Le client fait une requête http vers le serveur Le serveur lui retourne un message d erreur (status 401) et lui demande de s authentifier avec le mode basic Le client refait sa première requête avec des entêtes en plus incluant son identifiant (login) et son mot de passe, le tout en clair Le serveur lui retourne la ressource si les paramètres fournis ont été validés 16
Solutions intégrés aux applications Authentification: HTTP Digest Défini dans le RFC2617 HTTP Digest Le client fait une requête http vers le serveur Le serveur lui retourne un message d erreur (status 401) et lui demande de s authentifier avec le mode digest, le serveur lui renvoie un nonce (nombre aléatoire) Le client refait sa première requête avec des entêtes en plus incluant son identifiant (login) et le résultat du haché de son mot de passe combiné avec le nonce et éventuellement d autres paramètres (le mot de passe ne transite pas en clair) Le serveur lui retourne la ressource si les paramètres fournis ont été validés 17
Solutions intégrés aux applications Authentification: HTTP Digest Réponse du serveur à une requête du client nécessitant l authentification du client: HTTP/1.1 401 Unauthorized WWW-Authenticate: Digest realm="testrealm@host.com", qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41«réponse du client au message précédent: Authorization: Digest username="mufasa", realm="testrealm@host.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/dir/index.html", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae49393a05397450978507c4ef1", opaque="5ccc069c403ebaf9f0171e9517f40e41" 18
Solutions intégrés aux applications Authentification: OTP Objectives: Lutter contre les écoutes et le rejeu du mot de passe N empêche pas l écoute mais empêche le rejeu Un mot de passe à usage unique Fonctionne avec toutes solutions à base de mot de passe Proposé initialement par Leslie Lamport [1] Pour protéger l échange en clair des mots de passe 19
Solutions intégrés aux applications Authentification: OTP (principes) Méthode de calcul d un mot de passe à usage unique Traitement basé sur une fonction de hachage Nécessite une coordination entre deux entités Explicite (Asynchrone) = Modèle Challenge/réponse Basé sur un ou plusieurs paramètres échangés dans un sens Implicite (Synchrone) basé sur un numéro de séquence ou une horloge 20
Solutions intégrés aux applications Authentification: OTP (propriétés) Pour la mise en œuvre de l authentification simple Nécessite une personnalisation par une phrase secrète partage d un secret au préalable entre les deux entités Parade structurelle contre les attaques par rejeu A différencier avec l attaque de l homme au milieu, qui elle dépend plus du protocole d authentification Renforce les mots de passe Parade contre l usurpation des mots de passe par écoute Permet une gestion des mots de passe limiter la durée de vie de la phrase secrète partager Capacité d intégration aux protocoles Traitement indépendant des protocoles d authentification Capacité de choix de la fonction de hachage déterminant pour le niveau de robustesse Un consortium pour cela [2] 21
Solutions intégrés aux applications Authentification: OTP (faq) N est pas un protocole d authentification deux instances nécessaires pour l authentification mutuelle Ne concerne pas la protection du secret partagé (phrase secrète) la protection du secret est de l ordre de l implantation N est pas une solution fermée Possibilité de la renforcer par l ajout de nouveaux paramètres Plusieurs réalisations sont possibles Problématique de l interopérabilité Ne permet pas la non-répudation Pas de preuve au sens juridique 22
Solutions intégrés aux applications Authentification: OTP (standards) Premier RFC S/KEY marque déposé de Bellcore RFC 1760, February 1995, statut «informational» [2] Une implémentation de référence de Bellcore [6] Utilisé au sein de Bellcore durant plusieurs années Plusieurs implantations disponibles Ran Atkinson propose une implantation de la NRL (Navy Laboratories Research) [5] OPIE: One Time Passwords In Everything (+ portable et avec MD5) http://ftp.icm.edu.pl/packages/replay/programs/nrl-opie/ 23
Solutions intégrés aux applications Authentification: OTP (standards) The Internet Engineering Task Force Internet (IETF) Groupe de travail de l IETF en 2001 pour proposer une alternative à S/KEY marque déposé de Bellcore Pour intégrer de nouvelles fonctions de hachage RFC 2289 (Obsoletes 1938): A One-Time Password System, statut «standard» [3] La référence actuelle au niveau des implantations. RFC4226 HOTP: An HMAC-Based One-Time Password Algorithm,, statut «informational» [4] L OATH (initiative for Open AuTHentication) basés sur un compteur et une fonction hmac HOTP (HMAC One Time Password) (Verisign, Aladdin, SafeHaus, etc.) http://www.openauthentication.org/ 24
Solutions intégrés aux applications Authentification: OTP (standards) Permet l authentification à deux facteurs Un référentiel le RFC2289 Facteur limitant: manque d interopérabilité entre matériel et logiciel Une évolution vers le RFC4226 Renforcement des calculs cryptographiques Préconisations pour les protocoles d authentification Préconisations pour les implémentations Identifications des points faibles Permet l authentification mutuelle (mais non supporté par tous) Ouvert à différents acteurs Conçus pour être mis en œuvre sur différents devices Définition d une API 25
Solutions intégrés aux applications Authentification: HOTP A l initiative de l OATH (Open AuTHentication) Acteurs: encarteur, équipementiers, opérateurs, fournisseurs de services http://www.openauthentication.org/ RFC4226 HOTP: An HMAC-Based One-Time Password Algorithm, statut «informational» [4] Basé sur un standard RFC2104 (HMAC: Keyed-Hashing for Message Authentication) [6,7] 26
Solutions intégrés aux applications Authentification: HOTP Standardisé à l IETF RFC2104 et au NIST FIPS PUB 198 hmac: Keyed-hash Message Authentication Code Fonction à trois paramètres : hmac (h, K s, M) = mac h : Fonction de hachage K s : Une clé secrète M: Un message ou data Le résultat d une fonction hmac se nomme un mac: mac (message authentication code) La taille du mac est identique à la taille du condensât de h 20 octets pour SHA-1 et 16 octets pour MD5 Fonction usuel dans les protocoles SSL, TLS, IPsec pour les services d authentification de l origine des données et d intégrité 27
Solutions intégrés aux applications Authentification: HOTP hmac (h, K s, M) = h (K s XOR opad h(k s XOR ipad M)) ipad = octet 0x36 et opad = octet 0x5C Soit B la taille des blocs ( B = 64 octets) La taille de B dépend de la fonction h La taille de K s doit être égale à celle de B Si la taille de K s est inférieure à celle de B, un pad de 0 Si la taille de K s est supérieure à la taille du condensât de h, on lui applique la fonction h 28
Solutions intégrés aux applications Authentification: HOTP HOTP est basé: sur une fonction hmac pour l interopérabilité des différents systèmes d authentification: un choix figé de la fonction de hachage et de la sémantique des paramètres La fonction hmac à la base de HOTP est composée de: Sha-1 fonction de hachage K s clé secrète C un compteur (en guise de data) 29
Solutions intégrés aux applications Authentification: HOTP Calcul du HOTP sur la base du hmac-sha1 K s, C hmac-sha1 Dynamictruncature Result 4 bytes Byte 0 Byte 19 4 Bytes X Bytes 4 bits 4 bits Y X 30
Solutions intégrés aux applications Authentification: HOTP Conversion des 4 bytes en un nombre DBC (Dynamic Binary Code) otp-passe = DBC mod 10 d avec ( d = 6) Exemple: Résultat du hmac 07 67 AE 34 67 B0 54 30 A1 56 07 67 AE 34 67 B0 54 30 A1 56 dynamic binary code DBC DBC = 54 30 A1 56 en décimale = 1412473174 otp-passe = 473174 31
Solutions intégrés aux applications Authentification: OTP (comparaisons) S/KEY OTP HOTP Standard RFC1760 RFC2289 RFC4226 Date Février 1995 février 1998 Décembre 2005 Taille de la passe phrase Doit être supérieur à 8 caractères Doit être supérieur à 9 caractères Pas de phrase Fonction de hachage Fonction de hachage avec clé MD4, MD5 MD4, MD5, SHA1 SHA-1 NON NON OUI - 128 bits min. 160 bits conseiller Implantation Disponible Disponible Disponible Niveau Moyen Faible Élevé interopérabilité Marque déposé OUI (Bellcore) NON NON 32
Le Protocole TLS/SSL
TLS/SSL : Introduction Probablement le protocole de sécurité le plus déployé Grâce à son intégration aux browsers Fonctionne aux niveau applicative Ne nécessite pas une configuration particulière du côté client Solution de sécurisation des échanges applicatives totalement transparente Commune aux applications de la famille TCP/IP 34
TLS/SSL : Introduction Initialement le protocole SSL a été défini par netsacpe et intégré au browser Navigator SSL V1.0 (~Début 1994) Testé en interne, et jamais diffusé SSL V2.0 (~Fin 1994) Toujours supporté par les browsers et serveurs mais très déconseillé Maintien pour raison de compatibilité SSL V3.0 (~Début 1997) Version actuelle supportée par tous! 35
TLS/SSL : Introduction TLS V1.0 (Janvier 1999) Transport Layer Secure Basé sur SSL V3.0 Standard de l IETF au sein du groupe TLS Décrit dans le RFC2246 (Standard) Automate semblable à SSL V3.0 Pas d interopérabilité avec SSL V3.0 Taille de quelques paramètres diffèrent WTLS (2001) Wireless Transport Layer Security Standard au sein du WAP Forum Automate semblable à SSL V3.0 Pas d interopérabilité avec TLS V1.0 Taille de quelques paramètres diffèrent Des certificats spécifiques «légers» WTLS devenu «End-to-end Transport Layer Security Specification» 36
TLS/SSL : Introduction Plusieurs autres contributions: RFC2716 EAP TLS Authentication Protocol RFC3546 TLS Extensions RFC4279 Pre-Shared Key Ciphersuites for TLS RFC4346 TLS Protocol Version 1.1 RFC5216 The EAP-TLS Authentication Protocol RFC5246 TLS Protocol Version 1.2 37
TLS/SSL : Introduction Plusieurs autres contributions: RFC2716 EAP TLS Authentication Protocol RFC3546 TLS Extensions RFC4279 Pre-Shared Key Ciphersuites for TLS RFC4346 TLS Protocol Version 1.1 RFC5216 The EAP-TLS Authentication Protocol RFC5246 TLS Protocol Version 1.2 RFC4347 Datagram Transport Layer Security 38
TLS/SSL : Architecture NFS FTP SMTP HTTP Telnet XDR TLS/SSL TCP SNMP UDP RPC IP 39
Ports au dessus de TLS/SSL (1/2) Protocole sécurisé Port Protocole non sécurisé Application HTTPS 443 HTTP Transactions requêteréponse sécurisées SSMTP 465 SMTP Messagerie électronique SNNTP 563 NNTP News sur le réseau Internet SSL-LDAP 636 LDAP Annuaire X.500 allégé SPOP3 995 POP3 Accès distant à la boîte aux lettres avec rapatriement des messages 40
Ports au dessus de TLS/SSL (2/2) Protocole sécurisé Port Protocole non sécurisé FTP-DATA 889 FTP Transfert de fichiers Application FTPS 990 FTP Contrôle du transfert de fichiers IMAPS 991 IMAP4 Accès distant à la boîte aux lettres avec ou sans rapatriement des messages TELNETS 992 Telnet Protocole d accès distant à un système informatique IRCS 993 IRC Protocole de conférence par l écrit 41
TLS/SSL : Services Authentification Serveur (obligatoire), client (optionnel) Utilisation de certificat X509 V3 A l établissement de la session. Confidentialité Algorithme de chiffrement symétrique négocié, clé généré à l établissement de la session. Intégrité Fonction de hachage avec clé secrète hmac(clé secrète, h, Message) Non Rejeu Numéro de séquence 42
TLS/SSL : Protocoles Application SSL Handshake Alert CCS Record TCP 43
TLS/SSL : Protocoles struct { ContentType type; ProtocolVersion version; uint16 length; opaque fra[tlsplaintext.length]; } TLSPlaintext; struct { uint8 major, minor; } ProtocolVersion; SSL V3.0 => major= 3, minor= 0 TLS V1.0 => major= 3, minor= 1 TLS V1.1 => major= 3, minor= 2 enum { change_cipher_spec(20), alert(21), handshake(22), application_data(23), (255) } ContentType; 44
Handshake Authentification du serveur obligatoire Certificat X509 V3 Extensions key usage: signature et chiffrement Diffie Helman dans le cas du certificat de signature Authentification du client optionnelle Certificat X509 V3 Extensions key usage: signature PSK (Pre Shared Key) Négociation Algorithme de chiffrement symétrique et taille des clés Fonction de hachage Echange de clé et génération des clés. 45
Handshake PDU du protocole Handshake struct{ HandshakeType msg_type; uint24 length; select (HandshakeType) { case hello_request: HelloRequest; case client_hello: ClientHello; case server_hello: ServerHello; case certificate: Certificate; case server_key_exchange: ServerKeyExchange; case certificate_request: CertificateRequest; case server_hello_done: ServerHelloDone; case certificate_verify: CertificateVerify; case client_key_exchange: ClientKeyExchange; case finished: Finished; } body; } Handshake; 46
Handshake Message Type de message Sens de transmission 47 Signification HelloRequest optionnel serveur client Ce message demande au client d'entamer le Handshake. ClientHello obligatoire client serveur Ce message contient : le numéro de version du protocole SSL ; le nombre aléatoire : client_random ; l'identificateur de session : session_id ; la liste des suites de chiffrement choisies par le client ; la liste des méthodes de compression choisies par le client. ServerHello obligatoire serveur client Ce message contient : le numéro de version du protocole SSL ; un nombre aléatoire : serveur_random ; l'identificateur de session : session_id ; une suite de chiffrement ; une méthode de compression.
Handshake Certificate Optionnel serveur client client serveur Ce message contient le certificat du serveur ou celui du client si le serveur le lui réclame et que le client en possède un. ServerKeyExchange Optionnel serveur client Ce message est envoyé par le serveur que s il ne possède aucun certificat, ou seulement un certificat de signature. CertificateRequest Optionnel serveur client Par ce message, le serveur réclame un certificat au client. ServerHelloDone Obligatoire serveur client Ce message signale la fin de l envoi des messages ServerHello et subséquents. 48
Handshake ClientKeyExchange Obligatoire client serveur Ce message contient le PreMasterSecret crypté à l aide de la clé publique du serveur. CertificateVerify Optionnel client serveur Ce message permet une vérification explicite du certificat du client. Finished obligatoire serveur client client serveur Ce message signale la fin du protocole Handshake et le début de l émission des données protégées avec les nouveaux paramètres négociés. 49
Handshake Client Ouverture d'une session SSLv3 Serveur Client Hello Serveur Hello Certificate (Serveur Key Exchange) (Certificate Request) Server Hello Done (Certificate) Client Key Exchange (Certificate Verify) ChangeCipherSpec Finished ChangeCipherSpec Finished Application Data Application Data 50
Handshake Ouverture d'une connexion Client Serveur Client Hello Serveur Hello ChangeCipherSpec Finished ChangeCipherSpec Finished Application Data 51
ChangeCipherSpec (CCS) ChangeCipherSpec signale au Record toute modification des paramètres de sécurité, Constitué d un message (1 octet) 52
Le protocole Record Reçoit les données des couches supérieures : (Handshake, Alert, CCS, HTTP, FTP...), et les transmet au protocole TCP. Après application de : - la fragmentation des données en blocs de taille maximum de 2 14 octets - la compression des données, fonction prévue mais non supportée actuellement - la génération d un condensât pour assurer le service d intégrité - le chiffrement des données pour assurer le service de confidentialité 53
Le protocole Alert Le protocole Alert peut être invoqué par: l application, - pour signaler la fin d une connexion - le protocole Handshake - suite à un problème survenu au cours de son déroulement - la couche Record si l'intégrité d'un message est mise en doute 54
Le protocole Alert enum { warning(1), fatal(2), (255) } AlertLevel; enum { close_notify(0), unexpected_message(10), bad_record_mac(20), decryption_failed(21), record_overflow(22), decompression_failure(30), handshake_failure(40), no_certificate_reserved (41), bad_certificate(42), unsupported_certificate(43), certificate_revoked(44), 55
Le protocole Alert /* suite certificate_unknown(46), illegal_parameter(47), unknown_ca(48), access_denied(49), decode_error(50), decrypt_error(51), export_restriction_reserved(60), protocol_version(70), insufficient_security(71), internal_error(80), user_canceled(90), no_renegotiation(100), (255) } AlertDescription; 56
Le protocole Alert Message Contexte Type bad_certificate échec de vérification d un certificat fatal bad_record_mac réception d un MAC erroné fatal certificate_expired certificat périmé fatal certificate_revoked certificat mis en opposition (révoqué) fatal certificate_unknown certificat invalide pour d autres motifs que ceux précisés précédemment close_notify interruption volontaire de session fatal decompression_failure les données appliquées à la fonction de décompression sont invalides (par exemple, trop longues) handshake_ failure impossibilité de négocier des paramètres satisfaisants fatal illegal_parameter un paramètre échangé au cours du protocole Handshake dépasse les bornes admises ou ne concorde pas avec les autres paramètres no_certificate réponse négative à une requête de certificat avertissement ou fatal unexpected_message arrivée inopportune d un message fatal unsupported_certificate le certificat reçu n est pas reconnu par le destinataire avertissement ou fatal 57 fatal fatal fatal
SSL : charges (1/2) Les choix pour les calculs de la charge cryptographique de SSL: algorithme de chiffrement du protocole record : DES 64 bits en mode CBC ; algorithme de chiffrement asymétrique : RSA 1024 bits ; fonction de hachage : MD5 ; itinéraire de certification comprenant une seule étape ; certificat du serveur : autorité de certification unique, déjà connue du client (un seul certificat dans le message Certificate) ; taille des informations contenues, du message Certificate : 500 Koctets (notons que la taille des informations du certificat est dans la plupart des cas inférieure) ; seule le serveur est certifié. 58
SSL : charges (2/2) Opération Ouverture d une nouvelle session (Handshake complet) Rafraîchissement d'une session (Handshake simplifié) Ouverture d une nouvelle connexion Temps de calcul pour 16Ko de données (chiffrement ou déchiffrement, élaboration et vérification du MAC) Temps de calcul pour le client (ms) Temps de calcul pour le serveur (ms) Total (ms) 18,94 16,9 35,85 0,11 0,11 0,22 0,079 0,071 0,15 5,5 5,3 10,8 59
SSL : liste non exhaustive de serveur AOLserver 2.3 Alibaba2.0 Nom de l API Fournisseur Adresse America Online. Inc http://www.aolserver.com Computer Software Manufacturers 60 http://www.csm.co.at/alibaba/ Apache 1.3 The ApacheGroup http://www.apache.org Commerce Server/400 1.0CI/NET, Inc. http://www.inetmi.com Enterprise Server 3.0 Novonyx http://www.novonyx.com Enterprise Web Secure/VM Beyond-Software 1.1 Incorporated http://www.beyond-software.com Internet Information Server 4.0 MicrosoftCorp. http://www.microsoft.com/iis Java Server 1.1 Sun Microsystems http://www.java.sun.com Lotus Domino Go Webserver IBM 4.6.1 http://www.ibm.com NetscapeEnterprise Server 3.5.1 Netscape Communications Corp. http://www. netscape.com OracleWeb Application Server Oracle Corp. 3.01 http://www.oracle.com/products Roxen Challenger 1.2b I Idonex http://www.roxen.com SSLava Phaos Technologies http://www.phaos.com/main.htm WebSite Professional 2.2 O'Reilly Software http://www.website.oreilly.com/ WebTen 2.1 Tenon Intersystems http://www.tenon.com/products/webten Zeus Web Application Server Zeus 3 Technology http://www.zeustech.net
SSL : liste de suite de chiffrement supportée par un serveur S erveur et Version A pache S S LLeay 08.0 Jigsaw 2.0 B eta 1 M icrosoft IIS /4.0 Netscape E ntrepris e3.0l Netscape E ntreprise 3.0F S S Lava B eta 1 Suite E xport Code R C 4-40 M D 5 0x03 R C 4-128 M D 5 0x04 R C 4-128 S H A 0x05 R S A R C 2 C B C -40 M D 5 0x06 D H et D S A D H et R S A D H E et D S A D H E et R S A ID E A C B C S H A 0x07 D E S 40 C B C S H A 0x08 D E S C B C S H A 0x09 3D E S E D E C B C S H A 0x0A D E S 40 C B C S H A 0x0B D E S C B C S H A 0x0C 3D E S E D E C B C S H A 0x0D D E S 40 C B C S H A 0x0E D E S C B C S H A 0x0F 3D E S E D E C B C S H A 0x10 D E S 40 C B C S H A 0x11 D E S C B C S H A 0x12 3D E S E D E C B C S H A 0x13 D E S 40 C B C S H A 0x14 D E S C B C S H A 0x15 3D E S E D E C B C S H A 0x16 61
AOLserver 2.3 Alibaba2.0 SSL : liste non exhaustive d APIs Nom de l API Fournisseur Adresse America Online. Inc http://www.aolserver.com Computer Software Manufacturers 62 http://www.csm.co.at/alibaba/ Apache 1.3 The ApacheGroup http://www.apache.org Commerce Server/400 1.0CI/NET, Inc. http://www.inetmi.com Enterprise Server 3.0 Novonyx http://www.novonyx.com Enterprise Web Secure/VM Beyond-Software 1.1 Incorporated http://www.beyond-software.com Internet Information Server 4.0 MicrosoftCorp. http://www.microsoft.com/iis Java Server 1.1 Sun Microsystems http://www.java.sun.com Lotus Domino Go Webserver IBM 4.6.1 http://www.ibm.com NetscapeEnterprise Server 3.5.1 Netscape Communications Corp. http://www. netscape.com OracleWeb Application Server Oracle Corp. 3.01 http://www.oracle.com/products Roxen Challenger 1.2b I Idonex http://www.roxen.com SSLava Phaos Technologies http://www.phaos.com/main.htm WebSite Professional 2.2 O'Reilly Software http://www.website.oreilly.com/ WebTen 2.1 Tenon Intersystems http://www.tenon.com/products/webten Zeus Web Application Server Zeus 3 Technology http://www.zeustech.net
Attaques Pistes d attaques classiques Vulnérabilités Scénarios d attaque 63
Attaques classiques Pistes classiques Casser les clefs Attack replay Man in the middle Attaque à clair ouvert Parades de SSL Taille des clefs Nonces (connection id) Certificats servent à passer les clefs Clefs + Aléas 64
Sources de vulnérabilité Taille des clefs SSL v2 Certificats Implémentations 65
Scénarios d attaque SSL v2 : Forcer une faible taille de clef Tous : Diffie-Hellman anonyme SSL v3 : Accepte Finished avant ChangeCipherSpec SSL v3 : Envoi de données chiffrées avant réponse serveur au Finished. 66
Exemple 1 Faible clefs Pas de vérification d intégrité CryptoL SSL v2 Forced weak ciphersuite CryptoL 67
Exemple 2 Tiers à l écoute SSL v3 DH anonymous authentification Man in the middle attack 68
Exemple 3 Phase 1 Phase 2 69
Exemple 4 Envoi de données chiffrées Permet de casser la clef, puis de répondre SSL v3 Send data before finished server? 70
Le Protocole SET
Introduction SET (Secure Electronic Transaction), Développé par Visa et Mastercard (1997) Supporte et sécurise l acte de paiement Nécessite la possession d une carte bancaire Pas de modifications des circuits bancaires d autorisation et de télécollecte 72
Architecture et acteurs (1/2) Détenteur de la carte INTERNET Commerçant Autorité de certification Passerelle de paiement réseau financier sécurisé Institut d'émission Institut d'acquisition 73
Architecture et acteurs (2/2) Quatre entités Le porteur de carte Card Holder (CH) Le Commerçant Merchant (M) L autorité de certification Certificate Authority (CA) La passerelle de payement Payment Gateway (P) Cinq étapes Inscription auprès du CA Demande d achat Autorisation de Payement Modification de l achat Collecte 74
Les services de SET Authentification et Identification, Confidentialité des instructions de paiement, Intégrité, Non répudiation. 75
Algorithmes SET A lgorithm e DES RSA SHA-1 HM AC-SHA-1 O pération Chiffrem ent/déchiffrem ent pour assurer la confidentialité des m essages Clé, de siganture et de chiffrem ent Pour assurer l auth en tification, l iden tification, et l intégrité Génération d un condensat pour assurer l in tégrité Génération d un condensat pour assurer l in tégrité 76
Certificats C e r tific a t d e s ig n a tu r e C e r tific a t d e c h iffr e m e n t C lien t o u i n on C o m m e r ç a n t o u i o u i P a sser e lle d e p a ie m en t o u i o u i 77
SET Inscription du porteur de carte (1/7) Demande Initiale Condensat Sont Egaux? Reponse Initiale Signature Reponse Initiale Signature Reponse Initiale Condensat CA Sig. CA Clé CA Sig. CA Clé Condensat 78
SET Inscription du porteur de carte (2/7) Clé aléatoire de cryptage Symétrique Demande Inscription Claire Demande Inscription Chiffrée PAN PAN Clé Publique du CA Clé aléatoire de cryptage Symétrique Demande Inscription Chiffrée Demande Inscription Claire Formulaire Inscription PAN PAN 79 Clé Privée de CA
SET Inscription du porteur de carte (3/7) Formulaire Inscription Formulaire Inscription Signature Clé Privée de CA Sont Egaux? Condensat Condensat Clé Publique du CA Formulaire Inscription Signature CA Sig. Condensat CA Sig. 80
SET Inscription du porteur de carte (4/7) 2 Clé Privée de CH Formulaire Inscription Rempli Clé Publique de CH Clé aléatoire de cryptage Symétrique Condensat Signature 81
SET Inscription du porteur de carte (5/7) Formulaire Inscription Rempli Clé aléatoire de cryptage Symétrique Clé Publique CH Signature 3 2 Clé aléatoire de cryptage Symétrique CB Clé Publique de CA Formulaire Inscription Rempli Clé Publique CH Signature 2 CB Clé aléatoire de cryptage Symétrique Clé Privée De CA 3 CB CB Formulaire Inscription Rempli Clé Publique CH 2 Clé aléatoire de cryptage Symétrique Formulaire Inscription Rempli Clé Publique CH 2 Clé aléatoire de cryptage Symétrique Signature Signature 82
SET Inscription du porteur de carte (6/7) 2 Formulaire Inscription Rempli Clé Publique CH Clé aléatoire de cryptage Symétrique Clé Publique CH Condensat Sont Egaux? Signature Condensat 83
SET Inscription du porteur de carte (7/7) Reponse de Certification 2 Reponse de Certification Reponse de Certification Signature Clé aléatoire de cryptage Symétrique Signature Clé Privée de CA CA Sig. CH Sig. Condensat Condensat Sont Egaux? Condensat Clé Publique CA Reponse de Certification Signature 2 Clé aléatoire de cryptage Symétrique Reponse de Certification Signature CA Sig. CH Sig. 84
Transaction d achat SET Commerçant PReq 1 PRes CapReq 4 5 Internet AuthRes CapRes 6 3 AuthReq 2 Détenteur de carte Passerelle de paiement 85
SET opération d achat Ordre D'Achat (OI) Ordre D'Achat (OI) Ordre D'Achat (OI) Concatenation des Condensats Signature Concatenation des Condensats Signature Concatenation des Condensats Signature Condensat Final Condensat Final Sont Egaux? Instruction De Payement (PI) Concatenation des Condensats Signature Clé Aléatoire de Cryptage Symétrique 1 CH Act. Instruction De Payement (PI) Concatenation des Condensats Signature Instruction De Payement (PI) Concatenation des Condensats Signature Vers La Passerelle de Payement Clé Publique de P CH Act. CH Act. CH Sig. CH Sig. 86
M e s s a g e s f a c u l t a t i f s Messages du protocole SET S e n s 87 S i g n i f i c a t i o n P I n i t R e q C H M m e s s a g e d i n i t i a l i s a t i o n p e r m e t t a n t a u d é t e n t e u r d e c a r t e d o b t e n i r l e s c e r t i f i c a t s d u c o m m e r ç a n t P I n i t R e s M C H r é p o n s e a u m e s s a g e P I n i t R e q A u t h R e v R e q M P m e s s a g e u t i l i s é p a r l e c o m m e r ç a n t p o u r a n n u l e r u n e a u t o r i s a t i o n o u a b a i s s e r l e m o n t a n t d u n e t r a n s a c t i o n d é j à a u t o r i s é e A u t h R e v R e s M P r é p o n s e a u m e s s a g e A u t h R e v R e q I n q R e q C H M d e m a n d e d u s t a t u s d e l a t r a n s a c t i o n I n q R e s M C H r é p o n s e a u m e s s a g e I n q R e q, d e m ê m e f o r m a t q u e l e m e s s a g e P r e s C a p R e v R e q M P m e s s a g e u t i l i s é p o u r a n n u l e r u n e d e m a n d e d e c o m p e n s a t i o n C a p R e v R e s P M r é p o n s e a u m e s s a g e C a p R e v R e q C r e d R e q M P m e s s a g e u t i l i s é p o u r r e n f l o u e r u n e t r a n s a c t i o n d é j à c o m p e n s é e C r e d R e s P M r é p o n s e a u m e s s a g e C r e d R e q C r e d R e v R e q M P d e m a n d e d a n n u l a t i o n d u n m e s s a g e C r e d R e q C r e d R e v R e s P M r é p o n s e a u m e s s a g e C r e d R e v R e q P C e r t R e q M P d e m a n d e d u c o m m e r ç a n t à l a p a s s e r e l l e d e p a i e m e n t d e s o n c e r t i f i c a t P C e r t R e s P M r é p o n s e a u m e s s a g e P C e r t R e q B a t c h A d m i n R e q M P m e s s a g e d e g e s t i o n d e s m e s s a g e s d e c o m p e n s a t i o n B a t c h A d m i n R e s P M r é p o n s e a u m e s s a g e B a t c h A d m i n R e q E r r o r C H M m e s s a g e d e r r e u r
Temps de calcul API BSAFE 4.0 Création Déchiffrement/ vérification Total PinitReq 0 0 0 PiniRes 11 4.34 15.34 PReq 11.7 13.57 25.27 PRes 11 2.48 13.48 AuthReq 11.7 29.59 41.29 AuthRes 11.73 13.52 25.22 CapReq 12.36 15.45 27.18 CapRes 14.22 14.22 26.58 Total 81.19 93.18 174.36 88
Charges de calcul Charge du client Charge du commerçant Charge de la passerelle de payement 18.52 ms 86.74 ms 69.1 ms 89
Temps de calcul avec l API JSAFE1.1 C r é a tio n D é c h iffr e m e n t / v é r ific a tio n T o ta l P in itr e q 0 0 0 P in ir e s 1 7 3 3 2 2 0 5 P R e q 1 8 1.2 6 1 8 5.2 6 3 6 6.5 2 P R e s 1 7 3 1 6 1 8 9 A u th R e q 1 8 1.1 3 3 9 1.9 5 5 7 3.0 8 A u th R e s 1 8 0.5 6 1 9 9.5 6 3 7 9.8 2 C a p R e q 1 8 1.2 8 1 9 0.2 8 3 7 1.5 6 C a p R e s 1 8 1.2 8 1 9 0.2 8 3 7 1.5 6 T o ta l 1 2 5 1.5 1 1 2 0 5.3 3 2 4 5 6.8 4 90
Charges de calcul Charge du client Charge du commerçant Charge de la passerelle de payement 229.26 ms 1283.51 ms 944.07 ms 91
Comparaisons SET/SSL Critère de SE T SSL com paraison gén érale A pplication s T ran saction cartes de crédit oui C ertificat du clien t option n elle Lon gueur de la clé RSA 1024 bits variable Longueur de la clé DES 64 bits 64 bits Signature des données oui non Clé DES unique pour chaque oui non m essage Négociation des algorithm es non oui cryptograph iques M ise en oeuvre de m écanism e de non oui com pression des données A uth en tification des participan ts oui option n elle 92
Inconvénients de SET et SSL SET: SSL: lourdeur de la vérification systématique des certificats lourde charge de calculs cryptographiques logiciels peu répandus une seule authentification au début de la session, certificat non nécessaire pour le client plus de signature après le HandShake 93
Message SET texte en clair Algorithme de hachage condensât signature numérique (sceau) clé privée de l'émetteur clé DES générée aléatoirement pour chaque message certificat de l'émetteur message envoyé Message OAEP clé publique du destinataire enveloppe numérique 94
Protocole Secure Shell (SSH) Protocole Basé sur TCP port 22 Modèle client/serveur SSH est développé pour remplacer l accès nonsécurisé des r-commandes de Unix Les r-commandes (rlogin, rcp, rsh) Version initiale SSHv1 développé par Tatu Ylönen université de Helsinki Version SSHv2 - Reprise par l IETF dans le groupe SECSH 1995. Réécriture complète de SSHv1( v1.3 et v1.5). 95
Protocole Secure Shell (SSH) Services de sécurité: Authentification mutuelle (plusieurs méthodes supportées) Confidentialité Intégrité Non rejeu Connexion à distance: sécurisation des commandes rlogin, rsh, rcp et telnet Évité la circulation du mot de passe en clair sur le réseau Redirection des sessions, notamment X11 Redirection de tous flux TCP dans le «tunnel» de la session 96
Protocole Secure Shell (SSH) Architecture de SSHv2 Couche connexion Couche authentification Couche Transport - multiplexe plusieurs tunnels encryptées dans un même canal - assure l authentification du client par différentes méthodes - assure Intégrité, chiffrement et la compression des données 97
Protocole Secure Shell (SSH) La couche transport: Assure authentification du client, le chiffrement et l intégrité/compression des données. Négociation de la méthode d échange des clefs, des algorithmes à clefs publiques, des algorithmes symétriques et de hachage. L intégrité est assuré en ajoutant un MAC dans chaque paquet MAC(master_secret, sequence number uncrypted packet) Packet Len Une secret partagée K, et un hache H est utilisé comme Payload identificateur du session. Random padding MAC 98 Padding len
Protocole Secure Shell (SSH) La couche authentification: Assure l authentification du client Un client peut essayer plusieurs méthode d authentification envoyer par le serveur. Le client transmet par un requête d authentification. Le serveur refuse ou accepte cette requête suivant la présence ou non du client chez le serveur et suivant les différentes politiques choisies par le serveur. Le serveur peut lancer un timer (10 min) pour la période d authentification et le nombre d échec d authentification du client (3 ou 4 fois). Après l authentification du client, le serveur commence le service demander. 99
Protocole Secure Shell (SSH) La couche connexion: Met en relation les programmes Multiplexe plusieurs tunnels chiffés dans un même canal, avec l exécution des commandes a distance 100
Handshake SSH (1/3) Généralité: Déchiffre le message et envoie le NONCE en clair Client Demande connexion [NONCE] clef pub C [NONCE] Serveur Vérification de l existante du Clefs pub de C 101
Handshake v1 (2/3) Authentification RSA 102
Handshake v1 (3/3) Authentification Rhost RSA En addition a l identification traditionnelle par.rhosts, cette méthode utilise en plus une authentification par RSA pour le client 103
Handshake v2 (1/2) Handshake V2 de SSH Client Serveur Version d identification KE (listes d algorithmes, e = g^x mod p) Couche transport KE (algorithmes choisies, server_pub_key,f=g^y mod p, sig) User auth request User auth method 1 Accept Accept Couche authentification 104
Les algorithmes utilisés (1/2) Les algorithmes a clefs publiques supporté par SSH 2.4 sont : Les algorithmes a chiffrement symétrique supporté par SSH 2.4 sont: 105
Les algorithmes utilisés (2/2) Les algorithmes de hachage supporté par SSH 2.4 sont : 106
Protocole Secure SHell (SSH) $ ssh hôte-distant command $ scp hôte-distant:fichier-distant fichier-local $ scp fichier-local hôte-distant:fichier-distant $ slogin hôte-distant ssh -Lxxx: hôte-distant :yyy serveur-ssh Le client ssh local écoute sur le port xxx Les connexions sur le local port xxx sont redirigées vers le serveur-ssh qui les reforwarde par TCP sur port 5678 du hôte-distant ssh -Rxxx:remotehost:5678 serveur-ssh Le serveur SSH écoute sur le port xxx Les connexions locals sont redirigées vers le port yyy du hôte distant 107
Protocole Secure SHell (SSH) Chiffré Client SSH 22 xxx clair Application Serveur SSH clair yyy hôte Client $ ssh -Lxxx:hôte:yyy serveur Application $ telnet client xxx 108
Protocole Secure SHell (SSH) Chiffré serveur Client SSH yyy clair 22 SSH xxx Hôte Appli Client $ ssh -Rxxx:hôte:yyy serveur Appli. $ telnet serveur xxx 109 Clair
SSH en pratique (port forwarding) (1/2) Le service TCP est redirigé à travers le tunnel chiffré de la session SSH Le client SSH établit un tunnel chiffré avec le port 22 du serveur depuis un port quelconque. Un client VNC (host1) veut se connecter a son station serveur VNC (host3) en passant par un serveur SSH (host 2) Connexion simple Connexion encryptée HOST 3 P2 Serveur VNC, port 5900 Client SSH + Client VNC P1 HOST 1 HOST 2 110 Serveur SSH, port 22
SSH en pratique (port forwarding) (2/2) Résultat: en se connectant localement (connexion vers localhost) depuis la machine HOST1 sur le port p1 (ex. 5901), il y a un transfert vers le port p2 de la machine HOST3, via HOST2. La connexion entre HOST2 et HOST3 ne sera pas encryptée, c est pourquoi on a souvent HOST2 = HOST3 Ceci va sécurisé les échanges entre Host1 et Host2. Capacité Connexion de simple SSH de sécuriser d autres services par le biais du «port forwarding» Connexion encryptée Client SSH + Client VNC ssh L 5901:host3:5900 host2 vncviewer localhost:5901 HOST 3 P2 Serveur VNC, port 5900 P1 HOST 1 HOST 2 Serveur SSH, port 22 111
Protocole Secure Shell (SSH) Inconvénients: Nécessite l installation d un logiciel SSH sur le poste des utilisateurs. Complexité de mise œuvre avec les Proxy, les NAT et le protocole FTP. Gestion manuelle des clés chez les utilisateurs. Protocole non modulaire (SSHv1) Coté utilisateur difficile a géré : gestion des clés publiques, stockage des certificats serveur chez le client, N'intègre pas la notion de certificat X509V3 Authentification du client seul 112
Protocole Secure Shell (SSH) Quelques outils: SecureCRT: http://www.vandyke.co Pour Win98/98/2000/NT F-Secure: http://f-secure.com Windows et Mac SSH Secure Shell: http://www.ssh.com - Free SSH client pour Windows et Linux TeraTerm Pro: http://www.zip.com.au/~roca/ttssh.html Free SSH client pour Windows Mindterm: http://www.mindbright.se/mindterm/ Client java pour Windows et Mac 113
Protocole Secure SHell (SSH) Références: http://www.urec.cnrs.fr/securite/outils/ssh/documenta tion-ssh.pdf http://www.uk.research.att.com/vnc/sshvnc.html http://www.tac.nyc.ny.us/kim/ssh/ http://www.ssh.com/products/ssh/winhelp32/ssh2win client.pdf http://www.vandyke.com/solutions/ssh_overview/ssh _overview.pdf Impact of authorization to response times in Open Network Environment ( http://www.tml.hut.fi/opinnot/tik- 110.501/1998/papers/9responcetimes/responcetimes.h tml) 114