couche application - cours 8...la plupart des protocoles sont construits au dessus de tcp qui...

Post on 18-Sep-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Couche ApplicationCours 8

E. Godard

Aix-Marseille Universite

M1 Informatique Reseaux 2019/20

Introduction

HTTP

SMTP

DNS

E. Godard Applications 2 / 59

Introduction

Introduction

HTTP

SMTP

DNS

E. Godard Applications 4 / 59

Introduction

”Vous etes Ici”

TCP/IPOSI

Application

Presentation

Session

Transport

Network

Data link

Physical

7

6

5

4

3

2

1

Application

Transport

Internet

Host-to-network

Not presentin the model

E. Godard Applications 5 / 59

Introduction

Couche Application

Couche finale pour la communication de l’information => detres nombreux protocoles :

HTTP, FTP,

SMTP, POP, IMAP,

DNS

Jabber, MSN, ICQ, H323,

SMB, NFS, ...

...

intergiciels

RPC, RMI, CORBA, DCOM, ...

La plupart des protocoles sont construits au dessus de TCP quiapporte la fiabilite necessaire.

E. Godard Applications 6 / 59

Introduction

Protocoles Etudies

HTTP : le protocole du webTCP port 80

SMTP : envoi de courrielTCP port 25

DNS : protocole et base de donnees distribuee pour laresolution de nomUDP/TCP port 53

E. Godard Applications 7 / 59

HTTP

Introduction

HTTP

SMTP

DNS

E. Godard Applications 8 / 59

HTTP

Protocole HTTP

HyperText Transfer Protocol

Le protocole de la Toile (souvent confondue avec internet)

Ne au CERN a la fin des annees 80

Protocole de requete simple (Sans etat)

Protocole de reponse a un formulaire

Port classique : port 80

RFCs 1945 et 2048

Versions

I HTTP 1.0 : tres simpleI HTTP 1.1 : ameliore (connexion persistante)I HTTP-NG : une refonte completeI SPDY, WebSocket, ...

E. Godard Applications 9 / 59

HTTP

URLs et URIs

URI : “Uniform Ressource Identifier”, possede neuf champs.Exemple :

I mailto:egoddard@cmi.univ-mrs.frI urn:isbn\:096139210xI ftp://egoddard@mimosa.univ-mrs.fr/

URL : “Uniform Ressource Locator”, pour le World WideWeb, de la formeprotocole://serveur.domaine[:port]/chemin

peut etre relatif (dependant de l’URL courante).

Remarque :http://www.cmi/~egodard/ens/reseaux/index.html#tp

est une URI pas une URL...

E. Godard Applications 10 / 59

HTTP

URLs et Espace de Noms

Ports :

I http : 80, en clairI https : 443, protege via SSL/TLS

Nom de domaine (DNS)

Chemin local (serveur)

E. Godard Applications 11 / 59

HTTP

La Toile

Disk Disk Web Server

Web Server

Browser program

Hyperlink to xyz.com

Hyperlink to abcd.com

TCP connection

The Internet

ClientServer

abcd.comServer

xyz.comCurrent page displayed by browser

E. Godard Applications 12 / 59

HTTP

HTTP 1.0

Protocole en ligne de caracteres (diagnostic plus facile)

Requete :

GET /~ egodard/ens/reseaux/index.html HTTP /1.0

Accept: text/html

Accept: image/png

User -Agent: telnet

E. Godard Applications 13 / 59

HTTP

Reponse

HTTP /1.0 200 OK

Date: Sun , 13 Nov 2005 13:20:04 GMT

Server: Apache /1.3.33 (Unix) mod_ssl /2.8.22 OpenSSL /0.9.7e PHP /4.4.0

Last -Modified: Thu , 10 Nov 2005 14:47:14 GMT

ETag: "b16038 -1e4c -43735 d72"

Accept -Ranges: bytes

Content -Length: 7756

Connection: close

Content -Type: text/html

<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01// EN">

<html >

<head >

<META http -equiv="Content -Type" content="text/html; charset=iso -8859 -15">

<title >E. Godard -- Reseaux </title >

<style type="text/css">

