R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele...

57
eseaux : Tcp/Ip, Internet, s´ ecurit´ e Laurent Signac https://deptinfo-ensip.univ-poitiers.fr 26 janvier 2017

Transcript of R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele...

Page 1: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux : Tcp/Ip, Internet, securite

Laurent Signachttps://deptinfo-ensip.univ-poitiers.fr

26 janvier 2017

Page 2: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

ii

Page 3: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Table des matieres

Avant Propos v

Introduction 10.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Bref historique d’Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3 Organisation Administrative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1 Modeles en couches Osi et Tcp/Ip 31.1 Modele Osi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1 Interet d’un modele en couches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Contenu des couches Osi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Modele Tcp/Ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2.1 Couches Tcp/Ip et Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2.2 Adressage et routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.3 Adressage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.4 Routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2.5 Multiplexage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.6 Interconnexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.3 Acces au reseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.1 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3.2 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.4 Resolution d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.5 Dynamic Host Configuration Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Protocoles de la couche application 192.1 Hypertext transfert protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2 Post Office Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3 Simple Message Transfert Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Programmation Reseau 233.1 Utilisation de services existants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 Applications serveur pour le Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Securite, cryptologie 274.1 Reflexes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1.1 Quelques points de vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.1.2 Informations complementaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.1.3 Protection minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2 Elements de cryptologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2.2 Algorithmes a cle secrete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.2.3 Protocole d’echange de cles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2.4 Algorithmes a cle publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2.5 Condenses de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3.1 Probleme d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3.2 Signature numerique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3.3 Pretty Good Privacy, OpenPGP, GnuPG - Securisation des courriels . . . . . . . . . . . . . . . 424.3.4 Tuneling - Cryptage des communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.3.5 Reseaux sans fil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

iii

Page 4: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

4.3.6 Securite dans les couches basses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.4 Telephones �intelligents� . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Table des figures 49

Bibliographie 51

iv

Page 5: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Avant Propos

Le siecle qui vient de commencer est sans aucun doute celui de la communication. Une masse toujours croissanted’informations circule grace a un large eventail de technologies. L’une d’entre elles, les reseaux, est intimement lieea l’informatique et a connu le meme essor. Dans ce cours, qui ne constitue qu’une des facettes des reseaux (plusparticulierement Tcp/Ip et Internet), nous nous attacherons a presenter un certain nombre de principes, de normes etde technologies. Etre exhaustif (surtout en matiere de normes et de technologies) necessiterait un document beaucoupplus consequent et a cet effet, je ne peux que recommander au lecteur interesse les quelques ouvrages qui figurentdans la partie bibliographie de ce document. Dans [6], deja plusieurs fois reedite, vous trouverez une presentationexhaustive des differents aspects des reseaux, en particulier en ce qui concerne les problemes de transmission qui nesont absolument pas abordes ici. Le lecteur particulierement interesse par internet et par les protocoles de haut niveautrouvera son bonheur dans [5]. La clarte des exposes de [8] ne manquera pas de seduire le lecteur patient (l’ouvrageest un peu long). La personne avide d’approfondir ses connaissances en matiere de securite pourra consulter [3] quiest un peu vieillissant, mais assez exhaustif, ou bien [1], plus oriente vers la pratique et les outils relatifs a la securite(et plus racoleur aussi...). La programmation reseau en C est au programme de [2] et une vue d’ensemble ainsi quedes petits exercices (dont certains ont ete repris ici) est disponible dans [9]. Enfin, la bibliotheque standard de Pythoncomportant des outils pour la programmation reseaux, n’importe quel ouvrage sur Python comporte generalement unchapitre sur le sujet. Citons par exemple [7] et [4].Ce document est organise en quatre grandes parties. La premiere presente les fondements d’internet sans parler desprotocoles applicatifs que tout le monde connaıt de nom comme Http, Smtp... La seconde partie est consacree acertains de ces protocoles applicatifs. La troisieme partie aborde le probleme de la programmation reseau, en utilisantle langage Python. Enfin, la derniere partie presente certains des aspects lies a la securite, en insistant particulierementsur la cryptographie, mais en faisant une impasse totale sur les problemes humains.Enfin, de nombreuses sources en ligne ont ete consultees pour ecrire ce document. Les plus importantes sont certaine-ment :

— L’encyclopedie libre Wikipedia : http://fr.wikipedia.org— L’encyclopedie informatique Ccm : http://www.commentcamarche.net— L’excellentissime Ars Cryptographica : http://www.apprendre-en-ligne.net/crypto— Un certain nombre d’articles de magazines : Pour la science, Tangente, etc...

Licence

Ce travail est mis a disposition sous licence Creative Commons by nd (paternite, pas de modification).

http://creativecommons.org/licenses/by-nd/3.0

v

Page 6: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

vi

Page 7: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Introduction

0.1 Terminologie

La definition suivante est extraite de l’encyclopedie libre Wikipedia :

Un reseau informatique est un ensemble d’equipements interconnectes qui servent a acheminer un fluxd’informations. Sa naissance est le fruit du mariage entre Informatique et Telecommunications.

Les equipements qui constituent le reseau sont les nœuds, et ces nœuds utilisent des protocoles de communication.L’objectif d’un reseau est le mise en commun et l’echange d’informations.Selon la distance/surface couverte par le reseau, on le caracterise en :

— Pan : reseau personel, centre sur un utilisateur (communication par infra-rouge, usb, bluetooth...)— Lan : reseau local, s’etend sur une habitation, ou un site.— Man : reseau metropolitain, a l’echelle d’un campus ou d’une ville.— Wan : reseau etendu (Wide), au moins a l’echelle d’un pays. Le plus grand Wan est Internet.

On appelle topologie physique du reseau la facon (au sens topologique) dont sont relies les nœuds. Les types d’inter-connexions physiques les plus connues sont :

— en bus (fig : 1(a)) ;— en anneau (fig : 1(b)) ;— en etoile (fig : 1(c)) ;

(a) Bus (b) Etoile

(c) Anneau

Figure 1 – Quelques topologies physiques de reseaux informatiques

1

Page 8: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Naturellement, plus le reseau est grand, plus il est probable que sa topologie soit mixte.Dans les reseaux qui nous interessent, la communication sera toujours bidirectionnelle et pourra etre :

half-duplex : la ligne transmet alternativement dans un sens puis dans l’autre.

full-duplex : la ligne peut transmettre simultanement dans les deux sens.

0.2 Bref historique d’Internet

L’�inventeur� du Web, Tim Berners Lee propose une histoire du developpement d’Inter-net en 40 cartes sur http://www.vox.com/a/internet-maps.Les reseaux informatiques tels que nous les connaissons aujourd’hui trouvent leur originedans les reseaux centralises des annees 50-60 (un serveur central et des terminaux). En1969 nait le reseau Arpanet (Advanced Research Projects Agency Network), finance par ledepartement de la defense americain (DoD). Ce reseau n’est pas centralise pour mieuxresister aux pannes et relie bientot les cotes est et ouest des Etats-Unis. Durant les annees70, le protocole Tcp/Ip fait peu a peu son apparition (sans encore porter ce nom), et lespremieres applications de courrier electronique, transfert de fichier, et connexion a distancefont leur apparition alors que d’autres universites viennent greffer leurs machines surArpanet. En 1983, Tcp/Ip devient un standard et Arpanet est divise en un reseau militaireet un reseau universitaire. Sur ce dernier viendra se greffer en 1985 le reseau de la Nsf (National Science Fundation).Depuis, ce regroupement de reseaux, nomme Internet, ne cesse de croıtre. Le nombre de machines connectees est estimea 400 millions en 2006 (source Internet System Consortium), soit 10 fois plus qu’en 1999 et 100 fois plus qu’en 1994.

0.3 Organisation Administrative

Geek & Poke : http://geek-and-poke.com

Le fonctionnement d’Internet repose sur la cooperation volon-taire de plusieurs organismes :

Internet Society (Isoc) : Association a vocation interna-tionale regroupant des personnes physiques et d’autresassociations. Elle chapeaute en particulier l’Iab.

Internet Architecture Board (Iab) : prend en chargeles grandes orientations d’Internet par le biais de l’In-ternet Research Task Force (Irtf) et de l’Internet Engi-neering Task Force (Ietf).

