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



Documents pareils
1 Introduction Propos du document Introduction De HTTP 1.0 à HTTP

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

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

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

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

Serveurs de noms Protocoles HTTP et FTP

(structure des entêtes)

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

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

Protocoles Applicatifs

Introduction à HTTP. Chapitre HTTP 0.9

INF8007 Langages de script

Internet. Web Sécurité Optimisation

Zoom sur Newtest LDAP intégration

«Cachez-moi cette page!»

Protection des protocoles

Application Web et J2EE

Dans l'épisode précédent

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

SERVEUR HTTP Administration d apache

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Réseaux. 1 Généralités. E. Jeandel

WebSSO, synchronisation et contrôle des accès via LDAP

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

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

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

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

Sécuriser les applications web de l entreprise

Développement des Systèmes d Information

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Proxies,, Caches & CDNs

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Introduction à l'internet et ces Protocoles

Tests de montée en charge avec Tsung

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

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

ADF Reverse Proxy. Thierry DOSTES

Index. Symboles. Nombres

Développement Web. Les protocoles

Hébergement de site web Damien Nouvel

Sécurité des applications Web

La VOIP :Les protocoles H.323 et SIP

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

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

Les services usuels de l Internet

Module BD et sites WEB

Mise en œuvre des serveurs d application

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

Web des services : REST

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

Content Switch ou routage de niveau HTTP

1. Formation F5 - Local Traffic Manager Configuring (LTM)

Réseaux et protocoles Damien Nouvel

Applications TCP/IP. Protocoles applicatifs Répartition du trafic sur Internet. 3. La couche Application

Linux sécurité des réseaux

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

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

Chapitre : Les Protocoles

SSH, le shell sécurisé

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

18 TCP Les protocoles de domaines d applications

Architectures en couches pour applications web Rappel : Architecture en couches

2011 Hakim Benameurlaine 1

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

Le Client/Serveur avec Enterprise Miner version 4

La couche Applicatiopn

Attaques applicatives

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

TRIXBOX. Tutorial et fonctions avancées

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

Sécurisation d une application ASP.NET

Manuel d'installation

Administration Linux - Proxy

L identité numérique. Risques, protection

La mémorisation des mots de passe dans les navigateurs web modernes

1 Identités pour l enregistrement IMS

SIEMENS LX / Cloud OpenIP

Mise en place d un serveur Proxy sous Ubuntu / Debian

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Serveur Subversion Debian GNU/Linux

C a h p a i p tre e 4 Archi h t i ectur u e e t S i S g i n g a n li l s i atio i n o n SI S P

Les serveurs. UE 103b. Guillaume Burel.

Réalisation d un portail captif d accès authentifié à Internet

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Voix sur IP. Généralités. Paramètres. IPv4 H323 / SIP. Matériel constructeur. Asterisk

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Le filtrage de niveau IP

Bases de données et Interfaçage Web


Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Introduction. Adresses

Couche application 1

Introduction à Sign&go Guide d architecture

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Bases de Données et Internet

Applications et Services WEB: Architecture REST

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Programmation Web. Introduction

Transcription:

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

HTTP Introduction et architecture Hypertext Transfert Protocol URI (Uniform Resource Identifier) = URL (Uniform Resource Locator ) + URN (Uniform Resource Name ) URL Adresse Postale (adresse) URN No INSEE (identifiant) Exemple d URL: http://guest:secret@www.ietf.o rg:80/html.charters/wwdir.html?ses=1#application_ar ea protocol://username:passwo rd@host:port/path/file?query#fr agment HTTP HTTP TCP TCP Modèle en couche Client/Serveur 2