...

E. Godard Applications 14 / 59

HTTP

Element A l’Interieur d’Une Page

Un element interne (comme une image) est redemande par lenavigateur apres analyse du code html.Difference

protocole : HTTP

encodage : HTML

E. Godard Applications 15 / 59

HTTP

Types MIME

E. Godard Applications 16 / 59

HTTP

Requetes

GET : informations et donnees de l’URI

HEAD : seulement les informations d’entetes

POST : envoi de donnees de formulaire

PUT : enregistrement (”upload”) de donnees

DELETE : effacement

OPTIONS : demande des options de communication

...

E. Godard Applications 17 / 59

HTTP

Methode POST

POST /~ egodard/ens/reseaux/index.html HTTP /1.0

Accept:text/html

Accept:image/png

User -Agent: firefox/linux ppc

champs1=valeur1&

champs2=valeur2

E. Godard Applications 18 / 59

HTTP

Statuts de Retour

100-199 : informationnel

200 : OK

201 : cree200-299 : succes

301 : redirection

304 : non modifie300-399 : redirections

400 : mauvaise requete

403 : interdit

404 : non trouve400-499 : requete incorrecte

500 : erreur interne du serveur

503 : service indisponible pour l’instant500-599 : erreurs cote serveur

E. Godard Applications 19 / 59

HTTP

Gestion de Session

Le protocole est sans memoire : comment associer une session aplusieurs requetes consecutives ?Utilisation de cookie

Set-Cookie:nom=valeurunique cote serveur

Cookie:nom=valeurunique dans les entetes des requetessuivantes

Pratique pour les clients (achats en ligne, forums, ...)

Tres pratique pour la veille marketing=> probleme vis-a-vis vie privee

I desactivation / controle des cookiesI code de bonne conduiteI ... ?

E. Godard Applications 20 / 59

HTTP

Gestion de Session

Le protocole est sans memoire : comment associer une session aplusieurs requetes consecutives ?Utilisation de cookie

Set-Cookie:nom=valeurunique cote serveur

Cookie:nom=valeurunique dans les entetes des requetessuivantes

Pratique pour les clients (achats en ligne, forums, ...)

Tres pratique pour la veille marketing=> probleme vis-a-vis vie privee

I desactivation / controle des cookiesI code de bonne conduiteI ... ?

E. Godard Applications 20 / 59

HTTP

Mandataire HTTP

On utilise des mandataires pour

partager un cache (vers des requetes frequentes)

authentifier les connexions sortantes

controle de contenu

reecrire les pages a la volee (publicite, requete espionne,cookies ...)

Des informations sont contenus dans les entetes a destinationdes mandataires :

Last-Modified : date (pour comparer a la derniere copie)

Expires : date de peremption

Pragma : contenu volatil ou non

Via : mandataires intermediaires

La requete devient :GET http://hote/chemin

E. Godard Applications 21 / 59

HTTP

Mandataire HTTP

On utilise des mandataires pour

partager un cache (vers des requetes frequentes)

authentifier les connexions sortantes

controle de contenu

reecrire les pages a la volee (publicite, requete espionne,cookies ...)

Des informations sont contenus dans les entetes a destinationdes mandataires :

Last-Modified : date (pour comparer a la derniere copie)

Expires : date de peremption

Pragma : contenu volatil ou non

Via : mandataires intermediaires

La requete devient :GET http://hote/chemin

E. Godard Applications 21 / 59

HTTP

HTTP 1.1

RFC 2616 (1999)

nouvelle version pour connaıtre exactement les proprietesdu correspondantpermet d’heberger plusieurs sites sur le meme serveur :GET http://www.example1.com/page3.html

HTTP/1.1 vsGET http://www.example2.com/site.php HTTP/1.1

connexion persistante :

I 100 : continuer

E. Godard Applications 22 / 59

HTTP

HTTP/2

Nouvelle version

Base sur SPDYI reduction de la latence par reutilisation de la meme

socket TCPI binaire / encapsulation de messagesI multiplexage

chiffrement (TLS 1.2 et maintenant 1.3) obligatoire

RFC 7540 (mai 2015)