Internet Engineering Task Force (Ietf) : gere la crea-tion et la vie de la plupart des standards utilises surInternet et edite les Rfc (Request For Comments)(http://ww.ietf.org/rfc/). Ce groupe est ouvert atoute personne ayant des connaissances suffisantes pourparticiper a l’elaboration d’un standard.

Internet Corporation for Assigned Names and Numbers(Icann) : gere l’attribution des noms de domaines et desadresses Ip (organisation internationale sans but lucra-tif) :

Institute of Electrical and Electronics Engineers (Ieee) :Association a but non lucratif de professionnelsde l’electronique, de l’informatique, et des telecommunications.L’Ieee publie de nombreux standards utlises par Internet.

Renater (Reseau national de telecommunications pour latechnologie, l’enseignement et la recherche) : est le reseauinformatique Francais qui relie les differentes Universiteset centres de recherches Francais.

2

Page 9: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Chapitre 1

Modeles en couches Osi et Tcp/Ip

Dans ce chapitre, nous allons detailler le principe d’un modele en couches et donner l’exemple incontournable dumodele Osi. Puis, dans un longue section, nous detailerons le modele en couches Tcp/Ip en insistant sur le formatagedes informations issues de ses trois couches basses.

1.1 Modele Osi

1.1.1 Interet d’un modele en couches

Par modele en couches Osi, nous designerons le modele d’architecture developpe par l’Organisme de StandardisationInternational. Ce modele ne sert toutefois que de reference pour inspirer d’autres architectures pour l’interconnexionde systemes (comme Tcp/Ip).Le modele Osi est decrit succinctement sur la figure 1.1

7

6

5

4

3

Liaison de donnees2

1 Physique

Reseau

Transport

Session

Presentation

Application

Figure 1.1 – Modele Osi

La particularite d’un modele en couches est la suivante :— A chaque couche, on associe un type de traitement de donnees.— Une couche ne peut communiquer qu’avec les couches qui lui sont adjacentes.— Lors de la communication entre deux systemes, nous pouvons �faire comme si� les couches de niveau egal

pouvaient directement communiquer.Pour bien comprendre ce systeme, au final assez simple, nous pouvons imaginer l’image suivante : Dans une piece A, ily a un homme parlant uniquement francais (ha3), un homme parlant a la fois francais et chinois (ha2) et un homme

3

Page 10: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

parlant uniquement chinois qui dispose d’un telephone (ha1). Dans une autre piece, la piece B, il y a trois hommesimilaires (hb1, hb2 et hb3).Avec cette analogie, notre schema de modele en couche deviendrait celui de la figure 1.2.

3

2

1 Communication

Traduction

Expression francaise

Figure 1.2 – Structure en couche pour l’analogie du traducteur

L’homme parlant francais ne peut faire que deux choses : parler a l’interprete ou ecouter ce que celui-ci dit en francais.L’interprete en revanche, peut parler a l’homme qui ne parle que francais ou a l’homme qui a le telephone, il peutaussi ecouter ce que dit chacun d’eux. Enfin l’homme qui a le telephone ne peut parler qu’a l’interprete ou ecouter cequ’il dit mais, il peut aussi communiquer avec une autre �pile� situee dans une autre piece (figure 1.3).

3

2

1 Communication

Traduction

Expression francaise 3

2

1 Communication

Traduction

Expression francaise

Piece A Piece B

Figure 1.3 – Deux systemes de traduction qui communiquent

En effet, ha1 peut parler a hb1 qui a aussi un telephone et parle aussi chinois. De meme, hb1 peut communiquer avechb2, qui peut communiquer avec hb3.Finalement, les deux personnes qui parlent uniquement francais peuvent dialoguer via le systeme de couches, sansmeme avoir connaissance de ce qui a ete necessaire a cette communication. Il suffit que ha3 prononce une phrase, celleci sera traduite par ha2, dite au telephone par ha1, repetee par hb1, traduite par hb2 et ecoutee par hb3. Celui-ciformulera sa reponse, qui sera traduite par hb2, prononcee par hb1, ecoutee par ha1, traduite par ha2 et comprisepar ha3.Lors du dialogue entre deux couche de niveau 3, on peut donc faire abstraction de la pile inferieure, car on n’abesoin que d’un moyen de communiquer avec la couche immediatement inferieure (dans notre exemple, il suffit deparler francais pour que le traducteur comprenne). De la meme maniere, si au lieu d’utiliser le chinois, on utilisaitle grec ancien comme langue intermediaire, cela impliquerait de modifier les couche 1 et 2, mais cela ne perturberaitabsolument pas ha3 et hb3, qui ne se rendraient pas compte du changement.

1.1.2 Contenu des couches Osi

Pour memoire, voici ce que doivent contenir les couches Osi :

Physique : transfert des donnees, details electroniques, electriques et mecaniques de la liaison ;

Liaison : etablissement et controle de la liaison logique, acheminement des blocs de donnees, controle les erreurs ;

Reseau : routage de l’information, adressage ;

Transport : transmission de bout en bout, reassemblage des donnees, multiplexage, controle de flux ;

Session : gestion et synchronisation du dialogue ;

Presentation : mise en forme de l’information, cryptage, compression ;

Application : services pour l’utilisateur, transfert de fichier, courrier electronique...

4

Page 11: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

1.2 Modele Tcp/Ip

1.2.1 Couches Tcp/Ip et Encapsulation

Le modele utilise pour Tcp/Ip, bien qu’inspire du modele Osi, ne contient que quatre couches (figure 1.4).

4 Application

Application et processusutilisant le reseau

3 Transport

Service d’acheminementdes donnees de bout enbout

2 Internet

Definition du datagrammeet routage des donnees

1 Acces au reseau

Routines pour acceder aureseau physique

Figure 1.4 – Couches Tcp/Ip

Avant de detailler le contenu de ces quatre couches, nous allons presenter ce qu’est l’encapsulation : lorsque des donneesissues de la couche application sont emises vers la couche transport, cette derniere conserve les donnees originales, etajoute des informations propres a sa fonction au debut des donnees initiales. On dit alors que les donnees de la coucheapplication sont encapsulees dans une structure plus grande, qui sera emise par la couche transport. Il en est de memea tous les niveaux, si bien que chaque couche ajoute ses propres informations a l’information initiale, comme indiquesur la figure 1.5.

Coucheapplication

Couchetransport

Coucheinternet

Couche accesau reseau

en-tetecouche reseau

en-tete coucheinternet

en-tete couchetransport

donneesinitiales

en-tete coucheinternet

en-tete couchetransport

donneesinitiales

en-tete couchetransport

donneesinitiales

donneesinitiales

Figure 1.5 – Encapsulation Tcp/Ip

Chaque couche n’a pas connaissance de l’encapsulation realisee par les autres couches. Par exemple, lorsque la coucheinternet recoit des informations, ces informations sont constituees de l’en-tete de la couche transport et des donneesinitiales issues de la couche application. Mais pour la couche internet, il s’agit juste d’informations, qui peuvent contenirn’importe quoi, et auxquelles elle rajoute son propre en-tete. Lors de la remontee d’informations vers l’application,chaque couche se contente de retirer son propre en-tete (qui est bien sur normalise) avant de transmettre les donneesa la couche superieure.Meme si le terme le plus employe, lorsqu’on parle d’internet est Tcp/Ip, il convient de preciser que deux mecanismessont employes :

5

Page 12: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

— Tcp/Ip pour Transmission Control Protocol / Internet Protocol, qui concerne l’emission de donnees aveccontrole de la bonne reception.

— Udp/Ip pour User Datagram Protocol / Internet Protocol, qui concerne l’emission de donnees sans controle dela bonne reception.

La difference se situe au niveau de la couche Transport : soit on utilise Tcp, soit on utilise Udp. Dans les deux cas,les donnees transitant entre les couches portent des noms differents. On parle de trame en ce qui concerne les donneesissues de la couche reseau, de datagramme Ip en ce qui concerne les donnees issues de la couche internet, de segmentTcp ou de paquet Udp en ce qui concerne les donnees issues de la couche transport, et de flux Tcp ou de message Udpen ce qui concerne les donnees issues de la couche application selon que le protocole utilise dans la couche transportest Tcp ou Udp.Nous allons a present detailler la fonction de chacune de couches.

Acces au reseau

La couche d’acces au reseau recoit des datagrammes Ip et doit pouvoir transmettre des trames a travers le reseauphysique. Elle est donc dependante du materiel (types de peripheriques sur l’ordinateur, type de reseau...). C’est lacouche d’acces au reseau qui doit etre modifiee lors de l’utilisation d’un nouveau moyen de communication (reseausans fil, modem telephonique, modem Adsl, carte Ethernet...). C’est aussi dans cette couche que se situe la resolutiond’adresses, qui permet de faire correspondre une adresse Ethernet a une adresse Ip (nous en reparlerons). Le contenude l’en-tete ajoute par cette couche depend du type de reseau physique. Nous detaillerons cet en-tete un peu plus loin,dans le cas d’un reseau de type Ethernet uniquement.

. Documents de reference : Rfc 826, Rfc 894

Internet

Internet Protocol Le protocole le plus important de le couche Internet est Ip. Il existe en deux versions : Ipv4,qui est utilise actuellement, et Ipv6, qui n’est pas encore tres repandu mais devrait peu a peu remplacer Ipv4 1. Leprotocole Ip prend en charge l’adressage sur internet (on parle d’adresse Ip), le routage des datagrammes et l’eventuellefragmentation des datagrammes en datagrammes plus petits.Un datagramme Ipv4 est represente figure 1.6.

version long. type de service taille totale

octet 0 octet 1 octet 2 octet 3

Mot 0

Mot 1

Mot 2

Mot 3

Mot 4

Mot 5

identification flags decalage de fragment

duree de vie protocole somme de controle

adresse source

adresse destination

options bourrage

donnees issues de la couche transport

Figure 1.6 – Datagramme Ipv4

L’en-tete Ip (nous dirons maintenant Ip pour Ipv4) est constitue d’au moins cinq mots de quatre octets. Nous allonsdetailler chacun des champs :

Version : Numero de version d’Ip (4 pour Ipv4).

Long. : Longueur de l’en-tete exprime en nombre de mots de quatre octets. La valeur courante est 5, lorsqu’il n’ya pas d’option.

Type de service : Cette valeur decrit �l’importance� du datagramme, et donc s’il doit etre traite prioritaire-ment. Les trois premiers bits codent la priorite (000 pour un paquet ordinaire et 111 pour un paquet utile aubon fonctionnement du reseau, en passant par toutes les valeurs intermediaires), les bits 3, 4 et 5 permettentd’exprimer une demande de retard faible, de debit eleve, ou bien de taux d’erreur faible. Enfin, les bits 6 et 7ne sont pas utilises.

Taille totale : Indique la taille totale en octets du datagramme, en-tete compris (le total est donc limite a 216−1 =65 535 octets).

1. A l’heure ou ces lignes sont ecrites, l’Icann (Internet Corporation for Assigned Names and Numbers) a annonce la validation d’Ipv6et son implantation sur les serveurs racine. Ipv6 cohabitera avec Ipv4 pendant une vingtaine d’annees afin d’etre completement teste.

6

Page 13: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

Identification : Chaque fragment d’un datagramme fragmente doit avoir le meme numero d’identification quipermettra de les apparier. L’ordre d’appariement est obtenu grace au decalage.

Flags : Code sur trois bits. Le premier n’est pas utilise, le second, s’il est a 1 signifie qu’il ne faut pas fragmenterce datagramme, et le troisieme, s’il est a 1 signifie que le datagramme est issu d’une fragmentation et n’est pasla derniere partie.

Decalage du fragment : Indique la position relative du fragment en blocs de 8 octets dans le datagrammecomplet. Pour le datagramme initial, le decalage est de 0.

Duree de vie : Exprimee en secondes, elle est diminuee d’au moins une unite a chaque passage par le protocoleIp (a chaque routeur par exemple). Si elle prend la valeur 0, le datagramme est efface.

Protocole : Indique de quel protocole, au niveau de la couche transport, le datagramme est issu. Ceci permet,lors de la �remontee� des paquets de transmettre les donnees au bon protocole de la couche transport. Lesvaleurs usuelles sont 1 (Icmp), 2 (Igmp), 6 (Tcp), 17 (Udp) 2.

Somme de controle : Permet de verifier l’integrite de l’en-tete. La somme est le complement a 1 sur 16 bits dela somme des complements a 1 sur 16 bits de chaque mot de deux octets de l’en-tete (pendant le calcul, lechamps somme de controle est pris egal a 0).

Adresse source : Contient l’adresse Ip de l’expediteur du datagramme.

Adresse destination : Contient l’adresse Ip du destinataire du datagramme.

Options : Un en-tete Ip peut contenir plusieurs options, si bien que sa taille peut finalement depasser les cinqmots de quatre octets. Nous ne detaillerons pas ici les options (voir la Rfc).

Bourrage : Ce champs de taille variable ne contient que des 0, et permet d’assurer que l’en-tete Ip a une longueuren octets multiple de quatre.

I Exemple :

0x0000: .... .... .... .... .... .... .... 4500 ..............E.

0x0010: 0054 0000 4000 4001 7216 0a10 5a46 0a10 .T..@[email protected]..

0x0020: 5a2d .... .... .... .... .... .... .... Z-..............

Au sujet de la fragmentation des datagrammes, chaque routeur (voir plus loin les details de routage) connaıt la taillemaximale d’un datagramme pouvant etre transporte sur le reseau physique auquel il est connecte (valeur Mtu :Maximal Transmission Unit). Il se peut donc qu’il recoive des datagrammes par un reseau physique qui supporte destailles de paquets plus elevees que le reseau physique vers lequel il doit les envoyer. Dans ce cas, le datagramme estdecoupe en plusieurs datagrammes avant d’etre retransmis.

. Documents de reference : Rfc 791 (Ipv4), Rfc 2460 (Ipv6)

Internet Control Message Protocol Nous venons de detailler le protocole Ipv4. Il n’est cependant pas le seulprotocole de la couche internet. Le protocole Icmp (Internet Control Message Protocol) bien que place au dessus d’Ip(en ce sens qu’il l’utilise) est aussi largement utilise (par abus, nous avons affirme que le champs protocole de l’en-teteIp donnait le code du protocole de la couche transport..., alors qu’Icmp fait partie de la couche internet).Les paquets Icmp sont de taille variable (figure 1.7).

code somme de controle

octet 0 octet 1 octet 2 octet 3

Mot 0

Mot 1

Mot 2

type

message

Figure 1.7 – Paquet Icmp

Selon les valeurs des champs Type et Code, le contenu de la partie Message varie. La somme de controle est lecomplement a 1 de la somme des complements a 1 des mots de 16 bits du message Icmp. Nous allons a presentdetailler les differentes valeurs des champs Type et Code. Le tableau de la figure 1.8 resume les messages qui sont emisen reponse a des datagrammes Ip (pour signaler un probleme par exemple). La derniere colonne du tableau indique lecontenu du mot 1 du paquet Icmp. Dans tous les cas, le mot 2 et les suivants contiendront le debut du datagrammeIp qui a provoque l’emission du message Icmp. Le tableau de la figure 1.9 resume les types et codes Icmp qui ne sontpas emis suite a la reception d’un datagramme. La partie message est detaillee dans la colonne de droite.

2. Icmp et Igmp ne font pas reellement partie de la couche transport.

7

Page 14: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Type Code Signification Contenu du message3 0 Reseau inaccessible Vide3 1 Hote inaccessible id.3 2 Protocole non disponible id.3 3 Port non accessible id.3 4 Fragmentation necessaire mais interdit id.

3 5 Echec d’acheminement source id.11 0 Duree de vie ecoulee avant arrivee a destination id.11 1 Temps limite de reassemblage du fragment depasse id.4 0 Controle de flux (manque de memoire par ex.) id.12 0 Erreur dans l’en-tete 8 premiers bits de mot 1 : numero de l’octet ayant provoque l’erreur.5 0 Redirection sur base reseau Adresse du nouveau routeur5 1 Redirection sur base hote Adresse du nouveau routeur5 2 Redirection sur base reseau et type de service Adresse du nouveau routeur5 3 Redirection sur base hote et type de service Adresse du nouveau routeur

Figure 1.8 – Messages Icmp pouvant etre emis en reponse a des datagrammes Ip

Type Code Signification Contenu du message8 0 Demande d’echo (ping) Deux mots de 16 bits permettant d’identifier la reponse a l’echo0 0 Reponse a une demande d’echo Deux mots de 16 bits permettant d’identifier la reponse a l’echo13 0 Marqueur temporel id. + trois mots de 32 bits contenant les marqueurs temporels14 0 Reponse a un marqueur temporel id.15 0 Demande d’information Deux mots de 16 bits permettant d’identifier la reponse a la demande d’information16 0 Reponse a une demande d’information id.

Figure 1.9 – Messages Icmp n’etant pas emis en reponse a des datagrammes Ip

I Exemple :

0x0020: .... 0800 ac07 731d 0002 27f1 0541 bba3 ......s...’..A..

0x0030: 0500 0809 0a0b 0c0d 0e0f 1011 1213 1415 ................

0x0040: 1617 1819 1a1b 1c1d 1e1f 2021 2223 2425 ...........!"#..

0x0050: 2627 2829 2a2b 2c2d 2e2f 3031 3233 3435 &’()*+,-./012345

0x0060: 3637 67

. Documents de reference : Rfc 792

Transport

Deux protocoles se partagent la couche transport : Tcp (Transmission Control Protocol) et Udp (User DatagramProtocol). La difference majeure entre les deux est que Tcp est oriente connexion et s’assure de la bonne receptiondes paquets. Au contraire, Udp fournit un service sans connexion. Les datagrammes Udp peuvent etre perdus sansque l’emetteur en soit informe.

User Datagram Protocol L’en-tete Udp (User Datagram Protocol) est forme de deux mots de 32 bits (figure 1.10).

port destination

octet 0 octet 1 octet 2 octet 3

Mot 0

Mot 1

port source

taille somme de controle

donnees issues de la couche application

Figure 1.10 – En-tete Udp

Port source : Permet de reperer l’application emettrice.

Port destination : Permet de reperer l’application receptrice.

Taille : Longueur totale du paquet, en-tete compris.

Somme de controle : Complement a 1 sur 16 bits de la somme des complements a 1 sur 16 bits des mots de 16bits de l’en-tete, des donnees et du pseudo-en-tete (voir plus loin).

Le pseudo en-tete est utilise dans la somme de controle. Il ne figure pas dans le paquet, mais Udp le fourni a Ip pourque celui-ci l’utilise lors de la creation de son propre en-tete (figure 1.11).

Adresse source : Adresse Ip de l’emetteur.

8

Page 15: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

protocole longueur Udp

octet 0 octet 1 octet 2 octet 3

Mot 0

Mot 1

Mot 2 zeros

adresse destination

adresse source

Figure 1.11 – Pseudo en-tete Udp

Adresse destination : Adresse Ip du destinataire.

Zeros : Octet ne contenant que des zeros.

Protocole : Numero de protocole identifiant Udp (17).

Longueur Udp : Longueur du paquet en octets, sans le pseudo-entete.

En raison de son caractere non-sur, Udp est principalement utilise pour la resolution de noms (Dns) ou dans le casde petits messages.

I Exemple :

0x0020: .... 008a 008a 00f1 6a69 .... .... ....

. Documents de reference : Rfc 768

Transmission Control Protocol L’entete Tcp (Transmission Control Protocol) est forme d’au moins cinq motsde 32 bits, comme indique figure 1.12.

port destination

octet 0 octet 1 octet 2 octet 3

Mot 0

Mot 1

Mot 2

Mot 3

Mot 4

Mot 5

numero de sequence

numero d’accuse de reception

somme de controle pointeur urgent

bourrageoptions

fenetredecalage (4) reserve (6) flags (6)

port source

donnees issues de la couche transport

Figure 1.12 – En-tete Tcp

Port source : Permet de reperer l’application emettrice.

Port destination : Permet de reperer l’application receptrice.

Sequence : Utilise pour la synchronisation (voir plus loin).

Numero d’accuse de reception : Utilise pour la synchronisation (voir plus loin).

Decalage : Debut des donnees, par rapport au debut du paquet, exprime en nombre de mots de 32 bits (sur 4bits).

Reserve : Six bits non utilises actuellement.

Flags : Six drapeaux de 1 bit :

Urg : Pointeur de donnees urgentes significatif.

Ack : Accuse de reception significatif.

Psh : Fonction Push.

Rst : Reinitialisation de la connexion.

Syn : Synchronisation des numeros de sequence.

Fin : Fin de transmission.

Fenetre : Nombre d’octets que le recepteur souhaite recevoir sans renvoyer d’accuse de reception (voir plus loin).

Somme de controle : Complement a 1 sur 16 bits de la somme des complements a 1 sur 16 bits de l’en-tete etdes donnees (le champs somme de controle sera pris nul pour le calcul).

9

Page 16: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Pointeur urgent : Position d’une donnee urgente, exprimee comme le decalage par rapport au numero de sequence.

Options : Un en-tete Tcp peut contenir ou non des options. Nous ne les detaillerons pas ici (voir Rfc).

Bourrage : Suite de 0 pour que la longueur de l’en-tete soit multiple de 32 bits.

I Exemple :

0x0020: .... 0015 835d 7639 7848 fce5 80a9 8018 .....]v9xH......

0x0030: 2338 e818 0000 0101 080a 31cb b8ed 01f7 #8........1.....

0x0040: 7b19 .... .... .... .... .... .... .... {...............

Du fait que Tcp est un protocole avec connexion, lors de la transmission d’un flux Tcp par la couche application, ondistingue le debut de la connexion, le transfert des donnees, puis la fin de la connexion. De plus, l’ordre des segmentstransmis a son importance. En raison du fonctionnement d’Ip, il se peut que les segments n’arrivent pas a destinationdans le meme ordre que lorsqu’ils ont ete emis. Aussi, l’ordre des segments doit pouvoir etre retrouve. Ce rearrangementest possible grace au numero de sequence, qui permet de reperer l’ordre des segments. La phase de connexion a entreautres pour role de permettre aux deux piles communiquantes de s’echanger leurs numeros de sequence initiaux.L’etablissement d’une connexion se fait en trois phases. Nous allons supposer que la machine A souhaite se connectera la machine B. A envoie un premier segment a B, avec le drapeau syn positionne. Ceci permet a B de savoir que Asouhaite se connecter et de recuperer son numero de sequence. B repond a A avec les drapeaux syn et ack positionnes.Ceci permet a A de savoir que B a bien recu son premier segment (drapeau ack) et de connaıtre le numero de sequencede B. Puis, A peut transmettre les premieres donnees a B, en mettant le drapeau ack dans le premier segment, ce quipermet a B de savoir que A a bien recu son numero de sequence initial (figure 1.13).

Machine A

syn

syn, ack

ack

Machine B

Figure 1.13 – Etablissement d’une connexion Tcp

Les deux champs numero de sequence et numero d’accuse de reception sont utilises pour numeroter les octets transmisdans le flux Tcp. Supposons que A souhaite transmettre 2000 octets a B. Chaque segment envoye contiendra commenumero de sequence le numero d’ordre du premier octet de donnees du segment dans le flux. Le numero de sequenceinitial est generalement choisi aleatoirement. Dans la suite, nous noterons ce numero isn. Precisons que dans lanumerotation des octets transmis, seuls les donnees et les deux drapeaux syn et fin comptent (les deux drapeauxcomptent pour un octet chacun).Le champs numero d’accuse de reception permet comme son nom l’indique d’accuser reception d’une partie du flux.Il contient le numero de sequence que le recepteur s’attend a present a recevoir. Si le recepteur a par exemple recu3 segments contenant chacun 110 octets, alors il s’attend a recevoir dans le prochain segment le numero de sequenceisn+331. Il accusera donc reception du troisieme segment en indiquant dans le champs numero d’accuse de receptionla valeur isn+331 et en positionnant le drapeau ack. Lorsqu’une machine accuse reception, le champs Fenetre estaussi renseigne. Il indique combien d’octets le recepteur est encore dispose a recevoir. Ceci permet au recepteur decontroler la vitesse du flux qui lui est emis. La machine receptrice n’a pas obligation d’accuser reception de chaquesegment (cela ralentirait beaucoup les connexions). L’emetteur va donc emettre meme s’il n’a pas recu tous les accusesde reception. La quantite d’information qu’il pourra ainsi emettre sans attendre d’accuse de reception ne devra pasdepasser la taille de la fenetre. Un exemple est donne figure 1.14

Donnees deja recues par B

Segmentemis

301201 401101 501 601 901801 1001701

Taille de la fenetre

no d’accusede reception

no d’accusede reception

no desequence

Figure 1.14 – Utilisation du numero d’accuse de reception pour reguler le flux

Le dernier accuse de reception recu par A comportait comme numero d’accuse de reception isn+401. La machine Asait donc que B a recu les 400 premiers octets. Dans le segment accusant reception, B a indique pour taille de fenetre

10

Page 17: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

la valeur 500. A sait, par consequent, qu’il pourra transmettre les donnees jusqu’a l’octet 900 inclus sans attendrede nouvel accuse de reception. Si une fois l’octet 900 transmis, A n’a toujours pas de nouvel accuse de reception, Aattend d’en recevoir un sans plus rien transmettre. Si entre temps (avant la transmission de l’octet 900) A a recu unaccuse de reception, il recalcule le numero d’ordre du dernier octet qu’il pourra transmettre sans attendre de nouvelaccuse de reception.

I Exemple :

A>B

0x0020: .... 835d 0015 fce5 80a8 0000 0000 a002 ...]............

0x0030: 16d0 1ec4 0000 0204 05b4 0402 080a 01f7 ................

0x0040: 7b07 0000 0000 0103 0300 {.........

B>A

0x0020: .... 0015 835d 7639 7847 fce5 80a9 a012 .....]v9xG......

0x0030: 2338 3cc4 0000 0101 080a 31cb b8db 01f7 #8<.......1.....

0x0040: 7b07 0103 0300 0204 0514 {.........

A>B

0x0020: .... 835d 0015 fce5 80a9 7639 7848 8010 ...]......v9xH..

0x0030: 16d0 743e 0000 0101 080a 01f7 7b19 31cb ..t>........{.1.

0x0040: b8db ..

B>A

0x0020: .... 0015 835d 7639 7848 fce5 80a9 8018 .....]v9xH......

0x0030: 2338 e818 0000 0101 080a 31cb b8ed 01f7 #8........1.....

