18662ad3765aaaf3c268230f538bd371.ppt
- Количество слайдов: 71
Sécurité TCP/IP HTTPS , SSL , SSH , IPSEC
Problématique • Besoin de sécuriser les communications Web • Qualités de la sécurité d’une communication • Besoin de confidentialité : pas lu par un tiers • Besoin d’intégrité : pas de modification • Besoin d’authentification : identité d’un objet • Besoin de non répudiation : ne pas nier ses actions
HTTPS • HTTPS signifie Hypertext Transfer Protocol Scure qui est une encapsulation du protocole HTTP au travers du protocole SSL. • HTTP SSL HTTPS • Fonctionnement du protocole HTTP • Le protocole HTTP décrit de quelle façon un navigateur web interroge un serveur web et lui demander le contenu d’une URL.
Format des requêtes HTTP • Méthode URL Version http • Entête de requête • Corps de la requête Méthode • GET : Requête pour demander une ressource située à l'URL spécifiée. • HEAD : Cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle même. • POST : Envoi de données au programme situé à l'URL spécifiée (le corps de la requête peut être utilisé). • PUT : Cette méthode permet d'ajouter une ressource sur le serveur(envoyer des données au serveur). • DELETE : Suppression de la ressource située à l'URL spécifiée • URL : identifie la ressource(Uniform Ressource Location), c'estàdire l'adresse de la page sur le serveur. • Version : version du protocole HTTP (HTTP/1. 1) • Entête de requête: pour donner plus d’informations. Il est constitué des couples champ : valeur • Connection: Keep. Alive : ne pas couper la connection après la réponse • Accept: text/html, image/jpeg, image/png, text/*, image/*, */* : le client peut recevoir tous ces formats
Format des requêtes HTTP • Accept. Encoding: le client peut recevoir tous ces encodages – xgzip, – xdeflate, – gzip, deflate, identity • Accept. Language: le client peut recevoir ces langues – fr, en • Host: www. site. com • Corps de la requête: Pour terminer la requête, on envoie le corps de requête. Il peut contenir, par exemple, le contenu d'un formulaire HTML envoyé en POST.
Format des requêtes HTTP • • • Exemple: Soit la requête suivante : http : //hypothetical. ora. com/ Ce qui provoque l’envoie du message suivant par le navigateur : GET / HTTP/1. 0 Connection : Keep Alive User. Agent : Mozilla/3. 0 Gold (Win. NT; I) Host : hypothetical. ora. com Aspect : image/gif, image/xxbitmap, image/jpeg, text/html
Réponse HTTP Une réponse HTTP est un ensemble de lignes envoyé au navigateur par le serveur. Elle comprend: • une ligne de statut: • c'est une ligne précisant la version du protocole utilisé et l'état du traitement de la requête à l'aide d'un code et d'un texte explicatif. • La ligne comprend trois éléments devant être séparé par un espace: – La version du protocole utilisé – Le code de statut qui précise si la requête a abouti ou s'il y a une erreur – La signification du code • Exp: HTTP/1. 1 200 OK – HTTP / 1. 1 400 NOT FOUND • La version du protocole est HTTP/1. 1
Format des requêtes HTTP • Les Code_etat les plus utilisés sont : • 200 : La requête HTTP a été traitée avec succès. • 201 : La requête a été correctement traitée et a résulté en la création d'une nouvelle ressource. • 202 : La requête a été acceptée pour traitement, mais son traitement peut ne pas avoir abouti. • 204 : Le serveur HTTP a correctement traité la requête mais il n'y a pas d'information à envoyer en retour. • 301 : La ressource demandée possède une nouvelle adresse (URl). • 302 : La ressource demandée réside temporairement à une adresse (URI) différente. • 400 : Le navigateur web a effectué une requête GET conditionnelle et l'accès est autorisé, mais le document n'a pas été modifié. • 401 : La requête nécessite une identification de l'utilisateur. • 403 : Le serveur HTTP a compris la requête, mais refuse de la traiter.
Entête de la réponse il s'agit d'un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la réponse. • Exp: • Date: Tue, 22 Jun 2004 13: 18: 15 GMT • Server: Apache/1. 3. 26 (Unix) Debian GNU/Linux PHP/4. 1. 2 • mod_ssl/2. 8. 9 Open. SSL/0. 9. 6 g DAV/1. 0. 3 • infos sur le server • Last. Modified: – Tue, 22 Jun 2004 13: 15: 43 GMT • date de dernière modification de la ressource demandée
Le corps de la réponse: composé des lignes du document demandé • Exp: • •
contenant une image et une seule • •
Protocole HTTPS • Le but de HTTPS est de sécuriser les accès à un service web afin d’en préserver la confidentialité. • Principe: • Les HTTP n’ont aucune garantie de confidentialité, n’est assurée lors de ces accès, c’est simple pour un pirate d’intercepter les requêtes et les réponses. • Donc nous avons pas une certitude que nous consultant le site que nous croyons.
Protocole HTTPS • HTTP: • HTTPS Le protocole « http » n’est soumis à aucun chiffrement. C’est pourquoi le protocole « https » pour « http » ‘secured’ a été inventé. Quand vous surfez sur un site ou certaines pages de sites, notamment les pages de transaction des sites marchands ou sur les sites bancaires, vous observerez que la racine de la page commence par « https » .
Protocole HTTPS Afin de palier à ces inconvénients, HTTPS est mis en œuvre. • Il permet d’encapsuler et de crypter le trafic HTTP, donc il sera impossible qu’un pirate qui intercepte ces données de les décrypter. • Il permet de s’assurer que le serveur auquel on accède est bien celui que l’on croit. • Les échanges sont crypter et décrypter à l’aide d’un couple de clés informatiques qui sont propres à un serveur W 3 Clé privée: connue que par ce serveur Clé public: connue par le monde entier
• Le navigateur avec lequel on accède à ce serveur doit récupérer la clé public de ce serveur. • Celleci lui est transmise par le serveur W 3, encapsulée dans un certificat X 509 (c'est un fichier informatique). • Ce certificat contient alors la clé public validée(signée) par un organisme reconnu appelé autorité de certification CA. Fonctionnement: • phase 1: Choix de la méthode de chiffrement • phase 2: Présentation du certificat serveur • phase 3: Échange de la clef de session générée et application de la méthode de chiffrement choisie • phase 4: Échange sécurisé des données HTTP Le port utilisé pour ce type de connexion est 443.
Certificats X 509 lancer certmgr. msc
Avantages et inconvénients • Les principaux avantages que fournit HTTPS par rapport HTTP: • Cryptage des données • Intégralité des données • Confidentialité des données • Garantie d’avoir un hôte récepteur de confiance Le seul inconvénient réel est l’obligation de chiffrer l’intégralité des données de la page web. • Quand on dit que la quasitotalité des navigateurs supportent HTTPS ceci veut dire que ces navigateurs supportent SSL, signalé par un cadenas dans la barre d’adresse.
Le protocole SSL (Secure Socket Layer) Généralité: SSL = Secure Socket Layer • SSL est un système qui permet d’échanger les informations entre deux ordinateurs d’une façon sûre. TLSv 1 SSL assure trois choses: • Confidentialité: SSLv 2 SSLv 1 • Intégrité: SSLv 3 • Authentification:
Caractéristiques • • Indépendant du protocole de communication Suit le modèle client/serveur Connexion privée et sûre Extrémités authentifiées
Architecture • SSL dans le modèle OSI: il se situé entre la couche application et la couche de transport SSL fonctionne sous plusieurs protocoles TCP : HTTP, LDAP, POP 3, FTP………… SSL est composé de: • Générateurs de clés • Fonctions de hachage • Algorithmes de chiffrement • Protocoles de négociation et de gestion de session • Certificats
Pourquoi utiliser SSL plutôt qu'un autre système ? • SSL est standardisé. • Il existe une version libre de SSL: Open. SSL (http: //www. openssl. org) que vous pouvez utiliser dans vos programmes sans payer de royalties. • Open. SSL est opensource: tout le monde peut contrôler et vérifier le code source (Le secret réside dans les clés de chiffrement, pas dans l'algorithme lui-même). • SSL a été cryptanalysé: ce système a été plus analysé que tout ses concurrents. SSL a été passé en revue par de nombreux spécialistes en cryptographique. On peut donc le considérer comme sûr. • Il est répandu: on peut facilement créer des programmes qui dialogueront avec d'autres programmes utilisant SSL.
Historique • SSL 1. 0 1994 http Netscape • SSL 2. 0 Février 1995 Netscape The SSL Protocol Version 2. 0: utilisation d'un certificat serveur au format X. 509 v 3. • SSL 3. 0 Novembre 1996 Netscape The SSL Protocol Version 3. 0 • le client doit pouvoir d'une part exploiter sa clé privée et d'autre part fournir son certificat au format X. 509 v 3. • TLS 1. 0 Janvier 1999 • IETF RFC 2246 (Internet Engineering Task Force) • Extensions TLS Juin 2003 IETF RFC 3546 • Extensions TLS Avril 2006 IETF RFC 4366
Les ports et applications utilisant SSL et TLS • • • • Protocole : NSIIOPS Protocole : HTTPS Protocole : DDM-SSL Protocole : SMTPS Protocole : NNTPS Protocole : SSHELL Protocole : LDAPS Protocole : FTPS-DATA Protocole : FTPS Protocole : TELNETS Protocole : IMAPS Protocole : IRCS Protocole : POP 3 S Port TCP : 261 Port TCP : 443 Port TCP : 448 Port TCP : 465 Port TCP : 563 Port TCP : 614 Port TCP : 636 Port TCP : 989 Port TCP : 990 Port TCP : 992 Port TCP : 993 Port TCP : 994 Port TCP : 995 Description : IIOP Name Service sur SSL et TLS Description : HTTP sur SSL et TLS Description : DDM-SSL Description : SMTP sur SSL et TLS Description : NNTP sur SSL et TLS Description : SSL Shell Description : LDAP sur SSL et TLS Description : FTP données sur SSL et TLS Description : FTP controle sur SSL et TLS Description : Telnet sur SSL et TLS Description : IMAP 4 sur SSL et TLS Description : IRC sur SSL et TLS Description : POP 3 sur SSL et TLS
Implémentations de SSL et TLS • Implémentations dans les navigateurs web • La majeure partie des implémentations de SSL et TLS se trouve dans les navigateurs et serveurs web. Le serveur Apache, notamment, peut exploiter SSL grâce une implémentation basée sur Open. SSL. • Open. SSL • Implémenté en C, Open. SSL est une boîte à outils de chiffrement comportant deux bibliothèques (une de cryptographie générale et une implémentant le protocole SSL), ainsi qu'une commande en ligne. Open. SSL supporte SSL 2. 0, SSL 3. 0 et TLS 1. 0. Open. SSL est distribué sous une licence de type Apache. • Gnu. TLS • Le projet Gnu. TLS propose une implémentation du protocole TLS conforme aux spécifications de l'IETF. Gnu. TLS supporte TLS 1. 1, TLS 1. 0, SSL 3. 0 et les extensions TLS. Il permet l'authentification via les certificats X 509 et PGP. A la différence d'Open. SSL, Gnu. TLS est compatible avec les licences GPL.
Fonctionnement SSL • Le protocole SSL et TLS est subdivisé en quatre sous protocoles : • Handshake Protocol • Change Cipher Spec Protocol • Alarm Protocol • Record Protocol -
SSL Handshake protocol Client envoi e: Client. Hello Highest SSL version supported 32 -byte random number Session. ID List of supported encryption methods List of supported compression methods Serveur envoie Server. Hello SSL version that will be used 32 -byte random number Session. ID Encryption method that will be used Compression method that will be used Authentification du serveur, envoie du Certificat public key certificate Issuing authority’s root certificate Lorsque le client reçoit le cetificat , il décide s’il est un serveur de confiance ou non.
Change. Cipher. Spec Protocol • un protocol spécial avec un seul message • Change. Cipher. Spec signale au Record toute modification des paramètres de sécurité, • Constitué d’un message (1 octet) • À l’envoie du méssage Change. Cipher. Spec message, tts les méssages suivants seront cryptés • Change. Cipher. Spec est tjrs suivi par Finished message
La communication SSL ("record") SSL Record protocol: Une fois négociés, ils chiffrent toutes les informations échangées et effectuent divers contrôles. Avec SSL, l’expéditeur de données: – découpe les données en paquets – compresse les données – signe cryptographiquement les données – chiffre les données – les envoie
Celui qui réceptionne les données: – déchiffre les données – vérifie la signature des données – décompresse les données – réassemble les paquets de données
Le protocole Alert • Le protocole Alert peut être invoqué : n par l’application, par exemple pour signaler la fin d’une connexion n par le protocole Handshake suite à un problème survenu au cours de son déroulement • par la couche Record directement, par exemple si l'intégrité d'un message est mise en doute
Comment SSL fait il pour protéger les communications ? Il utilise: – un système de …………. pour générer la clé de session. – un ……………. utilisant les clés de session pour chiffrer les données. – un système de ………………pour s'assurer que les messages ne sont pas corrompus. SSL doit assurer la confidentialité , intégrité et authentification: quels sont les algos utilisés dans chaque fonction?
Le rôle des certificats: • Lors d'une négociation SSL, il faut s'assurer de l'identité de la personne avec qui on communique. Comment être sûr que le serveur auquel vous parlez est bien • celui qu'il prétend être ? • C'est là qu'interviennent les certificats. Au moment de vous connecter • sur un serveur web sécurisé, ce dernier vous enverra un certificat contenant sa clé public, le nom de l'entreprise, son adresse, etc. C'est une sorte de pièce d'identité.
Comment vérifier l'authenticité de cette pièce d'identité ? • Ce sont les PKI (Public Key Infrastructure), des sociétés externes (auxquelles vous faites implicitement confiance), qui vont vérifier l'authenticité du certificat. (La liste de ces PKI est incluse dans votre navigateur. Il y a généralement Veri. Sign, Thawte, etc. ) • outils option avancé afficher les certificats • Ces PKI signent cryptographiquement les certificats des entreprises (et ils se font payer pour ça).
Les attaques et faiblesses de SSL: • SSL est théoriquement vulnérable aux attaques par force brute en cas d'utilisation de clés 40 bits, il est donc conseillé d'utiliser des clés de 128 bits. • SSL est très vulnérable aux attaques par le milieu (man in the middle): • l'attaquant intercepte (physiquement) la requête du client et se fait passer pour le serveur auprès de lui, tout en se faisant passer pour un client auprès du serveur légitime. Il reçoit donc la totalité du flux supposé protégé. • SSL version 2 est faible dans le sens où il n'impose pas l'authentification client (ce serait d'ailleurs difficilement gérable en pratique).
Conclusion • – Le protocole SSL est actuellement le seul protocole de sécurisation déployé et utilisé à grande échelle, son grand avantage étant sa transparence par rapport au protocole TCP. • Il garantit l'authentification, la confidentialité et l'intégrité des données. • – Avec son architecture modulaire, il ne se limite pas à des applications traditionnelles, puisque il intègre les réseaux sans fil comme le WAP (Wirless Transport Layer)
protocole SSH (Secure Shell) Accés Distant sécurisé • SSH est un protocole pour sécuriser l’accés distant à une machine à travers un réseau. • SSH est le remplaçant de : telnet, rsh, rlogin et peut remplacer ftp. • Utilise le cryptage. • – Il permet d’exécuter des commandes à distance en toute sécurité • -La transmission est compressée
Origine problèmes de telnet : • Les données envoyées sont claires • Un tiers peut consulter le traffic Utilisation de la cryptographie dans les flux applicatifs ! – SSH (Secure SHell)
Historique • Creé par Tatu Ylönen en 1995, un étudiant de Helsinki University of Technology • Free SSH 1 version • développé par SSH Communications Security Corp. , Finland • SSH 2 version • Open SSH • Deux distributions sont disponibles: – Version commerciale – freeware (www. openssh. com)
Avantages • chiffrement de la session et mot de passe unique (OTP) • le client SSH est disponible sur un très grand nombre de plateformes • la sécurité est assurée depuis le client jusqu'au serveur (end-to-end security)
Fonctions • Shell de commande sécurisé • Forwarding de port • Transfert sécurisé de fichier
1. Secure Command Shell • • • Permet d’éditer les fichiers. Consulter le contenu des répertoires. Créer un compte utilisateur Changer la permission n’importe quelle opération de commande prompt peut etre effectuée à distance en toute sécurité
2. SSH: port forwarding • Le Port Forwarding (ou transfert de port) permet d'utiliser une liaison SSH pour transporter des protocoles non sécurisés (POP, NNTP, . . . ). • On peut alors construire un VPN basé sur des liaisons SSH. • Permet de sécuriser les données des applications TCP/IP
2. SSH: port forwarding
2. SSH: port forwarding
3. Transfert de fichier sécurisé • Secure File Transfer Protocol (SFTP) est un sous système de protocole SSH. • SFTP crypte le username/password et les données à transférer. • Utilise le meme port de SSH du serveur , on a pas besoin d’ouvrir d’autre port sur le firewall ou le routeur • Une utilisation ideale de SFTP est de renforcer les serveurs hors firewall d'être accessible par un utilisateur distant •
Versions SSH • Le protocole SSH existe en deux versions majeures : • – Version 1 Shell ou ligne de commande. Cette version souffrait de problèmes de sécurité dans la vérification de l'intégrité des données. • – Version 2: plus sûr cryptographiquement, – Shell (console) sur un ordinateur distant. • Quels sont les algos utilisés dans les deux versions?
Architecture: SSH utilise une architecture client serveur pour assurer • l’authentification, • le chiffrement et • l’intégrité des données transmises dans un réseau.
couche transport SSH (SSHTRANS) • • – L’authentification du serveur – La confidentialité et l’intégralité des données – Que le client communique avec le bon serveur – Le chiffrement symétrique de la communication entre client/serveur
La couche d’authentification SSH (SSHAUTH): – De certifié l’identité du client auprès du serveur – fournit un tunnel unique authentifié pour la connexion SSH
La couche de connexion SSH (SSHCONN): - Ses services comprennent tout ce qu’il faut pour gérer plusieurs sessions interactives ou non : – multiplexage de plusieurs flux (ou canaux), gestion des transferts X, de port et d’agent, etc.
Fonctionnement
Fonctionnement • • • 1. le client et le serveur échangent en clair leurs numéros de version du protocole SSH. 2. Le serveur commence par envoyer au client la liste des méthodes de cryptage supportées, la liste des méthodes d'authentification supportées, des indicateurs d'extensions de protocole (par exemple, la méthode de compression, etc. ) et un cookie sur 64 bit que le client devra renvoyer. Ce cookie a comme but de protéger le serveur contre une attaque par déni de service. 3. Le client envoie à son tour la liste des méthodes de cryptage supportées, liste des méthodes d'authentification supportées et une copie du cookie du serveur. 4. Le client et le serveur choisissent les meilleurs algorithmes supportés par les deux. 5. Le client et le serveur calculent séparément un identifiant de session à partir des valeurs Diffie. Hellman échangées entre les deux entités.
Fonctionnement • 6. Le serveur envoie sa clé publique au client et signe avec sa clé privée les valeurs échangées précédemment. • 7. Le client vérifie la signature du serveur et passe ensuite en mode crypté. • 8. Le serveur répond au client par un message de confirmation crypté. • 9. Les deux parties, le client et le serveur, sont maintenant en mode crypté avec utilisation de l'algorithme et de la clé sélectionnés. • 10. Le client envoie maintenant la demande d’un service (par exp, sshuserauth ou sshconnection). • 11. Le serveur précise les méthodes d’authentification qu’il peut accepter (publickey, password, etc. ). • 12. Finalement, le client envoie sa méthode d’authentification que le serveur accepte ou rejette. Dans la plupart des implémentations SSH et suivant la politique du serveur, le client a le droit à trois essais pour s’authentifier.
Les services de sécurité • • Authentication de l’utilisateur Authentication de d'hôte Cryptage de données Integrité de données
Integrité de données • Chaque hôte participant à la communication doit effectuer un comptage des paquets de manière secrète. Ce comptage permet ensuite de calculer le code d’authentification de chaque message (ou Message Authentication Code : MAC) en utilisant l’algorithme MAC négocier en début de communication.
Cryptage de données • Le cryptage se fait au moyen d’un algorithme de cryptage négocié lors de l’échange des clefs entre le client et le serveur. Lorsque le cryptage est effectif, toutes les données d’un paquet sont cryptées sauf le code d’authentification du message. Le cryptage se fait toujours après la compression
Implémentation et utilisation avancée de SSH dans un environnement Windows • Serveur SSH: – Copssh: http: //www. itefix. no • Client ssh : Le plus connu est sans doute putty
Les avantages: • SSH constitue une approche puissante et pratique pour protéger les communications sur un réseau d’ordinateurs. • A travers son mécanisme d’authentification, SSH permet d’effectuer sous un tunnel sécurisé des connexions à distance, des transferts de fichiers, le transfert de ports TCP/IP et d’autres fonctionnalités importantes. Ainsi, il présente comme avantages : • La création d’un VPN au niveau d’échange • La notion du Transfert (tunneling)
Les inconvénients • SSH est vulnérable aux attaques par déni de service, héritant ainsi les faiblesses de TCP/IP sur lequel il repose. En outre et suivant l’environnement, SSH est sensible à certaines méthodes d’attaques, comme l’analyse et le détournement de trafic.
Le protocole IPSEC • 1. Introduction • IPsec est une norme qui définit une extension de sécurité pour le protocole internet (IP) : – Ecoute de paquet – Usurpation d’adresse • permettre la sécurisation des réseaux basés sur ce protocole. – – Confidentialité : Authentification: Intégrité : Protection contre le rejeu • La sécurisation se faisant au niveau d’IP, • IPsec peut être mis en œuvre sur tous les équipements du réseau et fournir un moyen de protection unique pour tous les échanges de données. • IPsec =IP Security Protocol
Historique • Norme développée à l’IETF depuis 1992 • Première version en 1995 • Version améliorée, avec gestion dynamique des paramètres de sécurité, en novembre 1998 • Optionnel dans IP 4 • Obligatoire dans IPV 6
2. La sécurisation des données échangées • Où intervient IPsec ? • IPsec s’insère, dans la pile de protocoles TCP/IP, au niveau d’IP. • IPsec peut être mis en œuvre sur tous les équipements utilisant le réseau et assurer une protection soit de bout en bout, entre les tiers communicants, soit lien par lien, sur des segments de réseau.
Quels services de sécurité sont fournis ? • IPsec vise à prévenir les diverses attaques rendues possibles par le protocole IP. • IPsec peut fournir des services de sécurité suivants : • Confidentialité des données et protection partielle contre l’analyse du trafic. • Authenticité des données et contrôle d’accès continu. • Protection contre le rejeu
Avantage : • Possibilité d’utilisation uniquement sur des communications spécifiques (sans perturber les autres communications). • IPSec est au-dessous de la couche de transport (TCP, UDP); il est donc transparent aux applications (possibilité d’accroître la sécurité sans modifier les applications de plus haut niveau). • Une fois mis en place, IPSec est transparent aux utilisateurs.
Comment sont fournis ces services ? • Les services de sécurité sont fournis au moyen de deux extensions du protocole IP : • AH (Authentication Header) est conçu pour assurer l’authenticité des datagrammes IP sans chiffrement des données (sans confidentialité). – sert à valider l’intégrité des messages et à prouver l’identité de l’expéditeur, ainsi que d’éviter les rejeux. • ESP(Encapsulating Security Payload) : a pour rôle premier d’assurer la confidentialité mais peut aussi assurer l’authenticité des données.
3. Les deux modes de fonctionnement IPSec • Le mode transport : protège uniquement le contenu du paquet IP sans toucher à l’entête ; ce mode n’est utilisable que sur les équipements terminaux (postes clients, serveurs). AH, ESP ou les deux. • Le mode tunnel : permet la création de tunnels par “encapsulation” de chaque paquet IP dans un nouveau paquet. Ainsi, la protection porte sur tous les champs des paquets IP arrivant à l’entrée d’un tunnel, y compris sur les champs des entêtes (adresses source et destination). • AH ou ESP.
AH: Tunnel and Transport Mode • Original • Transport Mode – Cover most of the original packet • Tunnel Mode – Cover entire original packet
ESP: Tunnel and Transport Mode • Transport Mode – Good for host to host traffic • Tunnel Mode – Good for VPNs, gateway to gateway security