support logiciel : IE 11, Firefox 34, Chrome

E. Godard Applications 23 / 59

HTTP

HTTP/3

Derniere version 26 sept. 2019

draft IETF

protocole QUIC

support des navigateurs modernes

... et des hebergeurs comme cloudflare

E. Godard Applications 24 / 59

HTTP

WebDAV

Web Distributed Authoring and VersioningSurcouche de HTTP pour gerer la publication avancee :

revisions et commentaires

controle d’acces

information d’indexation

=> logiciels collaboratifs et nombreux clients.

E. Godard Applications 25 / 59

HTTP

Clients et Serveurs

Protocole largement deploye et supporte

Serveurs :

I ApacheI IIS

Clients :

I MozillaI FirefoxI Internet ExplorerI SafariI ....

E. Godard Applications 26 / 59

HTTP

Parts de Marche Serveurs

c©netcraft.com aout 2019 :

E. Godard Applications 27 / 59

HTTP

Domaines Actifs

E. Godard Applications 28 / 59

HTTP

Domaines Les Plus Actifs

E. Godard Applications 29 / 59

HTTP

Le Vrai Web

Les protocoles sont la base d’un systeme informatiquedecentralise mais dans la realite, il y a de forte tendance a lacentralisation

silos applicatifs (reseaux sociaux non inter-operables)

plateformes techniques hegemoniques

E. Godard Applications 30 / 59

HTTP

CDN

Un Content Delivery Network est un reseau de distributionefficace de contenu :

serveurs origine

serveurs peripheriques (miroirs)

mecanisme de ”routage” permettant d’obtenir la replique laplus proche de maniere transparente pour l’utilisateur final

mise en oeuvre frequemment a l’aide du DNS ou a l’aide detechniques P2P.

E. Godard Applications 31 / 59

SMTP

Introduction

HTTP

SMTP

DNS

E. Godard Applications 32 / 59

SMTP

Protocole SMTP

Simple Mail Transfer Protocol

Envoi/transport de courrier electronique

RFC 821 (1982)

RFC 2821 (2001)

E. Godard Applications 33 / 59

SMTP

Agents du Courrier Electronique

MUA (Mail USer Agent) : client de messagerie

MTA (Mail Transfer Agent) : transport des courriers (viades serveurs SMTP en general)

MDA (Mail Delivery Agent) : remise du courrier audestinataire final

E. Godard Applications 34 / 59

SMTP

Architecture du Courrier Electronique

Internet User agent

Message transfer

agent

MailboxPermanent connection

Sending host

(a) Receiving host

SMTP

Internet User agent

Message transfer

agent

MailboxSending host

(b) ISP's machine

User's PC

SMTP POP3POP3 server

Dial-up connection

E. Godard Applications 35 / 59

SMTP

Exemple de Transport de Courrier

L’utilisateur clique sur “Envoyer”

Le logiciel de messagerie(MUA) contacte le serveur SMTPlocal(MTA)

Ce serveur contacte le serveur SMTP distant (MTA)associe a l’adresse du destinataire

Celui-ci transmet le courrier au serveur Pop (MDA)

Le destinataire clique sur le bouton “Recevoir” de sonlogiciel de messagerie (MUA).

E. Godard Applications 36 / 59

SMTP

MDA : POP3 vs IMAP

E. Godard Applications 37 / 59

SMTP

Courrier Electronique et Espace de Noms

Une adresse electronique identifiant@domaine.tld estconstituee de

identifiant local du destinatairedomaine.tld

I nom de la machine MTA du destinataireI ou domaine DNS dont le champ MX indique le MTA

Exemples (identiques cote utilisateur mais pas cote serveur)

aconnu@cmi.univ -mrs.fr

Alain.Connu@cmi.univ -mrs.fr

Alain.Connu@lif.univ -mrs.fr

Alain.Connu@up.univ -mrs.fr

Alain.Connu@univ -provence.fr

E. Godard Applications 38 / 59

SMTP

Envoi par Poignee de Main

serveur: 220 smtp.exemple.net SMTP Ready

client : EHLO station1.exemple.net