0x0040: 7b19 .... .... .... .... .... .... .... {...............

Parmi les autres drapeaux, rst permet de couper brutalement une connexion.La fermeture d’une connexion s’effectue a la maniere de son ouverture : La machine A qui desire fermer la connexionenvoie les drapeaux fin et ack. La machine B repondra avec les drapeaux fin et ack (ce dernier pour acquitter ledrapeau fin de A). Enfin la machine A confirmera la reception en envoyant un drapeau ack.Une connexion Tcp peut se trouver dans plusieurs etats, dont les noms sont normalises. Nous listons ici les principaux :

Listen : Attente d’une requete de connexion externe.

Established : La connexion s’est effectuee.

Closed : Pas de connexion.

Les autres etats (nombreux) decrivent les differentes etapes de l’etablissement ou de la fermeture d’une connexion.

. Documents de reference : Rfc 793

1.2.2 Adressage et routage

L’adressage utilise sur internet est l’adressage Ip. Il depend de la couche internet. Nous allons ici detailler l’adressageIpv4 et nous signalerons a la fin quelques ameliorations prevues pour Ipv6.L’acheminement des donnees d’une application de la machine A vers une application de la machine B utilise troisprincipes : l’adressage, le routage et le multiplexage. L’adressage concerne le moyen de cibler la machine destination,le routage le moyen de la joindre et le multiplexage le moyen de joindre l’application sur la machine.

1.2.3 Adressage

Une adresse Ip (nous dirons maintenant Ip pour Ipv4) est un nombre de 32 bits, souvent represente en notationdecimale pointee par une serie de 4 nombres (de 0 a 255) : 10.16.83.27. Precisons tout de suite qu’une adresse Ipn’est pas l’adresse d’une machine sur le reseau, mais l’adresse d’une interface reseau (une machine peut avoir plusieursadresses Ip si elle a plusieurs interfaces). Sur le schema de la figure 1.15 par exemple, les machines D et G ont deuxadresses Ip car elles sont reliees a deux reseaux. Ainsi, la machine D est vue par B avec l’adresse 192.168.81.1, alorsqu’elle est vue par E avec l’adresse 10.16.83.24.

Composition d’une adresse Une adresse Ip comporte deux parties : l’adresse du reseau et l’adresse de l’hote dansle reseau. Les k premiers bits constituent l’adresse du reseau et les 32 − k derniers celle de l’hote dans le reseaux. Lavaleur de k etant variable pour chaque reseau, la donnee seule d’une adresse sur 32 bits ne permet par de differencierle reseau de l’hote. Une adresse devrait donc toujours etre accompagnee de la donnee du masque, qui peut etre indiquede deux facons differentes :

11

Page 18: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Internet

10.16.81.254 10.16.90.70 10.16.83.27

10.16.83.24

192.168.81.2192.168.81.6192.168.81.10

192.168.81.1

E

D

CBA

194.10.10.10

G F

Figure 1.15 – Trois reseaux interconnectes

— soit en donnant la valeur de k : 192.168.81.1/24 signifie que les 24 premiers bits de l’adresse (192.168.81)designent le reseau et que les autres (1) designent l’hote ;

— soit en donnant le masque en notation decimale pointee (en mettant a 1 les bits qui correspondent au reseauet a 0 ceux qui correspondent a l’hote : 192.168.81.1/255.255.255.0

Adresses speciales Il y a plusieurs facon d’adresser les systemes. Celle dont nous venons de parler concerne lesadresses unipoint (ou unicast). Un reseau entier peut etre adresse a l’aide d’adresses de diffusion (ou adresses broad-cast). Pour cela, il suffit de mettre a 1 tous les bits de la partie hote de l’adresse. Sur la figure 1.15, les machines A,B, C et D (en supposant que le masque de reseau est 24) peuvent etre adresses par : 192.168.81.255. Enfin, il existeaussi les adresses multipoint (ou multicast), qui designent des groupes de machines (nous n’en parlerons pas ici).En raison de ces differentes methodes d’adressage, tous les numeros d’hotes ne sont pas permis. En particulier, lereseau 192.168.81.0/24 ne peut pas avoir d’hote 255 (c’est l’adresse de diffusion). De meme, le reseau lui meme (sansparler des hotes) peut etre designe par une adresse Ip avec tous les bits hote a 0 : 192.168.81.0. En consequence l’hote0 ne peut pas exister non plus.Enfin :

— les adresses Ip dont le premier octet commence par 1110 (premier octet compris entre 224 et 239) sont reserveespour le multipoint ;

— les adresses Ip dont le premier octet commence par 1111 (premier octet superieur ou egal a 240) sont reservees ;— les adresse Ip dont le premier octet vaut 127 sont reservees pour l’adresse de rebouclage (ou adresse loopback).

Notons pour finir que le masque n’est pas necessairement un multiple de 8. C’est souvent le cas en raison de la simplicited’ecriture, mais ce n’est en rien necessaire.

Sous reseaux Un reseau particulier peut etre divise en sous-reseaux. Ceci afin que sa topologie reflete une structureparticuliere. Sur la figure 1.2.3, le reseau 192.168.81.0/24 a ete divise en quatre sous reseaux :

— 192.168.81.0/26— 192.168.81.64/26— 192.168.81.128/26— 192.168.81.192/26

Notez la facon de diviser le reseau. Alors que le reseau global peut comporter 254 hotes, chacun des quatre sous-reseauxne peut en comporter que 62.Une seule machine (M) est reliee a internet, par le bais du reseau 195.10.10.0/24. La machine M fait office de routeurpour chacun des sous-reseau. Vu de l’exterieur (de 195.10.10.0/24), il existe un seul reseau 192.168.81.0/24, sur lequel

12

Page 19: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

Reseau192.168.81.0/26

192.168.81.2192.168.81.4

192.168.81.3

BA

C

Reseau192.168.81.128/26

192.168.81.130192.168.81.131

192.168.81.132

IH

G

Reseau192.168.81.64/26

192.168.81.66192.168.81.67

192.168.81.68

K

J

L

Reseau192.168.81.192/26

192.168.81.194

192.168.81.196

E

F

D

192.168.81.195

M

192.168.81.1 192.1

68.81

.65

192.168.81.193

192.168.81.129

Internet

195.10.10.3

Reseau195.10.10.0/24

Figure 1.16 – Decoupage d’un reseau en sous-reseaux

13

Page 20: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

on entre par la machine 195.10.10.3. C’est uniquement en interne que la creation des sous-reseaux est visible.

Conventions d’adresses et de masques Un certain nombre de conventions sur les masques par defaut ont encorecours, meme si elles sont moins utiles aujourd’hui :

— les reseaux de classe A sont ceux pour lesquels le masque vaut 8. Les adresses Ip dont le premier bit est a 0devraient etre dans des reseaux de classe A ;

— les reseaux de classe B sont ceux pour lesquels le masque vaut 16. Les adresses Ip dont les deux premiers bitssont 10 devraient etre dans des reseaux de classe B ;

— les reseaux de classe C sont ceux pour lesquels le masque vaut 24. Les adresses Ip dont les trois premiers bitssont 110 devraient etre dans des reseaux de classe C ;

— enfin, si les 4 premiers bits de l’adresse Ip sont 1110, il s’agit comme nous l’avons vu d’une adresse multipointaussi appelee reseau de classe D.

Un certain nombre de plages d’adresses sont reservees aux reseaux prives, c’est a dire non visibles d’internet (nonconnectes, ou bien derriere une passerelle qui fait de la translation d’adresses, nous developperons cette notion aveccelle des pare-feux) :

— le reseau de classe A 10.0.0.0/8 ;— les 16 reseaux de classe B 172.16.0.0/16 a 172.31.0.0/16 ;— les 256 reseaux de classe C 192.168.0.0/24 a 192.168.255.0/24.

Internet Protocol version 6 Nous avons dit qu’Ipv6 etait le successeur d’Ipv4. Les ameliorations principales sont :— une securite accrue au niveau de la couche Ip ;— des en-tetes simplifies, qui pourront etre traites plus rapidement par les routeurs ;— des adresses sur 128 bits au lieu de 32, qui permettront d’adresser (beaucoup) plus de machines.

1.2.4 Routage

Le routage est la capacite des datagrammes Ip de parvenir a leur destination, meme si la destination n’est pasdirectement connectee a la source. Pour router les datagrammes, les differents hotes disposent d’une table de routage.Cette table indique pour chaque type d’adresse, vers quel destinataire (directement joignable) le datagramme doitetre envoye. Reprenons l’exemple de la figure 1.15 (supposons que les adresses de l’exemple ne sont pas des adressesprivee, que le reseau du bas a pour masque 24 et celui du haut pour masque 20 3) : Si C souhaite communiqueravec A, puisque les deux machines font partie du meme reseau, il n’y a pas besoin de routeur, les datagrammes sontdirectement envoyes de A a C. La table de routage de A indiquera ceci :

Destination Masque Routeur

192.168.81.0 255.255.255.0 0.0.0.0

Cette information signifie : Pour joindre une machine du reseau 192.168.81.0/255.255.255.0, il n’y a pas besoin derouteur (0.0.0.0). De meme si F souhaite communiquer avec E, elle devra avoir dans sa table de routage :

Destination Masque Routeur

10.16.80.0 255.255.240.0 0.0.0.0

Maintenant, que se passe-t-il si A souhaite communiquer avec F ? La machine A doit transmettre son datagramme aD, qui pourra communiquer avec F. La machine A aura donc pour table de routage :

Destination Masque Routeur

192.168.81.0 255.255.255.0 0.0.0.0

10.16.80.0 255.255.240.0 192.168.81.1

La nouvelle ligne signifie que pour atteindre une machine du reseau 10.16.80.0/255.255.240.0, les datagrammes doiventetre transmis a 192.168.81.1 (et ce sera a sa charge de continuer le routage).Naturellement, s’il fallait ainsi preciser une nouvelle route pour chaque reseau, A ne serait pas prete de communiqueravec tout internet. Il existe donc une notion de route par defaut, qui indique quel est le routeur a utiliser au cas ou ledestinataire ne soit pas dans un des reseaux listes de la table de routage. La table de routage de A sera donc :

Destination Masque Routeur

192.168.81.0 255.255.255.0 0.0.0.0

10.16.80.0 255.255.240.0 192.168.81.1

0.0.0.0 0.0.0.0 192.168.81.1

3. En depit du non respect des conventions enoncees precedemment.

14

Page 21: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

Ainsi, tous les datagrammes a destination d’autres reseaux que 192.168.81.0 ou 10.16.80.0 seront diriges vers D. Laseconde ligne de la table de routage n’est donc plus utile.Toutes les machines pourront communiquer si leurs tables de routage sont correctes :

— Table de routage de A, B et C :

Destination Masque Routeur

192.168.81.0 255.255.255.0 0.0.0.0

0.0.0.0 0.0.0.0 192.168.81.1

— Table de routage de F et E :Destination Masque Routeur

10.16.80.0 255.255.240.0 0.0.0.0

192.168.81.0 255.255.255.0 10.16.83.24

0.0.0.0 0.0.0.0 10.16.81.254

— Table de routage de D (dans le cas ou une machine possede plusieurs interfaces, il est utile de faire figurerl’interface concernee par chaque route) :

Destination Masque Routeur Interface

10.16.80.0 255.255.240.0 0.0.0.0 interface 0

192.168.81.0 255.255.255.0 0.0.0.0 interface 1

0.0.0.0 0.0.0.0 10.16.81.254 interface 0

— Table de routage de G :

Destination Masque Routeur Interface

10.16.80.0 255.255.240.0 0.0.0.0 interface 0

192.168.81.0 255.255.255.0 10.16.83.24 interface 0

194.10.10.0 255.255.255.0 0.0.0.0 interface 1

0.0.0.0 0.0.0.0 194.10.10.254 interface 1

si nous supposons que G fait partie d’un reseau de classe C et que le routeur de niveau superieur est 194.10.10.254.

1.2.5 Multiplexage

Le multiplexage est utilise pour que plusieurs applications d’un systeme A puissent communiquer. Dans Tcp/Ip, c’esttout simplement le numero de port qui est utilise a cet effet.

1.2.6 Interconnexion

Il existe plusieurs types de materiels permettant de connecter des reseaux. Nous les passons ici en revue :

Repeteur : couche physique, regenere le signal

Concentrateur (Hub) : couche physique, regenere le signal (sur plusieurs brins)

Pont (Bridge) : couche liaison, relie deux reseaux en triant les adresses physiques (et permet donc de decouperun domaine de collision).

Commutateur (Switch) : couche liaison, relie plusieurs reseaux, apprend dynamiquement les adresse physiques

Routeur (Router) : couche reseau, optimise les parcours en se basant sur l’adresse Ip. Permet de decouper endomaines de diffusion (MAC).

Passerelle (Gateway) : couche application, peut etre utilise comme routeur et interconnecte des systemes heterogenes

1.3 Acces au reseau

A chaque type de reseau physique correspondent des normes particulieres au niveau de la couche acces au reseau selonque les machines communiquent sur un reseau de type Ethernet, Wi-Fi, Adsl etc..Ces normes sont par exemple :

— 802.3 : Ethernet— 802.11 : Wireless Lan (reseaux sans fil)

Dans les deux cas precedents, le materiel qui sert a la connexion (carte reseau) est indentifie a l’aide d’une adresse,appelee adresse Mac (Medium Access Control).

15

Page 22: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Adresses MAC L’adresse Mac (Medium Access Control ) est un numero unique pour chaque materiel. Il est formede six octets. Les trois premiers constituent le numero du constructeur, et les trois derniers, le numero de la carte chezle constructeur.C’est l’adresse Mac, unique pour chaque interface, qui permet au destinataire d’une trame de la faire effectivementremonter vers les couches superieures.

Format de trames Ethernet II Les trames Ethernet II tendent a devenir standard. Leur format est tres simple :— Adresse Mac destination sur 6 octets— Adresse Mac source sur 6 octets— champs type sur 2 octets, indiquant :

— 0x0800 : Ip— 0x0806 : Arp— ...

I Exemple :

0x0000: 0004 75c9 d662 00e0 b148 96ff 0800 4500 ..u..b...H....E.

. Documents de reference : normes IEEE 802.3, Rfc 894, Rfc 1042

1.3.1 Ethernet

Actuellement, la norme Ieee 802.3 permet d’utiliser des debits allant jusqu’a 1 Gb/s. Au fil du temps, des supplementsont ete ajoute a la norme de base. Ils sont designes par une lettre minuscule (ex : Ieee 802.3i). Une nouvelle normeest en cours pour des debits superieurs a 1 Gb/s. Sur un reseau Ethernet, les interfaces reseau ont une adresse unique(au monde) et sont toutes connectees au meme support (on parle de brin Ethernet). Ce support physique peut etre deplusieurs types : cable coaxial, paire torsadee, fibre optique. Sur un brin donne, toutes les machines recoivent toutesles trames Ethernet.Selon le debit, on attribue differents noms au reseau :

— Ethernet : debit de 10 Mb/s— Fast Ethernet : debit de 100 Mb/s— Gigabit Ethernet : debit de 1Gb/s

Le tableau suivant recapitule les debits et les differents supports de transport de l’information avec leur nomenclature :

Nomenclature Support Debit Nom Longueur Norme10Base2 Cable coaxial fin non blinde (RG 58) 10 Mb/s Ethernet 200m 802.310Base5 Cable coaxial epais blinde 10 Mb/s Ethernet 500m 802.310BaseT Paires torsadees 10 Mb/s Ethernet 100m 802.310BaseF Fibre optique 10 Mb/s Ethernet 2km 802.3

100BaseTX 2 paires torsadees 100 Mb/s Fast Ethernet 100m 802.3u100BaseT4 4 paires torsadees 100 Mb/s Fast Ethernet 100m 802.3u100BaseFX 2 Fibres optique 100 Mb/s Fast Ethernet 2km 802.3u1000BaseT 4 paires torsadees 1 Gb/s Gigabit Ethernet 100m 802.3ab1000BaseF Fibre optique 1 Gb/s Gigabit Ethernet 5km 802.3z1000BaseLX Paire de fibres optique 1 Gb/s Gigabit Ethernet 5km/550m 802.3z1000BaseSX Paire de fibres optique 1 Gb/s Gigabit Ethernet 550m/275m 802.3z1000BaseCX 2 paires torsadees 1 Gb/s Gigabit Ethernet 25m 802.3z

10 Gb/s 10 Gigabit Ethernet 802.3ae

. Documents de reference : normes IEEE 802.3, Rfc 894, Rfc 1042

Domaines Mac En ce qui concerne Ethernet, on parle de domaine de collision et de domaine de diffusion.Deux nœuds sont dans un meme domaine de collision si les trames Ethernet dont l’adresse Mac n’est pas l’adresse dediffusion FF:FF:FF:FF:FF:FF sont vues par ces deux nœuds.Deux nœuds sont dans un meme domaine de diffusion si les trames Ethernet dont l’adresse Mac est l’adresse dediffusion FF:FF:FF:FF:FF:FF sont vues par ces deux nœuds.

1.3.2 Wi-Fi

Wi-Fi permet de certifier qu’un materiel particulier est compatible avec la norme Wireless Lan 802.11. Le nom Wi-Fiest aujourd’hui employe pour designer la certification aussi bien que la norme elle-meme.La norme 802.11 permet de relier des appareils tels que des ordinateurs (de bureau ou portables), des assistantspersonnels sur quelques dizaines de metres (quelques centaines en l’absence d’obstacles).De meme que pour Ethernet, la norme 802.11 traite des couches 1 et 2 de la norme Iso. Elle est de meme indicee parune lettre pour en designer des variantes. Les deux plus utilisees sont 802.11b (1999) pour des transmissions allans

16

Page 23: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

juqu’a 11 Mbps, et 802.11g (2003) pour des transmissions allant jusqu’a 54 Mbps. Dans un cas comme dans l’autre lafrequence utilisee est 2.4 GHz.On distingue deux modes de fonctionnement, selon qu’on utilise un point d’acces ou pas. Dans le mode infrastructure(figure 1.17(a)) les nœuds terminaux du reseau (essentiellement des ordinateurs) se connectent a un point d’acces,lui meme eventuellement connecte a d’autres reseaux. Dans le mode ad-hoc, les machines commniquent directemententre-elles, sans passer par un point d’acces (figure 1.17(b)).

(a) Mode infrastructure (b) Mode ad-hoc

Figure 1.17 – Differents modes d’utilisation d’un reseau sans fil

Voici la signification des normes les plus utilisees :

Norme Nom Frequence Portee Debit Remarque

802.11a Wi-Fi 5 5 GHz 10 m 54 Mbits/s802.11b Wi-Fi 2.4 GHz 300 m 11 Mbits/s802.11g 2.4 GHz 54 Mbits/s802.11i Chiffrement des transmissions

802.11(a,b,g)

Du fait de l’absence de fil, ce type de reseaux pose necessairement des problemes de securite. Une section particulieredu chapire 4 est donc consacree aux Wlan

. Documents de reference : norme IEEE 802.11

1.4 Resolution d’adresses

Nous avons vu comment Ip permettait d’acheminer des datagrammes de la machine source vers la machine destination,en faisant des �etapes� sur les differentes passerelles. Nous allons nous interesser maintenant a une de ces etapesparticulieres : comment, en utilisant une adresse Ip, un datagramme est il transmis d’une machine a une autre dumeme reseau ? Pour cela, nous devons redescendre d’un niveau dans les couches Tcp/Ip, puisque nous nous interessonsmaintenant a la transmission sur le reseau physique.Le mecanisme dont nous allons parler permet, a partir d’une adresse Ip, d’obtenir une adresse Ethernet, qui peutetre directement geree par le materiel (carte reseau). Le protocole qui a cette charge est Arp (Address ResolutionProtocol). Ce protocole, plus generalement, permet la conversion d’adresses, dites de protocole (par exemple Ip) enadresses materielles (par exemple Ethernet).Le programme arp maintient sur chaque machine une table de correspondance, qui peut etre consultee ainsi (ex sousWindows, id. sous Unix) :

C:\>arp -a

Interface : 10.16.90.17 on Interface 0x1000003

Adresse Internet Adresse physique Type

10.16.81.1 00-02-55-7b-b6-6c dynamique

10.16.81.254 00-e0-b1-48-96-ff dynamique

10.16.90.2 00-50-ba-65-26-16 dynamique

10.16.90.12 00-10-83-1b-a9-0b dynamique

10.16.90.70 00-04-75-c9-d6-62 dynamique

17

Page 24: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Nous voyons par exemple dans cette table qu’a l’adresse Ip 10.16.90.2 correspond l’adresse Ethernet (ou adresse Mac) :00-50-ba-65-26-16. Si l’adresse Ip a contacter ne figure pas dans la table, le protocole Arp est utilise pour la demander.Pour cela, la machine source emet des trames Arp, contenant l’adresse Ip recherchee, a tout le reseau physique auquelelle est reliee (il suffit de preciser que l’adresse Mac de destination est ff-ff-ff-ff-ff-ff et toutes les cartes se �sentirontconcernees�. Precisons que ces requetes Arp ne traversent pas les routeurs ; elles sont diffusees uniquement dans unseul reseau physique. Lorsqu’une machine recoit une requete Arp qui contient sa propre adresse Ip, elle repond a larequete (et c’est la seule machine a y repondre), indiquant par la meme sa propre adresse Mac. La table de la machinesource peut donc etre mise a jour et le routage Ip effectue.Une requete Arp a la forme indiquee figure 1.4.

esp. adr. m.Mot 0

Mot 1

esp. adr. p. Lm Lp opcode adresse source mat.

adresse source protocole adresse dest. mat. adresse dest protocole

octet 0/1 octet 2/3 octet 4/5 octet 6/7 octet 8/9 octet 10/11 octet 12/13

Figure 1.18 – Requete Arp

Les champs ont la signification suivante :

Espace d’adressage materiel : code indiquant le type d’adresse materiel (1 pour Ethernet)

Espace d’adressage protocole : code indiquant le type d’adresse protocole (0x800 pour Ip)

Longueur adresse materielle : longueur en octets d’une adresse materielles (6 pour Ethernet)

Longueur adresse protocole : longueur en octets d’une adresse protocole (4 pour Ip)

Opcode : type de requete Arp (1 pour requete, 2 pour reponse)

Adr Source materiel : adresse materielle de l’expediteur

Adr Source protocole : adresse protocole de l’expediteur

Adr Dest materiel : adresse materielle de la destination (pas connu pour une requete)

Adr Dest protocole : adresse protocole de la destination

I Exemple :

0x0000: ffff ffff ffff 0004 75c9 d662 0806 0001 ........u..b....

0x0010: 0800 0604 0001 0004 75c9 d662 0a10 5a46 ........u..b..ZF

0x0020: 0000 0000 0000 0a10 5a2d ........Z-

0x0000: 0004 75c9 d662 0005 5d0a b7ca 0806 0001 ..u..b..].......

0x0010: 0800 0604 0002 0005 5d0a b7ca 0a10 5a2d ........].....Z-

0x0020: 0004 75c9 d662 0a10 5a46 ..u..b..ZF

Notons l’existence du protocole Rarp (Reverse Address Resolution Protocol) qui permet a partir d’une adressephysique de connaıtre une adresse Ip.

. Documents de reference : Rfc 826 (Arp), Rfc 903 (Rarp)

1.5 Dynamic Host Configuration Protocol

Dhcp (Dynamic Host Configuration Protocol) est utilise essentiellement au demarrage des machines clients et leurpermet d’obtenir automatiquement une configuration Tcp/Ip, sans intervention de l’utilisateur. Naturellement, l’utili-sation de ce protocole necessite qu’un serveur Dhcp soit installe. Nous allons decrire tres brievement le fonctionnementde ce service. Si une machine devant obtenir sa configuration Tcp/Ip par un serveur Dhcp est demarree, celle-ci genereun message Dhcpdiscover, contenant un identifiant (l’adresse Mac par exemple) en utilisant le protocole Udp, adestination de l’adresse 255.255.255.255, et du port 67. Cette adresse est speciale et est lue par tous les hotes (maiselle ne traverse pas les routeurs). Seul le serveur va repondre a cette requete en envoyant un message Dhcpoffer,vers le port 68 de toutes les machines de son reseau (255.255.255.255), qui est lu par toutes les machines, meme sielles ne connaissent pas leur adresse Ip. L’identifiant etant renvoye dans ce message, le client Dhcp sait qu’il lui estadresse. Ce message contient la configuration que peut prendre la machine (adresse Ip...).Notons que Dhcp peut etre utilise sur le meme principe pour d’autres choses que la configuration du reseau.

. Documents de reference : Rfc 2131 et 2132

18

Page 25: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Chapitre 2

Protocoles de la couche application

Nous decrivons dans ce chapitre un certain nombre de protocoles de la couche application du modele Tcp/Ip. Cesprotocoles sont bases sur Tcp ou bien sur Udp. Le nombre de protocoles qu’il serait envisageable de traiter estconsiderable. Aussi nous avons fait le choix des applications les plus rependues : mail et Web.

2.1 Hypertext transfert protocol

Le protocole Http (Hypertext Transfert Protocol) est l’un des plus utilise sur Internet car il concerne le World WideWeb. Ce protocole decrit de quelle facon un navigateur peut interroger un serveur Web, et lui demander le contenud’une Url (Uniform Ressource Location). Ce protocole utilise Tcp. La communication s’effectue en deux temps :le client (un navigateur par exemple) envoie une requete Http a un serveur, qui lui repond. Le port utilise par leprotocole Http est le port 80.Une requete Http comprend trois parties, dont seule la premiere est obligatoire :

1. Ligne de requete

2. Lignes d’en-tete

3. Corps de la requete

La ligne de requete est elle-meme composee de trois parties : la methode, l’Url, et la version du protocole utilise.Dans la version 1.1 de Http, les methodes sont au nombre de 8 : Options, Get, Head, Post, Put, Delete, Trace etConnect (dans Http 1.0, les seules methodes sont Get, Head, et Post).

Options : Demande d’information au serveur.

Get : C’est la methode la plus employee. Elle permet de recuperer le contenu d’une Url. Si l’Url designe unfichier �passif�, son contenu est envoye. Si l’Url designe un executable, capable de produire des donnees, cesont les donnees produites qui sont envoyees.

Head : Cette methode ne renvoie que les en-tetes qui auraient ete renvoyes par la methode Get. Elle ne renvoiepas les donnees elles-memes. Elle permet entre autres de controler la date et la taille du contenu d’une Url.

Post : Cette methode permet de passer des donnees avec la requete. Elle est par exemple utilisee lors de lavalidation d’un formulaire. Une requete concernant l’Url de traitement du formulaire est faite, et le contenudu formulaire est passe avec le corps de la requete.

Put : Permet de demander la creation d’une Url (ou son remplacement). Le contenu est donne dans le corps dela requete.

Delete : Demande d’effacement d’une Url.

Trace : Demande d’echo. Le serveur (ou le proxy) doit renvoyer le message recu vers le client, afin de lui permettrede diagnostiquer un probleme eventuel.

. Documents de reference : Rfc 1945 pour Http 1.0 et Rfc 2616 pour Http 1.1

Le protocole Http fonctionne en mode non-connecte. Apres chaque requete, la connexion est donc perdue.La plupart des requetes n’ont pas de corps. Voici quelques exemples :

Requete Trace

bash-2.05b> telnet 10.16.83.27 80

Trying 10.16.83.27...

Connected to 10.16.83.27.

Escape character is ’^]’.

