Title: Pr
1Protocoles de télécommunications JeanDo
Lénard jdlenard_at_gmail.com
2Au menu aujourdhui
Réseaux, couches Quelques protocoles Un peu
d'analyse pratique de réseaux
3Avantages dun réseau
Connectivité et communication organisation en
LAN et WAN Partage de données Tous partagent
les MEMES données Partage de Hardware
Imprimante réseau Partage daccès
Internet Gestion des données et sécurisation
Administration centralisée
4Inconvénients dun réseau
Coûts du matériel et de la mise en place Coûts
de maintenance et dadministration Partage de
données indésirables virus Comportement
indésirable distractions variées Problèmes de
sécurité
5Les standards propriétaires, ouverts, de fait
En réseau, très peu de standards
propriétaires. Les interconnexions nécessitent
des standards ouverts. Ladoption de standards
est fondé sur la mise en place dorganisations et
dun processus de définition.
6La définition dun standard la RFC
A lorigine, nimporte qui pouvait écrire une
RFC. Actuellement, lIETF (Internet Engineering
Task Force) écrit les RFC qui sont revues par
lIESG (Internet Engineering Steering Group) et
lIAB (Internet Architecture Board). Elles
peuvent ensuite être publiées. Elles sont toutes
en accès libre et gratuit (ce qui est rare pour
des normes?) sur http//www.rfc-editor.org/rfc-ind
ex.html
7Un réseau, une pile de protocoles Quest-ce quun
protocole ?
Hors informatique, un protocole est un code de
conduite, un ensemble de règles de manière à ce
que des personnes de culture différente puissent
communiquer sans générer de conflit.
En réseau, il sagit que des composants soient en
accord sur la manière de réaliser une action dans
un processus de communication.
8Le modèle OSI (Open System Interconnection)
Le modèle d'interconnexion des systèmes ouverts
de l'ISO est un modèle de communications entre
ordinateurs. Il décrit les fonctionnalités
nécessaires à la communication et l'organisation
de ces fonctions.
La norme complète, de référence ISO 7498 est
globalement intitulée Modèle de référence de
base pour l'interconnexion de systèmes ouverts
(OSI)
ISO International Organization for
Standardization
9Réseaux modèles ISO 7 couches
1. physique niveau physique support physique
(Ethernet gros, fin, paires torsadées, fibre
optique) et codage des bits. 2. liaison
paquets Ethernet, partage d'accès. 3. réseau
niveau IP adresses du routage. 4. transport
niveau TCP un port d'une machine dialogue avec
un autre port d'une machine via un standard. 5.
session RPC. 6. présentation XDR. 7.
application mail, DNS, rwho, ruptime, etc.
10Couche 1 Physique
Un circuit électronique chargé de convertir les
bits en signaux électriques ou optiques et
inversement. Le circuit se charge de lémission
et de la réception.
Protocoles courants NRZ NRZI Biphase ou
Manchester Manchester différentiel Miller
Bipolaire simple ou d'ordre 2 BHDn
source wikipedia
11Couche 2 Liaison
La couche liaison de données gère les
communications entre 2 machines adjacentes, i.e.
directement reliées entre elles par un support
physique. Elle est chargée du regroupement de
bits isolés en trames ou de la délimitation de
ces trames dans un flot de bit continu.
Protocoles courants Ethernet Fiber
Distributed Data Interface (FDDI) HDLC
LocalTalk Multiprotocol Label Switching (MPLS)
Point-to-point protocol (PPP) Serial Line
Internet Protocol (SLIP) Token Ring
12Couche 3 Réseau
La couche réseau construit une voie de
communication de bout en bout à partir de voies
de communication avec ses voisins directs. Elle
effectue donc - le routage détermination d'un
chemin permettant de relier les 2 machines
distantes - le relayage retransmission d'un
message dont la destination n'est pas locale pour
le rapprocher de sa destination finale. Cette
couche est donc la seule à être directement
concernée par la topologie du réseau. C'est aussi
la dernière couche supportée par toutes les
machines du réseau pour le transport des données
utilisateur Les couches supérieures sont
réalisées uniquement dans les machines
d'extrémité.
Protocoles courants IP IPX
13Couche 4 Transport
La couche transport gère le communications de
bout en bout entre processus. Cette couche -
gère l'envoi des données - établit l'ordre et la
priorité des envois - contrôle l'intégrité de la
réception
Protocoles courants Transmission Control
Protocol (TCP) User datagram protocol
(UDP) Sequenced packet exchange (SPX)
14Couche 5 Session
Les 2 services originaux de la couche session
sont la synchronisation des communications (quel
intervenant peut émettre à tel moment) et la
gestion des "transactions", un mécanisme de
correction des erreurs de traitement par
restauration d'un état antérieur connu. Les
services de transport sont des services de
communication point à point, i.e. avec 2
interlocuteurs. Mais le modèle OSI doit aussi
convenir aux communications multipoints. 2 genres
de communications multipoints sont explicitement
mentionnées dans la norme les communications en
étoile où une session est un ensemble de
communications point à point avec un
interlocuteur engagé dans tous les échanges et
la diffusion où tous les interlocuteurs reçoivent
tous les messages. Des mécanismes de
synchronisation sont alors requis pour savoir par
exemple qui répond à quoi. C'est le rôle des
protocoles de cette couche.
Protocoles courants NETBIOS
15Couche 6 Présentation
- La couche présentation est chargée du codage des
données applicatives. Les couches 1 à 5
transportent des octets bruts sans se préoccuper
de leur signification. Mais ce qui doit être
transporté en pratique, c'est du texte, des
nombres et parfois des structures de données
arbitrairement complexes. - Le rôle de la couche présentation est donc de
convertir entre données applicatives manipulées
par les programmes et chaînes d'octets
effectivement transportées par le réseau. - - conversion des données émises par l'application
- - plus de format de fichier, de caractères
(ASCII, etc.) particuliers - - format commun d'envoi indépendant de la machine
- reconversion des données au format de
l'application réceptrice - Couche absente dans le protocole IP, ce rôle est
dévolu à la couche supérieure (type MIME par
exemple pour HTTP).
16Couche 7 Application
Cest la couche qui permet daccéder aux services
réseaux. Comme elle est purement applicative,
rien nest précisé dans la norme. Dans le
monde IP ce sont les protocoles les plus connus
- transfert de fichiers FTP (IETF), NFS (Sun
Microsystems) et AFS, SMB/CIFS (Microsoft) -
messageries Simple mail transfer protocol
(SMTP), Post Office Protocol (POP), IMAP et pour
la diffusion NNTP (Usenet) et encore X.400 -
session distante Telnet, rlogin, Secure
shell (SSH) et des protocoles associés comme le
déport d'affichage X, XDMCP - type un peu tout
et n'importe quoi HTTP - protocoles
d'exploitation et de gestion Domain Name System
pour la résolution d'adresse, Simple Network
Management Protocol pour la supervision
17(No Transcript)
18Les protocoles sintègrent les uns dans les
autres
7
4
3
2
19Couche 4 Transport par TCP
La couche transport gère le communications de
bout en bout entre processus. Cette couche gère
l'envoi des données et contrôle l'intégrité de la
réception. Grâce au protocole TCP, les
applications peuvent communiquer de façon sûre
(grâce au système d'accusés de réception du
protocole TCP), indépendamment des couches
inférieures. Le principe est d'ajouter au
segment de données des informations d'en-tête et
d'accusé de réception pour contrôler les flux.
20Couche 4 Transport par TCP
- Etablissement d'une connexion entre 2 machines
- Les ports TCP doivent être ouverts.
- L'application sur le serveur est à l'écoute, en
attente d'une connexion. - L'application sur le client fait une requête de
connexion sur le serveur. - Les 2 machines se synchronisent avec un mécanisme
en 3 temps (three ways handshake) - Le client transmet un segment dont le drapeau SYN
est à 1 (pour signaler qu'il s'agit d'un segment
de synchronisation), avec un numéro d'ordre N
initial - Le serveur reçoit le segment initial, et envoie
un accusé de réception, c'est-à-dire un segment
dont le drapeau ACK est à 1 et le drapeau SYN est
à 1 (car il s'agit là encore d'une
synchronisation). - Le client transmet au serveur un accusé de
réception, c'est-à-dire un segment dont le
drapeau ACK est à 1, dont le drapeau SYN est à
zéro (il ne s'agit plus d'un segment de
synchronisation). - L'envoi de données peut commencer, les machines
sont synchornisées.
21Couche 4 Transport par TCP
Fiabilité des données transmises Lors de
l'émission d'un segment, un numéro d'ordre est
associé. A réception d'un segment de donnée, la
machine réceptrice va retourner un segment de
donnée dont le drapeau ACK est à 1 accompagné
d'un numéro d'accusé de réception égal au numéro
d'ordre précédent. La machine émettrice sait donc
que le segment est bien arrivé. Elle envoie le
segment suivant.
22Couche 4 Transport par TCP
Fiabilité des données transmises (suite) Grâce
à une minuterie déclenchée dès réception d'un
segment au niveau de la machine émettrice, le
segment est réexpédié dès que le temps imparti
est écoulé, car dans ce cas la machine émettrice
considère que le segment est perdu...
Si le segment n'est pas perdu et qu'il arrive
tout de même à destination, la machine réceptrice
saura grâce au numéro d'ordre qu'il s'agit d'un
doublon et ne conservera que le dernier segment
arrivé à destination...
23Couche 4 Transport par TCP
Fin d'une connexion Le client comme le
serveur peut demander à mettre fin à une
connexion. La fin de la connexion se fait de la
manière suivante Une des machines envoie un
segment avec le drapeau FIN à 1, et l'application
se met en état d'attente de fin, c'est-à-dire
qu'elle finit de recevoir le segment en cours et
ignore les suivants Après réception de ce
segment, l'autre machine envoie un accusé de
réception avec le drapeau FIN à 1 et continue
d'expédier les segments en cours. Suite à cela la
machine informe l'application qu'un segment FIN a
été reçu, puis envoie un segment FIN à l'autre
machine, ce qui clôture la connexion...
24Quelques protocoles de haut niveau
FTP (File Transfer Protocol)
- Ce protocole développé au MIT existe depuis 1971.
- Il reste un des principaux outils de transfert de
fichiers entre machines. - Le protocole FTP a pour objectifs de
- permettre un partage de fichiers entre machines
distantes - permettre une indépendance aux systèmes de
fichiers des machines clientes et serveur - permettre de transférer des données de manière
efficace - Ce protocole est totalement non sécurisé ! (à
tester) - Il serait normalement à proscrire, mais sa large
diffusion et son intégration dans les
applications le rendent difficile à enlever
complètement.
25Quelques protocoles de haut niveau
HTTP (HyperText Transfer Protocol)
C'est le protocole le plus utilisé sur Internet
depuis 1990. Le but du protocole HTTP est de
permettre un transfert de fichiers localisés
grâce à une chaîne de caractères appelée URL
entre un navigateur (le client) et un serveur Web
(httpd). La communication entre le navigateur et
le serveur se fait en deux temps
26Quelques protocoles de haut niveau
HTTP (HyperText Transfer Protocol)
- Une requête HTTP est un ensemble de lignes envoyé
au serveur par le navigateur. - Elle comprend
- Une ligne de requête c'est une ligne précisant
le type de document demandé, la méthode qui doit
être appliquée, et la version du protocole
utilisée. - Les champs d'en-tête de la requête
(facultatives). - Le corps de la requête (lignes optionnelles -par
exemple pour un envoi de données par une commande
POST lors de l'envoi de données au serveur par un
formulaire)
27Quelques protocoles de haut niveau
HTTP (HyperText Transfer Protocol)
- Une réponse HTTP est un ensemble de lignes envoyé
du serveur vers le navigateur. - Elle comprend
- Une ligne de statut contenant
- La version du protocole utilisé
- Le code de statut (200 OK, 404 fichier non
trouvé, 304 non modifié) - La signification du code
- Les champs d'en-tête de la réponse lignes
facultatives permettant de donner des
informations supplémentaires sur la réponse et/ou
le serveur. - Le corps de la réponse il contient le document
demandé
28Quelques protocoles de haut niveau
SSH (Secure SHell)
Il existe de nombreux protocoles permettant de
réaliser des opérations à distance (telnet, les
r-commandes..). L'inconvénient est de faire
circuler en clair sur le réseau les informations
échangées, notamment l'identifiant (login) et le
mot de passe pour l'accès à la machine distante
! Comme on ne maîtrise pas les infrastructures
situées entre l'utilisateur et la machine
distante (Internet étant un réseau ouvert), la
seule solution est de recourir à une sécurité au
niveau logique (au niveau des données). Le
protocole SSH (Secure Shell) répond à cette
problématique en permettant à des utilisateurs
(ou bien des services TCP/IP) d'accéder à une
machine à travers une communication chiffrée
(appelée tunnel).
29Quelques protocoles de haut niveau
SSH (Secure SHell)
Les données circulant entre le client et le
serveur sont chiffrées, ce qui garantit leur
confidentialité (personne d'autre que le serveur
ou le client ne peut lire les informations
transitant sur le réseau). Il n'est donc pas
possible d'écouter le réseau à l'aide d'un
analyseur de trames. Le client et le serveur
s'authentifient mutuellement afin d'assurer que
les deux machines qui communiquent sont bien
celles que chacune des parties croit être. Il
n'est donc plus possible pour un pirate d'usurper
l'identité du client ou du serveur.
30Quelques protocoles de haut niveau
SSH (Secure SHell)
- Etablissement d'une connexion
- Dans un premier temps le serveur et le client
s'identifient mutuellement afin de mettre en
place un canal sécurisé (couche de transport
sécurisée). - On débute par une phase de négociation entre le
client et le serveur afin de s'entendre sur les
méthodes de chiffrement à utiliser. - Ensuite, le serveur envoie sa clé publique
d'hôte (host key) au client. Le client génère une
clé de session qu'il chiffre grâce à la clé
publique du serveur, et envoie au serveur la clé
de session chiffrée ainsi que l'algorithme
utilisé. Le serveur déchiffre la clé de session
grâce à sa clé privée et envoie un message de
confirmation chiffré à l'aide de la clé de
session. - A partir de là le reste des communications est
chiffré grâce à un algorithme de chiffrement
symétrique en utilisant la clé de session
partagée par le client et le serveur. - Dans un second temps le client s'authentifie
auprès du serveur pour obtenir une session (via
mots de passe ou via les clefs publiques).
31Voir ce qui se passe via un analyseur réseau
Ethereal (Wireshark)
Un analyseur réseau est un logiciel (passif) qui
écoute tout se qui se passe sur un réseau et qui
le met en forme. C'est l'outil de base des
administrateurs réseau et des pirates. Un des
analyseurs libres les plus connus est Ethereal
(maintenant Wireshark). Objectif Installer
Wireshark et voir comment se passe les
transactions FTP, HTTP, SSH. Le serveur
(portable) accepte des connexions FTP, HTTP et
SSH pour le compte hetic, mot de passe F1l2fer.