serveur: 250 smtp.exemple.net

client : MAIL FROM:<src@exemple.net >

serveur: 250 OK

client : RCPT TO:<dst@security.net >

serveur: 250 OK

client : DATA

serveur: 354 Start mail input; end with <CRLF >.<CRLF >

client : Subject: Bonjour

client : Salut ,

client : comment ca va?

client :

client : A bientot !

client : <CRLF >.<CRLF >

serveur: 250 OK

client : QUIT

serveur: 221 smtp.exemple.net closing transmissionE. Godard Applications 39 / 59

SMTP

Autres Commandes

VRFY : verifie juste si le destinataire existe

E. Godard Applications 40 / 59

SMTP

Encodage et Extension

les caracteres transmis doivent etre codes sur 7bits

format MIME (Multipurpose Internet Mail Extension)

encodage base64 ou quoted-printable

E. Godard Applications 41 / 59

SMTP

Entete d’un Courrier Electronique

From: adresse de l’emetteur

Return-Path: adresse pour la reponse (peut etredifferent du precedent)

To: adresses(s) du(des) destinataire(s) principal(aux)

Cc: adresses(s) du(des) destinataire(s) secondaire(s)

Subject: sujet

Received: ajoute par chaque MTA

MessageId: identifiant unique

Date: date d’envoi du message (par le MUA)

X-...: champs officieux

E. Godard Applications 42 / 59

SMTP

(In)Securite

Le protocole SMTP est l’un des plus deployes :Carte de la connectivite internet en 1996 :

Le pragmatisme l’a emporte (et de loin) sur la securite.Il n’ y a absolument aucune garantie sur un courrier electronique

E. Godard Applications 43 / 59

SMTP

Pourriel

Le courrier electronique non sollicite (spam, pourriel) est unimportant probleme.

achat de liste de millions d’adresse

cout nul de l’envoi, meme massif

un tres faible retour sur un envoi massif reste profitable=> secteur economique

relais ouverts

extension a la VoIP...

E. Godard Applications 44 / 59

SMTP

Lutte anti-pourriels

Le MUA peut filtrer le courrier (une fois qu’il est arrive).Au niveau des serveurs :

certains serveurs refusent systematiquement les connexionsen provenance de certains hotes

I listes noires/listes blanchesI listes dynamiques (relais ouverts, ...)

cela n’est pas prevu dans le protocole

Enjeu : Universalite du courrier electroniqueCf messagerie instantanee pour un contre exemple.

E. Godard Applications 45 / 59

SMTP

Liste Grise

Methode respectant rigoureusement la RFC, en jouant sur lefait que les delais prevus sont larges (5 jours au pire) :

le serveur SMTP refuse pendant un certain temps unnouvel expediteur donne,

un spammeur ne reessaie pas sur une erreur

un serveur “normal” reessaiera (avec succes) ulterieurement

parametrables :

I listes blanches/grisesI temps de refus variable et aleatoire

E. Godard Applications 46 / 59

DNS

Introduction

HTTP

SMTP

DNS

E. Godard Applications 47 / 59

DNS

DNS : Protocole et BD Distribuee

DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).

1 Hierarchie : les noms sont structures et forment unearborescence

2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres

3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.

E. Godard Applications 48 / 59

DNS

DNS : Protocole et BD Distribuee

DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).

1 Hierarchie : les noms sont structures et forment unearborescence

2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres

3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.

E. Godard Applications 48 / 59

DNS

DNS : Protocole et BD Distribuee

DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).

1 Hierarchie : les noms sont structures et forment unearborescence

2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres

3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.

E. Godard Applications 48 / 59

DNS

DNS : Protocole et BD Distribuee

DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).

1 Hierarchie : les noms sont structures et forment unearborescence

2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres

3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.

E. Godard Applications 48 / 59

DNS

Structure Hierarchique du DNS

Elle est heritee de la structure hierarchique du DNS : il y a (aumoins ) un serveur pour chaque zone

.fr

univ-mrs.fr

lif.univ-mrs.fr

NB le decoupage en zone ne suit pas necessairement ledecoupage par ”.”