19

Page 26: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

TRACE /index.php HTTP/1.1

Host: wwwesip.campus.univ-poitiers.fr

HTTP/1.1 200 OK

Date: Fri, 16 Jul 2004 06:11:07 GMT

Server: Apache/1.3.27 (Unix) mod_ssl/2.8.12 OpenSSL/0.9.7a PHP/4.3.1

Transfer-Encoding: chunked

Content-Type: message/http

44

TRACE /index.php HTTP/1.1

Host: wwwesip.campus.univ-poitiers.fr

Requete Options

bash-2.05b> telnet 10.16.83.27 80

Trying 10.16.83.27...

Connected to 10.16.83.27.

Escape character is ’^]’.

OPTIONS / HTTP/1.1

Host: wwwesip.campus.univ-poitiers.fr

HTTP/1.1 200 OK

Date: Thu, 15 Jul 2004 15:08:04 GMT

Server: Apache/1.3.27 (Unix) mod_ssl/2.8.12 OpenSSL/0.9.7a PHP/4.3.1

Content-Length: 0

Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH,

PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE

Connection closed by foreign host.

Requete Get

bash-2.05b> telnet 10.16.83.27 80

Trying 10.16.83.27...

Connected to 10.16.83.27.

Escape character is ’^]’.

GET /web.php HTTP/1.1

Host: wwwesip.campus.univ-poitiers.fr

HTTP/1.1 200 OK

Date: Thu, 15 Jul 2004 15:38:42 GMT

Server: Apache/1.3.27 (Unix) mod_ssl/2.8.12 OpenSSL/0.9.7a PHP/4.3.1

X-Powered-By: PHP/4.3.1

Transfer-Encoding: chunked

Content-Type: text/html

1039

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<link rel="stylesheet" href="style-menu.css">

<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<title>Esip Site Interne</title>

...

2.2 Post Office Protocol

Le protocole Pop (Post Office Protocol) est actuellement utilise en version 3. Il permet de recuperer du courrierelectronique sur un serveur distant appele serveur Pop et de le rapatrier sur la machine locale (par opposition a Imap(Internet Message Access Protocol qui est generalement utilise pour consulter les courriers electroniques, tout en leslaissant sur le serveur distant). Ce protocole utilise Tcp sur le port 110.

20

Page 27: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

. Documents de reference : Rfc 1939

Les requetes sont composees d’une commande et d’un ou plusieurs arguments, et les reponses sont faites par unmessage.Voici le descriptif de quelques commandes Pop3 :

User <identifiant> : login

Pass <password> : mot de passe

Stat : indique le nombre de messages sur le serveur

Retr <num> : recuperation d’un message

Dele <num> : suppression d’un message

Top <num> <nb> : affiche les premieres lignes d’un message

Quit : ferme la connexion

Le protocole Pop3 est un protocole qui fonctionne en mode connecte, en ce sens qu’apres l’etablissement de laconnexion, le client peut faire plusieurs requetes.Voici un exemple de dialogue entre un client et un serveur Pop :

bash-2.05b> telnet pop3.bidule.fr 110

Trying 10.16.83.27...

Connected to pop3.bidule.fr.

Escape character is ’^]’.

+OK <[email protected]>

USER signac

+OK

PASS tUrlututuChAp09ointu

+OK

STAT

+OK 6 144045

TOP 1 10

+OK 58775 octets

Return-Path: <[email protected]>

Delivered-To: [email protected]

Received: (qmail 22453 invoked from network); 21 Apr 2004 11:24:09 -0000

Received: from aneuilly-109-1-3-166.w81-48.abo.wanadoo.fr (HELO error?info.com)

by mrelay2-1.blip.fr with SMTP; 21 Apr 2004 11:24:09 -0000

From: [email protected]

To: [email protected]

Subject: Invalid mail sentence length

Importance: Normal

X-Priority: 3 (Normal)

Message-ID: <[email protected]>

MIME-Version: 1.0

...

QUIT

+OK

Connection closed by foreign host.

2.3 Simple Message Transfert Protocol

Le protocole Smtp est utilise pour relayer les courriers electroniques de machine en machine lors de leur expedition.Le port officiel du protocole Smtp est le port 25 et c’est un protocole en mode connecte qui fonctionne avec Tcp.

. Documents de reference : Rfc 5321

Les principales commandes Smtp sont : Ehlo, Mail from, Rcpt to et Data. Voici un exemple de transaction Smtp :

bash-2.05b> telnet smtp.bla.fr 25

Trying 10.16.66.83...

Connected to smtp.bla.fr.

Escape character is ’^]’.

220 goldorak.bla.fr ESMTP

EHLO bubble.esip.univ-poitiers.fr

21

Page 28: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

250-goldorak.bla.fr

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-STARTTLS

250 8BITMIME

MAIL FROM: [email protected]

250 Ok

RCPT TO: [email protected]

250 Ok

DATA

354 End data with <CR><LF>.<CR><LF>

From: [email protected]

Subject: Coucou...

Un petit coucou...

.

250 Ok: queued as 6D766293

Il n’est pas obligatoire de se connecter au serveur Smtp du domaine du destinataire. La particularite de Smtp estl’acheminement de machine en machine jusqu’a la destination. Notons que le serveur Smtp considere les en-tetes dumail comme des donnees du message (From et Subject dans notre exemple). Les en-tetes doivent etre separes du corpsdu message par une ligne blanche et ce dernier doit se terminer par une ligne comportant uniquement un point. Leprotocole Smtp ne realise aucun controle sur le contenu de l’en-tete. En revanche, il a connaissance de l’expediteuret du destinataire precises par les commandes Rcpt to et Mail from. Un serveur Smtp peut ou non choisir derelayer les mails selon la politique suivie par l’administrateur. Il peut filtrer les mails en fonction de l’adresse Ip de lamachine cliente, des renseignements donnes dans Mail From et Rcpt to etc... Cette politique de filtrage, plus oumoins drastique a ete rendue necessaire par l’augmentation continuelle de messages non-sollicites (Spam).

22

Page 29: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Chapitre 3

Programmation Reseau

De nombreux langages sont maintenant livres �batteries included�, avec des fonctions reseau avancees dans la librairiestandard. Dans ce court chapitre, nous allons simplement effleurer les possibilites offertes par Python en matiere deprogrammation reseau.En premier lieu, nous pouvons diviser les applications potentielles en trois categories :

1. Les applications qui utilisent des services existants, par le biais d’une interface de programmation plus ou moinsevoluee.

2. Les application serveur du Web, qui peuvent etre ecrites en utilisant un framework Web, comme Django,Cherrypy, Bottle...

3. Les application reseau qui proposent un nouveau protocole applicatif (programmation de plus bas niveau). Nousn’aborderons pas ce theme ici.

3.1 Utilisation de services existants

La plupart des services Web proposent maintenant une Api 1, rendant le service accessible a un programme plutotqu’a une personne derriere une machine. C’est grace a l’existence de ces api qu’il existe par exemple plusieurs clients(qui ne sont pas des navigateurs) pour un service particulier (comme Twitter).L’utilisation de certains services necessitent une phase d’authentification (Facebook, Twitter, la plupart des servicesGoogle), et d’autres non, comme OpenStreetMap, OpenWeatherMap...L’idee derriere ces api est d’acceder via une methode get, post ou put du protocole http (voir le chapitre precedent)a une url particuliere permettant d’effectuer une operation ou de recuperer un resultat dans un format facile a analyser(par exemple json).Le site web openweathermap.org propose par exemple une api permettant de connaıtre les conditions meteo surn’importe quel point du globe. La requete (get) est de la forme : http://api.openweathermap.org/data/2.5/

weather?q=LIEU

Le lieu est alors un nom de ville comme Poitiers,fr. On peut aussi rechercher par coordonnees (latitude, longitude) ouidentifiant de ville 2

Le resultat obtenu, au format json (d’autres formats sont disponibles), est de ce type :

{’base’: ’gdps stations’,

’clouds’: {’all’: 90},

’cod’: 200,

’coord’: {’lat’: 46.583328, ’lon’: 0.33333},

’dt’: 1379489400,

’id’: 2986495,

’main’: {’humidity’: 100,

’pressure’: 1008,

’temp’: 290.15,

’temp_max’: 290.15,

’temp_min’: 290.15},

’name’: ’Poitiers’,

’rain’: {’3h’: 1},

’sys’: {’country’: ’FR’, ’sunrise’: 1379482876, ’sunset’: 1379527430},

’weather’: [{’description’: ’overcast clouds’,

1. Api : Application Programming Interface2. la documentation est ici : http://api.openweathermap.org/API

23

Page 30: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

’icon’: ’04d’,

’id’: 804,

’main’: ’Clouds’}],

’wind’: {’deg’: 240, ’speed’: 6.2}}

Le dictionnaire main contient par exemple la temperature (en Kelvins), la pression (en hectopascals), et le tauxd’humidite de l’air.Voici un exemple de programme Python qui recupere ces donnees et les affiche.

import urllib.request as req

url="http://api.openweathermap.org/data/2.5/weather?q=Poitiers,fr"

u=req.urlopen(url)

content=u.read()

A ce point, content contient un objets de type bytes. On le transforme en chaıne de caracteres avec content.decode(’ascii’),en supposant que l’encodage utilise est simplement ascii. La chaıne obtenue est au format json est peut etre trans-formee en objet Python a l’aide du module json :

import json

jsonstr=content.decode(’ascii’)

data=json.loads(jsonstr)

t=data[’main’][’temp’]

print("La temperature est de {} degres C".format(t-273.15))

Notons que le module requests (non inclus dans la bibliotheque standard) permet de simplifier un peu la recuperationdes donnees :

import requests

url="http://api.openweathermap.org/data/2.5/weather?q=Poitiers,fr"

content=requests.get(url)

data=content.json()

t=data[’main’][’temp’]

print("La temperature est de {} degres C".format(t-273.15))

3.2 Applications serveur pour le Web

Il existe de nombreux outils pour realiser des applications Web avec Python. Le plus connu et le plus complet estDjango, mais son utilisation depasse le cadre de ce chapitre.En guise d’exemple, nous allons ici utiliser le framework Bottle, tres petit (un seul fichier suffit), et simple d’utilisation.Le principe de Bottle est d’ecrire une fonction par traitement, et d’associer une �route� (une url) a cette fonction.La consultation de l’url provoquera l’execution de la fonction qui renverra le texte d’une page Web.

import bottle

import datetime

@bottle.route("/time")

def index() :

heure = datetime.datetime.now().strftime("Nous sommes le %d/%m/%Y, il est %H:%M:%S")

stri = "<h1>Horloge</h1>"+heure

return stri

bottle.run(bottle.app(), host=’0.0.0.0’, port=8080, debug= True, reloader=True)