HTTP 1.0 et TCP HTTP 1.0 : pour chaque ressource, une ouverture de connexion, une requête, une réponse, une libération de connexion, Pb : consommation de la bande passante Avantage : limite le «travail» des serveurs Client TCP SYN TCP SYN, ACK TCP ACK HTTP Request HTTP Response TCP FIN TCP FIN, ACK TCP FIN TCP FIN, ACK Serveur HTTP 1.1 et TCP TCP SYN TCP SYN, ACK TCP ACK HTTP Request 1 HTTP Request 2 HTTP Response 1 Client HTTP Response 2 Serveur TCP FIN TCP FIN, ACK TCP FIN TCP FIN, ACK Deux solutions : La persistance de la connexion Le Pipelining => Meilleure utilisation de la bande passante Plus de travail pour les serveurs 3

Structure d une requête et d une réponse Request-Line Message Headers (optional) General Headers Request Headers Entity Headers Blank Line Message Body (optional) Status-Line Message Headers (optional) General Headers Request Headers Entity Headers Blank Line Message Body (optional) Requête HTTP Réponse HTTP Opérations utilisateur GET : Récupérer une ressource POST : Envoi d information à un objet (URI : script, programme) PUT : Envoi de données (URI : path + file) DELETE : Suppression d objet 4

Autres opérations OPTIONS : découverte des capacités du serveur (URI ou *) HEAD : identique à GET mais sans envoi de données TRACE : traçage du chemin réseau (réexpédition de ce qui a été reçu)? => Coopération de serveurs Coopération de serveurs Virtual Host, Redirection Proxy, Gateways et Tunnels 5

Virtual Host Problème un provider héberge sur la même machine plusieurs sites Web => comment trouver la ressource Virtual Host Solution : utiliser le champ d entête Host GET /news.html Host: www.compagny1.com Internet www.compagny1.com Web Browser IP Adress Query www.compagny1.com Physical Web Server www.compagny2.com Virtual Host DNS Server 6

Redirection Problème inverse des hôtes virtuels : un site web est présent sur plusieurs serveurs => comment trouver la ressource GET 1 301 Moved 2 Internet Web Browser Web Server GET 3 200 OK 4 Web Server Proxy Cache (Cache Server) + Sécurité (Firewall) 7

Cache Server But : optimiser les transferts Solution : se souvenir des objets précédemment accédés et limiter les accès au serveur d origine. Gateway Les serveurs Web peuvent utiliser d autres protocoles d application, le serveur permettant de passer d HTTP vers un autre protocole est une passerelle d application HTTP Request HTTP Response SQL Query SQL Result Internet Web Browser GateWay LAN DB Server 8

Tunnel Les tunnels permettent aux navigateurs d accéder de manière transparente (couches inférieures) à un serveur Un protocole sans mémoire HTTP est un protocole sans mémoire, comment maintenir un contexte de session (associer une requête à une autre) => cookies HTTP Request HTTP Response + Cookie HTTP Request + Cookie HTTP Response 9

HTTP Messages Méthodes/Status Code CONNECT DELETE GET HEAD OPTIONS POST PUT TRACE 100-199 : Le serveur a bien reçu la requête mais le résultat final n est pas disponible. 200-299 : Succès 300-399 : Redirection 400-499 : Erreur Client 500-599 : Erreur Serveur 10