E. Godard Applications 49 / 59

DNS

Base de donnees

La structure est << clef champ valeur >>

enregistrement A fait correspondre un nom d’hote a uneadresse IPv4 (32 bits)

enregistrement AAAA idem pour IPv6=>double resolution possible

enregistrement CNAME alias vers un autre nom. Permet denommer des ”services” (www, etc ...)

enregistrement NS indique un serveur de nom du domaine. Ilen faut au moins 2 pour tolerer les defaillances

enregistrement PTR inverse de A : associe une adresse IP a unenregistrement de nom de domaine,

E. Godard Applications 50 / 59

DNS

Base de Donnees (suite)

enregistrement SOA indique serveur principal et administrateurde la zone

enregistrement MX indique le MTA de courrier du domaine(statut particulier du courriel !)permet de transmettre un courrier auntel@lif.univ-mrs.fr meme si aucunemachine ne s’appelle lif.univ-mrs.fr.

enregistrement SRV generalise le enregistrement MX pour desservices quelconques + gestion de la repartition decharge (a priori).

E. Godard Applications 51 / 59

DNS

Exemples

Reponse a dig a www.lif.univ-mrs.fr

; <<>> DiG 9.8.1-P1 <<>> a www.lif.univ -mrs.fr

;; global options: +cmd

;; Got answer:

;; ->>HEADER <<- opcode: QUERY , status: NOERROR , id: 28077

;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:

;www.lif.univ -mrs.fr. IN A

;; ANSWER SECTION:

www.lif.univ -mrs.fr. 172800 IN CNAME serveur.cmi.up.univ -mrs.fr.

serveur.cmi.up.univ -mrs.fr. 86400 IN A 147.94.64.6

;; AUTHORITY SECTION:

up.univ -mrs.fr. 86400 IN NS lsh.up.univ -aix.fr.

up.univ -mrs.fr. 86400 IN NS ns1.univmed.fr.

up.univ -mrs.fr. 86400 IN NS dns.univ -provence.fr.

;; Query time: 86 msec

;; SERVER: 192.168.1.1#53(192.168.1.1)

;; WHEN: Mon Nov 26 23:38:21 2012

;; MSG SIZE rcvd: 170

E. Godard Applications 52 / 59

DNS

Exemple de Repartition de charge avec SRV

_sip._tcp.example.com. 86400 IN SRV 10 60 5060 gros -serveur.example.com.

_sip._tcp.example.com. 86400 IN SRV 10 20 5060 petit -serveur1.example.com.

_sip._tcp.example.com. 86400 IN SRV 10 20 5060 petit -serveur2.example.com.

_sip._tcp.example.com. 86400 IN SRV 20 0 5060 serveur -de-secours.example.com.

E. Godard Applications 53 / 59

DNS

Requete DNS

Une requete (question) porte sur un champ particulierconcernant un domaine passe en parametre. Le protocole UDPest utilisee, sauf si le message depasse 512 octets.Dans ce cas, TCP est utilise.

E. Godard Applications 54 / 59

DNS

Interrogations Recursives et Iteratives

E. Godard Applications 55 / 59

DNS

Mise en cache

Un champs TTL indique combien de temps la valeur d’unenregistrement peut etre garde en cache (ie, les services racinesne sont pas sollicites a chaque requete d’un internaute...)C’est en general de l’ordre de la journee

E. Godard Applications 56 / 59

DNS

DNS : Pour Resumer

Exercice :

Processus

Nommage

Communication

Synchronisation

Cache et Replication

Tolerance aux Defaillances

Securite

E. Godard Applications 57 / 59

DNS

Probleme de Securite

Il est possible d’intercepter une reponse DNS.=> protocole DNSSEC, ou les reponse sont signeescryptographiquement.Le deploiement est bien avance...

E. Godard Applications 58 / 59

DNS

Une autre solution

DoT DNS over TLS

DoH DNS over HTTP

support dans tous les navigateursproblematique de competition economiqueHTTP est beaucoup plus bavard que TLS

=> que signifie acceder au reseau ? fournir un acces internet ?

E. Godard Applications 59 / 59

top related