Bottle contient un petit serveur Web (pour une application importante, l’application Bottle est placee derriere unserveur capable de supporter une charge elevee (Apache par exemple)). Apres execution du programme, nous pouvonsconsulter l’url : http://localhost/time:8080Bottle possede un systeme de template, qui permet de factoriser le code commun aux pages Web, et de separer le contenude la presentation. Le serveur renverra ainsi des pages html completes, sans pour autant souiller le programme debalises html. Voici un exemple :

24

Page 31: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

# horloge.py

import bottle

import datetime

@bottle.route("/time")

@bottle.view("page.tpl")

def index() :

heure = datetime.datetime.now().strftime("<p>Nous sommes le %d/%m/%Y, il est %H:%M:%S</p>")

return {"title":"Horloge", "body" : heure}

bottle.run(bottle.app(), host=’0.0.0.0’, port=8080, debug= True, reloader=True)

<!doctype html>

<!-- page.tpl -->

<HTML lang="fr">

<HEAD>

<TITLE>{{title}}</TITLE>

<meta charset="UTF-8">

</HEAD>

<body>

<h1>{{title}}</h1>

{{!body}}

<hr/>

<font size="-1"><i>Page realisee avec Bottle</i></font>

</body>

</html>

Le serveur produit ce type de page :

Xkcd : http://xkcd.com

25

Page 32: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

26

Page 33: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Chapitre 4

Securite, cryptologie

Si une securite maximale demande un isolement complet des reseaux (voire des machines), il existe neanmoins unstandard, publie par l’Iso, qui concerne la protection des informations (Iso 7498-2). Nous nous attacherons dans cechapitre a analyser certains mecanismes de base de la securite. Les contraintes relatives a la securite peuvent etre dedifferentes natures :

— la confidentialite : assure la protection des donnees ;— l’authentification : permet de s’assurer qu’une personne connectee (par exemple) est bien la personne qu’elle

pretend etre ;— l’integrite : garantit que les donnees emises et recues sont identiques ;— la non repudiation : empeche l’auteur d’une action de la contester (par exemple, empeche l’expediteur d’un

message de nier en etre l’auteur) ;— le controle d’acces : ne donne acces a certaines ressources que sous certaines conditions.

Nous n’allons pas aborder tous ces points ici, mais certains seulement. Parfois nous ne citerons que le nom destechniques.Dans une large mesure, les contraintes citees font appel a de la cryptographie. La cryptographie permet entre autresd’assurer la confidentialite, dans une certaine mesure, et la confidentialite est souvent necessaire aux autres services.A quoi bon, par exemple, authentifier des personnes avec un login et un mot de passe si, a l’ecoute du reseau, uneautre personne peut s’en emparer ?Avant d’aborder ces problemes, nous allons nous attacher a eclaircir certains points que devrait connaitre toutepersonne qui fait un usage regulier du reseau Internet.

4.1 Reflexes de base

4.1.1 Quelques points de vocabulaire

Virus : programme informatique capable de se �recopier� a l’interieur d’autres programmes lorsque’on l’execute(d’ou son nom). La �charge utile� d’un virus est ce qu’il fait en plus de son comportement viral. La chargeutile n’existe pas forcement et n’est par forcement nefaste, quoi que ce soit le cas en general.

Ver : programme capable de se propager en utilisant le reseau (generalement en exploitant des failles de securitedans les implantations d’un service reseau). Un ver n’a pas besoin de programme hote, contrairement a unvirus.

Cheval de Troie : programme qui execute subrepticement des actions en se cachant sous un aspect anodin.

Porte derobee / Backdoor : fonctionnalite non documentee/secrete d’un logiciel ou d’un algorithme (de chif-frement par exemple). Porte derobee et cheval de Troie sont lies.

Spyware / logiciel expion : programme qui collecte et transmet des informations sur l’utilisateur a son insu.Ces informations sont generalement utilisees a des fins publicitaires.

Adware : programme publicitaire. D’apres Wikipedia, designe aussi un programme utilisable en echange de pu-blicite.

Key logger : programme qui enregistre ce qui est tape au clavier. Les donnees peuvent ensuite etre transmises al’auteur du key logger via Internet.

Phishing : pratique visant a tromper la confiance d’une personne en lui presentant par exemple un faux siteweb qui ressemble a un site web de confiance (banque...). La victime est generalement invitee a donner desinformations confidentielles (mot de passe, numero de compte...)

Spam / Pourriel : courrier electronique non sollicite.

Hoax / Canular : fausse information que la victime est encouragee a diffuser.

27

Page 34: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

4.1.2 Informations complementaires

Virus Comme la definition l’indique, un virus se propage a l’interieur d’un programme executable (exception faite desmacros-virus qui se propagent a l’interieur de documents pouvant contenir des macros). Par consequent, une machineest infectee par l’execution d’un tel programme executable, et c’est generalement l’utilisateur qui en est responsable.Savoir reconnaitre un programme executable et empecher son execution peut donc etre primordial.Sous Unix, n’importe quel fichier est potentiellement executable (independament de son nom) s’il est muni du drapeauadequat. Generalement la commande file nomfichier permet d’avoir les renseignements recherches. Sous Windows,les fichiers executables ont generalement pour extension : exe, pif, bat, scr, com ou cmd. Il suffit donc de ne pasles executer au hasard. Notons au passage que l’extension des fichiers est parfois cachee, et qu’elle peut etre double.Dans ce cas, le fichier lotr.png.exe sera vu ainsi : lotr.png et sera pris pour une image (de type Png). On peutremedier a ce probleme en demandant a Windows d’afficher les extensions de tous les fichiers (generalement dans lemenu Outils/Options des dossiers/Affichage). Cette configuration est au passage conseillee.

Hoaxes Un hoax (canular) est un mail de desinformation que l’utilisateur est amene a faire suivre. Malheureusement,c’est generalement pour des raisons civiques que ce genre de canular fonctionne (besoin de sang pour un enfant...). Lesite Web http://www.hoaxbuster.com recense ces mails et enquete pour savoir s’il s’agit d’une information reelle. Ilest donc conseille de se renseigner avant de faire suivre...

4.1.3 Protection minimale

Anti-virus L’anti-virus a pour effet d’analyser a la volee les fichiers utilises (ainsi que les fichiers stockes surdisque et les donnees en memoire) afin de detecter la signature d’un eventuel virus et prevenir l’utilisateuravant qu’il ne soit trop tard. Il existe des anti-virus gratuits ou commerciaux. L’essentiel est de faire des misesa jour frequentes, afin que l’anti-virus travaille avec une base de signatures a jour.

Pare-feu Un pare-feu (firewall) permet de controler les connexions reseau entrantes et sortantes d’une machine.Il constitue un moyen de defense assez efficace contre les vers, s’il est bien configure.

Anti-spyware, anti-adware Ces logiciels permettent de �nettoyer� une machine infestee de logiciels publici-taires ou espions.

Anti-spam Un logiciel anti-spam peut agir au niveau d’un relai de mail, en filtrant les courriers electroniques apriori non sollicites, ou bien au niveau du logiciel de messagerie de l’utilisateur final (en facilitant le tri parexemple).

Une connaissance, meme sommaire, de la facon dont agissent les programmes malveillants reste une defense tresefficace. L’utilisation de logiciels et de systemes minoritaires et/ou securises (firefox, thunderbird, Gnu/Linux...) estaussi un bon moyen de se premunir contre ces fleaux.

4.2 Elements de cryptologie

Dans cette section nous presenterons quelques uns des algorithmes de cryptographie les plus employes dans le domainedes reseaux, apres une courte introduction historique a la steganographie/cryptologie.Si les premiers codes utilises a des fins militaires remontent au 5e siecle avant J.-C, nous parlons plus aujourd’hui dechiffres que de codes, le premier s’appliquant a des lettres ou des bits, et le second a des mots ou des phrases. Dans lasuite, nous utiliserons chiffrement ou cryptage dans le meme sens (celui de chiffrement).Un message a chiffrer sera appele texte en clair, et le resultat du chiffrement sera appele message chiffre ou crypte.Si le chiffrement necessite un parametre autre que le message lui-meme, nous l’appellerons cle. Un algorithme dechiffrement est une methode qui, eventuellement a l’aide d’une cle, permet de transformer le message en clair enmessage chiffre. Il est generalement associe a un algorithme de dechiffrement, qui realise l’operation inverse. Il se peutque les algorithmes de chiffrement et de dechiffrement soient exactement les memes (avec la meme cle), ce qui revienta dire que chiffrer le texte chiffre donne le message en clair. Dans ce cas l’algorithme de chiffrement est une involution.Il se peut cependant que les cles de chiffrement et de dechiffrement soient les memes alors que les algorithmes dechiffrement et de dechiffrement sont differents.Longtemps, les algorithmes de chiffrement sont restes secrets, et la tache du cryptanalyste 1 etait de decouvrir cetalgorithme. Au fil du temps, il est apparu que l’utilisation d’une cle permettait de rendre public l’algorithme dechiffrement, et que seule la cle devait restait secrete. Ainsi, si le message chiffre finissait par etre decrypte, il suffisait dechanger de cle plutot que d’inventer un nouvel algorithme. De nos jours, en ce qui concerne les systemes d’information,pratiquement tous les algorithmes de chiffrement sont publics et chacun peut donc savoir comment fonctionne telle outelle methode de chiffrement.Enfin, precisons deux principes qui doivent etre respectes en matiere de cryptographie et sur lesquels nous ne revien-drons pas :

1. Le cryptanalyste est celui qui essaie de dechiffrer un texte crypte.

28

Page 35: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

— Le message en clair doit etre redondant (pour eviter que des messages aleatoires ne soient pris pour des texteschiffres valides), comme c’est le cas pour la langue francaise par exemple. Mais ils ne doit pas etre trop redondantnon plus pour ne pas faciliter le travail du cryptanalyste.

— Il faut disposer d’un moyen de verifier que le message crypte est �frais� afin d’eviter que l’envoi ulterieur dumeme message ne soit considere comme valide.

4.2.1 Historique

Steganographie La steganographie est l’art de dissimuler la presence d’un message, plutot que de le rendre inin-telligible. Un des plus anciens exemples de steganographie est donne par Herodote (Livre VII, 239) relatant qu’au 5e

siecle avant J.-C, Demarate denonce les projets d’invasion de Xerxes a la ville de Sparte :

Il prit une tablette double, en gratta la cire, puis ecrivit sur le bois meme les projets de Xerxes ; ensuiteil recouvrit de cire son message : ainsi le porteur d’une tablette vierge ne risquait pas d’ennuis

Herodote relate aussi qu’Histiee incita son gendre Aristagoras, gouverneur de Milet, a se revolter contre son roi, Darius :

Il fit raser la tete de son esclave le plus fidele, lui tatoua son message sur le crane et attendit que lescheveux eussent repousse ; quand la chevelure fut redevenue normale, il fit partir l’esclave pour Milet

Plus pres de nous, durant la seconde guerre mondiale, les Allemands utiliserent la technique du micropoint, qui consistea cacher le message, imprime tres petit, a l’interieur d’un point de ponctuation.Aujourd’hui, la steganographie est utilisee sur Internet. Une methode tres connue consiste a utiliser les bits de poidsfaible d’un fichier numerique (image par exemple) pour coder un message. Il suffit que la modification des bits depoids faible laisse le fichier en apparence inchange si on se contente d’un examen superficiel (ce qui est generalementle cas pour une image).La figure 4.1 illustre le principe en codant l’image 2 d’un poisson dans celle d’un tigre. L’image resultante ressembleparfaitement au tigre seul. Pourtant, on peut y extraire le poisson, et l’image obtenue est de tres bonne qualite(naturellement, l’impression a trop degrade l’image pour qu’on puisse s’en rendre compte).

Cryptographie artisanale de –500 a 1920 Les exemples qui suivent peuvent generalement etre classes dansune des deux familles : chiffrements par substitution (une lettre est remplacee par une autre), ou chiffrement partransposition (les lettres du message sont melangees). Le chiffrement par substitution peut etre monoalphabetique sia une lettre donnee correspond toujours la meme lettre cryptee, ou polyalphabetique si ce n’est pas le cas.La scytale spartiate (ou baton de Plutarque) est le premier outil connu de cryptographie. C’est un simple baton autourduquel on peut enrouler une bande de cuir sur laquelle le message est inscrit. Le diametre du baton fixe l’ordre delecture des lettres.La carre de polybe (environ -150) consiste a remplacer chaque lettre par ses coordonnees dans un tableau (cf. table 4.1).

1 2 3 4 51 A B C D E2 F G H I,J K3 L M N O P4 Q R S T U5 V W X Y Z

Table 4.1 – Carre de Polybe

Ainsi, le message �bonjour� devient : 21433342435424.La methode de chiffrement la plus celebre est sans doute le chiffre de Cesar, utilise au premier siecle avant Jesus-Christ,et consistant a decaler l’alphabet de 3 lettres.Au 9e siecle apres J.-C, le premier traite de cryptanalyse, ecrit par Abu Yusuf Al-Kindi fait son apparition. Ce dernierdecrit dans �Manuscrit sur le dechiffrement des messages cryptographiques� le procede d’analyse frequentielle, quipermet de casser les chiffres bases sur des substitutions monoalphabetiques (comme le chiffre de Cesar) en etudiant lafrequence d’apparition des lettres, caracteristique de chaque langue. A titre d’exemple, la frequence de chaque lettreen francais et en anglais est donnee dans la table 4.2.Blaise de Vigenere presente au 16e siecle un chiffre par substitution polyalphabetique (bien que ce ne soit pas le premierde l’histoire). La methode est basee sur le carre de Tritheme, donne table 4.3.

texte clair : b o n j o u r t o u t l e m o n d ecle : p o i t i e r s p o i t i e r s p otexte cypte : q c v c w y i l d i b e m q f f s s

2. Les images sont issues de http://gimp-savvy.com et plus precisement de la banque Fish and Wildlife Service.

29

Page 36: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Selection 4 bits de poids fort Selection 4 bits de poids fort

Division par 16

+

Selection 4 bits de poids faible

Multiplication par 16

Figure 4.1 – Steganographie par la methode Lsb (Least Significant Bit)

30

Page 37: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

A B C D E F G H I J K L MFrancais 9,42 1,02 2,64 3,39 15,87 0,95 1,04 0,77 8,41 0,89 0,00 5,34 3,24Anglais 8,08 1,67 3,18 3,99 12,56 2,17 1,80 5,27 7,24 0,14 0,63 4,04 2,60

N O P Q R S T U V W X Y ZFrancais 7,15 5,14 2,86 1,06 6,46 7,90 7,26 6,24 2,15 0,00 0,30 0,24 0,32Anglais 7,38 7,47 1,91 0,09 6,42 6,59 9,15 2,79 1,00 1,89 0,21 1,65 0,07

Table 4.2 – Frequence (%) d’apparition des lettres en Francais et en Anglais (source : Wikipedia)

a b c d e f g h i j k l m n o p q r s t u v w x y za a b c d e f g h i j k l m n o p q r s t u v w x y zb b c d e f g h i j k l m n o p q r s t u v w x y z ac c d e f g h i j k l m n o p q r s t u v w x y z a b. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .e e f g h i j k l m n o p q r s t u v w x y z a b c d. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .i i j k l m n o p q r s t u v w x y z a b c d e f g h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .o o p q r s t u v w x y z a b c d e f g h i j k l m np p q r s t u v w x y z a b c d e f g h i j k l m n o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r r s t u v w x y z a b c d e f g h i j k l m n o p q. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .y y z a b c d e f g h i j k l m n o p q r s t u v w xz z a b c d e f g h i j k l m n o p q r s t u v w x y

Table 4.3 – Carre de Tritheme utilise dans le chiffre de Vigenere

Le chiffre de Vigenere fait partie des chiffres par substitution polyalphabetiques, qui sont insensibles a l’analysefrequentielle, sauf si on connait la longueur de la cle. Une premiere methode pour determiner la longueur de la cle aete donnee par Charles Babbage au 19e siecle (on peut aussi utiliser l’indice de coıncidence).Utilise a des fins militaires durant la premiere guerre mondiale par les Allemands, le chiffre Adfgvx utilisait a la foisdes substitutions et des transpositions.La premiere etape consiste a substituer chaque symbole du texte en clair par ses coordonnees dans une table (cf.table 4.4), comme dans le carre de Polybe.

A D F G V XA 8 t b w r qD p 4 c g 2 9F 3 o 5 m x eG d a z j s yV l h 7 u v 0X n 1 k 6 i f

Table 4.4 – Tableau de substitution pour le chiffre Adfgvx

Ainsi, le texte �bonjourtoutlemonde� devient AFFDXAGGFDVGAVADFDVGADVAFXFGFDXAGAFX.Puis on opere une transposition, a l’aide d’un mot cle. Le processus est illustre table 4.5.En utilisant le mot cle �ovale�, le message final est : FGADVGGXXDAGFDFGDFVVAFAAAAVDAXXXFGGFDFAVEn 1920, William Friedman publie ses resulats sur l’indice de coıncidence d’un texte. Cette valeur permet d’avoirdes renseignement sur un texte chiffre par substitution : le chiffrement est-il mono ou polyalphabetique, quelle est lalongueur de la cle, quelle est la langue d’origine ? L’indice de coıncidence, ajoute aux travaux de Babbage, permet decasser les chiffres par substitution polyalphabetique. L’indice de coıncidence d’un texte vaut :

I =1

n(n− 1)

i=26∑

i=1

1

ni(ni − 1)

ou n est le nombre de lettres du message, et ni est le nombre d’apparitions de la ie lettre. Cette valeur vaut parexemple en moyenne 0.0746 pour un texte francais (crypte par substitution monoalphabetique ou non).

Cryptographie industrielle de 1920 a 1970 Sans doute le defi le plus connu a consiste en le decryptage desmessages Allemands chiffres avec la machine Enigma 4.2(a) durant la seconde guerre mondiale. Une equipe de plusieurs

31

Page 38: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

o v a l eA F F D XA G G F DV G A V AD F D V GA D V A FX F G F DX A G A FX V X A G

a e l o vF X D A FG D F A GA A V V GD G V D FV F A A DG D F X FG F A X AX G A X V

Table 4.5 – Transposition dans le chiffre Adfgvx, les lettres du mot cle sont remises dans l’ordre alphabetique,entrainant chaque colonne. Le message est ensuite lu en colonnes

