Vous êtes sur la page 1sur 42

Réseaux

12 Septembre 2023
Outline

1 Les couches application

2 HTTP

3 DHCP

4 DNS

5 TLS

2/42 Adrien Boiret - 12 Septembre 2023


Outline

1 Les couches application

2 HTTP

3 DHCP

4 DNS

5 TLS

3/42 Adrien Boiret - 12 Septembre 2023


Le modèle OSI

4/42 Adrien Boiret - 12 Septembre 2023


Couche 7: Application

Pas tout ce qu’on appelle application


Protocoles utilisés au plus haut niveau
e.g. HTTP(S), FTP, DHCP, DNS, SMTP, FTP, IRC...

En gros, transforme une demande de fonctionnalité en message.s


e.g. en HTTP, cliquer sur un lien → charger telle et telle page,
telle et telle image, gérer le cache...

5/42 Adrien Boiret - 12 Septembre 2023


Couche 6: Présentation

Transforme les données de l’application en binaire “digeste”


Encodage, compression (avec ou sans perte), cryptage
e.g. TSL

Souvent inclus dans de plus gros protocoles (SSH, VoIP)

6/42 Adrien Boiret - 12 Septembre 2023


Couche 5: Session

Gestion des sessions


(connexions clients/serveurs ou clients/clients)
Basée sur des APIs (Application Programming Interface)
Authentification (username/mdp)
Autorisation (gestion des droits)
Gestion de session (e.g. autologout)

7/42 Adrien Boiret - 12 Septembre 2023


Les couches application

Souvent, les couches 7,6,5 sont gérées ensemble par les applis
Cependant, il existe des protocoles de ces couches qui sont
standard
e.g. pages Web, Mail
Différentes appis peuvent interpréter ces protocoles différement

8/42 Adrien Boiret - 12 Septembre 2023


Couche 7: Application

Rôle de la couche:

Découper un service en instructions


Envoyer ces instructions d’un client à un serveur (ou en P2P)
Retourner la réponse fournie

La couche 7 s’appuie sur une connexion déjà établie


(on verra une exception)

9/42 Adrien Boiret - 12 Septembre 2023


Relation Client/Serveur

Client/Serveur: HTTP

10/42 Adrien Boiret - 12 Septembre 2023


Relation Client/Serveur

Clients/Serveurs: SMTP

? ! ? !

11/42 Adrien Boiret - 12 Septembre 2023


Relation Peer to Peer

Clients échangent entre eux: VOIP

12/42 Adrien Boiret - 12 Septembre 2023


Outline

1 Les couches application

2 HTTP

3 DHCP

4 DNS

5 TLS

13/42 Adrien Boiret - 12 Septembre 2023


HTTP

HyperText Transfert Protocol


Protocole applicatif
Définit:

Type de message échangé


Syntaxe et sémantique
Action demandée

14/42 Adrien Boiret - 12 Septembre 2023


Connexion HTTP

HTTP utilise TCP (lent, fiable, pas de perte)

Le client crée une socket TCP (couche 4)


Le client contacte le serveur sur le port 80
Le serveur accepte
Maintenant, on parle!

15/42 Adrien Boiret - 12 Septembre 2023


Requête HTTP

HTTP 1.0 referme systématiquement la connexion, HTTP 1.1


reste ouvert

Ouverture TCP
Le client demande index.html
Le serveur lui donne index.html
Fermeture TCP (ou non)
Le client lit index.html, qui contient 10 images
Ouverture.s TCP (ou non)
Le client demande 01.jpg
...

Connexions parallèles possibles!

16/42 Adrien Boiret - 12 Septembre 2023


Formats de message HTTP

HTTP définit 2 types de messages: request et response. Ce sont


des messages ASCII:

GET /downloads/index.htm HTTP/1.1


Host: www.merriam-webster.com
User-Agent: Iceweasel/2.0.0.14 (Debian-2.0.0.14-2)
Accept: text/xml,text/html;
Accept-Language: en-us,en;
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;
Keep-Alive: 300
Connection: keep-alive

La ligne vide termine le message de requête de taille variable.

17/42 Adrien Boiret - 12 Septembre 2023