Champs d entête Les méthodes des requêtes et les codes de réponses peuvent être complétés par des lignes entêtes. Requête > GET / HTTP/1.0 > Accept: */* > Accept-Language: fr > Proxy-Connection: Keep-Alive > If-Modified-Since: Tue, 13 Apr 2004 17:45:01 GMT; length=40838 > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.4322) > Host: www.free.fr > Pragma: no-cache > Réponse HTTP/1.1 304 Not Modified Date: Tue, 13 Apr 2004 17:45:56 GMT Server: Apache/1.3.26 (Unix) Debian GNU/Linux Connection: close ETag: "6929-9f86-407c271d" Champs d entête Les champs d entête vont avoir une application : Générale Pour une requête Pour une réponse Pour le corps du message 11

12 Header Fields Content-Type Content-Range Content-MD5 Accept-Encoding Content-Location Content-Length Content-Language Content-Encoding Connexion Cache-Control Authorization Authentification-Info Allow Age Accept-Ranges Accept-Language Accept-Charset Accept Entity Response Request General Header Header Fields Pragma Meter Max-Forwards Date Location Last-Modified If-Unmodified-Since If-Range If-None-Match If-Modified-Since If-Match Host From Expires Expect ETag Cookie2 Cookie Entity Response Request General Header

Header Header Fields General Request Response Entity Proxy-Authenticate Proxy-Authorization Range Referer Retry-After Server Set-Cookie2 TE Trailer Transfer-Encoding Upgrade User-Agent Vary Warning WWW-Authenticate Relecture de notre requête > GET / HTTP/1.0 > Accept: */* > Accept-Language: fr > Proxy-Connection: Keep-Alive > If-Modified-Since: Tue, 13 Apr 2004 17:45:01 GMT; length=40838 > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.4322) > Host: www.free.fr > Pragma: no-cache > Accept : Type de contenu accepté par le Browser (text/html), ici tous. Accept-Language : Langage attendu par le Browser (en-us), ici le français. Proxy-Connection : pas dans HTTP/1.1 If-Modified-Since : Demande au serveur de répondre à la requête que si la ressource a été modifiée depuis la date passée en paramètre. User-Agent : Informations sur le client. Host : Nom du serveur «Pragma : no-cache» : ne pas utiliser les caches mais aller sur le serveur d origine. 13

Relecture de la réponse HTTP/1.1 304 Not Modified Date: Tue, 13 Apr 2004 17:45:56 GMT Server: Apache/1.3.26 (Unix) Debian GNU/Linux Connection: close ETag: "6929-9f86-407c271d" Date : date d envoi de la réponse Server : information sur le serveur. Connection : le serveur s apprête à rompre la connexion. ETag : identifiant de ressource Nouvelle requête Nouvelle demande sans utilisation du cache local > GET / HTTP/1.0 > Accept: */* > Accept-Language: fr > Pragma: no-cache > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.43 22) > Host: www.free.fr > Proxy-Connection: Keep-Alive > HTTP/1.1 200 OK Date: Wed, 14 Apr 2004 14:11:40 GMT Server: Apache/1.3.26 (Unix) Debian GNU/Linux Last-Modified: Wed, 14 Apr 2004 14:10:01 GMT ETag: "6a66-9eb4-407d4639" Accept-Ranges: bytes Content-Length: 40628 Connection: close Content-Type: text/html Last-Modified : date à laquelle, le serveur d origine pense que la ressource a été modifiée la dernière fois. Accept-Ranges : le serveur permet d accéder non pas seulement à la ressource entière mais aussi à ses parties. Content-Length : Taille du corps du message. 14

Jouons avec Sioux Le programme Flicage.java se comporte comme un proxy http et affiche sur la sortie Standard les entêtes HTTP. Pour l utiliser, il suffit de configurer le Browser pour qu il utilise ce client spécifique. Jouons avec Sioux Formulaire GET/POST <html> <head> <title>test de formulaire</title> </head> <body> <h1>test de formulaire</h1> <table> <form action="200_ok_get_post.cgi" > <tr><td><input type="text" name="a"></td> <tr><td><input type="passwd" name="b"></td> <tr><td><input type="text" name="c"></td> <tr><td><select multiple name="d"> <option value="a">1 <option value="b">2 <option value="c">3 <option value="d">4 </select></td> <tr><td><input type="submit" value="get"></td> </form> <form method="post" action="200_ok_get_post.cgi" > <tr><td><input type="text" name="a"></td> <tr><td><input type="password" name="b"></td> <tr><td><input type="text"></td> <tr><td><select multiple name="c"> <option value="a">1 <option value="b">2 <option value="c">3 <option value="d">4 </select></td> <tr><td><input type="submit" value="post"></td> </form> </table> </body> </html> 15

Jouons avec Sioux Utilisation de get > GET /~remm/cm_http/200_ok_get_post.cgi?a=text1&b=pass&c=text2&d=a&d=c HTTP/1.0 > Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-sho ckwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, applicati on/msword, */* > Referer: http://sioux.src/~remm/cm_http/200_ok_get_post.html > Accept-Language: fr > Proxy-Connection: Keep-Alive > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.43 22) > Host: sioux.src > HTTP/1.1 200 OK Date: Wed, 14 Apr 2004 18:48:18 GMT Server: Apache/2.0.47 (Unix) DAV/2 PHP/4.3.4RC1 mod_jk/1.2.4 Connection: close Content-Type: text/html; charset=iso-8859-1 Jouons avec Sioux Utilisation de Post > POST /~remm/cm_http/200_ok_get_post.cgi HTTP/1.0 > Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-sho ckwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, applicati on/msword, */* > Referer: http://sioux.src/~remm/cm_http/200_ok_get_post.html > Accept-Language: fr > Content-Type: application/x-www-form-urlencoded > Proxy-Connection: Keep-Alive > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.43 22) > Host: sioux.src > Content-Length: 22 > Pragma: no-cache > a=text1&b=pass&c=b&c=d HTTP/1.1 200 OK Date: Wed, 14 Apr 2004 18:58:16 GMT Server: Apache/2.0.47 (Unix) DAV/2 PHP/4.3.4RC1 mod_jk/1.2.4 Connection: close Content-Type: text/html; charset=iso-8859-1 16