milliers de personnes, basees a Bletchley Park, au nord de Londres a travaille au decryptage de messages militaires.La machine Enigma fonctionne sur le principe de la substitution polyalphabetique. L’alphabet de substitution changea chaque lettre, et est donne par le cablage de plusieurs rotors 4.2(b) (de 3 a 5 rotors suivant les modeles). Pour coderun caractere, on presse une touche sur un clavier. Le signal electrique suit un reseau de fils 4.3(a), puis indique parun voyant lumineux la lettre cryptee. A chaque frappe sur le clavier le rotor 1 tourne, modifiant la version cryptee dela meme lettre 4.3(b). Un tour complet du rotor 1 provoque la rotation du rotor 2 et ainsi de suite...

Cryptographie numerique de 1970 a aujourd’hui Avec la popularisation de l’informatique, des moyens crypto-graphiques forts peuvent etre mis en œuvre. Leur developpement n’est plus seulement lie au developpement militaire,mais aussi a celui du commerce electronique. Les sections suivantes donnent les grandes lignes de la cryptographiemoderne.

4.2.2 Algorithmes a cle secrete

Modes d’utilisation On distingue plusieurs categories d’algorithmes a cle secrete :— ceux qui chiffrent un flot (ou flux) de donnees comme Rc4 ou le masque jetable avec Xor...— ceux qui chiffrent un bloc de donnees, comme Des, Aes, Idea, Blowfish, Twofish...

Nous verrons ici surtout des exemples de la seconde categorie.Les algorithmes de chiffrement par blocs possedent plusieurs modes operatoires :

— carnet de codage electronique (Ecb pour Electronic CodeBook) : les blocs sont simplement juxtaposes (cffigure 4.4(a))

— chaınage de blocs (Cbc pour Cipher Bloc Chaining) : le bloc chiffre i sert de cle pour le chiffrer le bloc i + 1(cf figure 4.4(b))

— retroaction (Cfb pour Cipher FeedBack) : le chiffrement se fait par blocs plus petits (m bits) que la taille d’unbloc utilise par l’algorithme (k bits). Si l’algorithme chiffre par exemple des blocs de 64 bits, on peut utiliserdans ce mode des blocs de 16 bits, chaque bloc chiffre par l’algorithme resultant du chiffrement des 4 blocs pluspetits precedents (cf figure 4.4(c))

— retroaction de sortie (Ofb pour Output Feed Back) : le chiffrement est tres similaire au mode Cfb, mais cen’est pas la meme partie qui est reinjectee dans le registre a decalage (cf figure 4.4(d))

Ces differents modes possedent avantages et inconvenients, que nous ne discuterons pas ici. Le lecteur ayant a prendreune decision sur le choix d’un mode est invite a consulter une plus abondante documentation.

Masque jetable Nous citons ici cette methode comme exemple de chiffrement par flot, et en raison de sa fiabilite,puisqu’un tel chiffre ne peut pas etre casse en l’absence d’information supplementaire. La methode est tres simple etconsiste a appliquer par exemple un ou-exclusif, caractere par caractere, ou bit par bit, entre le message en clair et lacle. Cet algorithme est involutif et sa securite repose sur la longueur et la nature de la cle qui doit etre aleatoire etavoir la meme longueur que le texte en clair. Chaque cle ne peut servir qu’une fois (sinon la propriete sur la longueurde la cle n’est plus verifiee), d’ou le nom du principe de chiffrement. Une telle methode, bien que parfaitement surepose des problemes pratiques (longueur de la cle).

Data Encryption Standard Cette technique de chiffrement a cle symetrique (la meme cle est utilisee pour chiffreret dechiffrer) a ete adoptee comme standard en 1976 par le gouvernement americain. La norme Des est basee surl’algorithme Lucifer. Cet algorithme, developpe en 1973 par Horst Feistel comporte de nombreuses substitutions ettranspositions mettant en jeu des blocs de texte a crypter de 64 bits et une cle secrete de 56 bits 3.

3. La taille de la cle est caracteristique de Des, pas de Lucifer.

32

Page 39: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

(a) Machine Enigma (b) Rotors de la machine Enigma

Figure 4.2 – Machine Enigma

Rotor 1 Rotor 2 Rotor 3Deflecteur

G

A

E

(a) Premiere configuration : A⇒G

Rotor 1 Rotor 2 Rotor 3Deflecteur

G

A

E

(b) Apres deplacement du rotor de droite : A⇒E

Figure 4.3 – Reseau electrique dans les rotors d’Enigma

33

Page 40: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Clairi

Algo

Cryptoi Cryptoi+1

Clairi+1

Algo

Cryptoi

Algo−1

Clairi Clairi+1

Cryptoi+1

Algo−1

Chiffrement Dechiffrement

(a) Mode Ecb

Clairi

Algo

Cryptoi Cryptoi+1

Clairi+1

Algo

xor xor

Cryptoi

Algo−1

Clairi Clairi+1

Cryptoi+1

Algo−1

xor xor

Chiffrement Dechiffrement

(b) Mode Cbc

Clairi

Algo

xor

Chiffrement Dechiffrement

Cryptoi

Cryptoi−1Cryptoi−2

k bits︷ ︸︸ ︷

︸ ︷︷ ︸m bits

︸ ︷︷ ︸m bits

Cryptoi

Algo

xor

Clairi

k bits︷ ︸︸ ︷

︸ ︷︷ ︸m bits

︸ ︷︷ ︸m bits

Cryptoi−1Cryptoi−2

m bits︷ ︸︸ ︷ m bits︷ ︸︸ ︷

(c) Mode Cfb

Clairi

Algo

xor

Chiffrement Dechiffrement

Cryptoi

Tmpi−1Tmpi−2

k bits︷ ︸︸ ︷

︸ ︷︷ ︸m bits

︸ ︷︷ ︸m bits

Tmpi

m bits︷ ︸︸ ︷

Clairi

Algo

xorCryptoi

Tmpi−1Tmpi−2

k bits︷ ︸︸ ︷

︸ ︷︷ ︸m bits

︸ ︷︷ ︸m bits

Tmpi

m bits︷ ︸︸ ︷

(d) Mode Ofb

Figure 4.4 – Differents modes de chiffrement

34

Page 41: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

Une attaque classique contre ce code consiste a essayer d’appliquer toutes les cles possibles sur le texte chiffre. Or, ily a plus de 1016 cles possibles 4. L’exploration de l’espace des cles etait impossible il y a quelques annees... Mais il nel’est plus maintenant.Les specifications de Des sont publiques et nous allons en detailler une partie : Le chiffrement se fait pour des blocsde 64 bits, selon le schema de la figure 4.5(a). Les cles K1 a K16 sont des sous-cles de 48 bits de la cle principale de56 bits (les etapes de diversification de la cle ne seront pas detaillees ici).

Bloc initial de 64 bits

G1 = D0 K2 D1 = G0 xor f(D0,K1)

fxor

G0 K1 D0

fxor

G16 = D15 D16 = G15 xor f(D15,K16)

Separation : deux blocs de 32 bits

Permutation initiale

G15 = D14 K16 D15 = G14 xor f(D14,K15)

fxor

Bloc final de 64 bits

Permutation finale

(a) Algorithme principal

D : 32 bits

Expansion

48 bits

S1 S2 S3 S4 S5 S6 S7 S8

xor

Permutation

Sortie : 32 bits

K

8 × 6 bits

8 × 4 bits

(b) Fonction de confusion

Figure 4.5 – Fonctionnement de Des

Les permutations initiales et finales permettent de melanger les bits. A titre d’exemple, la permutation initiale estdonnee table 4.6.

58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

Table 4.6 – Permutation initiale d’un bloc de 64 bits utilisee dans Des

La fonction de confusion f est detaillee sur la figure 4.5(b). L’expansion transforme un bloc de 32 bits en bloc de 48bits en doublant certaines informations. Expansion et permutation sont donnees dans les tables 4.7(a) et (b).Et enfin, chaque �boıtes S� associe a un nombre binaire a 6 bits un nombre compris entre 0 et 15. La boıte S1 estdonnee par la table 4.8.

4. Environ 72 millions de milliard...

35

Page 42: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

(a) Expansion

32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

(b) Permutation

16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25

Table 4.7 – Details de la fontion de confusion de Des

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 82 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Table 4.8 – Detail de la boıte S1

La valeur de S1(b5b4b3...b0) est calculee ainsi : Le nombre b5b0 donne le numero de la ligne (0, 1, 2 ou 3). et le nombreb4b3b2b1 donne le numero de la colonne. A l’intersection de la ligne et de la colonne, on lit la valeur de S1(b5b4b3...b0).Par exemple, ; S1(45) = S1(101101) = 1 (ligne 3 (11), colonne 6 (0110)).Lors de la publication des specifications de Des, les boites S ont ete tres controversees car leur contenu restait assezenigmatique et on soupconnait qu’elle avaient ete calculees de maniere a creer des portes derobees dans Des. Depuis,les soupcons sont retombes.

Triple Des En raison de la taille limitee des cles de Des, une nouvelle norme, Triple Des, a vu le jour. Triple Desest constitue de deux cles de 56 bits et de trois applications de Des comme indique sur la figure 4.6

Cryptage Decryptage Cryptage

K1 K2 K1

P C

Figure 4.6 – Cryptage avec Triple Des utilisant deux cles K1 et K2

L’avantage de triple Des est qu’en utilisant deux valeurs de cles differentes, on obtient une cle de 112 bits impossiblea trouver a l’heure actuelle (et pour un certain temps). Si on choisit en revanche deux cles identiques, il revient a faireun Des normal avec lequel il est donc compatible. Cependant, Triple Des est relativement lent.

Idea L’algorithme Idea (International Data Encryption Algorithm) est une methode de chiffrement par bloc initia-lement proposee comme remplacement a Des (1991).Le chiffrement opere sur des blocs de 64 bits, et la cle Idea a une longueur de 128 bits. L’algorithme est base sur lesfonctions suivantes, operant sur des blocs de 16 bits :

— ou exclusif— addition modulo 216

— multiplication modulo 216 + 1Comme pour Des, l’algorithme comporte plusieurs �tours�. La figure 4.7 detaille le fonctionnement des 8 tours et dutour final. Dans la figure 4.7, Zj

i est mis pour la sous-cle i de 16 bits utilisee au tour j. X1 a X4 sont les 4 mots de 16bits qui constituent le bloc d’entree de 64 bits et Y1 a Y4 sont les 4 mots de 16 bits qui constituent le bloc chffre de64 bits. Les sous-cles sont calculees de la facon suivante. Chaque tour a besoin de 6 sous-cles. Le tour final a besoinde 4 sous-cles. La cle de 128 bits est divisee en 8 sous-cles de 16 bits. Les 6 premieres servent au premier tour, les 2suivante serviront au second tour. Puis on opere une rotation de 25 bits sur la cle de 128 bits. Le resultat est decoupeen 8 sous-cles. Les 4 premieres serviront au second tour, les 4 suivantes au troisieme tour, et ainsi de suite.Pour dechiffrer un message chiffre avec Idea, l’algorithme est strictement le meme que pour le chiffrement. En revanche,le calcul des sous-cles est legerement different (nous ne le detaillerons pas ici).Notons qu’a l’heure actuelle, Idea est brevete.

36

Page 43: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

xor+×

xor

+ ×

× +

+ ×xorxor

xor xor

X1 X2 X3 X4

Z11

Z15 Z1

6

Z12 Z1

3 Z14

× ×+ +

Y1 Y2 Y3 Y4

Z91 Z9

2 Z93 Z9

4

7 autres tours

Tour 1

Tour final

Figure 4.7 – Details de l’algorithme Idea

Advanced Encryption Standard Aes est aussi une methode de chiffrement a cles symetriques. Il a ete adopteen 2001 comme remplacant a Triple Des (trop lent) suite a un appel d’offre du gouvernement americain, et est basesur l’algorithme Rijndael (invente par Joan Daemen et Vincent Rijmen). La longueur de cle peut varier de 128 a 256bits, et le texte est chiffre par blocs de 128 a 256 bits.Nous ne detaillerons pas le fonctionnement d’Aes, et preciserons seulement qu’il est base sur les operations suivantes :

— ou exclusif bit a bit— substitutions d’octets— permutations d’octets— multiplications par des polynomes

Ces operations sont realisees plusieurs fois et la securite de Rijndael depend en grande partie du nombre de tours.Pour des blocs de 128 bits, le nombre de tours doit etre 10. Actuellement, une version d’Aes qui n’utiliserait que 7tours pourrait etre cassee.Pour des cles de 256 bits, le nombre de tours doit etre de 14. Actuellement, utiliser une implantation correcte d’Aesavec une cle de 256 bits est un moyen extremement sur de chiffrer des donnees.

Probleme des algorithmes a cle secrete Les algorithmes a cle secrete actuellement utilises sont tres surs et tresrapide. Cependant, il font apparaıtre un probleme recurrent : celui de l’echange des cles. Pour communiquer, les deuxentites doivent imperativement connaıtre une donnee commune : la cle. Si l’echange de cette cle se fait en clair, c’estla securite des communications futures qui n’est plus assuree. Ce probleme semblait insoluble jusqu’a ce que dans lesannees 70, trois personnes apportent une reponse.

4.2.3 Protocole d’echange de cles

C’est aux trois chercheurs americains : Whitfield Diffie, Martin Hellman et Ralph Merkle qu’a ete attribuee ladecouverte d’un protocole d’echange des cles (1976). Le systeme est base sur l’arithmetique modulo n et sur unefonction a sens unique de type Y x(modn).Nous allons voir comment deux personnages que nous appellerons Alice et Bob peuvent convenir d’une cle commune(un nombre) sans crypter leurs communications (fig.4.8).

1. Alice et Bob s’entendent publiquement sur les valeurs de Y et n (n tres grand premier et Y < n).

2. Chacun d’eux choisit de son cote un nombre (inferieur a n− 2) que nous noterons xA et xB .

3. Chacun d’eux calcule l’image par la fonction a sens unique (Y x (modn)) du nombre choisi. Ils disposentmaintenant des nombres yA et yB .

4. Alice et Bob echangent publiquement les nombres yA et yB .

5. Alice calcule zA = yxA

B (modn) et Bob calcule zB = yxB

A (modn)

6. Les nombres zA et zB sont identiques et constituent la cle qu’utiliseront Alice et Bob.

37

Page 44: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Accord commun public sur Y et n

Choix de xA

Calcul dey1 = Y xA(modn)

Calcul dezA = yxA

B (modn)

Choix de xB

Calcul deyB = Y xB (modn)

Calcul dezB = yxB

A (modn)

Cle commune z = zA = zB

Alice Bob

yByA

Figure 4.8 – Protocole d’echange de cles de Diffie, Hellman et Merkle

On peut verifier facilement que zA et zB sont egaux. En revanche, il est difficile de croire qu’une personne ayant ecouteleur conversation ne peut pas trouver la cle. Une telle personne connaıtrait en effet : Y , n, yA et yB . Si elle essaiede calculer la cle de la meme facon qu’Alice ou Bob, il lui faut xA ou xB , ce qu’elle n’a pas. Elle peut aussi essayerde refaire le calcul a l’envers, et connaissant Y , n et yA, calculer le nombre xA tel que yA = Y xA(modn) (calcul delogarithme discret modulo n). Toute la subtilite de la methode repose sur le fait que ce calcul ne peut pas etre faitautrement qu’en essayant toutes les valeurs de xA (fonction a sens unique). En choisissant de grandes valeurs pour n,xA, et xB le calcul reste impossible en pratique.

4.2.4 Algorithmes a cle publique

Dans le meme temps, les trois memes chercheurs on defini ce que devait etre un algorithme de chiffrement a clepublique. Dans ce type d’algorithme, chaque personne possede deux cles. La cle publique, utilisee generalement pourle cryptage et que tout le monde connaıt, et la cle privee utilisee pour le decryptage, qu’elle seule connaıt.Les points les plus importantes sont que la cle de decryptage doit etre tres difficile a obtenir a partir de la cle decryptage (naturellement, puisque celle-ci est publique) et que le cryptage ne doit pas pouvoir etre casse par un attaquesur texte en clair choisi. En effet, puisque tout le monde peut generer des textes cryptes avec la cle publique, il nefaut pas que cela puisse etre utilise pour casser le code. Le trio de chercheurs n’a cependant pas trouve d’algorithmequi satisfasse ces conditions et c’est a un autre trio qu’on doit l’implantation effective d’un systeme de cryptage a clepublique.

Xkcd : http://xkcd.com/538/

Rsa L’algorithme a cle publique le plus utilise est Rsa (du nom de ses auteurs, Ronald Rivest, Adi Shamir etLeonard Adleman qui l’ont decouvert en 1977). Il est aussi base sur l’arithmetique modulo n. On choisit deux nombres

38

Page 45: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

premiers tres grands : p et q. Puis, on recherche un nombre e qui soit premier avec (p− 1) et (q − 1). Ce nombre seraaussi premier avec z = (p− 1)(q − 1). Puisque e est premier avec z, il existe un nombre d tel que ed = 1(mod z) 5

Partant des nombres premiers p et q, on obtient un nombre e et un nombre d. Les nombres e et n = pq consituent lacle publique, et les nombres e et d la cle privee. Nous admettrons que, connaissant e et n, on ne peut pas retrouver dautrement qu’en retrouvant les entiers p et q. Or, il n’existe pas de methodes autres que la recherche exhaustive pourretrouver la decomposition en facteurs premiers de n, ce qui est impraticable si n est tres grand.

L’algorithme de chiffrement lui meme ne doit pas etre inversible, puisque le cle de cryptage est publique. Pour chiffrerun nombre P (avec P < n), on utile C = P e(modn), ce qui est facile a calculer connaissant e et n, mais tres difficile ainverser... sauf dans certains cas particuliers (on dit que la fonction utilisee est une fonction a sens unique et a brechesecrete). En effet, la fonction inverse est simplement P = Cd(modn), mais son calcul implique de connaıtre d, qu’onne peut pas deduire de e et n...

Malgre les nombreux avantages du systeme Rsa (plus de probleme d’echange de cles secretes), l’inconvenient est quele systeme est trop lent pour etre utilise de facon completement transparente. Il est essentiellement utilise pour deuxchoses : la signature numerique, dont nous reparlerons, et l’echange de cle secretes pour pouvoir utiliser Triple Desou Aes dans la suite des communications (cas de Ssl dont nous reparlerons).