Formats de message HTTP

HTTP response message:

HTTP/1.1 200 OK
Date: Thu, 25 Sep 2008 20:00:21 GMT
Server: Apache/2.0.52 (Red Hat)
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>...

La ligne vide sert à séparer le header du corps du message de


réponse.

18/42 Adrien Boiret - 12 Septembre 2023


Cache et Proxy

Beaucoup d’éléments sont réutilisés sur plusieurs pages


(CSS, menus...)
On garde un cache.

Le client reçoit index.html


index.html nécessite 01.jpg
Ai-je 01.jpg dans mon cache?
Non: je le demande au serveur
Oui: Le fichier a-t-il changé depuis?
Non: On ne demande rien!
Oui: On redemande au serveur

19/42 Adrien Boiret - 12 Septembre 2023


Cache et Proxy

Non seulement on veut toujours les mêmes fichiers


Mais en plus on veut tous les mêmes
Proxy: une machine intermédiaire qui fait office de “cache
commun”
Allège le fardeau du serveur principal

20/42 Adrien Boiret - 12 Septembre 2023


Outline

1 Les couches application

2 HTTP

3 DHCP

4 DNS

5 TLS

21/42 Adrien Boiret - 12 Septembre 2023


Adresse IP

Sur un réseau, local ou global, chaque machine a une adresse.


Adresse IP (Internet Protocol)

Adresses nécessaires pour communiquer


Comment obtenir sa propre adresse?
Comment trouver l’adresse de quelqu’un?

22/42 Adrien Boiret - 12 Septembre 2023


Adresse IPv4

Adresse en 4 octets
192.68.102.65
11000000.01000100.01100110.01000001
Un total de 256 × 256 × 256 × 256 = 4 294 967 296 adresses
IPv6 a 16 octets, pour environ 3 × 1038 adresses
(La Terre pèse 6 × 1027 g )

23/42 Adrien Boiret - 12 Septembre 2023


Obtenir une adresse dynamique: DHCP

Cas de base: adresse attribuée manuellement et pour de bon


(statique)
Pour obtenir une adresse IP, on peut en demander une
automatiquement.
Protocole DHCP
Un client demande à un (ou plusieurs) serveurs une adresse IP.
Peut être vu comme couche 7 (application) ou couche 3 (réseau)!

24/42 Adrien Boiret - 12 Septembre 2023


DHCP Handshake

Processus DORA: Discover, Offer, Request, Acknowledgement


Client: “Je cherche à obtenir une adresse (demande 73), quelqu’un
en a une?”
Serveur: “Au demandeur 73: oui, l’adresse 192.68.102.66 est
disponible”
Client: “D’accord, je vais prendre l’adresse 192.68.102.66”
Client: “Bien reçu demandeur 73, vous l’avez.”

Autres infos: sous-réseau, temps d’utilisation, DNS...

25/42 Adrien Boiret - 12 Septembre 2023


DHCP

26/42 Adrien Boiret - 12 Septembre 2023


DHCP

op: qui parle, client ou serveur


htype et hlen: type et taille de l’adresse physique
xid: Identifiant de la transaction
ciaddr: Client IP: adresse actuelle du client (s’il en a une)
yaddr: Your IP: adresse demandée ou offerte
siaddr: Server IP: adresse du serveur DHCP
giaddr: Gateway IP: adresse de la passerelle si besoin
chaddr: Client Hardware: adresse “physique” du client
options: sert notamment à indiquer le type d’opération
e.g. Option 53: Discover

27/42 Adrien Boiret - 12 Septembre 2023


Outline

1 Les couches application

2 HTTP

3 DHCP

4 DNS

5 TLS

28/42 Adrien Boiret - 12 Septembre 2023


Adresse IP

Sur un réseau, local ou global, chaque machine a une adresse.


Adresse IP (Internet Protocol)
Adresse en 4 octets
IPv6 a 16 octets

29/42 Adrien Boiret - 12 Septembre 2023


Nommage sur Internet

Les adresses IP sont compliquées à retenir, et parfois dynamique


Plus simple de retenir un nom (URL, Uniform Resource Locator)
Pour faire la traduction, il faut un annuaire
DNS (Domain Name Service)