Jouons avec Sioux Cookie Ecriture > GET /~remm/cm_http/ecriture_cookies.cgi HTTP/1.0 > Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-sho ckwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, applicati on/msword, */* > Referer: http://sioux.src/~remm/cm_http/ > Accept-Language: fr > Proxy-Connection: Keep-Alive > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.43 22) > Host: sioux.src > HTTP/1.1 200 OK Date: Sun, 18 Apr 2004 21:08:05 GMT Server: Apache/2.0.47 (Unix) DAV/2 PHP/4.3.4RC1 mod_jk/1.2.4 Set-Cookie: essai=djeff; path=/; expires=sun, 18-Apr-2004 21:10:05 GMT Connection: close Content-Type: text/html; charset=iso-8859-1 Jouons avec Sioux Cookie Lecture > GET /~remm/cm_http/lecture_cookies.cgi HTTP/1.0 > Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-sho ckwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, applicati on/msword, */* > Referer: http://sioux.src/~remm/cm_http/ecriture_cookies.cgi > Accept-Language: fr > Proxy-Connection: Keep-Alive > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR 1.1.43 22) > Host: sioux.src > Cookie: essai=djeff > HTTP/1.1 200 OK Date: Sun, 18 Apr 2004 21:10:14 GMT Server: Apache/2.0.47 (Unix) DAV/2 PHP/4.3.4RC1 mod_jk/1.2.4 Connection: close Content-Type: text/html; charset=iso-8859-1 17

HTTP Authentification Authentification Basée sur user/pass Basic Authentification Original Digest Authentification Improved Authentication Dans la pratique utilisation de SHTTP luimême supplanté par SSL ou TLS 18

Basic Authentification 1. Demande d une URI 2. Réponse du serveur avec le champ d entête WWW-Authenticate: Basic 3. Réponse avec le champ d entête Autorisation : user:pass encodé en base 64 4. Envoi de la ressource => User et pass passent en clair Original Digest Authentication (1.0) Idem APOP le serveur choisi une donnée (WWW- Authenticate: Digest realm=, nonce=«data») 1. Le client calcul le condensé de data et du password 2. Le client envoi sa réponse au serveur 3. Le serveur réalise le même calcul 4. Le serveur compare son condensé avec celui du client 19

Replay Attack Improved Authentication (1.1) Protection contre les Replay Attack (utilisation d un incrément nc qui fait parti du condensé) Authentification Mutuelle (demande du client au serveur de prouver qu il connaît le mot de passe. + d autre services (Integrity Protection, Reapeat Client Security) 20

Conclusion Troisième version 0.9, 1.0, 1.1 Un protocole polyvalent mais complexe Méthodes Format des données Travail des serveurs 21