El Gamal Le systeme de chiffrement a cle plublique El Gamal est base sur les logarithmes discrets et ressemblebeeaucoup a l’echange des cles par la methode de Diffie-Hellman-Merkle.

Supposons qu’Alice veuille permettre a Bob de lui envoyer des messages. Alice doit realiser les operations suivantes :

— choisir un nombre n premier tres grand— choisir un nombre α < n— choisir au hasard un troisieme nombre a, compris entre 1 et n− 2— calculerA = αa (modn)

Enfin :

— le triplet (n, α,A) est la cle publique d’Alice qu’elle communique a Bob— la paire (n, a) est la cle privee d’Alice

Pour envoyer un message m < n− 1 a Alice, Bob doit :

— choisir au hasard un entier k (entre 1 et n− 2)— calculer γ = αk (modn) et δ = mAk (modn)— envoyer le message chiffre (γ, δ) a Alice

Pour decrypter le message (γ, δ) envoye par Bob, Alice doit :

— calculer m = γn−1−aδ (modn)

En effet :

γn−1−aδ = γn−1 ×(αk)−a ×mAk = 1 ×

(αk)−a ×m (αa)

k

= m

Le calcul de m necessite donc de connaıtre a, qui est le logarithme discret de A dans la base α. On ne sait actuellementpas calculer de tels logarithme si le module (n) est superieur a 300 bits. Il est donc recommende de prendre un nombren de 1024 bits.

Certificats - Authentification des cles publiques La cryptographie a cle publique pose un probleme si unepersonne C mal intentionnee donne sa propre cle publique en pretendant qu’elle appartient a B. La personne Apourrait alors utiliser cette cle pour communiquer avec B, ne sachant pas que C peut intercepter les messages, les lireet les crypter avec la veritable cle publique de B afin que celui-ci ne se doute de rien (principe d’attaque nomme Manin the middle).

Il existe un moyen d’�authentifier� une cle publique et de garantir le fait qu’elle appartient bien a telle personne : c’estla notion de certificat. Les certificats font appel a une organisation tierce digne de confiance. Cette organisation, enpossession de la cle publique et de l’identite du detenteur lui remet un certificat. Ce certificat contient la cle publiqueet le nom du detenteur, signe (voir plus loin pour la signature numerique). La signature numerique garantit que lecertificat n’est pas un faux, et a bien ete delivre par l’autorite de certification. Il permet donc de verifier que la clepublique appartient bien a telle personne. La certification des cles se fait moyennant finances et en consequence toutle monde n’y a pas acces. En particulier, les sites Web qui utilisent l’authentification et le cryptage (Ssl, voir plusloin) fournissent un tel certificat. S’il n’a pas ete signe par un organisme reconnu (c’est a dire s’il n’a pas ete achete),le navigateur previent generalement l’internaute par un message d’alerte.

Le format de certificat normalise est x-509.

. Documents de reference : Rfc 3280 pour les specifications des certificats x-509

5. Ceci decoule du theoreme de Bezout : si pgcd(a, b) = d, il existe un couple (u, v) tel que au + bv = d.

39

Page 46: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

4.2.5 Condenses de messages

Il est souvent necessaire d’obtenir, a partir d’un texte de longueur n, un texte plus court, appele condense de message(ou hachage ou hash), qui a les proprietes suivantes :

— un condense de message doit etre facile (i.e. rapide) a calculer (meme si le message est tres long) ;— quel que soit le condense, on ne peut pas l’utiliser pour retrouver le message original 6 ;— pour un message donne, il est impossible (comprendre hors de portee d’un calcul actuel et pour les annees

a venir) de trouver un autre message ayant le meme condense (alors qu’il y en a, par definition, puisque lecondense est plus court) ;

— une modification mineure dans le message modifie grandement le condense.Les deux methodes les plus connues (dont nous ne detaillerons pas le fonctionnement) sont Md5 et Sha-1 qui per-mettent respectivement d’obtenir des condenses de 128 et 160 bits.Ce principe est utilise entre autres pour verifier l’integrite de gros fichiers (images Iso 9660 par exemple) qui auraientpu etre mal transmises. On compare leur �somme Md5� a la somme Md5 du fichier d’origine donne par le distributeurdu fichier.Voici quelques exemples de condenses de messages :

> echo "Il ne fait pas super beau en ce momemt. Heureusement,

le pere noel ne va plus tarder" | md5sum

12b842b55b56e884bb983072a12a8438 -

> echo "Il ne fait pas super beau en ce momemt. Heureusement,

la mere noel ne va plus tarder" | md5sum

be069318d997f73fce217f149c34a646 -

> echo "Il ne fait pas super beau en ce momemt. Heureusement,

la mere noel ne va plus tarder" | sha1sum

4f3e5452c210b55e0248586ddb90ffce203bfbfb -

Actuellement, on prferera utiliser des versions �ameliorees� de Sha-1, comme Sha-256 ou Sha-512 qui produisentdes condenses plus long et offrent une meilleure securite.

4.3 Applications

4.3.1 Probleme d’authentification

La methode la plus courante, lorsque certaines personnes doivent acceder a une ressource reseau au sens large (machine,page Web, fichier...) est de les munir d’un login et d’un mot de passe. Le couple login/mot de passe fait partie desmethodes d’authentification, mais on peut imaginer d’autres principes : carte, empreintes digitales, iris... Toutes cesmethodes visent a s’assurer que la personne accedant a la ressource est bien celle qu’elle pretend etre. On peut diviserces techniques de verification d’identite en trois groupes :

— la connaissance d’un element— la possession d’un objet— certaines caracteristiques physiques

Connaissance d’un element La methode la plus courante est celle des mots de passe. La personne qui doits’authentifier entre un mot de passe, qui est compare avec un mot de passe preenregistre. On voit parfois aussi desquestionnaires (sur des details de la vie privee) permettant d’identifier les personnes.La methode des mots de passe est tres largement utilisee (sur un simple ordinateur de bureau, sur des pages Webetc..). Generalement, les mots de passe stockes le sont sous forme de condenses, de telle sorte que la connaissance deces condenses (si le fichier les contenant est derobe) ne permet pas de retrouver les mots de passe en clair. Il existeneanmoins des logiciels specialises qui calculent les condenses de tres nombreux mots de passe et les compare avecceux utilises par le systeme. Ces logiciels sont bases sur l’usage de dictionnaires, d’ou la necessite de choisir des motsde passe longs, et difficiles a retenir (parce que sans signification et donc ne figurant pas dans un dictionnaire).L’authentification par cle privee/publique prend un essor tout particulier. La personne devant s’authentifier envoieau systeme un message crypte avec sa cle privee. Le systeme disposant de la cle publique le decrypte et verifie savalidite 7 C’est ce principe qui est utilise par Ssh (Secure Shell), et pour l’acces securise au Web (c’est le serveur quidoit alors s’authentifier). Dans ces deux cas, la communication qui s’en suit est cryptee elle aussi, apres un echangede cles secretes (voir section 4.3.4).

6. C’est une grosse difference entre le chiffrement et le hachage. Dans le premier cas, en connaissant la bonne cle, on parvient naturel-lement a retrouver le message original.

7. Notons ici l’ordre inverse des operations : cryptage avce la cle privee et decryptage avec la cle publique.

40

Page 47: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

Possession d’un objet Ces techniques sont tres employees, et regroupent l’identification par badges, cartes magnetiques,cartes a puce... Nous ne parlerons que de ces dernieres. Les cartes a puces contiennent une memoire et peuvent ounon contenir un microprocesseur (les cartes bancaires en contiennent un, alors que les cartes telephoniques non). Nousallons voir comme exemple d’authentification la methode employee avec les cartes bancaires. Celle-ci se deroule endeux ou trois temps. Dans un premier temps, la carte est authentifiee (comme etant une carte emise par le groupemetndes cartes bancaires) par le terminal. Celui-ci calcule le condense des informations qu’elle contient (numero, nom dudetenteur...). Puis, il lit sur la carte une valeur V , qui est la version cryptee, par la cle privee du groupement des cartesbancaires 8, du meme condense. Il decrypte ce condense avec la cle publique du groupement des cartes bancaires (quiest publiee), et doit retrouver le condense qu’il a calcule lui-meme. Le groupemetn des cartes bancaires a �signe� lacarte (cf. section 4.3.2). La deuxieme authentification concerne le code a 4 chiffres (qui authentifie plutot le porteurde la carte que la carte elle-meme). Ce code est stocke sous forme cryptee sur la carte. C’est la carte elle-meme quirealise un calcul a partir du code entre sur le terminal et qui confirme si le code est le bon ou pas 9. Enfin, pourcertaines transactions seulement, une authentification/autorisation est realisee par un centre de controle distant (lefameux Autorisation en cours...). Des donnees concernant la transaction sont envoyees cryptees par un algorihtme acle secrete (Triple Des) au centre de controle, qui connaıt les cles secretes de toutes les cartes. Il authentifie la carteet autorise ou non la transaction.

Mesure de caracteristiques physiques (biometrie) L’identification par empreintes digitales ne date pas d’au-jourd’hui. Neanmoins, la reconnaissance automatique est maintenant a la portee des ordinateurs. Les lecteurs d’em-preintes sont presque monnaie courante.Une empreinte digitale comporte un certain nombre de details, les plus gros d’entre eux sont appeles arches, tourbillonset boucles. Il y a quelques details de cette sorte sur une empreinte. Plus importantes sont les minuties (voir figure 4.9),que l’on retrouve sous la forme de bifurcations ou de terminaisons de crete. Il y a entre 50 et 200 minuties sur uneempreinte et on pense que les positions de 20 d’entre elles sont suffisantes pour identifier un individu.

bifurcation

terminaison

Figure 4.9 – Les deux types de minuties d’une empreinte digitale

Les systemes de reconnaissance de la voix sont bases sur l’analyse spectrale de la voix. Ils necessitent que la personnea authentifier ait d’abord �donne� un echantillon de sa voix, et il faut que cet echantillon soit suffisamment riche enphonemes pour que l’authentification puisse etre faite. Un des problemes de l’authentification par la voix est que l’etatphysique de la personne (maladie, fatigue, stress) peut rendre le systeme inoperant.Le systeme de vascularisation de la retine est tres caracteristique d’un individu. La personne a authentifier doit placerson œil tres pres d’une camera qui explore a l’aide d’un rayon infrarouge la disposition des vaisseaux sanguins sur laretine. Ce systeme n’a ete utilise que dans des environnements de haute securite (centrales nucleaires, militaires) etne perce pas aupres du grand public, sans doute a cause de la trop grande cooperation qu’elle necessite.Plus recente (et brevetee) est la reconnaissance de la texture de l’iris. La aussi une camera est necessaire, mais lamethode de focalisation de cette derniere est moins contraignante pour l’utilisateur. Cette technique est envisagee aune large echelle, pour les distributeurs automatiques de billets par exemple.Enfin, il existe d’autres techniques biometriques plus ou moins sures, comme la mesure du visage (utilise dans desaeroports via les cameras de surveillance), de la main, ou des mouvements effectues pendant une signature. Enfin,l’authentification par Adn est envisagee (bienvenue a Gattaca...).

4.3.2 Signature numerique

L’authentification de documents papiers repose generalement sur la signature. L’equivalent numerique de la signaturea pose un probleme durant de nombreuses annees 10.

8. Cette cle est particulierement secrete, et a pour taille 768 bits depuis la factorisation de l’ancienne cle de 320 bits.9. C’est la faiblesse de ce principe qui a ete utilisee dans les �Yes cards� de S. Humpich.

10. On pourrait en premiere approximation penser qu’un courrier electronique provenant de telle personne permet de l’authentifier, cequi n’est pas le cas, comme nous l’avons vu, puisque le protocole Smtp n’impose aucune securite au niveau de l’expediteur, mais seulement

41

Page 48: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Le but de la signature, lors de l’envoi d’un message quelconque est que :

— le destinataire puisse verifier l’identite de l’expediteur ;— l’expediteur ne puisse pas repudier son message ;— le destinataire ne puisse pas fabriquer un tel message.

Nous ne parlerons ici que de la signature a cle publique, qui a l’avantage de ne pas necessiter un tiers de confiance. Cettemethode peut etre basee sur Rsa ou sur El Gamal par exemple. Il suffit que l’algorithme de chiffrement asymetriqueait la propriete suivante : appliquer l’algorithme de cryptage (base sur la cle publique) sur l’algorithme de decryptage(base sur la cle privee) redonne le message en clair.

Supposons qu’Alice veuille signer un message qu’elle envoie a Bob. Nous noterons respectivement EA, DA, EB et DB

les fonctions de chiffrement et dechiffrement d’Alice et Bob (qui necessitent la connaissance des cles appropriees). Poursigner et chiffrer son message M , Alice envoie a Bob C = EB(DA(M)) ce qui est possible puisque Alice connaıt sapropre cle privee ainsi que la cle publique de Bob. A la reception, Bob obtient le message en calculant M = EA(DB(C)),ce qui est possible puisque Bob connaıt sa propre cle privee et la cle publique d’Alice. Il a l’assurance qu’Alice estbien l’expediteur puisque seule Alice peut produire le message DA(M), a condition qu’Alice garde effectivement sa cleprivee secrete, ce qui est le point faible de cette methode. De meme, Alice ne pourra pas avoir nie envoyer le messagepuisqu’elle seule peut produire DA(M).

Tres souvent, plutot que de signer tout le message, seul un condense est signe 11 ce qui garantit tout de meme unegrande securite, et ajoute au confort d’utilisation. L’integrite du message est toujours respectee puisque le condensedu message recu peut etre recalcule et compare au condense signe.

Si elle souhaite simplement signer son message, Alice peut d’ailleurs calculer DA(cM ) ou cM est un condense de sonmessage. Bob pourra le decrypter en calculant EA(DA(cM )) et verifier que le condense qu’il obtient est bien celui dumessage. Ainsi, pour signer ses messages, nul besoin de connaıtre a l’avance l’identite du destinataire.

4.3.3 Pretty Good Privacy, OpenPGP, GnuPG - Securisation des courriels

Le systeme Pgp (Pretty Good Privacy) a ete invente par Philip Zimmermann. Il est destine a l’authentificationet au cryptage du courrier electronique. De son logiciel Pgp est nee une specification : OpenPgp qui detaille lesfonctionnalites de securisation des emails. Le logiciel GnuPg est une implantation libre de la specification OpenPgp.Ce qui est valable pour Pgp est donc a priori valable pour GnuPg.

En ce qui concerne le cryptage, Pgp realise les actions suivantes :

— Compression du texte du courrier— Generation d’une cle secrete aleatoire— Cryptage du texte compresse avec la cre secrete (avec un algorithme adapte, par exemple Aes)— Cryptage de la cle secrete avec la cle publique du destinataire.

En plus de la fonction de cryptage, Pgp permet de signer numeriquement les mails. Pour cela, Pgp calcule un condensedu message a envoyer, puis le crypte avec la cle privee de l’expediteur (voir section 4.3.2).

. Documents de reference : Rfc 2440

4.3.4 Tuneling - Cryptage des communications

Dans cette section, nous revenons sur certains points qui concernent plus particulierement le chiffrement des commu-nications. La plupart des protocoles applicatifs d’internet ne sont pas cryptes (Pop, Smtp, Http...). Les protocolesde plus bas niveau ne le sont pas non plus Ip, Tcp,... Par defaut, rien n’est crypte, et l’espionnage du reseau est tresfacile. Depuis quelques annees, les algorithmes de chiffrement a cle publique sont utilises pour securiser les commu-nication entre deux machines, au niveau de l’application ou des protocoles de niveau inferieur. La methode la plusemployee aujourd’hui est Ssl (Secure Socket Layer). Le protocole �s’intercale� entre un protocole application (Httppar exemple) et Tcp. Le protocole Tls (Transport Layer Security) est simplement une des versions de Ssl normalisee(c’est la version 3.1). Ssl offre le cryptage des informations et l’authentification du serveur (et eventuellement duclient). L’authentification se fait par un echange de certificats. En ce qui concerne le cryptage, il est base sur desalgorithmes de chiffrement symetriques (Des, Aes, Triple Des...)). Le chiffrement utilise est negocie entre le clientet le serveur et l’echange des cles peut etre fait selon le protocole de Diffie-Hellman-Merkle, ou par cryptage a clepublique (Rsa).

Un echange utilisant Ssl avec echange des cles Rsa suit le schema suivant (figure 4.10(b)) :

1. le client fournit au serveur la liste des systemes de cryptage qu’il connaıt, ainsi qu’un nombre pseudo-aleatoireRc.

2. le serveur renvoie sa cle publique (eventuellement dans un certificat), un nombre aleatoire Rs, ainsi que l’algo-rithme de cryptage choisi dans la liste de ceux supportes par le client (il choisit le meilleur disponible).

quelques palliatifs au Spam.11. En particulier lorsqu’on est interesse par la signature elle-meme mais pas par le cryptage de la communication.

42

Page 49: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

3. le client verifie la validite du certificat. S’il n’est pas signe par une autorite de certification, il emet un messaged’alerte, puis il genere une cle (pseudo-)aleatoire temporaire. Il crypte cette cle avec la cle publique du serveuret la lui envoie.

4. le serveur decode la cle temporaire avec sa cle privee.

5. les deux partis possedent maintenant la cle temporaire, et les nombres Rc et Rs. Ces nombres sont utilises pourque chaque partie construise la cle de session (la meme des deux cotes naturellement). C’est cette cle de sessionqui sera utilisee pour crypter la communication avec un systeme a cle symetrique.

Choix d’unnombre Rc Choix de x

Choix de Rs

Choix de pChoix de gy = gx(mod p)

Choix de xc

yc = gxc(mod p)

z = ycx(mod p)

k = f(z,Rc, Rs)

z = yxc(mod p)k = f(z,Rc, Rs)

Rc

p, g, y, Rs

yc

(a) Diffie Hellman Merkle

Choix d’unnombre Rc

Choix d’unnombre Rs

Choix de zz′ = crypte(z)

z = decrypte(z′)k = f(z,Rc, Rs)

k = f(z,Rc, Rs)

Rc

pubkey, Rs

z′

(b) Rsa