30/42 Adrien Boiret - 12 Septembre 2023


DNS

Nommage hiérarchique (domaine, sous-domaine,


sous-sous-domaine...)
Pour trouver fr.wikipedia.org:
On commence par chercher le DNS racine
On lui demande où trouver .org, un TLD (top-level domain)
Dans .org, on cherche où trouver wikipedia.org
Dans wikipedia.org, on cherche l’adresse IP de fr.wikipedia.org
(Serveur Autorité)
À cette adresse, on fait des demandes HTML

Cette descente est effectuée par un DNS Solver ou serveur récursif

31/42 Adrien Boiret - 12 Septembre 2023


DNS

Sur Internet, les noms de domaines sont gérés par des autorités qui
en assure l’attribution et l’unicité
On leur achète un nom de domaine
Le DNS est généralement fourni par l’ISP
En local, on fait bien ce qu’on veut

Permet de créer des URL qui routent vers des pages d’un
Intranet
Permet de suplanter les demandes DNS (par exemple, bloquer
les demandes facebook)

32/42 Adrien Boiret - 12 Septembre 2023


Outline

1 Les couches application

2 HTTP

3 DHCP

4 DNS

5 TLS

33/42 Adrien Boiret - 12 Septembre 2023


Couche Présentation

Présentation: encodage d’un message application en caractère


reconnaissables
Représente tout sous forme de mots (arbres XML, tableaux CSV)
Certains protocoles ont les leurs (e.g. HTTP)
Gère aussi la compression et l’encryption

34/42 Adrien Boiret - 12 Septembre 2023


WireShark

35/42 Adrien Boiret - 12 Septembre 2023


WireShark

Source: Stack Overflow

36/42 Adrien Boiret - 12 Septembre 2023


Couche Présentation: Encryption

On encode les messages pour ne pas transmettre de données


sensibles (e.g. mot de passe) en clair
Ce message peut être encodé:
Juste la donnée
Tout le datagramme

Encryption nécessite un échange de clés donc généralement, on


démarre une session.

37/42 Adrien Boiret - 12 Septembre 2023


Couche Session: Encryption

TLS (Transport Layer Security)


Encrypte les données avant d’envoyer sur la couche transport.
Le S de HTTPS, SMTPS, FTPS...

38/42 Adrien Boiret - 12 Septembre 2023


TLS: Histoire d’une connection

Poignée de main:
Bonjour, je suis Client, je connais ces protocoles
Bonjour Client, je suis Serveur,
Utilisons ce protocole, voici ma clé publique
Avec votre clé publique, voici une clé commune

Encrypte les données avec la clé commune.


Ne s’arrête pas forcément avec la connection TCP!

39/42 Adrien Boiret - 12 Septembre 2023


Encryption Asymètrique

Très solide, mais coûteuse!


Ne peut pas tout encrypter, ne sert qu’à obtenir une clé commune
Echange de clés se base sur des processus cryptographiques connus
de tous
e.g. Dieffe-Hellman
Tant qu’on peut faire passer une clé publique, tout va bien

40/42 Adrien Boiret - 12 Septembre 2023


TLS: Histoire d’un homme au milieu

Poignée de main:
Bonjour, je suis Client, je connais ces protocoles
Bonjour, je suis Client, je connais ces protocoles
Bonjour Client, je suis Serveur,
Utilisons ce protocole, voici ma clé publique
Bonjour Client, je suis Serveur,
Utilisons ce protocole, voici ma clé publique
Avec votre clé publique, voici une clé commune
Avec votre clé publique, voici une clé commune

Comment éviter l’interception?

41/42 Adrien Boiret - 12 Septembre 2023


TLS: Certificats

Un serveur peut obtenir un certificat d’un tiers de confiance


La clé publique est signée par le certificat
Quand le serveur envoie sa clé, le client utilise la clé publique du
certificat
Le client voit que la clé est authentique, on continue
Un intermédiaire peut toujours être au milieu mais ne peut plus
injecter sa clé
Commente certifier le certificat? Avec un certificat!

42/42 Adrien Boiret - 12 Septembre 2023

Vous aimerez peut-être aussi