Figure 4.10 – Echange des cles pour utilisation de Ssl

Un echange utilisant Ssl avec echange des cles selon le protocole Diffie-Hellman-Merkle suit le schema suivant (fi-gure 4.10(a)) :

1. le client fournit au serveur la liste des systemes de cryptage qu’il connaıt, ainsi qu’un nombre pseudo-aleatoireRc.

2. le serveur choisit un nombre aleatoire x, renvoie les parametres de Diffie-Hellman-Merkle : g, p et y = gx(mod p)(eventuellement dans un certificat), un nombre aleatoire Rs, ainsi que l’algorithme de cryptage choisi dans laliste de ceux supportes par le client (il choisit le meilleur disponible).

3. le client verifie la validite du certificat. S’il n’est pas signe par une autorite de certification, il emet un messaged’alerte, puis il choisit un nombre xc et renvoi au serveur yc = gxc(mod p).

4. les deux parties calculent la cle temporaire : z = yxc(mod p) = yxc (mod p).

5. les deux partis possedent maintenant la cle temporaire, et les nombres Rc et Rs. Ces nombres sont utilises pourque chaque partie construise la cle de session (la meme des deux cotes naturellement). C’est cette cle de sessionqui sera utilisee pour crypter la communication avec un systeme a cle symetrique.

L’utilisation de Ssl peut ou non etre prevue par l’application (Firefox et Internet Explorer supportent Ssl parexemple). Dans le cas ou l’application ne prevoit pas d’utiliser Ssl, il est possible d’utiliser la methode du tunelingqui consiste, de facon imagee a detourner le trafic entre deux applications dans un tunnel Ssl. Ce systeme peut aussibien exister du cote du serveur que du client. La figure 4.11 illustre la difference entre un serveur Pop et un clientPop utilises seuls, et la meme chose avec un tunnel Ssl.

Serveur Pop Client Pop

port 110 port 37957

(a)

Serveur Pop Client Pop

port 995 port 37958

tunnel tunnel

port 110 port 37857

(b)

Figure 4.11 – Connexion entre un client et un serveur Pop (a) sans tunnel Ssl et (b) avec tunnel Ssl

43

Page 50: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Dans le cas du tunnel, les applications serveurs et clientes ne savent meme pas que les communications passent parun tunnel. C’est la fonction du tunnel que de se brancher sur les bons ports pour rendre leur utilisation transparente.Le fonctionnement du tunnel au niveau de la connexion est tout a fait similaire a ce que nous avons expose dans lesparagraphes precedents.

Les ports utilises pour les services reseaux habituels sont donnes dans le tableau suivant, avec leur equivalents Ssl :

Service Port standard Port SslPop 110 995Http 80 443Imap 143 993Smtp 25 465Ftp 21 115

. Documents de reference : Rfc 2246 pour Tls

Xkcd : http://xkcd.com

44

Page 51: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

4.3.5 Reseaux sans fil

La securite dans les reseaux Wi-Fi concerne essentiellement le controle d’acces (�qui peut se brancher au reseau ?�),et la confidentialite (�personne ne doit pouvoir m’espionner ?�).

Controle d’acces par adresse Mac Que le reseau soit de type Ethernet (802.3) ou Wi-Fi (802.11), on utilise danstous les cas des adresse Mac de 6 octets. La plupart des points d’acces permettent de donner une liste d’adressesphysiques qui ont le droit de se connecter.

Confidentialite Wep Wep (Wire Equivalent Privacy) est un mecanisme de chiffrement pour les reseaux sans filqui permet d’isoler le reseau sans fil du reste du monde. Autrement dit, seuls les membres du reseau sont normalementen mesure de dechiffrer les communications (de tout le reseau...). Wep utilise l’algorithme de chiffrement symetriqueRc4 avec des cles de 64 ou 128 bits. Dans le mecanisme Wep, la cle est distribuee au point d’acces et a tous les clients.

Le fonctionnement de Rc4 implique d’avoir un cle qui varie continuement. Pour cette raison, dans le Wep 128 bits,104 bits sont la cle du reseau, et 24 constituent le vecteur d’initialisation modifie de facon continue.

Neanmoins, si le trafic est intense, il n’est pas rare que le vecteur d’initialisation prenne un valeur qu’il a deja euauparavant, affaiblisant ainsi Rc4.

De nombreuses autres techniques, plus ou moins complexes, ont montre la faiblesse de Wep (vecteur d’initialisationmal distribue dans la cle, cle entree par l’utilisateur et donc non aleatoire...)

Aujourd’hui, il est tres largement conseille de securiser les reseaux sans fil avec Wpa plustot que Wep.

Confidentialite Wpa Une premiere version de Wpa (Wi-Fi Protected Access) a ete mise en place pour palier lesproblemes de Wep. Elle implante une partie de la norme 802.11i et fonctionne avec la plupart des materiels. La totalitede la norme 802.11i est implantee dans Wpa 2, mais son utilisation demande un materiel recent.

Il est prevu que Wpa soit implante avec un serveur d’authentification (serveur radius par exemple) de sorte que tousles client ne partagent pas la meme cle (contrairement a Wep). Il existe cependant un mode nomme Pre-Shared Key,ne necessitant pas de serveur d’authentification (mais tout le monde aura la meme cle).

Wpa utilise aussi l’algorithme de chiffrement Rc4, mais avec un vecteur d’initialisation plus long que pour Wep (48bits). Le controle d’integrite est meilleur qu’avec Wep (somme de controle difficile a modifier, compteur de tramespour eviter le rejoue...)

A l’heure actuelle Wpa offre une securite tres raisonable.

Dans Wpa 2, les principales ameliorations concernent l’algorithme de chiffrement, qui est Aes au lieu de Rc4, ainsique le controle d’integrite.

4.3.6 Securite dans les couches basses

Sous ce titre trompeur se cachent des techniques moins �logicielles� liees a la securite en ce sens que c’est le modede fonctionnement meme du reseau qui en est la source, plutot que l’initiative d’un logiciel client et d’une personne.Nous aborderont les Vlan (Virtual Local Area Network), qui permettent de segmenter un reseau local, les pare-feux,tres souvent utilises sur des passerelles, pour filtrer les communications avec l’exterieur et la translation d’adresse.

IPsec IPsec (Internet Protocol Security) est une tentative de securiser internet par les couches basses. En particulier,il s’agit ici de securiser la couche Ip. Nous n’allons pas detailler le fonctionnement d’Ipsec. Nous preciserons neanmoinsqu’il existe en deux modes de fonctionnement. Le mode transport consiste a modifier les datagrammes Ip en leurrajoutant des en-tetes et en en modifiant le contenu (cryptage). Le mode tunnel consiste a encapsuler des datagrammesIp cryptes dans d’autres datagrammes Ip normaux. La methode de cryptage consiste toujours en un echange de clesde session (comme pour Ssl).

Virtual Local Area Networks Les Vlan (Virtual Local Area Network ou reseau local virtuel) permettent desegmenter un reseau local au niveau de la couche Ethernet. Ce systeme est generalement mis en place sur des commu-tateurs prevus a cet effet. Chaque port du commutateur est affecte a un Vlan particulier et la diffusion des tramesEthernet ne peut se faire qu’entre des ports appartenant au meme Vlan. Ainsi, par exemple, les requetes Arp nesont transmises que sur certains ports du commutateur au lieu d’etre diffusees dans tout le reseau. L’implantation desVlan est le resultat d’une norme (Ieee 802.1q) qui specifie le format des trames Ethernet compatibles Vlan. Il s’agitessentiellement de rajouter un champs dans l’en-tete Ethernet contenant le numero du Vlan auquel est associee latrame. Tous les materiels n’etant pas compatibles 802.1q, la notion de Vlan n’existe generalement plus a l’arrivee surle poste de travail. Neanmoins, les cartes reseaux recentes supportent cette norme, et il est possible de configurer unposte de travail appartenant a plusieurs Vlan, ayant une adresse Ip distincte dans chacun d’eux, et tout ceci avecune seule carte Ethernet.

45

Page 52: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

Pare-feux Les pare-feux n’agissent pas que sur les couches basses des reseaux. Ils figurent neanmoins dans ce chapitrecar ils sont generalement installes independamment de la configuration des differents postes de travail. Le but d’unpare-feu (ou garde-barriere, ou firewall) est de filtrer les communications vers et venant de l’exterieur, en ayant pris soinde s’assurer que toutes les communications de ce type traverseront forcement le pare-feu (qui est donc generalementaussi une passerelle ou un routeur), comme indique par la figure 4.12.

Internet

10.16.81.254 10.16.90.70 10.16.83.27

194.10.10.10Poste de travail Poste de travail

Pare-feu

Figure 4.12 – Position d’un pare-feu dans un reseau local

Le pare-feu fait office de filtre pour les connexions entrantes ou sortantes. Un ensemble de regles, qui constituent laconfiguration du pare-feu indique quels datagrammes Ip peuvent ou non circuler dans un sens ou dans l’autre. Lesregles de filtrage portent generalement sur le protocole utilise (Tcp ou Udp), les numeros de port, et les adresseIp source et destination. Un pare-feu peut donc interdire l’acces a tous les serveurs Web externes en filtrant toutesles connexion sortantes dont le port destination est 80 ou 443 (pour Https). La connexion a certains serveurs Webuniquement peut etre interdite en donnant des regles qui concernent l’adresse Ip et le port.Le filtrage peut se faire aussi au niveau applicatif, en regardant le contenu des donnees qui transitent au niveauapplication (filtrage de mails etc...).Si les pare-feux sont generalement des passerelles, il existe neanmoins de petits outils permettant de parametrer unpare-feu sur sa propre machine 12. Loin d’etre utiles uniquement aux paranoıaques ou aux administrateurs d’unepasserelle, un pare-feu personnel bien configure permet d’interdire l’acces a sa machine par d’autres machines dumeme reseau, ou tout simplement s’apercevoir que sa propre machine accede intempestivement a l’exterieur (a causedes alertes du pare-feu) ce qui diagnostique souvent un ver essayant de se propager.

Reseaux prives et translation d’adresses Avec la penurie d’adresses Ip qui a suivie l’explosion du nombrede machines connectees a internet, et en attendant l’arrivee d’Ipv6, la technique de la translation d’adresses a faitson chemin. Nous avons vu que certaines plages d’adresses Ip pouvaient etre utilises dans des reseaux prives. Uneconsequence de cela est qu’elles ne sont pas uniques dans le monde puisqu’il y a de nombreux reseaux prives. Cesadresse ne sont pas routables, dans le sens ou une machine connectee a internet ne pourra pas joindre une machineayant une adresse Ip privee par le biais de cette adresse. Il existe neanmoins un moyen de relier de tels reseaux prives ainternet. L’implantation se fait au niveau de la passerelle, qui traduit les adresses non routables en adresses routables.La technique est appelee translation d’adresse ou Nat pour Network Address Translation. Lors de la reponse de lamachine exterieure, le port utilise par la passerelle permettra de retrouver la machine du reseau prive a qui le paquetest destine et de lui faire parvenir. Ce principe est illustre sur la figure 4.3.6.Une entree est rajoutee dans la table de translation des ports (Pat pour Port Addresss Translation) lorsque le paquetsort. Au retour, la passerelle lit le port destination et l’utilise pour retrouver la machine a qui envoyer le paquet.Il est possible de faire correspondre une adresse Ip routable a chaque adresse Ip privee auquel cas on pratique de latranslation statique ou 1-to-1. On perd alors le benefice de l’economie d’adresses Ip. Si chaque adresse Ip est traduiteen la meme adresse routable, on pratique de la translation dynamique ou 1-to-n. C’est dans ce dernier cas que la tablePat est utilisee. Et c’est toujours dans ce dernier cas que la securite est accrue puisque les connexions initiees del’exterieur ne peuvent pas aboutir (pas d’entree dans la table) 13.

4.4 Telephones �intelligents�

Le premier virus pour telephone portable date de 2004 et se nomme Cabir. Ce virus n’a pas d’autre effet nefasteque se propager. Depuis ce premier essai, le monde des telephones portables est de plus en plus touche par les

12. En standard sous Linux avec iptables, sous Xp avec le firewall integre ou avec un logiciel Windows supplementaire (Personnal TinyFirewall par exemple)

13. A ce sujet, certains protocoles, comme Ftp (mode passif) necessitent l’initiation d’une connexion vers le client. Les passerelles peuventgeneralement etre configures pour gerer ce cas un peu special.

46

Page 53: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Notes de cours, Ensip, Mee 3

Dst : 192.168.81.2:33967Src : 66.102.19.104:80

Dst : 192.168.81.2:33967Src : 66.102.19.104:80

Dst : 66.102.19.104:80Src : 192.168.81.2:33967

192.168.81.1 192.168.81.2

FinPat :33987⇒192.168.81.2:33967

Dst : 66.102.9.104:80Src : 194.254.10.10:33987

Dst : 194.254.10.10:33987Src : 66.102.19.104:80

194.254.10.10

66.102.9.104

Debut

Internet

Dst : 66.102.9.104:80Src : 194.254.10.10:33987

Dst : 194.254.10.10:33987Src : 66.102.19.104:80

Dst : 66.102.19.104:80Src : 192.168.81.2:33967

Figure 4.13 – Communications entre un reseau prive et internet en utilisant la translation d’adresse

virus, et on estime le nombre de ceux-ci a deux ou trois cents en 2007. La plupart de ces virus utilisent le fait queles telephones portables peuvent communiquer (Bluetooth) sans intervention particuliere de l’utilisateur. Ainsi, unecontamination peut se faire simplement en passant a proximite d’un telephone infecte. Lorsqu’un telephone est detectepar un telephone infecte, le virus (ou plutot le ver) tente de s’y telecharger. L’utilisateur doit alors approuver, mais s’iln’approuve pas, son telephone est detecte a nouveau par l’appareil infecte et l’utilisateur doit de nouveau approuverou pas... la plupart des gens se lassent et finissent par accepter le virus (qui ne se presente pas comme tel evidemment).Ainsi, lors des championnats du monde d’athletisme a Helsinki en 2005, un message d’alerte a du etre diffuse pourenrayer la dissemination du ver CommWarrior dont la vitesse de propagation a ete decuplee par la proximite demilliers d’appareilsEvidemment, seuls les telephones les plus evolues sont concernes : ils doivent disposer d’un systeme d’exploitationouvert permettant finalement de faire les memes choses que les ordinateurs domestiques. Les systemes en questionsont par exemple Symbian, Pocket PC, Windows Mobile, Treo... Le systeme le plus utilise etant le plus touche, c’estSymbian qui est generalement vise.On peut craindre que la dissemination des virus/vers pour telephones portables ne devienne d’autant plus dramatiqueque les possibilites d’escroqueries (paiements a distance, envois de textos a des numeros surtaxes etc...) offertes parles appareils ne cessent de croıtre.Des etudes recentes (voir La Recherche 434 Oct 2009) montrent que les seuls freins a une veritable pandemie sontd’une part la faible part de smartphones contenant un systeme donne, et d’autre part, la necessite d’un quasi contactphysique (10m) pour la transmission par Bluetooth. Le developpement des MMS (plus bseoin d’etre a proximite), etl’augmentation de parts de marche de tel ou tel OS œuvrent dans le sens du risque croissant.

47

Page 54: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

48

Page 55: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Table des figures

1 Quelques topologies physiques de reseaux informatiques . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Modele Osi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Structure en couche pour l’analogie du traducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Deux systemes de traduction qui communiquent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Couches Tcp/Ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Encapsulation Tcp/Ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6 Datagramme Ipv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.7 Paquet Icmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.8 Messages Icmp pouvant etre emis en reponse a des datagrammes Ip . . . . . . . . . . . . . . . . . . . 81.9 Messages Icmp n’etant pas emis en reponse a des datagrammes Ip . . . . . . . . . . . . . . . . . . . . 81.10 En-tete Udp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.11 Pseudo en-tete Udp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.12 En-tete Tcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.13 Etablissement d’une connexion Tcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.14 Utilisation du numero d’accuse de reception pour reguler le flux . . . . . . . . . . . . . . . . . . . . . . 101.15 Trois reseaux interconnectes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.16 Decoupage d’un reseau en sous-reseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.17 Differents modes d’utilisation d’un reseau sans fil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.18 Requete Arp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1 Steganographie par la methode Lsb (Least Significant Bit) . . . . . . . . . . . . . . . . . . . . . . . . 304.2 Machine Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.3 Reseau electrique dans les rotors d’Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.4 Differents modes de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.5 Fonctionnement de Des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.6 Cryptage avec Triple Des utilisant deux cles K1 et K2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.7 Details de l’algorithme Idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.8 Protocole d’echange de cles de Diffie, Hellman et Merkle . . . . . . . . . . . . . . . . . . . . . . . . . . 384.9 Les deux types de minuties d’une empreinte digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.10 Echange des cles pour utilisation de Ssl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.11 Connexion entre un client et un serveur Pop (a) sans tunnel Ssl et (b) avec tunnel Ssl . . . . . . . . 434.12 Position d’un pare-feu dans un reseau local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.13 Communications entre un reseau prive et internet en utilisant la translation d’adresse . . . . . . . . . 47

49

Page 56: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Reseaux

50

Page 57: R eseaux : Tcp/Ip, Internet, s ecurit e · Par mod ele en couches Osi, nous d esignerons le mod ele d’architecture d evelopp e par l’Organisme de Standardisation International.

Bibliographie

[1] Anonyme. Securite maximale des systemes et des reseaux. Campus Press, 4 edition, 2003.

[2] Christophe Blaess. Programmation systeme en C sous Linux. Collection Blanche. Eyrolles, 2005.

[3] D.W. Davies and W.L. Price. Securite dans les reseaux informatiques. Afnor, 2 edition, 1995.

[4] Vincent Le Goff. Apprenez a programmer en Python. Le livre du zero, 2011.

[5] Craig Hunt. TCP/IP : Administration de reseaux. O’Reilly, 2002.

[6] Guy Pujolle. Les reseaux. Eyrolles, 2010.

[7] Mark Summerfield. Programming in Python 3. Addison-Wesley, 2 edition, 2010.

[8] Andrew Tanenbaum and David J.Wetherall. Reseaux. Pearson Education, 5 edition, 2011.

[9] Ed Tittel. Reseaux. Ediscience, 2003.

51