Vous êtes sur la page 1sur 85

I

EPIGRAPHE

« Les auteurs les plus originaux d’aujourd’hui ne sont pas ceux qui apportent du
nouveau, mais ceux qui savent dire des choses comme si elles n’avaient jamais été dites
avant eux »

(GOETHE)
II

DEDICACE

Au couple André KANDE BIDUAYA et Bernadette NGALULA NTAMBUE, c’est grâce à


vos sages conseils et soutien tant spirituel, moral, matériel que financier, que nous
avons repris conscience, après la mort de notre cher papa, pour comprendre que la vie
ne devait jamais s’arrêter. Comme il est pratiquement impossible de récompenser tous
les bienfaits, que ce travail soit un signe de reconnaissance de ma part et qu’il soit pour
vous un fruit de la personne dont vous avez voulu que nous devenions.
C’est à vous que je dédie ce travail !

Symphorien BIDUAYA BIDUAYA


III

REMERCIEMENTS

Un travail scientifique de qualité n’a jamais été le fruit des efforts d’une seule
personne, il est l’objet de l’apport des plusieurs personnes. C’est pourquoi, nous
saisissons l’opportunité pour présenter des remerciements à tous ceux qui, de près ou
de loin, ont contribué d’une manière ou d’une autre à la réussite de ce travail, car dit-
on : « la reconnaissance est un signe de grandeur d’âme ». Ainsi, nos expressions de
reconnaissance sont adressées :

A Dieu Tout Puissant, pour sa protection dès ma naissance jusqu’à ce jour et surtout
parce qu’il nous a permis à connaitre la voie de la vérité et de la vie éternelle ; car sa
crainte est le commencement de la sagesse.

Au Professeur Rostin MABELA MATENDO, pour sa bonne foi de pouvoir accepté la


direction de ce travail parmi tant d’autres malgré ses diverses occupations en vue de
faire germer la graine de connaissance scientifique parfaite.

Au Chef de Travaux Anaclet TSHIKUTU BIKENGELA, pour l’attention soutenue à


notre égard lors de la rédaction du présent travail et pour avoir accepté la
qualification d’éclaireur des idées scientifiques jusqu’à terme de ce travail.

Aux autorités académiques et administratives, nous faisons également allusion au corps


professoral tant local que visiteur de la dite université pour les efforts tant soit peu,
conjugués pour la réussite de ce cycle de licence.

Aux autorités facultaires, pour leur accompagnement et leur attention soutenue à nos
demandes chaque fois qu’on les exprimait, durant tout le cycle, en l’occurrence le
Doyen Professeur Rigobert BANYINGELA, Professeur Simon NTUMBA, Professeur
Rostin MABELA MATENDO, le Secrétaire facultaire Assistant Pamphil KAZADI
MULUMBA, Chef de travaux Anaclet TSHIKUTU, Chef de travaux Nobla
TSHILUMBA, Chef de travaux Alice TSHIELA NKUNA, Chef de travaux Patient
MUSUBAO, Chef de travaux Hélène KANKOLONGO, Assistante Viviane KASEKA,
Assistant Bernard KABUATILA.

A ma très chère et aimable Maman Thérèse TSHIKANYI KANDE pour tous tes sacrifices
consentis toute ta vie, en vue de nous donner une éducation de qualité. Merci de tout
cœur, car c’est grâce à toi que nous parvenu à l’humanité.

A mes chers frères et sœurs : André KANDE BIDUAYA l’ainé qui a pris la relève de la
famille et m’a assuré de continuer avec le cycle de Licence, Athanase MBAYI, Jean
MUFUATA, Marie NGALULA, Thérèse TSHIKANYI, Alexandre KABENGA, Pierre
NDAYE, Erick ZEKE.
IV

A mes neveux, nièces et fils, sans vous nous ne pouvions jamais nous sentir très aimés,
vous étiez pour moi un soulagement chaque fois que j’avais un besoin.

Aux camarades et amis : Gérard BAKAMPAKA, Lisette KAPINGA, Maguy MUSAU,


Rebecca KASHIKA, Fiston UTULU, Moïse BUSHABU, Benoît MULUMBA, Clément
BIDUAYA, Jean-Célestin KABASELE, Frido MUSEMA, Marcel MUSWILA, Nicolas
KAPAJIKA, Jeampy MANDE, Elisée MPUNGA et bien d’autres.

Que tous ceux dont les noms ne sont pas repris ici, trouvent l’expression de leurs
encouragements pour leur apport dans ce travail, fruit de longue haleine.
V

LISTE D’ABREVIATIONS
SONAS : Société Nationale d’Assurances
IP : Internet Protocol
LAN : Local Area Network
MAN : Metropolitan Area Network
WAN : Wide Area Network
MAU : Multistation Access Unit
IEEE : Institute of Electrical and Electronics Engineers
FDDI : Fiber Distributed Data Interface
BNC : Bayonet Neil-Concelman connector
SNA : System Network Architecture
IBM : International Business Machine
DECnet : Digital Equipment Corporation network
TCP : Trasmission Control Protocol
DoD : Direct outward Dialing (en français, prise directe du réseau)
OSI : Organisation de standardisation International
ISO : International Standard Organization
UDP : User Datagram Protocol
DNS : Domain Name System
IETF : Internet Engineering Task Force
RFC : Request For Comments
IANA : Internet Assigned Numbers Authority
BSD : Berkeley Software Distribution
IPC : Inter Processus Communication
ARP : Address Resolution Protocol
CID : Confidentialité Intégrité et Disponibilité
CIA : Confidentiality, Integrity and Availibility
NIST : National Institute of Standards and Technology
FIPS : Federal Information Processing Standard
RAID : Redundant Array of Independent Disks
DES : Data Encryption Standard
IDEA : International Data Encryption Algorithm
RC4 : Rivest Chipher 4
AES : Advanced Encryption Standard
ASCII : Americain Standard Code for Information Interchange
UML : Unified Modeling Language
TLS : Transport Layer Socket
WEP : Wired Equivalent Privacy
VI

LISTE DE TABLEAUX
Tableau 1-1. Position des sockets dans le modèle OSI .......................................................... 21
Tableau 3-1. Classification des algorithmes .......................................................................... 42
Tableau 4-1. Fiche d’analyse du parc informatique ............................................................... 49
Tableau 5-1. Plan d’adressage .............................................................................................. 62
VII

LISTE DE FIGURES
Figure 1-1 - Exemple d’un réseau informatique ...................................................................... 4
Figure 1-2 - Topologie en bus................................................................................................. 7
Figure 1-3 - Topologie en étoile ............................................................................................. 8
Figure 1-4 - Topologie en anneau ........................................................................................... 8
Figure 1-5 - Topologie maillée ............................................................................................... 9
Figure 1-6 - Architecture client/serveur ................................................................................ 11
Figure 1-7 - Architecture Trois tiers ..................................................................................... 12
Figure 1-8 - Câble coaxial .................................................................................................... 13
Figure 1-9 - Paire torsadée non blindée................................................................................. 13
Figure 1-10 - Paire torsadée blindée ..................................................................................... 14
Figure 1-11 - Fibre optique ................................................................................................... 14
Figure 2-1 - La sécurité à plusieurs niveaux .......................................................................... 23
Figure 2-2 - La triade CID (CIA) .......................................................................................... 24
Figure 2-3 - La transmission de données vue par Shannon-Weaver....................................... 26
Figure 2-4 - La transmission de données simplifiée ..................................................................
Figure 2-5 - Types de menaces actives ................................................................................. 28
Figure 3-1 - Chiffrement et déchiffrement avec une clé ........................................................ 35
Figure 3-2 - Chiffrement et déchiffrement avec deux clefs ................................................... 35
Figure 3-3 - Fonctionnement d’algorithmes à clef secrète ..................................................... 36
Figure 3-4 - Cryptographie asymétrique ............................................................................... 37
Figure 4-1. Organigramme de la SONAS .................................................................................
Figure 5-1. Les diagrammes UML ........................................................................................ 52
Figure 5-2 - Le diagramme global des cas d'utilisations associés aux acteurs ........................ 54
Figure 5-3 - Diagramme de séquence de « Authentification » ............................................... 55
Figure 5-4 - Diagramme de séquence de « Envoyer des messages » ..................................... 56
Figure 5-5 - diagramme de séquence de « Déconnexion » .................................................... 56
Figure 5-6. Diagramme de classe .......................................................................................... 57
Figure 5-7 - Schéma de liaison du réseau de la SONAS ........................................................ 60
Figure 5-8 - Schéma de liaison du réseau de la SONAS ........................................................ 61
Figure 5-9. Fenêtre d’accueil du programme ........................................................................ 63
Figure 5-10 - Fenêtre de la liste d'ordinateurs ....................................................................... 64
Figure 5-11 - Fenêtre de discussion ...................................................................................... 65
Figure 5-12 - Fenêtre d’illustration de la sécurité .................................................................. 66
1

Introduction

Si dans les structures traditionnelles, on associait souvent le pouvoir de la fonction


exercée par l’information à sa thésaurisation en mesurant les résultats sur une échelle
indépendante de la valeur ajoutée, aujourd’hui, ce qui caractérise le pouvoir lié à
l’information, c’est la capacité de l’échanger. Ce qui devient primordial, « c’est la faculté de
trouver rapidement l’information la plus récente, d’accéder à la source, d’être en avance sur la
connaissance, d’anticiper, enfin de créer l’information, donc d’innover ». 1 Ainsi, avec
l’apparition de premiers langages, les communications étaient au cœur de la transmission du
savoir et, par là même, de l’essor de l’humanité.

Le besoin de sécuriser ces communications, dans le but de préserver un savoir-


faire par exemple, est probablement aussi ancien que les communications elles-mêmes. C’est
cette problématique qui a favorisé le développement de la cryptologie. Bien que l’on
s’accorde à penser que la cryptographie est un art existant depuis l’antiquité 2, c’est seulement
avec l’avènement de l’informatique que la cryptographie moderne est considérée comme une
science à part entière.

1. Problématique
En effet, actuellement, il y a une panoplie d’applications de messagerie
instantanée, qui malheureusement, nécessitent une connexion Internet du fait que leurs
serveurs soient en ligne. Même si cette connexion Internet est disponible, la largeur de la
bande passante3 n’est pas assez suffisante pour supporter les trafics de toutes les applications
d’un réseau. Sur le plan de la sécurité, ces applications ne garantissent pas le secret des
communications. Cela nous pousse à nous questionner pour savoir comment échanger des
messages de manière sécurisée dans une entreprise sans recours à l’Internet. Ce problème
laisse la plupart des entreprises dans une énorme difficulté, obligeant chaque fois les
travailleurs de faire des déplacements intempestifs pour se communiquer. Au regard de toutes
ces difficultés, nous nous sommes posé les questions suivantes :

 Que faire pour échanger des messages et réaliser un travail collaboratif dans une
entreprise sans gaspiller la bande passante de la connexion Internet ?
 Pourquoi est-il nécessaire d’intégrer un tel système dans l’entreprise ?
 Comment sécuriser les communications pour se mettre à l’abri des attaques qui sont
possibles même en local ?

1
FREDERICA, D. LAFONT et J.F. MARLEY, Le projet intranet: de l’analyse des besoins de l’entreprise à la
mise en œuvre des solutions, Editions ALI, Paris, 1998, p. 15.
2
Les premières traces de cryptologie datent de 2000 ans avant Jésus-Christ. en Egypte.
3
Cette bande passante est proportionnelle au coût, plus le coût est élevé, plus cette bande passante est
importante.
2

2. Hypothèses
Dans le souci d’apporter une solution efficace à ces difficultés, il parait que la
mise en place d’une application sécurisée d’échange des messages s’inscrirait dans le cadre
d’une mesure d’amélioration des conditions de travail des agents de la SONAS/Kananga, dans
le sens où ce système permettrait de réaliser un travail collaboratif et cela d’une manière
confidentielle.
Pour y arriver, nous essayerons d’associer les notions des réseaux à celles de la
programmation en vue créer des points de communication pouvant rendre possible la liaison
entre ordinateurs et par conséquent relier les utilisateurs.

3. Choix et intérêt du sujet


Vu la loi publiée le 17 Mars 2016 portant libéralisation du secteur d’assurances en
RDC, nous avons jugé bon de porter notre choix sur ce sujet intitulé «Mise en place d’une
application sécurisée end-to-end pour l’échange des messages en réseau local. Cas de la
SONAS / KANANGA » afin d’aider cette entreprise publique à faire face au marché
concurrentiel, étant donné que beaucoup d’entreprises intègrent déjà ce secteur.
Sur le plan scientifique, démontrer les connaissances et capacités acquises durant
notre formation en vue de l’obtention du diplôme de licencié en Informatique, option réseaux
informatiques.

4. Méthodes et techniques
Nous avons utilisé les méthodes structuro-fonctionnelle et d’analyse informatique.
La première méthode nous a permis d’étudier la structure de la SONAS et les différentes
fonctions attribuées à chaque poste de l’organigramme de cette institution ; tandis que la
deuxième nous a permis de vérifier l’opportunité, c’est-à-dire voir la nécessité d’intégrer un
système de messagerie instantanée sécurisé au sein cette entreprise.
Quant aux techniques, la consultation des ouvrages et d’autres documents, des
mémoires, l’interview, l’observation sont les techniques utilisées dans ce mémoire.

5. Subdivision du travail
Ce mémoire est subdivisé, hormis l’introduction et la conclusion, en cinq
chapitres portant respectivement sur les réseaux informatiques et la programmation réseau, la
sécurité informatique, les algorithmes cryptographiques, l’étude d’opportunité et la
conception du nouveau système et l’implémentation.
 Le premier chapitre décrit, de manière générale, les notions théoriques de base sur les
réseaux informatiques et la programmation réseau qui sont à la base dans la
conception des applications communicantes ;

 Le deuxième chapitre sera consacré aux notions de la sécurité informatique permettant


de bien maîtriser l’aspect sécuritaire de notre sujet et par conséquent de l’application
que nous allons concevoir;

 Le troisième chapitre parlera des algorithmes cryptographiques utilisés actuellement


dans la cryptographie pour garantir la confidentialité des données transmises sur un
réseau informatique ;
3

 Le quatrième chapitre se chargera de l’étude du système existant de notre entreprise


d’accueil qui est la SONAS en vue de voir l’opportunité d’implémenter le nouveau
système ;

 Enfin, le cinquième chapitre sera consacré à la conception et l’implémentation du


nouveau système, cette conception sera une étude préalable de notre projet, une étape
primordiale et un passage obligatoire, car il s'agit de décrire les besoins de notre
système pour enfin passer à l’implémentation.
4

Chapitre 1 : Les réseaux informatiques et la


programmation réseau
I.1. Introduction
Le besoin d’échanger des informations d’une manière simple et rapide entre des
machines, a poussé à la découverte des réseaux. Dans la conception initiale des réseaux, la
communication ne se limitait qu’à l’échange des données informatiques. Mais, actuellement,
avec l’intégration de la messagerie électronique, de la voix sur IP et de la vidéo, les réseaux
deviennent de plus en plus performants et permettent le partage de plusieurs ressources.

Ce chapitre est consacré aux notions théoriques de base sur les réseaux
informatiques et la communication réseau qui serviront de prélude à l’étude que nous
mènerons dans la suite de ce travail.

I.2. Définition
Un réseau informatique peut être défini de plusieurs façons : si Claude SERVIN le
définit comme un « ensemble de moyens matériels et logiciels géographiquement dispersés
destinés à offrir un service, comme le réseau téléphonique, ou à assurer le transport de
données »4. Saint-Jean A.O. DJUNGU, quant à lui, ne s’en éloigne pas en disant que c’est un
« ensemble d’outils qui permettent à des ordinateurs de partager des informations et des
ressources ».5 En analysant de plus près toutes ces définitions, nous nous rendons compte
qu’elles convergent vers le partage des ressources. Les techniques à mettre en œuvre diffèrent
en fonction des finalités du réseau et de la qualité de service désirée.

Figure 1-1 - Exemple d’un réseau informatique

4
C. SERVIN, Réseaux et Télécoms Cours et Exercices Corrigés, Editions Dunod, Paris, 2003, p. 157.
5
S. J. A.O DJUNGU, Réseaux par la Pratique, Editions CRIA, Kinshasa, 2014, p. 12.
5

I.3. Classification des réseaux


« Le langage courant distingue les réseaux selon différents critères. La
classification traditionnelle, fondée sur la notion d’étendue géographique, correspond à un
ensemble de contraintes que le concepteur devra prendre en compte lors de la réalisation de
son réseau. Généralement, on adopte la terminologie suivante »6 :

 LAN (Local Area Network), réseau local d’étendue limitée à une circonscription
géographique réduite (bâtiment...), ces réseaux destinés au partage local de ressources
informatiques (matérielles ou logicielles) offrent des débits élevés de 10 à 100 Mbit/s.
 MAN (Metropolitan Area Network) il est également appelé réseau fédérateur7. d’une
étendue de l’ordre d’une centaine de kilomètres, les MAN sont généralement utilisés
pour fédérer les réseaux locaux ou assurer la desserte informatique de circonscriptions
géographiques importantes (réseau de campus).
 WAN (Wide Area Network), ces réseaux assurent généralement le transport
d’information sur de grande distance.

Lorsque ces réseaux appartiennent à des opérateurs, les services sont offerts à des
abonnés contre une redevance. Les débits offerts sont très variables de quelques kbit/s à
quelques Mbit/s. D’autres classifications, plus proches des préoccupations quotidiennes,
peuvent être adoptées. Le critère organisationnel prédomine. Le réseau est accessible à tous
moyennant une redevance d’usage, il est alors dit public ; s’il n’est qu’à une communauté
d’utilisateurs appartenant à une même organisation, il est alors dit privé. Un réseau public
peut être géré par une personne privée (opérateur de télécommunication de droit privé), et un
réseau privé peut être sous la responsabilité d’une personne de droit public (réseau d’un
ministère...). Un réseau privé est dit virtuel lorsqu’à travers un réseau public on simule
(émule) un réseau privé.

I.4. Applications
Lorsqu’on met en place un réseau, c’est pour y écouler du trafic. Ce trafic
provient des applications qui utilisent le réseau comme support. Ces applications sont en
nombre infini, et notre but n’est pas d’entrer dans leur détail, ni même de les présenter. Cette
partie se focalise sur le comportement que doit adopter le réseau pour que telle ou telle
application s’y exécute à la satisfaction du client.

Dans le monde des réseaux, « les applications se classent en deux grandes


branches, les applications rigides et les applications élastiques »8. Le mot rigide indique que
l’on ne peut pas modifier les caractéristiques définissant le flot de l’application sans risquer
de voir cette dernière ne plus s’exécuter. L’exemple le plus classique d’application rigide est
la parole téléphonique, puisque le flot des octets composant la parole doit arriver au
destinataire à des instants précis et avant un temps limite très court. Si cette rigidité n’est pas
respectée par le réseau, l’application ne peut tourner convenablement. Les contraintes qui en

6
C. SERVIN, op. cit., p. 158.
7
J. DORDOIGNE, Réseaux Informatiques : Notions Fondamentales, Editions ENI, Paris, 2013, p. 35.
8
G. PUJOLLE, Les réseaux, 5ème éd., Editions Eyrolles, Paris, 2006, p. 919.
6

découlent sur le réseau sont fortes, et tous les réseaux ne peuvent y satisfaire. Au contraire
d’une application rigide, une application élastique accepte une déformation de son flot. Des
paquets peuvent arriver en retard sans que l’application soit compromise. Les données
informatiques font partie de cette catégorie. Lorsqu’on effectue, par exemple, un transfert de
fichier, il n’est pas nécessaire que les paquets arrivent à la microseconde près, et quelques
centaines de millisecondes voire une seconde suffisent. Les réseaux n’ont dès lors pas besoin
de contrôles aussi puissants que lors du transport d’applications rigides.

I.5. Différentes formes de ressources partagées dans un réseau


L’objectif premier des réseaux est la mise en commun des ressources, tout en
assurant le partage de l’information. En informatique, celles-ci (ressources) existent sous
différentes formes :

 Fichiers

 Documents

 Données

 Messages, etc.

Ces différentes ressources ont fait naître différents services réseaux, notamment
le service des fichiers, les services de gestion électronique de documents, les services de
bases de données, les services d’impression, les services de messagerie et de travail
collaboratif, les services d’application, etc.

I.6. Topologies
La topologie est une représentation d’un réseau. Cette représentation peut être
considérée du point du vue de l’emplacement des matériels (câbles, postes, dispositifs de
connectivité,…), et l’on parle de « topologie physique », ou du point de vue du parcours de
l’information entre les différents matériels, et l’on parle de « topologie logique ». La
topologie logique détermine la manière dont les stations se partagent le support et dépend de
la méthode d’accès au réseau.9

I.6.1. La topologie physique


La topologie physique est définie comme la manière d’organiser les équipements
au sein d’un réseau informatique.

Il en existe quatre grands types :

 Topologie en bus ;

 Topologie en étoile ;

9
http://hautrive.free.fr/reseaux/architectures/topologie-des-reseaux.html&grqid=IfCbMM7P&s=1&hl=lua-CD,
Consulté le 25 juin 2019.
7

 Topologie en anneau ;

 Topologie maillée.

I.6.1.1. Le bus physique


La topologie en bus est l’organisation la plus simple d’un réseau. En effet, dans
une topologie en bus, tous les ordinateurs sont reliés à une même ligne de transmission par
intermédiaire d’un câble, généralement coaxial. Signalons qu’il faut placer un bouchon de
terminaison à chaque extrémité du câble pour absorber les signaux.

Figure 1-2 - Topologie en bus

I.6.1.2. L’étoile physique


C’est une topologie dans laquelle les ordinateurs sont reliés à un équipement
central (HUB appelé concentrateur, ou SWITCH appelé commutateur) par l’intermédiaire des
câbles à paires torsadées utilisant les connecteurs RJ45. Cette topologie est souple en matière
de dépannage lorsqu’une panne survient.
8

Figure 1-3 - Topologie en étoile

I.6.1.3. L’anneau physique


Dans un réseau ayant comme topologie physique l’anneau, les ordinateurs sont
placés autour d’un câble circulaire et communiquent chacun à son tour. En réalité, les
ordinateurs ne sont pas reliés en boucle, mais sont reliés à un répartiteur (appelé aussi MAU
pour Multistation Access Unit) qui va créer la communication entre les ordinateurs qui lui
sont reliés en impartissant à chacun d’entre eux un temps de parole. La sécurité du message
est assurée, mais si une machine tombe en panne alors qu’elle détient le jeton, c’est tout le
réseau qui est défaillant.

Figure 1-4 - Topologie en anneau


9

I.6.1.4. La topologie maillée


Elle relie tous les équipements (Nœuds) les uns aux autres pour la redondance et
la tolérance de panne. Elle est utilisée dans les réseaux étendus (WAN) pour relier les réseaux
locaux (LAN) et pour les réseaux dont la mission est critique, comme ceux utilisés par les
gouvernements.

Figure 1-5 - Topologie maillée

I.6.2. La topologie logique


La topologie logique, par opposition à la topologie physique, fait référence aux
itinéraires pris par les signaux d’un point à un autre du réseau. C’est la manière dont les
informations circulent en réseau. Les topologies logiques les plus courantes sont :

 Ethernet ;
 Token ring ;
 FDDI.

I.6.2.1. La topologie Ethernet10


Ethernet (aussi connu sous le nom de norme IEEE 802.3) est un standard de
transmission de données pour réseau local. Cette topologie de réseau informatique est basée
sur le principe suivant : toutes les machines du réseau Ethernet sont connectées à une même
ligne de communication, constituée de câbles cylindriques. Ethernet est une technologie de
réseau très utilisée car le prix de revient d’un tel réseau n’est pas très élevé.

I.6.2.2. La topologie Token Ring


L’anneau à jeton (en anglais Token ring) est une technologie d’accès au réseau
basé sur le principe de la communication au tour à tour, c'est-à-dire que chaque ordinateur du
réseau a la possibilité d’émettre à son tour. C’est un jeton (un paquet de données), circulant
en boucle d’un ordinateur à un autre, qui détermine quel ordinateur a le droit d’émettre des
informations. Lorsqu’un ordinateur est en possession du jeton il peut émettre pendant un
temps déterminé, après lequel il remet le jeton à l’ordinateur suivant.

10
https://www.guill.net/index.php?cat=5&8arc=2&struct=7, Consulté le 29 mars 2019.
10

I.6.2.3. La topologie FDDI


La technologie LAN FDDI (Fiber Distributed Data Interface) est une technologie
d’accès au réseau sur des lignes de type fibre optique. Il s’agit en fait d’une paire d’anneaux
(l’un est dit « primaire », l’autre, permettant de rattraper les erreurs du premier, est dit «
secondaire »). Le FDDI est un anneau à jeton à détection et correction d’erreurs (c’est là que
l’anneau secondaire prend son importance). Le jeton circule entre les machines à une vitesse
très élevé. Si celui-ci n’arrive pas au bout d’un certain délai, la machine considère qu’il y a
eu erreur sur le réseau.

I.7. Architectures
L’architecture d’un système est sa décomposition en un certain nombre de sous-
systèmes, parmi lesquels on retrouve, entre autre, un ou plusieurs sous-systèmes regroupant
les entités liées au domaine du problème.

I.7.1. Architecture centralisée


L’architecture centralisée des débuts, avec des relations maître et esclaves entre
un ordinateur central dominant et des terminaux passifs, laisse progressivement la place au
modèle client-serveur, où un ordinateur en interroge un autre (lui transmet une requête pour
lui demander ses services) et attend sa réponse, le tout dans un protocole de communication
prédéfini. 11

I.7.2. Architecture poste à poste


Aussi connue sous le nom de l’architecture égal à égal (ou dans sa dénomination
anglaise Peer to Peer), c’est lorsque tous les ordinateurs ont un rôle identique, c'est-à-dire
qu’ils sont à la fois clients pour certaines ressources et serveurs pour d’autres.

Dans une architecture égal à égal, tous les ordinateurs sont égaux, il n’y a pas de
machine spécifique. Cela signifie que chacun des ordinateurs du réseau est libre de partager
ses ressources. Un ordinateur relié à une imprimante pourra donc éventuellement la partager
afin que tous les autres ordinateurs puissent y accéder via le réseau.

I.7.3. Architecture client/serveur12


L’architecture centralisée des débuts, avec des relations maître et esclaves entre
un ordinateur central dominant et des terminaux passifs, laisse progressivement la place au
modèle client-serveur, où un ordinateur en interroge un autre (lui transmet une requête pour
lui demander ses services) et attend sa réponse, le tout dans un protocole de communication
prédéfini.

11
SABINEBONHNKE, Modéliser son système d’information, Editions Eyrolles, Paris, 2010, p.252.
12
Ibid.
11

Définitions

- Client

Processus demandant l’exécution d’une opération a un autre processus par envoi


de messages contenant le descriptif de ’opération à exécuter et attendant la réponse de cette
opération par un message en retour.

- Serveur

Processus accomplissant une opération sur demande d’un client, et lui


transmettant le résultat.

- Requête

Message transmis par un client a un serveur décrivant l’opération a exécuter pour


le compte du client.

- Réponse

Message transmis par un serveur a un client suite à l’exécution d’une opération et en


contenant le résultat

Figure 1-6 - Architecture client/serveur

I.7.4. Architecture Trois tiers


C’est une architecture classique comprenant une interface usager et un système de
sauvegarde persistante des données. Dans cette architecture apparaît une sorte de couche du
milieu sous la forme d’un serveur d’applications. Ce sont des couches logiques, c’est-à-dire
que plusieurs niveaux peuvent être sur la même machine physique. Cette couche du milieu
sera nommée middleware en anglais, et officiellement intergiciel en français, même si cette
traduction n’a jamais rencontré de succès. 13

13
Ibid.
12

Figure 1-7 - Architecture Trois tiers

I.8. Les supports de transmission


Pour que les informations circulent au sein d'un réseau, il est nécessaire de relier
les différentes unités de communications à l’aide d'un support de transmission. « Un support
de transmission est un canal physique qui permet de relier des ordinateurs et des
périphériques.».14

Généralement, on classe les supports en deux catégories : « les supports guidés


(supports cuivre ou supports optiques) et les supports libres (faisceaux hertziens et liaisons
satellites) ». 15

I.8.1. Les Supports guidés


a) Le câble coaxial

Le câble coaxial est un support de transmission utilisé au niveau des réseaux pour
relier les ordinateurs afin d'échanger des données. Pour connecter les ordinateurs entre eux, il
faut utiliser des connecteurs de type BNC (Bayonet Neil-Concelman connector) en « T ».

Au niveau des réseaux en bus comme, nous l’avons dit précédemment, il faut
placer un bouchon de terminaison à chaque extrémité du câble pour absorber les signaux.

14
www.arsene.perez-mas.pagesperso-orange.fr/transmission/lignes/supports.htm, Consulté le 25 mars 2019.
15
P. KAZADI, « Etude des protocoles de connexion dans un réseau étendu et problème de partage de données.
Interconnexion des sites universitaires » dans Revue de l’UKA, Vol. 6, n. 11, p. 47-65, Mai 2018, p. 52.
13

Figure 1-8 - Câble coaxial

b) Paire torsadée non blindée

La paire torsadée non blindée est un support de transmission d'informations entre


les ordinateurs. C'est le type de câble le plus utilisé sur les réseaux. Pour connecter les
ordinateurs et périphériques au réseau avec un câble de type : paire torsadée non blindée, il
faut utiliser un connecteur spécial appelé « connecteur RJ-45 ». Ce type de câble est le moins
cher. La paire torsadée non blindée peut être constituée de 2, 4, 6 ou 8 fils vrillés deux à deux
et de même couleur. La paire torsadée non blindée ne permet pas de relier des ordinateurs et
des périphériques très éloignés les uns des autres.

Figure 1-9 - Paire torsadée non blindée

c) Paire torsadée blindée

La paire torsadée blindée est un support de transmission des informations utilisée


pour relier des ordinateurs et des périphériques sur des réseaux comme AppleTalk et Token-
Ring. Elle est identique à la paire torsadée non blindée, mais contient en plus une protection
contre les interférences constituées par une feuille ou une tresse métallique entre les paires
torsadées et le revêtement externe du câble. La paire torsadée blindée nécessite des
14

connecteurs spécifiques selon la nature du réseau : sur les réseaux AppleTalk, les connecteurs
sont circulaires avec des broches.

Figure 1-10 - Paire torsadée blindée

d) La fibre optique

La fibre optique est un support de transmission d'information entre les ordinateurs


en utilisant des signaux lumineux au sein d'un réseau. Les informations échangées entre les
ordinateurs se font à l'aide de signaux électriques. Ces signaux électriques sont convertis en
signaux lumineux avant d'être transmis sur un câble optique. Le câble optique fait circuler les
informations dans un conducteur central en verre ou en plastique. Ce conducteur est
enveloppé de silicone ou plastique pour empêcher la perte du signal. L'ensemble est
enveloppé dans une gaine plastique. Lorsque les signaux lumineux atteignent l'ordinateur
cible, ils sont à nouveau convertis en signaux électriques pour être exploitables par
l'ordinateur.

Figure 1-11 - Fibre optique


15

I.8.2. Les supports libres


a) Systèmes infrarouge

Les systèmes infrarouges constituent un bon support de transmission


d'informations sans fil dans un réseau entre les ordinateurs ou entre les ordinateurs et les
périphériques. Les systèmes infrarouges utilisent la même technologie que les
télécommandes de télévision. Le principe des systèmes infrarouges est d'utiliser le rayon
infrarouge pour transmettre les informations. Dans un réseau local, la mise en place de
systèmes infrarouges offre plusieurs avantages :

- Transmission avec une bande passante de 4 Mbps ;


- L'installation et la configuration d'un système infrarouge est assez facile à réaliser.

b) Les ondes radio

Les ondes radio sont des supports de transmission d'information sans fil utilisées
avec des réseaux de toutes tailles. Elles servent le plus souvent à relier des ordinateurs
distants dans une zone géographique étendue comme une ville. Ces ondes radio peuvent
atteindre une vitesse de transmission de 11 Mbps. Les liaisons radio sont aussi utilisées pour
permettre plusieurs réseaux de communiquer ensemble sans avoir à passer par un câble. Les
transmissions des informations par ondes radio ne sont pas altérables par des interférences ;
En effet, les ondes radio utilisent des fréquences radio pour émettre et sont capables de
déterminer quelles sont les fréquences libres avant de commencer à émettre.

c) Liaisons wifi de type micro-ondes

Les liaisons micro-ondes sont des supports de transmission d'informations utilisés


surtout sur les réseaux WAN pour relier différents réseaux. Ce type de liaison micro-ondes
est très utile pour relier des réseaux qui n'autorisent aucune connexion physique. Au niveau
de la bande passante, ces liaisons micro-ondes peuvent atteindre une vitesse de transmission
de 10 Mbps. Les stations d'émission et de réception des micro-ondes doivent être alignées
avec une grande précision pour pouvoir transférer efficacement les informations, ce qui coûte
très cher.

d) Liaisons satellite16

Les différents systèmes « satellite » sont des supports de transmission


d'informations pour relayer les grands réseaux. Ils utilisent des satellites artificiels placés
dans l'espace en orbite autour de la terre. Ces satellites de télécommunication sont placés sur
différentes orbites terrestres :

16
A. BLAC-LAPIERRE, La communication en temps réel et transmission efficace, Editions Eyrolles, Paris,
2000, p. 56.
16

 L'orbite géostationnaire à 36 000 km de la terre


 L'orbite terrestre basse qui se situe entre 350 et 1400 km de la terre

I.9. La standardisation
Au début des années 70, chaque constructeur avait développé sa propre solution
réseau autour d’architectures et protocoles privés tels que SNA d’IBM, DECnet de Bull,
TCP/IO du DoD, etc. Ainsi, il s’est vite avéré qu’il serait impossible d’interconnecter ces
différents réseaux « propriétaires » si une norme internationale n’était pas établie. Cette
norme établie par l’ «International Standard Organization » (ISO) ou « Organisation de
standardisation International » (OSI) est la norme « Open System Interconnexion »
(OSI) ou « Interconnexion des Systèmes Ouverts » (ISO).

C’est ainsi qu’on est arrivé aux systèmes dits ouverts. Un système ouvert est un
matériel (ordinateur, un terminal…) ou une infrastructure (réseau, etc.) respectant la norme
OSI et qui permet ainsi l’interconnexion avec d’autres systèmes ouverts afin de faciliter la
communication et l’interopérabilité.

I.10. Adressage et routage

I.10.1. Adressage
L’adressage représente l’ensemble des moyens permettant de désigner un élément
dans un réseau, un élément pouvant être un utilisateur, un processus ou tout autre équipement
du réseau.

L’adressage peut être physique ou logique 17. Une adresse physique correspond à
une jonction physique à laquelle est connecté un équipement terminal. Une adresse logique
correspond à un utilisateur ou à un programme utilisateur susceptible de se déplacer
géographiquement. Dans ce dernier cas, la procédure à mettre en place pour déterminer
l’emplacement physique de cet utilisateur se révèle plus complexe.

Lorsque nous parlons d’adressage en réseau, il peut être logique ou physique.


L’adressage IP, appelé autrement adressage réseau, est une adresse logique correspondant à
un utilisateur, un terminal ou un programme utilisateur qui peut se déplacer
géographiquement. Une adresse physique correspond à une jonction physique à laquelle est
connecté un équipement terminal. 18A la différence des adresses physiques, les adresses IP
sont attribuées par les administrateurs réseau (allocation manuelle) et sont configurées
logiquement. L’adresse IP comporte deux parties principales :

 Une ID du réseau (net ID) qui est l’adresse réseau logique du sous réseau auquel
l’ordinateur se rattache ;

 Une ID d’hôte (host ID) qui est l’adresse réseau logique du périphérique logique
identifiant chaque ordinateur sur un sous réseau.
17
G. PUJOLE, op. cit., 2001, p. 120.
18
Ibid, p. 6.
17

Il existe cinq classes d’adresses IP. Chaque classe est identifiée par une lettre
allant de A à E. Ces classes sont les suivantes :

• Classe A : qui dispose d’une partie net id comportant un seul octet ;

• Classe B : disposant d’une partie net id qui a deux octets ;

• Classe C : dans cette classe, la partie net id comporte trois octets ;

• Les classes D et E correspondent à des adresses IP particulières.

I.10.2. Routage
La fonctionnalité principale de la couche Réseau consiste à transmettre des
paquets de données issues d’un émetteur à destination d’un (ou plusieurs) récepteurs, paquets
qui doivent traverser un réseau composé de nombreux nœuds intermédiaires (routeurs).

Ainsi, le routage est défini comme « un mécanisme par lequel des chemins sont
sélectionnés dans un réseau pour acheminer les données d’un expéditeur jusqu’à un ou
plusieurs destinataires ».19 Le routage est une tâche effectuée dans de nombreux réseaux, tels
que le réseau téléphonique, les réseaux de données électroniques comme Internet, et les
réseaux de transports.

A chaque réception d’un paquet, un routeur doit choisir vers quel prochain
routeur il doit retransmettre le paquet entrant pour que celui-ci arrive à destination :

 En mode datagramme20, le choix est effectué indépendamment pour chaque paquet ;


 En mode circuit virtuel, le choix est fixé à l’établissement de la connexion et pour
toute la durée de la connexion.

Dans chaque routeur, ce choix est effectué en se servant d’informations


contenues dans une table de routage21. Les entrées d’une table de routage sont renseignées
soit manuellement (routage statique), soit automatiquement (routage dynamique) à l’aide
d’algorithme de mise à jour des tables de routage en se basant sur différents critères (débit
possible, disponibilité de la ligne, taux d’erreurs, nombre de nœuds intermédiaires,…).

19
https://www.irisa.fr/armor/lesmembres/cousin/Enseignement/Reseaux-generalites/Cours/9-4.htm, Consulté le
15 février 2019.
20
C’est le mode non connecté.
21
Une table de routage est une structure de données utilisée par un routeur ou un ordinateur en réseau et qui
associe des préfixes à des moyens d’acheminer les trames vers leur destination.
18

I.11. La programmation réseau


Le but de la programmation réseau est de permettre à des programmes de
dialoguer (d’échanger des données) avec d’autres programmes qui se trouvent sur des
ordinateurs distants, connectés par un réseau. 22

La plupart des langages de programmation actuels, offre la possibilité de


programmer des applications communicantes grâce aux sockets.

I.11.1. Modes de communication


Il existe deux modes de communication :

 Le mode connecté (comparable à une communication téléphonique), utilisant le


protocole TCP. Dans ce mode de communication, une connexion durable est établie
entre les deux processus, de telle façon que la socket de destination n'est pas
nécessaire à chaque envoi de données.
 Le mode non connecté (analogue à une communication par courrier), utilisant le
protocole UDP. Ce mode nécessite l'adresse de destination à chaque envoi, et aucun
accusé de réception n'est donné.

I.11.2. Identification des expéditeurs et destinataires


La communication entre applications dans un réseau nécessite l’identification des
expéditeurs et des destinataires de la conversation. Comme une application fournit un service
particulier sur une machine donnée, il s’avère alors important de connaitre l’adresse de la
machine ainsi que le port d’écoute de l’application pour que la communication soit possible.
Un couple (adresse, port) constitue un point de communication qu’on appelle « socket ». De
ce fait, une communication ne peut s’effectuer qu’entre au moins deux points de
communications.

1) Identifiant de la machine

Une machine est identifiée par une adresse internet. Mais pour les êtres humains,
il est difficile de retenir ces adresses IP qui se traduisent en termes des nombres. C’est dans
cette optique qu’il est nécessaire d’établir une correspondance entre ces chiffres (préférables
par les machines) et un nom Internet (facile à retenir par les êtres humains).

Le service permettant de translation d’un nom en une adresse IP s’appelle


« service de nom », et c’est un annuaire. Le système le plus répandu aujourd’hui c’est le
DNS, cette popularité lui revient par le seul simple fait qu’il est un annuaire distribué.

22
https://www.malgouyres.org/cours/programmationSysteme/node10.html, Consulté le 26 février 2019.
19

2) Notion de port23

Les ports sont, en quelque sorte, des points d'attache logiciels pour les connexions
réseau. Si une application désire ouvrir un certain service, elle s'attache à un port et attend les
clients (on dit aussi qu'elle écoute le port). Un client voulant utiliser ce service alloue alors un
port sur sa machine locale, puis se connecte à celui de l'application serveur sur le système
distant.

Une fois qu'une connexion est établie entre le client et le serveur, une des
caractéristiques importantes des ports est qu'une autre copie du serveur peut s'y attacher et
continuer ainsi l'écoute dans l'attente d'autres clients. Cela permet par exemple, plusieurs
sessions rlogin concurrentes sur la même machine distante, toutes utilisant le port 513. TCP
est capable de différencier les connexions car elles proviennent toutes de différents ports ou
hôtes. Par exemple, si vous avez deux rlogin sur quark depuis erdos, le premier client utilisera
le port local 1023, et le second le 1022. Tous deux se connecteront néanmoins au même port
513 sur quark.

Cet exemple montre l'utilisation des ports en tant que points de rencontre, où les
serveurs donnent rendez-vous aux clients désirant un service particulier. Afin que ces clients
sachent quel numéro de port contacter, les administrateurs des différents systèmes connectés
doivent se mettre d'accord sur leur assignation. En ce qui concerne les services les plus
couramment utilisés, comme rlogin, ces numéros doivent être administrés de manière centrale
: c'est le rôle de l'IETF (Internet Engineering Task Force), qui publie régulièrement un RFC
intitulé Assigned Numbers. Ce document décrit, entre autres choses, les numéros de port
assignés aux services les plus connus utilisés mondialement. Linux utilise, comme beaucoup
d'autres systèmes, un fichier nommé /etc/services, qui contient la correspondance entre les
noms de ces services et les numéros de ports qui leur sont associés.

Par définition, un port est un canal d’entrée ou de sortie des flux échangés dans
un hôte au cours d’une communication. Chaque émetteur ou récepteur identifie son port
source et celui de destination.

Un port est comme une porte en schématisant. Les informations sont multiplexées
(comme dans les voitures récentes) et passent par la passerelle. A leur arrivée (vers le serveur)
ou à leur réception (vers votre machine) elles sont démultiplexées et chaque information
distincte passe par le port qui lui est associé. Les informations sont ensuite traitées par
l'application correspondante.

Pour maintenir l’unicité des numéros de port (par protocole) on les a répartis en trois
catégories :

23
D. T. BAUTTS, T. DAWSON et G. N. PURDY, Administration réseau sous Linux, 3ème éd, Editions O’Reilly,
Sebastopol, 2005, p. 12.
20

 Les ports systèmes (appelés aussi ports bien connus – well known ports) de 0 à 1023
sont réservés sous UNIX au processus démarrés automatiquement par le système
d’exploitation et peuvent être déposés auprès de l’organisme IANA (Internet Assigned
Numbers Authority).
 Les ports utilisateurs (appelés aussi ports déposés – registered ports) de 1024 à 49151
sont disponibles pour les utilisateurs et peuvent eux aussi être déposés auprès de
l’organisme IANA.
 Les ports dynamiques (appelés aussi ports privés) de 49152 à 65535.
3) La notion de socket

La notion de sockets a été introduite dans les distributions de Berkeley (un fameux
système de type UNIX, dont beaucoup de distributions actuelles utilisent des morceaux de
code), c'est la raison pour laquelle on parle parfois de sockets BSD (Berkeley Software
Distribution).

Il s'agit « d'un modèle permettant la communication inter processus (IPC - Inter


Processus Communication) afin de permettre à divers processus de communiquer aussi bien
sur une même machine qu'à travers un réseau TCP/IP.24

La communication par socket est souvent comparée aux communications


humaines.

Les sockets sont généralement implémentés en langage C, et utilisent des


fonctions et des structures disponibles dans la librairie <sys/socket.h>.

Position des sockets dans le modèle OSI

Les sockets se situent juste au-dessus de la couche transport du modèle OSI


(protocoles UDP ou TCP), elle-même utilisant les services de la couche réseau (protocole IP /
ARP).

24
http://jfgg.free.fr/cmsms/index.php?page=reseaux_netstat, Consulté le 12 mars 2019.
21

Tableau 1-1. Position des sockets dans le modèle OSI

Modèles des sockets Modèle

Application

Application utilisant les sockets Présentation

Session

UDP/TCP Transport

IP/ARP Réseau

Liaison

Ethernet physique

Source : Ce tableau est tiré du site internet


http://www.i3s.unice.fr/~tettaman/Classes/L2I/ProgSys/11_IntroSockets.pdf

Déroulement d’une connexion


Comme dans le cas de l'ouverture d'un fichier, la communication par socket utilise
un descripteur pour désigner la connexion sur laquelle on envoie ou reçoit les données. Ainsi
la première opération à effectuer consiste à appeler une fonction créant un socket et retournant
un descripteur (un entier) identifiant de manière unique la connexion. Ainsi ce descripteur est
passé en paramètres des fonctions permettant d'envoyer ou recevoir des informations à travers
le socket.
L'ouverture d'un socket se fait en deux étapes:

- La création d'un socket et de son descripteur par la fonction socket()


- La fonction bind() permet de spécifier le type de communication associé au socket
(protocole TCP ou UDP)

Un serveur doit être à l'écoute de messages éventuels. Toutefois, l'écoute se fait


différemment selon que le socket est en mode connecté (TCP) ou non (UDP).

 En mode connecté, le message est reçu d'un seul bloc.

Ainsi en mode connecté, la fonction listen() permet de placer le socket en mode


passif (à l'écoute des messages). En cas de message entrant, la connexion peut être acceptée
grâce à la fonction accept(). Lorsque la connexion a été acceptée, le serveur reçoit les données
grâce à la fonction recv().

 En mode non connecté, comme dans le cas du courrier, le destinataire reçoit le


message petit à petit (la taille du message est indéterminée) et de façon désordonnée.
22

Le serveur reçoit les données grâce à la fonction recvfrom().

La fin de la connexion se fait grâce à la fonction close().

I.12. Conclusion
Etant donné que notre sujet tourne autour de la communication et de la sécurité
informatique, il s’avère important de connaitre les notions réseautiques de base. C’est ainsi
que, dans ce chapitre, nous avons commencé par la définition d’un réseau informatique tout
en donnant ses différents types, topologies et architectures. Ensuite, nous avons parlé des
supports de transmission, des modèles OSI et TCP/IP, de l’adressage, du routage et enfin
nous avons chuté par les notions de la communication réseau. Ainsi, nous pouvons passer au
chapitre suivant qui sera consacré à la sécurité informatique.
23

Chapitre 2 : La sécurité informatique


2.0. Introduction
La sécurité est une fonction incontournable des réseaux. Puisqu’on ne voit pas son
correspondant directement, il faut l’authentifier. Puisqu’on ne sait pas par où passent les
données, il faut les chiffrer. Puisqu’on ne sait pas si quelqu’un ne va pas modifier les
informations émises, il faut vérifier leur intégrité. Nous pourrions ajouter une longue suite de
requêtes du même genre qui doivent être prises en charge par les réseaux. Ce chapitre est
consacré aux notions de la sécurité informatique, socle de protection des données dans les
entreprises.

2.1. Définition de la sécurité informatique


Si l’on considère l’aspect étymologique, on trouve plusieurs définitions qui se
complètent mutuellement : la sécurité informatique peut donc être définie comme « la
protection offerte à un système d’information automatisé afin d’atteindre les objectifs
applicables de préservation de l'intégrité, de la disponibilité et de la confidentialité des
ressources du système d’information (comprend le matériel, les logiciels, les micro-logiciels,
les informations/données et télécommunications)25 », mais aussi comme l’ensemble des
moyens (matériels et logiciels) mis en œuvre pour minimiser la vulnérabilité d’un système
contre les menaces accidentelles ou intentionnelles.

Si on observe la sécurité d’une manière plus générale, elle est d’ailleurs présente à
plusieurs niveaux, qu’il s’agisse des différentes portées de l’information comme l’illustre la
figure 2.1 ou les stades de vie de l’information.

Figure 2-1 - La sécurité à plusieurs niveaux

25
W. STALLINGS, Cryptography and network security, principles and practice, 4ème éd., Editions Paerson
Education, Paris, 2011, p. 9.
24

2.2. Objectifs
Les définitions ci-hauts introduisent trois objectifs clés qui sont au cœur de la
sécurité informatique:

 Confidentialité: consiste à rendre intelligible une information à toutes les personnes


non concernées. Ce terme recouvre deux concepts connexes:
- Confidentialité des données: garantit la confidentialité des informations
privées ou confidentielles non mis à la disposition ou divulgué à des
personnes non autorisées.
- Confidentialité (relatifs à la vie humaine) : assure que les individus
contrôlent ou influencent quelles informations liés à eux peuvent être
collectés et stockés et par qui et à qui cette information peut être divulguée.

 Intégrité: elle vérifie que la donnée n’a pas été frauduleusement ou accidentellement
modifiée. Ce terme recouvre deux concepts connexes:
- Intégrité des données: garantit que les informations et les programmes sont
modifiés uniquement d'une manière spécifiée et autorisée.
- Intégrité du système: garantit qu'un système remplit la fonction prévue dans
un manière intacte, libre de tout acte non autorisé délibéré ou involontaire
manipulation du système.
 Disponibilité: garantit que les ressources considérées sont accessibles au moment
voulu par des personnes autorisées ; en d’autres termes les systèmes fonctionnent
rapidement et que le service n’est pas refusé aux utilisateurs autorisés.

Ces trois concepts forment ce que l'on appelle la triade CID (CIA en anglais) 26

Figure 2-2 - La triade CID (CIA)

26
Ibid, p. 10.
25

Les trois concepts incarnent les objectifs fondamentaux de sécurité pour les
données et services d’information et d’informatique. Par exemple, le NIST norme FIPS 199
(Normes pour la catégorisation de sécurité des informations fédérales et systèmes
d’information) mentionne la confidentialité, l’intégrité et la disponibilité comme les trois
objectifs de sécurité pour l'information et pour les systèmes d'information. 27

Bien que l’utilisation de la triade CID pour définir les objectifs de sécurité soit bien établie,
certains, dans le domaine de la sécurité estiment que des concepts supplémentaires sont
nécessaires pour présenter une image complète. Les deux concepts plus couramment
mentionnés sont les suivants:

• Authenticité: la propriété d’être authentique et de pouvoir être vérifiée et sûr; confiance


dans la validité d'une transmission, d'un message ou d'un message authentique. Cela signifie
qu’il faut vérifier que les utilisateurs sont bien ce qu’ils prétendent et que chaque entrée
arrivant au système provenait d'une source de confiance.

• Responsabilité (ou reddition des comptes) : objectif de sécurité qui génère des actions
obligatoires d'une entité à être tracée uniquement à cette entité. Cela soutient la non
répudiation, dissuasion, isolement des fautes, détection et prévention des intrusions, et
recouvrement après action et action en justice. Parce que les systèmes vraiment sécurisés ne
sont pas un objectif réalisable, nous devons être en mesure de retracer une atteinte à la
sécurité une partie responsable. Les systèmes doivent tenir des registres de leurs activités pour
permettre analyse judiciaire ultérieure pour dépister les atteintes à la sécurité ou pour faciliter
les transactions des disputes.

2.3. Terminologie de la sécurité informatique


 La vulnérabilité : c’est une faille, brèche ou trou de sécurité dans un ou plusieurs
systèmes ; autrement dit c’est une faiblesse dans un système informatique qui met en
cause la sécurité de l’information d’un système. Tout système vu dans sa globalité
présente des vulnérabilités qui peuvent exploitables ou non.
 Une attaque (exploit) : elle représente les moyens d’exploiter une vulnérabilité. En
d’autres termes c'est un acte intelligent qui est une tentative délibérée (surtout dans le
sens d’une méthode ou d’une technique) d’éluder les services de sécurité et violer la
politique de sécurité d'un système.
 Une menace : « Une menace (threat en anglais) représente une action susceptible de
nuire, tandis qu’une vulnérabilité (vulnerability en anglais), appelée parfois faille ou
brèche, représente le niveau d’exposition face à la menace dans un contexte
particulier. La contre-mesure (ou parade), elle, représente l’ensemble des actions
mises en œuvre en prévention de la menace ».28
 Une contre-mesure : c’est l’ensemble de procédures et techniques mises en œuvres
en vue de prévenir une menace ou de contrer une attaque. Il sied de signaler que les
27
Norme FIPS PUB 199, téléchargé sur https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.199.pdf , Consulté le
30 Mai 2019.
28
J-F. PILLOU & J.-P. BAY, Tout sur la Sécurité Informatique, Editions Dunod, Paris, 2013, p. 3.
26

contre-mesures à mettre en œuvre ne sont pas seulement des solutions techniques,


mais également des mesures de formation, de sensibilisation à l’intention des
utilisateurs ainsi qu’un ensemble de règles clairement définies.

Ainsi, au regard de tous ces concepts, le risque en terme de sécurité est caractérisé par
l’équation suivante :

2.4. La sécurité des connexions29


A l’origine, c’est Shannon qui, en 1948 puis en 1949 avec Weaver, a le premier
défini les base d’une transmission de données entre deux parties 30. Son idée est illustrée à la
figure suivante.

Figure 2-3 - La transmission de données vue par Shannon-Weaver

Pour plus de facilités dans le cadre de ce travail, nous simplifierons ce schéma en


trois entités, telles que représentées à la figure 2.4.

29
C. LLORENS, L. LEVIER & D. VALOIS, Tableaux de bord de la sécurité réseau, Editions Eyrolles, Paris,
2006, p. 165.
30
C. SHANNON, « A Mathematical Theory of Communication » in Bell System Technical Journal, vol. 27, pp.
379-423, 623-656, july, October, 1948. p. 2. Téléchargé sur
www.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf , Consulté le 10 juin 2019.
27

Entité Entité
émettrice Signal émis signal récu réceptrice

(Alice) (Bob)

Ennemi

(Eve)

Figure 2-4 - La transmission de données simplifiée

La confidentialité des informations transitant sur un réseau ne peut être assurée


que par le chiffrement des données avant leur émission. Le réseau ne peut garantir par lui-
même la confidentialité des données si elles ne sont pas chiffrées par un quelconque
processus. Le chiffrement des données doit aussi avoir un sens. Il doit, par exemple, se référer
à une politique de classification des informations au sein de l’entreprise. Une telle
classification a pour objectif d’établir clairement des niveaux de confidentialité des données et
de définir les moyens à mettre en œuvre ainsi que les listes de diffusion. En s’appuyant sur
cette politique de classification de l’information, le chiffrement applique aux données le
niveau de confidentialité voulu au moyen d’algorithmes cryptographiques et de clés de
chiffrement de longueurs adéquates.

Les connexions réseau font face à plusieurs types de menaces. Parmi lesquelles,
on trouve diverses catégories :

 Les menaces accidentelles


 Les menaces intentionnelles : passives et actives

Les menaces accidentelles ne supposent aucune préméditation. Dans cette


catégorie, sont repris les bugs logiciels, les pannes matérielles, et autres défaillances
« incontrôlables ».

Les menaces intentionnelles, quant à elles, reposent sur l’action d’un tiers désirant
s’introduire et relever des informations. Dans le cas d’une attaque passive, l’intrus va tenter
de dérober les informations par audit, ce qui rend sa détection relativement difficile. En effet,
cet audit ne modifie pas les fichiers, ni n’altère les systèmes. Dans le cas d’une attaque active,
la détection est facilitée, mais il peut être déjà trop tard lorsque celle-ci a lieu. Ici, l’intrus aura
volontairement modifié les fichiers ou le système en place pour s’en emparer.

Les menaces actives appartiennent principalement à quatre catégories (illustrées à


la figure 2.5) :
28

 Interruption = problème lié à la disponibilité des données


 Interception = problème lié à la confidentialité des données
 Modification = problème lié à l’intégrité des données
 Fabrication = problème lié à l’authenticité des données

Figure 2-5 - Types de menaces actives

2.5. Étude des risques


Les coûts d’un problème informatique peuvent être élevés et ceux de la sécurité le
sont aussi. Il est nécessaire de réaliser une analyse de risque en prenant soin d’identifier les
problèmes potentiels avec les solutions avec les coûts associés. L’ensemble des solutions
retenues doit être organisé sous forme d’une politique de sécurité cohérente, fonction du
niveau de tolérance au risque. On obtient ainsi la liste de ce qui doit être protégé.

Il faut cependant prendre conscience que les principaux risques restent : « câble arraché », «
coupure secteur », « crash disque », « mauvais profil utilisateur », « test du dernier CD Bonux
»

Voici quelques éléments pouvant servir de base à une étude de risque :

o Quelle est la valeur des équipements, des logiciels et surtout des informations ?

o Quel est le coût et le délai de remplacement ?

o Faire une analyse de vulnérabilité des informations contenues sur les ordinateurs en
réseau (programmes d’analyse des paquets, logs…).

o Quel serait l’impact sur la clientèle d’une information publique concernant des
intrusions sur les ordinateurs de la société ?
29

2.6. Établissement d’une politique de sécurité


Suite à l’étude des risques et avant de mettre en place des mécanismes de
protection, il faut préparer une politique à l’égard de la sécurité. C’est elle qui fixe les
principaux paramètres, notamment les niveaux de tolérance et les coûts acceptables.

Une politique de sécurité informatique est une stratégie visant à maximiser la


sécurité informatique d’une entreprise. Elle est matérialisée par un document qui reprend
l’ensemble des enjeux, des objectifs, analyses, actions et procédures faisant parti de cette
stratégie. 31

Voici quelques éléments pouvant aider à définir une politique :

o Quels furent les coûts des incidents informatiques passés ?

o Quel degré de confiance pouvez-vous avoir envers vos utilisateurs internes ?

o Qu’est-ce que les clients et les utilisateurs espèrent de la sécurité ?

o Quel sera l’impact sur la clientèle si la sécurité est insuffisante, ou tellement forte
qu’elle devient contraignante ?

o Y a-t-il des informations importantes sur des ordinateurs en réseaux ? Sont-ils


accessible de l’externe ?

o Quelle est la configuration du réseau et y a-t-il des services accessibles de l’extérieur ?

o Quelles sont les règles juridiques applicables à votre entreprise concernant la sécurité
et la confidentialité des informations (ex: loi « informatique et liberté », archives
comptables…) ?

2.7. Éléments d’une politique de sécurité


Il ne faut pas perdre de vue que la sécurité est comme une chaîne, guère plus
solide que son maillon le plus faible. En plus de la formation et de la sensibilisation
permanente des utilisateurs, la politique de sécurité peut être découpée en plusieurs parties :

- Défaillance matérielle : Tout équipement physique est sujet à défaillance (usure,


vieillissement, défaut…) L’achat d’équipements de qualité et standard accompagnés
d’une bonne garantie avec support technique est essentiel pour minimiser les délais de
remise en fonction. Seule une forme de sauvegarde peut cependant protéger les
données.

- Défaillance logicielle : Tout programme informatique contient des bugs. La seule


façon de se protéger efficacement contre ceux-ci est de faire des copies de

31
www.ivision.fr/mettre-en-place-une-politique-de-securite-informatique-les-bonnes-pratiques/amp/, Consulté le
23 avril 2019.
30

l’information à risque. Une mise à jour régulière des logiciels et la visite des sites
consacrés à ce type de problèmes peuvent contribuer à en diminuer la fréquence.

- Accidents (pannes, incendies, inondations…) : Une sauvegarde est indispensable pour


protéger efficacement les données contre ces problèmes. Cette procédure de
sauvegarde peut combiner plusieurs moyens fonctionnant à des échelles de temps
différentes :

o disques RAID pour maintenir la disponibilité des serveurs.

o copie de sécurité via le réseau (quotidienne)

o copie de sécurité dans un autre bâtiment (hebdomadaire)

La disposition et l’infrastructure des locaux peuvent aussi fournir une protection


intéressante.

Pour des sites particulièrement importants (site informatique central d’une


banque…) il sera nécessaire de prévoir la possibilité de basculer totalement et rapidement vers
un site de secours (éventuellement assuré par un sous-traitant spécialisé). Ce site devra donc
contenir une copie de tous les logiciels et matériels spécifiques à l’activité de la société.

- Erreur humaine : Outre les copies de sécurité, seule une formation adéquate du
personnel peut limiter ce problème.

- Vol via des dispositifs physique (disques et bandes) : Contrôler l’accès à ces
équipements : ne mettre des unités de disquette, bandes… que sur les ordinateurs où
c’est essentiel. Mettre en place des dispositifs de surveillances.

- Virus provenant de disquettes : Ce risque peut-être réduit en limitant le nombre de


lecteur de disquettes en service. L’installation de programmes antivirus peut s’avérer
une protection efficace mais elle est coûteuse, diminue la productivité, et nécessite de
fréquentes mises à jour.

- Piratage et virus réseau : Cette problématique est plus complexe et l’omniprésence des
réseaux, notamment l’Internet, lui confère une importance particulière. Les problèmes
de sécurité de cette catégorie sont particulièrement dommageables et font l’objet de
l’étude qui suit.
31

2.8. Aspects techniques de la sécurité 32


Les problèmes techniques actuels de sécurité informatique peuvent, au moins
provisoirement, être classés en deux grandes catégories :

 ceux qui concernent la sécurité de l’ordinateur proprement dit, serveur ou poste de


travail, de son système d’exploitation et des données qu’il abrite ;
 ceux qui découlent directement ou indirectement de l’essor des réseaux, qui multiplie
la quantité et la gravité des menaces. Si les problèmes de la première catégorie citée
ici existent depuis la naissance de l’informatique, il est clair que l’essor des réseaux,
puis de l’Internet, en a démultiplié l’impact potentiel en permettant leur combinaison
avec ceux de la seconde catégorie. La résorption des vulnérabilités repose sur un
certain nombre de principes et de méthodes que nous allons énumérer dans la présente
section avant de les décrire plus en détail.

2.9. Conclusion
Ainsi s’achève ce chapitre qui était consacré notions de la sécurité informatique.
Nous y avons évoqué plusieurs aspects, notamment : les objectifs et la terminologie de la
sécurité, la place de la sécurité dans le modèle de transmission de données, quelques menaces
et attaques. Enfin nous avons fini avec quelques éléments d’une politique de sécurité, pour
ainsi dire que la sécurité n’est pas un produit fini mais plutôt un processus.

32
L. BLOCH & C. WOLFHUGEL, Sécurité Informatique : Principes et Méthode, Editions Eyrolles, Paris,
2007, p. 9.
32

Chapitre 3 : Les algorithmes cryptographiques


3.0. Introduction
La sécurité du transport de l’information est une préoccupation primordiale dans
le domaine des réseaux. Pendant de longues années, la sécurité d’un équipement demandait
une isolation complète de l’environnement extérieur, et aucune communication avec une
machine externe n’était possible. Aujourd’hui, la cryptographie est en train de résoudre ce
problème.

Dans ce chapitre, nous allons parler des algorithmes cryptographiques. Nous


allons les définir, donner les types d’algorithmes, les principes de fonctionnement et enfin
terminer par la théorie de la complexité.

3.1. Définitions
a) Algorithme

Le mot « algorithme » vient du nom du mathématicien persan Al Khwârizmî 33,


qui introduisit en occident la numérisation décimale et enseigna les règles élémentaires des
calculs qui s’y rapportent. La notion d’algorithme est donc historiquement liée aux
manipulations numériques, mais elle s’est progressivement développée pour porter sur des
objets de plus en plus complexes, des textes, des images, des formules logiques, des objets
physiques, etc.

Un algorithme se caractérise par son aspect de résolution de problème, mais


comment peut-on le définir ? En considérant l’aspect étymologique, on trouve plusieurs
définitions qui, toutes convergent vers la résolution des problèmes : un algorithme c’est donc
« une méthode de résolution d’un problème utilisant un nombre fini d’applications d’une
règle »34, mais aussi « une suite finie et non ambiguë d’opérations ou d’instructions
permettant de résoudre un problème ou d’obtenir un résultat »35

Il permet donc, à partir d’une condition initiale d’appliquer différentes opérations


dans un ordre déterminé et en un nombre fini, pour obtenir un résultat.

b) Cryptologie

La cryptologie est une science mathématique qui regroupe deux branches, la


cryptographie et la cryptanalyse, le rôle des cryptographes est de construire des systèmes de
chiffrement, l’objectif des cryptanalystes est de casser ces systèmes.

33
P. HERNEST, Les algorithmes, Presses universitaires de France, coll. « Que sais-je ? », Paris, 2002, p. 5.
34
E. LE NAGARD, Initiation à l’algorithmique en Scilab et Ptyhon, Editions Pearson, Paris, 2013, p. 41.
35
P. HERNERT, op. cit., p. 5.
33

c) Cryptographie

Le terme "cryptographie " vient du grec "kriptós" (caché) et "gráphein" (écrite).


La cryptographie est l’art de cacher l’information afin de la rendre incompréhensible aux yeux
des autres ; à l’exception de celui à qui elle est destinée. Celui-ci lui rendra son aspect initial
grâce au secret qu’il détient qui est la clé.

Dans la cryptographie moderne, les transformations en question sont les fonctions


mathématiques, appelées algorithmes cryptographiques (crypto systèmes), qui dépendent de la
taille de la clé utilisée.

3.2. Naissance de la cryptographie informatique : Alan Turing 36


L’invention de l’ordinateur a bien sûr donné un essor considérable à la
cryptographie et à la cryptanalyse. Ce n’est d’ailleurs pas un hasard si le créateur du modèle
théorique de l’ordinateur, Alan Turing, a été aussi pendant la guerre un formidable concepteur
de machines à déchiffrer les codes allemands chiffrés par les automates Enigma. Les
machines de Turing, appelées Bombes, étaient fondées sur une réalisation originale du
logicien polonais Marian Rejewski. La courbe qui trace le succès des attaques de sous-marins
allemands contre les convois transatlantiques qui acheminaient les fournitures américaines à
la Grande-Bretagne subit des fluctuations importantes qui correspondent au délai à l’issue
duquel l’équipe d’Alan Turing à Bletchley Park en Angleterre parvenait à déchiffrer plus ou
moins parfaitement le code allemand après un changement de combinaison des Enigma.
Lorsque l’on sait l’importance militaire qu’ont eue ces fournitures, on ne saurait sous-estimer
la contribution de Turing à la victoire alliée.

3.3. Algorithme cryptographique 37


La cryptographie est une science qui étudie les outils servant à sécuriser les
informations. De tout temps, l’art du chiffrement-déchiffrement a été employé. Le chiffrement
et le déchiffrement des données sont effectués par des algorithmes cryptographiques. Ces
algorithmes reposent généralement sur des problèmes mathématiques complexes, difficiles à
résoudre, tels que la factorisation des nombres premiers, les logarithmes discrets, etc. Les
algorithmes cryptographiques modernes nécessitent une clé pour le chiffrement et une clé
pour le déchiffrement.

Les algorithmes sont des objets historiquement dédiés à la résolution de


problèmes arithmétiques. C’est ainsi que, la cryptographie, pour aider à la résolution des
problèmes de sécurité d’informations dans un réseau informatique, fait recours aux
algorithmes dit « algorithmes cryptographiques ».

36
L. BLOCH & C. WOLFHUGEL, op. cit., p. 73.
37
B. SCHNEIER, Cryptographie appliquée, algorithmes, protocoles et codes source en C, 2ème éd., Editions
Vuibert, Paris, 2017, p. 3.
34

Un algorithme cryptographique est une fonction mathématique utilisée pour le


chiffrement et le déchiffrement. Généralement, un algorithme cryptographique comprend
deux fonctions : une pour chiffrer et une autre pour déchiffrer.

Si la sécurité d’un algorithme est basée sur le fait que celui-ci est tenu secret, on
parlera alors d’algorithme restreint. De tels algorithmes ne présentent plus qu’un intérêt
historique car de nos jours ils sont inadéquats pour les besoins actuels de sécurité. Un groupe
d’utilisateurs important ou variable ne peut utiliser de tels algorithmes car chaque fois qu’un
membre quitte le groupe, tous les autres doivent se mettre à utiliser un autre algorithme. Si
quelqu’un révèle accidentellement le secret, tout le monde doit changer d’algorithme. Encore
plus accablant, les algorithmes restreints ne permettent aucun contrôle de qualité et aucune
standardisation. Chaque groupe d’utilisateurs doit avoir son propre algorithme. Un tel groupe
ne peut pas utiliser de produits tout fait, matériels ou logiciels, vendus dans le commerce ; un
espion peut acheter le même produit et apprendre l’algorithme. Il leur faut écrire leurs propres
algorithmes et les programmer eux même. S’il n’y a pas de bon cryptographe dans le groupe,
ils ne sauront pas s’ils ont un algorithme sûr.

Malgré cela, les algorithmes restreints sont très populaires pour les applications à
bas niveau de sécurité. Les utilisateurs ne réalisent pas, ou bien ne se soucient pas des
problèmes de sécurité inhérents à leur système.

La cryptographie moderne résoud ce problème avec une clef, notée k, cette clef
peut prendre une des valeurs parmi un grand nombre de valeurs possibles. L’ensemble des
valeurs possibles d’une clef est appelé espace des clefs. Les opérations de chiffrement et de
déchiffrement utilisent toutes les deux cette (cryptographie à clef secrète).

En cryptographie, la propriété de base est que C=Ek(M) et M = Dk(C) = D(E(M))

Où :

- M représente le texte clair ;


- C représente le texte chiffré ;
- K est la clé ;
- E(M) est la fonction de chiffrement, et
- D(M) est la fonction de déchiffrement.

Ainsi, avec un algorithme à clef symétrique,

M = D(C) si C = E(M)
35

Figure 3-1 - Chiffrement et déchiffrement avec une clé

D’autres algorithmes utilisent des clefs différentes pour le chiffrement et le


déchiffrement. Dans ce cas, la clef de chiffrement notée k1, est différente de la clef de
déchiffrement, notée k2. Les relations suivantes décrivent un tel crypto-système (ensemble
composé d’un algorithme, de tous les textes en clair et chiffrés et de tous les clefs possibles) :

Ek1(M) = C

Dk2(C) = M

Dk2(Ek1(M)) = M.

Avec ces algorithmes, toute la sécurité réside dans la (ou les) clef(s), et non dans
les détails de l’algorithme. Ceci implique que l’algorithme peut être publié et analysé.

Figure 3-2 - Chiffrement et déchiffrement avec deux clefs

3.4. Types d’algorithmes cryptographiques


Il existe deux grands types d’algorithmes cryptographiques, ceux dits à clé secrète
et ceux dits à clé publique38 :

a) algorithmes à clef secrète

Les algorithmes à clef secrète sont des algorithmes où la clef de chiffrement peut
être calculée à partir de la clef de déchiffrement ou vice versa. Dans la plupart des cas, la clef
de chiffrement et la clef de déchiffrement sont identiques. Pour de tels algorithmes, l’émetteur
et le destinataire doivent se mettre d’accord sur une clef à utiliser avant d’échanger des
messages. Cette clé doit être gardée secrète. La sécurité d’un algorithme à clef secrète repose
sur la clef : s’il est dévoilé, alors n’importe qui peut chiffrer ou déchiffrer des messages dans
ce crypto système.

38
C. LLORENS, L. LEVIER & D. VALOIS, op. cit., p. 167.
36

Les clés de chiffrement et de déchiffrement sont identiques. La sécurité repose sur


la non-divulgation des clés et sur la résistance des algorithmes aux attaques de cryptanalyse.
Les plus connus sont DES, IDEA, RC2, RC4 et AES (Advanced Encryption Standard).

D’une manière comparative, les algorithmes symétriques sont beaucoup plus


rapides que les algorithmes asymétriques dans des conditions identiques de test.

Le chiffrement et le déchiffrement dans un algorithme à clef secrète sont notés :

Ek(M) = C

Dk(C) = M.

Figure 3-3 - Fonctionnement d’algorithmes à clef secrète

Selon le fonctionnement, ces algorithmes peuvent aussi être classés en deux


catégories. Certains opèrent sur le message en clair un bit à la fois. Ceux-ci sont appelés
algorithmes de chiffrement en continu. D’autres opèrent sur le message en clair par groupes
de bits. Ces groupes de bits sont appelés blocs, et les algorithmes correspondants sont appelés
algorithmes de chiffrement par blocs. « Pour des algorithmes réalisés sur ordinateur, la
taille typique des blocs est de 64 bits (ce qui est assez grand pour interdire l’analyse et assez
petit pour être pratique) »39.

a) Algorithmes à clef publique

Les algorithmes à clef publique sont différents. Ils sont conçus de telle manière
que la clef de chiffrement soit différente de la clef de déchiffrement. De plus, la clef de
déchiffrement ne peut pas être calculée (du moins en un temps raisonnable) à partir de la clef

39
B. SCHNEIER, op. cit., p. 4.
37

de chiffrement. De tels algorithmes sont appelés « à clef publique » parce que la clef de
chiffrement peut être rendue publique : n’importe qui peut utiliser la clef de chiffrement pour
chiffrer un message mais seul celui qui possède la clef de déchiffrement peut déchiffrer le
message chiffré résultant. Dans de tels systèmes, la clef de chiffrement est appelée clef
publique et la clef de déchiffrement est appelée clef privée. La clef privée est aussi parfois
appelée clef secrète mais pour éviter toute confusion avec les algorithmes à clef secrète.

Figure 3-4 - Cryptographie asymétrique

Il ne faut pas en conclure que les algorithmes symétriques soient plus ou moins
sécurisés que les algorithmes asymétriques. Ils sont simplement destinés à des usages
différents.

Le chiffrement utilisant la clef publique k est noté :

Ek(M) = C

Bien que les clefs publique et privée soient différentes, le chiffrement avec la clef privée
correspondante est noté :

Dk(C) = M.

Dans certains cas, comme par exemple pour les signatures numériques, les messages sont
chiffrés avec la clef privée et déchiffrés avec la clef publique. Malgré le risque de confusion
possible, ces opérations sont notées :

Ek(M) = C

Dk(C) = M.
38

3.5. Rudiments mathématiques


La cryptographie a évolué en trois grandes périodes : la cryptographie mécanique,
la cryptographie mathématique et la cryptographie quantique.

Au regard du fonctionnement des algorithmes cryptographiques actuels, on se rend compte


que c’est la cryptographie mathématique qui est beaucoup utilisée de nos jours. C’est ainsi
que ce point va nous donner un aperçu de quelques notions mathématiques indispensables aux
algorithmes cryptographiques.

3.5.1. Théorie de l’information


La théorie de l'information, sans précision, est le nom usuel désignant la théorie
de l'information de Shannon, qui est une théorie probabiliste permettant de quantifier le
contenu moyen en information d'un ensemble de messages, dont le codage informatique
satisfait une distribution statistique précise. Ce domaine trouve son origine scientifique avec
Claude Shannon qui en est le père fondateur40.

a) L’entropie et l’incertitude

La théorie de l’information définit la quantité d’information d’un message


comme « le nombre minimal de bits nécessaires pour coder toutes les significations possibles
de message »41. Par exemple, le champ « jour de la semaine » dans une base de données ne
contient pas lus de 3 bits d’information, parce que l’information peut être codée avec trois
bits :

000 = dimanche

001 = lundi

010 = mardi

011 = mercredi

100 = jeudi

101 = vendredi

110 = samedi

Si cette information était représentée par les chaînes de caractères ASCII


correspondantes, cela prendrait plus de place mémoire mais cela ne contiendrait pas plus
d’informations.

40
Ibid., p. 27.

41
Ibid., p.247.
39

Formellement, la quantité d’information dans un message M est mesuré par


l’entropie d’un message, dénotée H(M). Sur base de l’exemple précédent, l’entropie d’un
message indiquant le jour de la semaine est tout petit moins que 3 bits. En général, l’entropie
d’un message est , où n est le nombre de significations possibles.

Avec cette formule, on suppose que toutes les significations sont équiprobables.
L’entropie d’un message mesure également son incertitude. « C’est le nombre de bits de texte
en clair qui doivent être retrouvés pour retrouver le texte en clair en entier à partir du texte
chiffré »42.

b) Taux du langage (r)

Pour un langage donné, le taux du langage est défini par : r = H(M)/N43

Où N représente la longueur du message M (par extension, M désignera l’ensemble des


messages de longueur N). On peut considérer r comme le nombre moyen de bits
d’information par caractère. Pour un N grand, on a en anglais 1 < r < 1.5.

c) Taux absolu

C’est le nombre maximal de bits pouvant être codés par chaque caractère
(séquences de caractères équiprobables) : R = , où :

L est le nombre de caractères dans un langage, R est l’entropie maximale des caractères
isolés.

Pour les langues latines (alphabet de 26 lettres), on aura R = = 4, 7 bits


par lettre. Cependant, il s’agit d’une valeur théorique, les langues réelles sont redondantes.

d) La redondance d’un langage (D) :

C’est la différence entre le nombre de bits maximal qui peuvent être codés par caractères et du
nombre réellement nécessaire de bits pour obtenir une information sur le caractère :

D=R−r

Par exemple en anglais, D varie entre 3, 2 et 3, 7 bits par lettre d’information redondante.

e) La redondance relative d’un langage :

Il s’agit du rapport D/R

On obtient dès lors un pourcentage oscillant entre 68% et 79% (pour l’anglais).

42
Ibid, p. 248.
43
Ibid, p. 250.
40

3.5.2. Confidentialité parfaite


L’hypothèse est que les cryptanalystes disposent d’informations probabilistes
concernant M (langage et redondance associée).

On définit la notion de confidentialité parfaite par le fait que le texte chiffré ne doit fournir
aucune information concernant le texte clair :

- Shannon a prouvé que ce résultat est accessible uniquement si le nombre de clés


possibles est aussi grand que le nombre de messages possibles.
- En pratique, seul le masque jetable y correspond car la longueur de la clé est égale à la
longueur du texte et que la clé n’est pas réutilisée.

Le but des cryptanalystes est de déterminer la clef K, le texte clair M ou les deux.
Souvent, ils possèdent des indices au sujet de M.

Ils connaissent probablement le langage du texte en clair. Ce langage a une


certaine redondance associée. Si c’est un message destiné à Bob, il commence probablement
par « cher Bob ».

Le but de la cryptanalyse est, par analyse, de modifier les probabilités associées


avec tous les textes en clair possibles. Finalement, un texte clair considéré comme certain
émergera du paquet des textes clairs possibles.

a) Démonstration de la confidentialité parfaite du chiffre de Vernam 44

Soient :

- une phrase de m lettres,


- n, l’ensemble des messages possibles = (= ensemble des clés et des chiffrés
possibles),
- des clés équiprobables.

On a :

( )

On veut prouver que la découverte du texte clair connaissant le texte chiffré est égale à la
connaissance du texte clair (propriété issue de Vernam), c’est-à-dire :

( | ) ( ) où x et y sont respectivement tout texte clair et tout texte


chiffré.

44
www.montefiore.ulg.ac.be/~herbiet/crypto/03-math1.pdf, Consulté le 20 mai 2019.
41

Par définition, on a :

( )
( | )
( )

Or on sait que C, K et M sont liés pr la rélation C=M+K (l’addition se faisant modulo 26), on
a donc :

( ) ( )

( ) ( )

( )

3.5.3. Théorie de la complexité


La théorie de la complexité fournit une méthodologie pour analyser la complexité
de calcul de différents algorithmes et techniques cryptographiques. Elle compare les
algorithmes et les techniques cryptographiques pour déterminer leur niveau de sécurité.

Si la théorie de l’information nous apprend que tous les algorithmes


cryptographiques (excepté les masques jetables) peuvent être cassés, la théorie de la
complexité nous apprend s’ils peuvent être cassés avant la fin du monde… 45

a) Complexité des algorithmes

La complexité d’un algorithme est déterminée par la puissance de calcul


nécessaire pour l’exécuter. La complexité calculatoire d’un algorithme est mesurée par deux
paramètres : T (pour la complexité en temps) et S (pour la complexité en espace ou mémoire
nécessaire). En général T et S sont tous deux exprimés en fonction de n où n est la taille de
l’entrée. Toutefois, il faut signaler qu’il y a d’autres mesures de la complexité comme le
nombre de bits aléatoires, le débit de communications, la quantité de données, etc.

En général, la complexité calculatoire d’un algorithme est exprimée à l’aide de ce


que l’on appelle la notation « grand O » : l’ordre de grandeur de la complexité du calcul à
savoir le terme de la fonction de complexité qui croît le plus vite avec n ; toutes les constantes
et les termes d’ordre inférieur sont ignorés. Par exemple, si la complexité en temps d’un
algorithme donné est de alors la complexité en calcul sera de l’ordre de n2, ce
qui s’exprime aussi par ( ).

De cette façon, la mesure de la complexité en temps est indépendante du système.


Vous n’avez pas à connaitre le timing exact des différentes instructions ou le nombre de bits
utilisés pour représenter les différentes variables ou même la vitesse du processeur.

45
B. SCHNEIER, op. cit., p.251-252.
42

Les algorithmes sont classés selon leur complexité en temps or en espace. Un


algorithme est constant si sa complexité est indépendante de n : O(1). Un algorithme est
linéaire O(n), si complexité croît linéairement avec n. Les algorithmes peuvent aussi être
quadratiques, cubiques, etc. Tous ces algorithmes sont polynomiaux : leur complexité
est ( ) où t est une constante. La classe des algorithmes qui ont une complexité en temps
polynomiale sont appelés algorithmes polynomiaux en temps.

Les algorithmes dont la complexité est ( ( ) ), où t est une constante et f(n) est
une certaine fonction polynomiale de n, sont appelés exponentiels. Ceux dont la complexité
est ( ( ) ), où t est une constante et f(n) est plus que constante mais moins que linéaire, sont
appelés super-polynomiaux.

b) Classification des algorithmes selon la complexité

Les algorithmes habituellement rencontres peuvent être classes dans les catégories
46
suivantes :

Tableau 3-1. Classification des algorithmes

Complexité Description

Complexité O(1) L’exécution ne dépend pas du nombre


d’éléments en entrée mais s’effectue toujours
Complexité constante ou en un nombre constant d’opérations

temps constant

Complexité O(log(n)) La durée d’exécution croit légèrement avec n.


Ce cas de figure se rencontre quand la taille
Complexité logarithmique. du problème est divisée par une entité
constante à chaque itération.

Complexité O(n) C’est typiquement le cas d’un programme


avec une boucle de 1 à n et le corps de la
Complexité linéaire boucle effectue un travail de durée constante
et indépendante de n.

Complexité O(n log(n)) Se rencontre dans les algorithmes ou à chaque


itération la taille du problème est divisée par
Complexité n-logarithmique une constante avec à chaque fois un parcours
linéaire des données. Un exemple typique de
ce genre de complexité est l’algorithme de tri
"quick sort" qui, de manière récursive, divise

46
http://www.irem.unilim.fr/fileadmin/documents/2015_01_04-Introduction_complexite_algorithmique.pdf ,
Consulté le 28 juin 2019
43

le tableau à trier en deux morceaux par


rapport à une valeur particulière

appelée pivot, trie ensuite la moitié du tableau


puis l’autre moitié… S’il n’y avait pas cette
opération de "division" l’algorithme serait
logarithmique puisqu’on divise par 2 la taille
du problème à chaque étape. Mais, le fait de
reconstituer à chaque fois le tableau en
parcourant séquentiellement les données
ajoute ce facteur n au log(n). Noter que la
complexité n-logarithmique est tributaire du
bon choix du pivot.

Complexité O(n2) Typiquement c’est le cas d’algorithmes avec


deux boucles imbriquées chacune allant de 1
Complexité quadratique à n et avec le corps de la boucle interne qui
est constant.

Complexité O(n3) Idem quadratique mais avec ici par exemple


trois boucles imbriquées.
Complexité cubique

Complexité O(np) Algorithme dont la complexité est de la forme


O(np) pour un certain p. Toutes les
Complexité polynomiale complexités précédentes sont incluses dans
celle-ci

Complexité O(2n) Les algorithmes de ce genre sont dits "naïfs"


car ils sont inefficaces et inutilisables des que
Complexité exponentielle n dépasse 50.

Source : ce tableau est tiré dans « Introduction à la complexité algorithmique », téléchargé


sur http://www.irem.unilim.fr/fileadmin/documents/2015_01_04-
Introduction_complexite_algorithmique.pdf

3.6. Conclusion partielle


Ainsi se termine ce chapitre dans lequel il était question des algorithmes
cryptographiques. Nous avons commencé par la définition du mot «algorithme» de manière
générale et de mots « algorithme cryptographique » ; ensuite nous avons donné les types
d’algorithmes cryptographiques tout en expliquant leur fonctionnement ; enfin nous avons
terminé avec quelques notions de mathématique et de la théorie de complexité qui nous aidées
à analyser le fonctionnement de l’algorithme que nous choisirons pour le chiffrement de
messages.
44

Chapitre 4 : L’étude d’opportunité


4.0. Introduction
Ce chapitre est consacré à l’étude du système de la SONAS/Kananga. Nous allons
commencer par donner la situation géographique et l’historique, ensuite nous allons décrire
l’organisation structuro fonctionnelle tout en donnant les différents moyens de traitement :
matériel et humain ; enfin nous allons analyser et critiquer le système communicationnel
existant et proposer des solutions.

4.1. Situation géographique


La SONAS agence de Kananga se situe au n°12 de l’avenue Kinkole, Quartier
Malandji, commune et ville de Kananga. Elle compte cinq antennes dans le cinq communes
qui composent la ville de Kananga à savoir : Kananga, Katoka, Ndesha, Lukonga et Nganza.

Elle est bornée :

 Au Nord par la direction provinciale des impôts (DPI) ;

 Au Sud par l’ex siège provincial du parti politique MSR et la DGRKAC ;

 A l’Est par l’hôtel MONDE ARABE ;

 A l’Ouest par l’ex imprimerie du Kasaï, l’ONG BUKOLE et le bureau du bataillon


police de circulation routière (PCR).

4.2. Historique de la SONAS47


Comme toute activité économique et sociale, l’assurance a été organisée dans le
contexte du libéralisme économique qui a caractérisé le 19ème et le 20èmesiècle.
Particulièrement au Congo, les activités d’assurance s’exerçaient avant la création de la
SONAS dans le grand esprit de la conférence internationale de Berlin de 1885, complété par
les chartes de 22 mars 1885 de Saint-Germain de la Haye portant sur la liberté de commerce
dans tout le territoire du bassin conventionnel du Congo.

Ce libéralisme économique a fait son bonhomme de chemin et s’est renforcé et


amplifié à l’époque léopoldienne par la création de plusieurs sociétés à charte, par exemple :
l’Union Minière du Haut-Katanga, la Comminerai, etc. qui avaient comme objectif
l’exploitation éhontée des richesses du Congo.

L’annexion du Congo à la Belgique n’a fait que renforcer l’implantation des


sociétés d’exploitation des diverses richesses de ce pays sous les aspects les plus divers, le
tout dans une structure d’économie extravertie, c'est-à-dire que le Congo constituait la
périphérie et la métropole était le centre de décision vers lequel était destiné la plus-value
résultant des comptes d’exploitation des sociétés.

47
Documents officiels de la SONAS, Historique de la SONAS.
45

L’industrie d’assurance n’a pas échappé à subir la même loi. Le transfert des
résultats d’exploitation des compagnies d’assurance était facilité et favorisé par l’absence
complète des mécanismes de contrôle de change au niveau de la Banque Centrale du Congo,
du Rwanda et Urundi. C’est vers les années 1928 que les compagnies d’assurance
commencèrent à s’installer au Congo. Celles-ci étaient représentées par les Agents Généraux
ou des courtiers. Quelques compagnies d’assurance de l’époque : le Crédit Foncier Africain,
l’Helvetia, l’Immoaf, Charles Lejeune, ImmoCongo, Boels et Begault, la Soconga, la Trico,
etc.

La création de la SONAS par la loi 66/622 bis du 23 Novembre 1966 a mis fin au
libéralisme économique dans le secteur des assurances. C’est une entreprise publique à
caractère technique et commercial, dotée de la personnalité juridique. Avec le monopole qui
lui a été accordé, la SONAS est devenue la seule compagnie d’assurances à couvrir
l’ensemble du marché national d’assurance. Les anciennes compagnies d’assurance qui
voulaient bien rester et continuer à œuvrer au Zaïre à l’époque s’étaient converties en
courtiers d’assurances agrées par la SONAS et travaillant désormais pour son compte ; en
contre partie de leur prestations, la SONAS leur paie une commission sur les primes récoltées.

La SONAS agence de Kananga fut créée en janvier 1967 ; cette création marque
même le début de ses activités. Il sied de signaler que cette agence est parmi les premières
succursales créée en RDC.

4.3. Mission juridique


Le statut juridique de la SONAS est défini par l’ordonnance-loi n°78/194 du 05
Mai 1978 qui stipule que la SONAS est une entreprise publique à caractère technique et
commercial, dotée d’une personnalité juridique propre placée sous la tutelle du ministère de
l’économie et budget et celui du portefeuille. Cette entreprise jouissait du monopole
d’exploitation du marché des assurances sur toute l’étendue de la République Démocratique
du Congo. Mais depuis le 17 Mars 2016, le marché d’assurance est libéralisé.

4.4. Organisation structuro-fonctionnelle

4.4.1. Structure organique


La structure organisationnelle et de la SONAS/Agence de Kananga se présente de
la manière suivante :

1. Le chef de l’agence et son adjoint ;

2. Le secrétariat de direction ;

3. Le pool technico-commercial ;

4. Le pool administratif et financier ;

5. Le pool sinistres et archives.


46

A. Organigramme

L’organigramme est défini comme une représentation graphique d’une structure


avec les éléments et leurs relations. Ces relations sont celles de subordination (dépendances)
et classement des fonctions (hiérarchie). L’organigramme de la SONAS/Agence de Kananga
se présente de la manière ci-après :

DIRECTION DE
L’AGENCE

SECRETARIAT

SOUS-DIRECTION

POOL POOL POOL SINISTRES


TECHNICO- ADMINISTRATIF ET ET ARCHIVES
COMMERCIAL FINANCIER

AGENTS
AFFECTES AGENTS
AGENTS AFFECTES AFFECTES
1. Assurance
automobile 1. Comptabilité 1. Sinistres toutes
2. Caisse centrale branches
2. Assurance
transport 3. Caisse technique 2. Archives de
l’agence
3. Assurance 4. Cellule budgétaire
incendie
4. Assurance
A.R.D.

Figure 4-1. Organigramme de la SONAS


[47]

4.4.2. Organigramme fonctionnel

4.4.2.1. Le bureau du chef d’agence


Signalons que la direction d’une agence peut être tenue par un fondé de pouvoir
ou sous-directeur, et ce dernier assure comme fonctions :

 La défense des intérêts de l’entité en justice ;

 L’orientation de la politique générale de l’entité ;

 La consultation en priorité de tout courrier qui vient de l’extérieur ;

 Signer à droite de toute correspondance élaborée par l’entité ;

 Etre responsable n°1 de l’entité.

4.4.2.2. Le secrétariat de direction


Le secrétariat est une cellule qui existe dans chaque établissement, il constitue un
point de communication entre le chef l’environnement interne d’une part, l’entreprise et
l’environnement externe d’autres parts.

4.4.2.3. Le pool technico-commercial


Ce service compte en son sein 5 divisions qui sont :

 La division automobile

 La division transport

 La division incendie

 La division accidents et risques divers (ARD)

 La division Assurance-vie

Il est chargé de :

 La recherche des clients ;

 La souscription et la gestion des contacts, incendies, accidents, et risques divers ;

 La souscription et la gestion des contacts de vie ;

 Recouvrement et des primes.

Le chef de pool s’occupe de signer à gauche toute correspondance à caractère


technique, il supervise et coordonne toutes les activités liées à la production, et élabore les
[48]

statistiques mensuelles de production, et enfin il s’occupe de l’élaboration des inventaires


techniques notamment :

 Le portefeuille par tranche (nombre de police) ;

 Les primes encaissées ;

 Les débiteurs techniques ;

 Le nombre de reçus et certificats utilisés.

Il participe également à la défense de l’entité en justice par délégation de pouvoir


comme nous l’avons souligné ci-haut.

4.4.2.4. Le pool administratif et financier


Il est subdivisé en trois divisions constituées de trois agents qui s’occupent chacun
d’une tâche. Il est chargé de :

 L’administration et du personnel ;

 Finances et de la tenue des comptes.

Ces divisions sont :

A. Le chef de pool

Il signe conjointement les pièces comptables avec le caissier et le chef d’agence ;


il fait office de comptable, vérifie journellement les états financiers de l’agence ; il tient la
fiche d’engagement budgétaire mensuel de l’agence ; il signe conjointement avec les
responsables de l’agence tous les documents ayant trait à l’administration, aux finances et au
personnel ; il élabore la demande des travaux pour tout service extérieur et enfin il veille à la
bonne tenue des dossiers des agents.

4.4.2.5. Le pool sinistres et archives


Il est chargé de gestion et du règlement des sinistres en lésions corporelles, de la
gestion et du règlement des sinistres en dégâts matériels, des recours.

Il ouvre les dossiers sinistres et veille jusqu’à la bonne fin de :

- Dossiers réglés et payés ;

- Dossiers réglés et non payés ;

- Dossiers en suspens ;

- Dossiers classés sans suite.


[49]

Il assiste ensemble avec les deux chefs de pool technique et administratif à la


commission de transaction à l’amiable, il dresse les P.V. administratifs des accidents, et veille
à la bonne tenue des archives.

4.5. Fiche d’analyse du parc informatique


Tableau 4-1. Fiche d’analyse du parc informatique

ANALYSE DU PARC INFORMATIQUE DE LA SONAS

Nom : BIDUAYA Symphorien

Profession : Etudiant (à l’UKA)

1. Ordinateur

Marque Type Caractéristiques Nombre

Dell Desk top - RAM : 4Go, 20

- CPU : 2Ghtz

- HDD : 500 Go

- OS : Windows 10

2. Imprimante

Marque Type Caractéristiques Nombre

Hp Laser - 3

Source : Ce tableau est élaboré par nous-mêmes sur base de matériels disponibles à la
SONAS.

4.6. Diagnostic du système existant


Par notre récit sur la structure et le fonctionnement de la Société Nationale
d’Assurance/Kananga d’une manière générale et de son mode de communication en
particulier, nous avons remarqué que la communication entre les agents de différents services
ne se fait pas de la plus bonne des manières, car chaque fois qu’il y a un message à
communiquer, il faut se déplacer pour aller vers celui à qui on veut l’adresser, et cela amène
le travailleur à laisser son poste de travail et perdre du temps.
[50]

4.7. Solution proposée


Les nouvelles technologies de l’information et de la communication étant en
constante évolution, le rendement de différents services dépend de la manière dont
l’information circule au sein du système d’information. Et pour ce faire il faut intégrer dans
l’entreprise des applications et outils pouvant aider à cette fin.

C’est ainsi qu’au vue de toutes les difficultés ci-haut évoquées, nous proposons
l’intégration d’une application sécurisée de messagerie instantanée qui permettra aux
travailleurs d’échanger des messages en temps réel. Sachant que l’enjeu de la sécurité est
énorme, nous avons prévu la protection de ces communications par un chiffrement.
L’algorithme que nous allons utiliser pour chiffrer les données est de type symétrique : RC4
(Rivest Chipher 4), un algorithme aussi puissant qui va assurer la confidentialité des
échanges.

4.8. Conclusion partielle


Dans ce chapitre nous avons montré d’une manière descriptive la constitution et le
fonctionnement de la Société Nationale d’Assurances/Kananga. Après avoir diagnostiqué le
système existant, nous avons opté pour la solution informatique consistant à concevoir une
application sécurisée pour l’échange des messages sans avoir besoin d’une connexion
Internet, ce qui permet de gagner en bande passante et assurer un travail collaboratif.
L’application de cette solution fera l’objet du cinquième chapitre.
[51]

Chapitre 5 : Conception du nouveau système et


implémentation
5.0. Introduction

La programmation d’une application, ne signifie pas se lancer tête baissée dans


l’écriture du code : il faut d’abord organiser ses idées, les documenter, puis organiser la
réalisation en définissant les modules et étapes de la réalisation. C’est cette démarche
antérieure à l’écriture que l’on appelle modélisation ; son produit est un modèle.

Dans ce chapitre, nous présentons les objectifs de notre application, ce qui nous
amène à identifier les possibilités du système et les besoins des utilisateurs que nous essayons
de projeter dans des diagrammes de cas d'utilisations.

5.1. Conception du nouveau système

5.1.1 Spécification des besoins

L'application envisagée doit satisfaire les besoins fonctionnels qui seront exécutés
par le système et les besoins non fonctionnels qui apportent aussi un niveau de
perfectionnement de la qualité logicielle du système.

a) Les besoins fonctionnels

Les besoins fonctionnels ou besoins métiers représentent les actions que le


système doit exécuter, il ne devient opérationnel que s'il les satisfait. Cette application doit
couvrir principalement les besoins fonctionnels suivants :

 Connexion des ordinateurs au réseau) ;


 Authentification des utilisateurs ;
 Chiffrer et déchiffrer des messages textes ;
 Envoyer et recevoir des messages textes ;
 Se déconnecter (quitter l'application).

b) Les besoins non fonctionnels

Ce sont des exigences qui ne concernent pas spécifiquement le comportement du


système mais plutôt identifient des contraintes internes et externes du système. Les principaux
besoins non fonctionnels de notre application se résument comme suit :

 Le code doit être clair pour permettre des futures évolutions ou améliorations.
 L'ergonomie : l'application offre une interface conviviale et facile à utiliser.
 Garantir l'intégrité et la cohérence des données à chaque mise à jour et à chaque
 insertion.
[52]

5.1.2. Le langage UML

« UML (Unified Modeling Language), se définit comme un langage de


modélisation graphique et textuel destiné à comprendre et à définir des besoins, spécifier et
documenter des systèmes, esquisser des architectures logicielles, concevoir des solutions et
communiquer des points de vue. UML modélise l'ensemble des données et des traitements en
élaborant des différents diagrammes ». 48

5.1.3. Les différents types diagrammes d'UML


Notre objectif étant de sécuriser les communications sur notre réseau local, nous
n’aurons pas à entrer en profondeur des notions de la modélisation, mais nous allons prendre
trois diagrammes pour une illustration du fonctionnement de notre application.

Figure 5-1. Les diagrammes UML

48
P. ROQUES, Les cahiers du programmeur UML2, 4eme Edition, Eyrolles, Paris, 2008, p. 10.
[53]

5.1.4. Identification des acteurs

Un acteur représente un rôle joué par un utilisateur humain ou un autre système


qui interagit directement avec le système étudié. Un acteur participe à au moins un cas
d'utilisation.

« Un acteur peut consulter et/ou modifier directement l'état du système, en


émettant et/ou en recevant des messages susceptibles d'être porteurs de données ».49

Dans notre cas, nous avons un acteur qui est :

Utilisateur : il a un accès au système via un contrôle d'accès (login et mot de passe).

Les opérations qu'il peut effectuer sont :

- se connecter ;
- Afficher la liste des ordinateurs connectés ;
- Envoyer et recevoir des messages texte ;
- Se déconnecter.

5.1.5. Les Diagrammes des cas d'utilisation

Les cas d’utilisation décrivent sous la forme d’actions et de réactions, le


comportement du système étudié du point de vue des utilisateurs. Ils définissent les limites du
système et ses relations avec son environnement. 50

Cette définition doit être complétée. En effet, elle ne précise pas si un cas
d’utilisation doit décrire l’intégralité ou une partie du dialogue entre un utilisateur et le
système. Elle peut être formulée ainsi : « entre un utilisateur et le système, un cas d’utilisation
décrit les interactions liées à un objectif fonctionnel de l’utilisateur »51.

Un cas d’utilisation explicite la partie des exigences fonctionnelles du système


concernant l’un des objectifs d’un utilisateur. Ce dernier est aussi appelé, de façon plus
précise, cas d’utilisation avec objectif utilisateur.

49
Id., UML2 par la pratique, 5eme éd., Editions Eyrolles, Paris, 2006. p. 37.
50
L. DEBRAUWER & F. VAN DER HEYDE, UML 2 - Initiation, exemples et exercices corrigés, 2ième éd.,
Editions ENI, Paris, 2010, p. 29.
51
Ibid.
[54]

5.1.5.1. Le diagramme global des cas d'utilisations

Figure 5-2 - Le diagramme global des cas d'utilisations associés aux acteurs

5.1.6. Diagramme de séquence

5.1.6.1. Définition

Le diagramme de séquence « décrit la dynamique du système. À moins de


modéliser un très petit système, il est difficile de représenter toute la dynamique d’un système
sur un seul diagramme. Aussi la dynamique globale sera représentée par un ensemble de
diagrammes de séquence, chacun étant généralement lié à une sous-fonction du système »52.

Le diagramme de séquence décrit les interactions entre un groupe d’objets en


montrant, de façon séquentielle, les envois de message qui interviennent entre les objets. Le
diagramme peut également montrer les flux de données échangées lors des envois de
message.

52
Ibid, p. 46.
[55]

5.1.6.2. Diagramme de séquence du cas d'utilisation « S’authentifier»

Figure 5-3 - Diagramme de séquence de « Authentification »


[56]

5.1.6.3. Diagramme de séquence du cas d'utilisation « Envoyer des messages»

Figure 5-4 - Diagramme de séquence de « Envoyer des messages »

5.1.6.3. Diagramme de séquence du cas d'utilisation « Déconnexion »

Figure 5-5 - diagramme de séquence de « Déconnexion »


[57]

5.1.7. Diagramme de classe


Le diagramme de classes exprime la structure statique du système en termes de
classes et de relations entre ces classes. L’intérêt du diagramme de classe est de modéliser les
entités du système d’information. Le diagramme de classe permet de représenter l’ensemble
des informations finalisées qui sont gérées par le domaine. Ces informations sont structurées,
c’est-à-dire qu’elles ont regroupées dans des classes. Le diagramme met en évidence
d’éventuelles relations entre ces classes. 53

Figure 5-6. Diagramme de classe

53
Ibid, p. 46.
[58]

5.2. Implémentation

5.2.1. Algorithme choisi

Nous opté pour l’algorithme de chiffrement Rivest Chipher 4 (RC4), qui est « un
algorithme de chiffrement en continu conçu en 1987 par Ronald Rivest, l’un des inventeurs de
RSA ».54 Il est supporté par différentes normes, par exemple dans le TLS ou encore le WEP.

5.2.1.1. Description de l’Algorithme

RC4 est un algorithme de chiffrement à flot synchrone prenant en entrée une clé
secrète pouvant varier de 40 à 1024 bits. En pratique, on choisit souvent une taille de clé de
128 bits. En revanche, cet algorithme ne prend pas de vecteur d’initialisation en entrée. L’état
interne se compose de 258 octets répartis de la manière suivante :

 Une permutation S de toutes les 256 valeurs possibles d’un octet,


 Deux pointeurs i et j servant d’index dans le tableau de permutation.

Après la phase d’initialisation de la clé, l’algorithme génère un octet de suite


chiffrant par itération de la mise à jour d’état interne. Les fonctions d’initialisation et de mise
à jour d’état interne sont décrites dans les paragraphes suivants.

Phase : Initialisation
Avant de générer les premiers octets de la suite chiffrante, l’algorithme exécute
une phase d’initialisation. Cette étape consiste à utiliser la clé secrète comme une graine pour
la génération d’une suite chiffrante aléatoire. Dans un premier temps, tous les octets de la
permutation S sont initialisés avec leurs indices respectifs. Ainsi, S[0] = 0, S[1] = 1, . . . ,
S[255] = 255. Une fois ces opérations effectuées, l’algorithme utilise la clé secrète pour
calculer des indices qui serviront à mélanger la permutation S de manière « aléatoire ». De
cette manière, l’ordre du mélange réalisé dans de la permutation S dépend de la clé et l’on est
sûr que chacun des octets de S a bien été permuté au moins une fois. Une fois cette
initialisation terminée, l’algorithme est prêt pour la génération de la suite chiffrante
proprement dite.

Algorithme 1 : Initialisation de RC4 par la clé secrète 55


ENTREES : Etat interne S, clé secrète K, taille de clé n

1: Pour i = 0 à 255 faire


2: S[i] ← i

3: Fin Pour

54
W. STALLINGS, Network security essentials : applications and standards, 4ème Edition, Paerson Education,
Paris, 2011, p. 9.
55
https://tel.archives-ouvertes.fr/tel-00614559, Consulté le 29 juin 2019.
[59]

4: j ← 0
5: Pour i = 0 `a 255 faire

6: j ← (j + S[i] + K[i mod n]) mod 256


7: Temp ← S[i]

8: S[i] ← S[j]
9: S[j] ← Temp

10: Fin Pour

Phase : Keystream
i=j=k=0;
Pour k=0 à m faire
i=(i+1) mod 256
j=(j+S[i]) mod 256
Echanger(S[i],S[j])
t=(S[i]+S[j]) mod 256
KS[k]=S[t]
FinPour

Phase : Chiffrement & Déchiffrement

Soit M un message de longueur m (octets)

Chiffrement :

Pour i=0 à m faire

Mc=M xor KS

Fin Pour

Déchiffrement :

Pour i=0 à m faire

M=Mc xor KS

FinPour

5.2.1.2. Complexité de RC4

RC4 a une complexité linéaire car toutes les opérations de génération du pseudo
aléatoire et de chiffrement sont fonction de n et m. sa complexité est donc O(n).
[60]

5.2.2. Architecture du réseau à mettre en place

5.2.2.1. Schéma de liaison

Figure 5-7 - Schéma de liaison du réseau de la SONAS

5.2.2.2. Schéma architectural


Sur la maquette nous avons 5 Switchs qui représentent le sous-réseau de chaque
service. Ces différents sous-réseaux sont interconnectés par le routeur. Dans le service
informatique, il y a une machine considérée comme serveur sur laquelle il y a quelques
ressources important pour le fonctionnement du réseau.
[61]

Figure 5-8 - Schéma de liaison du réseau de la SONAS

5.2.2.3. Adressage
Nous allons prendre une adresse privée de la classe A, sur laquelle nous allons
appliquer la segmentation en vue de l’adapter au nombre de machines de notre réseau.
En appliquant la segmentation à cette adresse : 10.10.10.0/24, le plan d’adressage
sera :
[62]

Tableau 5-1. Plan d’adressage

Réseau Sous-réseau (service) Adresse réseau Adresse diffusion

Informatique 10.10.10.0/28 10.10.10.15/28

Sinistres 10.10.10.16/28 10.10.10.31/28


10.10.10.0/24 Recouvrement 10.10.10.32/28 10.10.10.47/28

Secrétariat 10.10.10.48/28 10.10.10.63/28

Direction 10.10.10.64/28 10.10.10.79/28

Source : Ce tableau est conçu par nous-mêmes.

5.2.3. Environnement de développement

Pour la programmation de notre application, nous avons utilisé l’environnement


de développement intégré « Visual studio version 2012». Comme langage de programmation,
nous avons utilisé Visual Basic.Net.
Visual Basic .NET est un langage de programmation à la syntaxe similaire à celle
de Visual Basic 6. VB.NET permet de développer en .NET via Visual Studio, sur les systèmes
d'exploitation Windows (98, 2000, XP, Vista, 7, 8, 8.1 et 10).
De nombreuses raisons font qu’aujourd’hui ce langage est un des plus utilisés au
56
monde :
 Il est facile à apprendre, y compris pour des personnes n’ayant jamais "touché" à
la programmation.
 Il offre une approche totalement orientée objet, ce qui simplifie le développement
d’applications de grande envergure et/ou complexes.
 Il est suffisamment puissant pour fournir toutes les ressources nécessaires aux
programmeurs avancés.
 Il est extensible. De nombreuses sociétés proposent des composants annexes qui
limitent dans de grandes proportions le développement de code spécialisé.
 Il produit tout aussi facilement des applications destinées à être exécutées dans un
environnement Windows (Windows Forms ou WPF) ou Internet (ASP.NET).
 Il est totalement compatible avec Windows 8, le dernier système d’exploitation de
Microsoft.
 Il sait parfaitement dialoguer avec les applications de bureautique les plus utilisées
au monde (le traitement de texte Microsoft Word et le tableur Microsoft Excel)
afin d’automatiser la création de fichiers dans ces applications.

56
M. MARTIN, Visual Basic 2012-2013, Editions Pearson, Paris, 2013, p. 7.
[63]

 Il utilise un langage de requêtage universel très puissant appelé LINQ. Grâce à lui,
le programmeur peut interroger toutes sortes de collections, qu’elles proviennent
d’objets créés par les méthodes propres à Visual Basic, d’une base de données
locale ou distante ou encore de documents XML.
 Enfin, il est armé pour la programmation parallèle, afin de tirer le meilleur parti
des processeurs multi cœurs qui occupent aujourd’hui la plupart de nos
ordinateurs.
Pour programmer toutes les fonctionnalités de notre application, nous avons
utilisé les bibliothèques suivantes :
- System.Net.Sockets : pour la création des points de communication (client et
serveur).
- System.Threading : pour la gestion des processus parallèles.
- System.IO.Ports : pour la gestion des numéros des ports.
- System.DirectoryServices : pour accéder aux services de l’annuaire, c’est cette
librairie qui nous a permis d’écrire le code nous permettant d’afficher la liste
d’ordinateurs connectés au réseau.

5.2.4. Présentation de l’interface de l’application

5.2.4.1. Fenêtre d’accueil du programme


La fenêtre suivante s’affiche au démarrage de notre application, après
l’authentification. En cliquant sur voir la liste, on affiche les noms de tous les ordinateurs
connectés à notre réseau.

Figure 5-9. Fenêtre d’accueil du programme


[64]

5.2.4.2. Fenêtre de la liste d’ordinateurs connectés


Cette fenêtre liste tous les ordinateurs connectés au réseau et permet la sélection
d’un correspondant en cliquant sur son nom. La partie à droite affiche le nom de l’ordinateur
dans une zone et son adresse dans une autre.

Figure 5-10 - Fenêtre de la liste d'ordinateurs

5.2.4.3. Fenêtre de discussion


Dans cette fenêtre, il y a la possibilité d’échanger des messages avec tout
correspondant qui est dans la liste.
[65]

Figure 5-11 - Fenêtre de discussion


[66]

5.2.4.4. Fenêtre d’illustration de la sécurité


L’opération de chiffrement se faisant en arrière-plan par le programme, nous
avons prévu cette fenêtre pour illustrer le fonctionnement de l’algorithme de cryptographie
choisi.

Figure 5-12 - Fenêtre d’illustration de la sécurité


[67]

5.2.5. Extraits de codes sources


Dans cette partie nous allons mettre quelques extraits de code source, pour cela
nous allons commencer par le code de chiffrement et de déchiffrement.

5.2.5.1. Le Chiffrement et le Déchiffrement


Pour une compréhension, nous avons commenté chaque action exécutée dans le
code de notre application.
''' <summary>
''' Permet d'effectuer l'initialisation des vecteurs T et S.
''' </summary>
''' <param name="_S">Le vecteur S[]concerné par l'initialisation.</param>
''' <param name="_T">Le vecteur T[]concerné par l'initialisation.</param>
''' <param name="_K">Le vecteur K[]contenant les octets de la clé choisie.</param>
Private Sub InitialiserTetS(_S As Integer(), _T As Integer(), _K As Integer())
'Initialisation des S et T.
For i As Integer = 0 To 255
_S(i) = i
_T(i) = _K(i Mod _K.Length)
Next

'Afficher les valeurs de K.


Console.WriteLine(vbLf & "VALEURS DE K[]")
For Each item As Integer In _K
Console.Write("[{0}],", item)
Next

'Afficher les valeurs de S.


Console.WriteLine(vbLf & vbLf & "VALEURS DE S[]")
For Each item As Integer In _S
Console.Write("[{0}],", item)
Next

'Afficher les valeurs de T.


Console.WriteLine(vbLf & vbLf & " VALEURS DE T[]")
For Each item As Integer In _T
Console.Write("[{0}],", item)
Next
End Sub

''' <summary>
''' Permet de faire la permutation initiale des éléments du vecteur S.
''' </summary>
''' <param name="_S">Le vecteur S[]concerné par la permutation.</param>
''' <param name="_T">Le vecteur T[] à utiliser pour la permutation.</param>
Private Sub PermutationInitialeS(_S As Integer(), _T As Integer())
'Permutation initiale de S.
Dim j As Integer = 0
Dim variableIntermediaire As Integer
For i As Integer = 0 To 255
j = (j + _S(i) + _T(i)) Mod 256
'Echanger(S[i],S[j])
variableIntermediaire = _S(i)
_S(i) = _S(j)
_S(j) = variableIntermediaire
Next

'Afficher les valeurs de S.


Console.WriteLine(vbLf & vbLf & "VALEURS DE S[] APRES PREMIERE PERMUTATION")
[68]

For Each item As Integer In _S


Console.Write("[{0}],", item)
Next
End Sub

''' <summary>
''' Permet de générer les flux pseudo-aléatoires pour KS(Key Stream).
''' </summary>
''' <param name="_KS">Le vecteur KS qui contiendra les flux aléatoires
générés.</param>
''' <param name="_S">Le vecteur S[]à utiliser pour les différentes
permutations.</param>
Private Sub GenererFluxAleatoiresPourKS(_KS As Integer(), _S As Integer())
Dim i As Integer = 0
Dim j As Integer = 0
For k As Integer = 0 To 255
i = (i + 1) Mod 256
j = (j + _S(i)) Mod 256

'Echanger(S[i],S[j])
Dim variableIntermediaire As Integer = _S(i)
_S(i) = _S(j)
_S(j) = variableIntermediaire

Dim t As Integer = (_S(i) + _S(j)) Mod 256


_KS(k) = _S(t)
Next

'Afficher les valeurs de S.


Console.WriteLine(vbLf & vbLf & "VALEURS DE S[] APRES AUTANT DE PERMUTATION")
For Each item As Integer In _S
Console.Write("[{0}],", item)
Next

'Afficher les valeurs de KS.


Console.WriteLine(vbLf & vbLf & "VALEURS DE KS[] ")
For Each item As Integer In _KS
Console.Write("[{0}],", item)
Next
End Sub

''' <summary>
''' Permet de crypter le message fourni avec la clé KS[i].
''' </summary>
''' <param name="_KS">Le vecteur KS[] contenant les flux preudo-
aléatoires.</param>
''' <param name="message">Le message à crypter.</param>
''' <returns></returns>
Public Function CrypterMessage(_KS As Integer(), message As String) As String
Dim i As Integer = 0
Dim messageCrypté As String = ""
For Each lettre As Char In message
Dim valeur As Integer = _KS(i) Xor AscW(lettre)
Dim c As Char = ChrW(valeur)
messageCrypté = messageCrypté & c
i = i + 1
Next
Return messageCrypté
End Function

''' <summary>
[69]

''' Permet de décrypter le message fourni avec la clé KS[i].


''' </summary>
''' <param name="_KS">Le vecteur KS[] contenant les flux preudo-
aléatoires.</param>
''' <param name="messageCrypté">Le message à déchiffrer.</param>
''' <returns></returns>
Private Function DecrypterMessage(_KS As Integer(), messageCrypté As String) As
String
Dim i As Integer = 0
Dim messageDécrypté As String = ""
For Each lettre As Char In messageCrypté
Dim valeur As Integer = _KS(i) Xor AscW(lettre)
Dim c As Char = ChrW(valeur)
messageDécrypté = messageDécrypté & c
i = i + 1
Next
Return messageDécrypté
End Function

Après avoir codé ces fonctions, voici comment les appeler dans la méthode main
du programme ou dans le bouton.
'Clé K.
Dim K As Integer() = {40, 51, 11, 50, 54,
33, 28, 39, 23, 36, 22, 17, 19, 25, 15, 10}
'Vecteur S.
Dim S As Integer() = New Integer(255) {}
'Vecteur T.
Dim T As Integer() = New Integer(255) {}
'Nouvelle clé avec des valeurs aléatoires.
Dim KS As Integer() = New Integer(255) {}
InitialiserTetS(S, T, K)
PermutationInitialeS(S, T)
GenererFluxAleatoiresPourKS(KS, S)
messageM = txtmsgclair.Text
messageCrypté = CrypterMessage(KS, messageM)
txtmsgchiffre.Text = messageCrypté
'Déchiffrer.
Dim messageDécrypté As String = DecrypterMessage(KS, messageCrypté)
txtmsgclair.Text = ""

5.2.5.1. L’envoi et la réception des messages

Pour l’envoi et la réception des messages nous avons créé deux classes qui sont
« TCPClientConnect » et « TCPServerconnect1».

a) TCPServerconnect1
Cette classe permet de créer une socket serveur, capable de prendre en charge
plusieurs sockets clientes. Son code est le suivant :
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Threading

Public Class TCPServerconnect1


Public Event Messagereceived(sender As TCPServerconnect1, Donnes As String)
Public ServerIP As IPAddress = IPAddress.Parse(Form1.txtmonIP.Text)
[70]

Public ServerPort As Integer = 64555


Public Server As TcpListener
Public CommThread As Thread
Public IsLinstning As Boolean = True
Private Client As TcpClient
Private ClientData As StreamReader
Public Sub New()
Server = New TcpListener(ServerIP, ServerPort)
Server.Start()
CommThread = New Thread(New ThreadStart(AddressOf listning))
CommThread.Start()
End Sub
Public Sub Listning()
Do Until IsLinstning = False

If Server.Pending = True Then

Client = Server.AcceptTcpClient
ClientData = New StreamReader(Client.GetStream)

End If
Try
RaiseEvent Messagereceived(Me, ClientData.ReadLine)
Catch ex As Exception
End Try

Thread.Sleep(100)
Loop
End Sub
End Class

b) TCPClientConnect
Cette classe crée une socket cliente, qui aura comme fonction de répondre aux
messages reçus par la socket serveur créée dans le code précédent.
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Threading

Public Class TCPClientConnect

Public Client As TcpClient


Public DataStream As StreamWriter
Public Sub New(Host As String, Port As Integer)
Client = New TcpClient(Host, Port)
DataStream = New StreamWriter(Client.GetStream)
End Sub

Public Sub Send(Data As String)


DataStream.Write(Data)
DataStream.Flush()
End Sub
End Class
[71]

5.3. Conclusion partielle


La phase de conception est la première étape dans la réalisation d'un projet, elle
doit d'écrire de manière non ambiguë le fonctionnement futur du système, afin d'en faciliter la
réalisation. Nous avons décrit brièvement le processus de réalisation de notre application en
spécifiant l'environnement de développement associé à notre système. Ainsi, après cette
phase, nous avons implémenté le nouveau système en déployant le réseau et en concevant
l’application qui permet de communiquer d’une manière sécurisée entre les différents services
de la SONAS/Kananga.
[72]

Conclusion Générale
Ce mémoire a porté sur la mise en place d’une application sécurisée end-to-end
pour l’échange des messages en réseau local à la SONAS/Kananga. Celui-ci a eu pour cadre
de référence le travail collaboratif qui voudrait chaque membre de l'équipe œuvre non pas
individuellement mais avec tous les autres pour atteindre un objectif commun. Plus
précisément, il s’est agi d’une conception du travail qui met en avant, d’une part, la rapidité
dans le traitement de l’information et, d’autre part, l’interaction de l’individu avec son
environnement social.

En effet, le bâtiment qui abrite la Société Nationale d’Assurances est spacieux,


comme nous l’avons affirmé plus haut, les échanges entre travailleurs nécessite le
déplacement de ces derniers ; alors l’objectif de ce travail était de proposer un dispositif qui
permettrait de communiquer en temps réel sans avoir besoin de se déplacer encore moins de la
connexion Internet, tout en garantissant la confidentialité des échanges. La finalité de cette
étude est donc une application sécurisée de bout en bout d’échange des messages.

Le travail qui a été effectué n’est qu’un début de solution, par rapport à tout ce
qu’il y a à faire pour que l’intégration des TIC puisse être effective dans le système
d’information de la SONAS. Le souhait que nous avons actuellement est que ce dispositif soit
implanté dans tous les services de cette entreprise. Ce qui nous aidera à étendre le champ
d’action notamment ajoutant des appels vidéo, des messages vocaux, etc.

N’ayant pas la prétention d’être parfait, Albert Einstein a renchéri en disant :


« celui qui n’a jamais commis une erreur n’a jamais tenté d’innover », c’est ainsi que nous ne
prétendons pas avoir fait tout parfaitement dans ce mémoire. Nous le mettons à la
l’appréciation de tous, notamment des chercheurs comme étant une ouverture à d’autres
recherches afin de pouvoir porter d’amples améliorations dans les prochains jours.
[73]

Bibliographie
I. Livres
1. A. BLAC-LAPIERRE, La communication en temps réel et transmission efficace,
Editions Eyrolles, Paris, 2000.

2. B. SCHNEIER, Cryptographie appliquée, algorithmes, protocoles et codes source en


C, 2ème Edition, Vuibert, Paris, 2017.

3. C. LLORENS, L. LEVIER & D. VALOIS, Tableaux de bord de la sécurité réseau,


Editions Eyrolles, Paris, 2006.

4. C. SERVIN, Réseaux et télécoms Cours et exercices corrigés, Editions Dunod, Paris,


2003.

5. D. T. BAUTTS, T. DAWSON et G. N. PURDY, Administration réseau sous Linux,


3ème éd., Editions O’Reilly, Sebastopol, 2005.

6. E. LE NAGARD, Initiation à l’algorithmique en Scilab et Ptyhon, Editions Pearson,


Paris, 2013.

7. FREDERICA., D. LAFONT. et J.F. MARLEY, Le projet intranet: de l’analyse des


besoins de l’entreprise à la mise en oeuvre des solutions, Editions ALI, Paris, 1998.

8. G. PUJOLLE, Les réseaux, 5ème éd., Editions Eyrolles, Paris, 2006.

9. J. DORDOIGNE, Réseaux informatiques : Notions fondamentales, Editions ENI,


Paris, 2013.

10. J-F. PILLOU & J.-P. BAY, Tout sur la sécurité informatique, Editions Dunod, Paris,
2013.

11. M. Martin, Visual Basic 2012-2013, Editions Pearson, Paris, 2013.

12. L. DEBRAUWER & F. VAN DER HEYDE, UML 2 - Initiation, exemples et


exercices corrigés, 2ième éd., Editions ENI, Paris, 2010.

13. P. HERNEST, Les algorithmes, Presses universitaires de France, coll. « Que sais-
je ? », Paris, 2002.

14. P. ROQUES, UML2 par la pratique, 5eme éd., Editions Eyrolles, Paris, 2006.

15. SABINEBONHNKE, Modéliser son système d’information, Editions Eyrolles, Paris,


2010.

16. S. J. A.O DJUNGU, Réseaux par la pratique, Editions CRIA, Kinshasa, 2014.
[74]

17. W. STALLINGS, Cryptography and network security, principles and practice, 4ème
Edition, Paerson Education, Paris, 2011.

18. W. STALLINGS, Network security essentials: applications and standards, 4ème éd.,
Editions Paerson Education, Paris, 2011.

II. Articles

19. C. SHANNON, « A Mathematical Theory of Communication » in Bell System


Technical Journal, vol. 27, pp. 379-423, 623-656, july, October, 1948.

20. P. KAZADI, « Etude des protocoles de connexion dans un réseau étendu et problème
de partage de données. Interconnexion des sites universitaires » in Revue de l’UKA,
Vol. 6, n. 11, p. 47-65, Mai 2018.

III. Sites web

21. http://hautrive.free.fr/reseaux/architectures/topologie-des
reseaux.html&grqid=IfCbMM7P&s=1&hl=lua-CD

22. https://www.guill.net/index.php?cat=5&8arc=2&struct=7

23. www.arsene.perez-mas.pagesperso-orange.fr/transmission/lignes/supports.htm

24. https://www.irisa.fr/armor/lesmembres/cousin/Enseignement/Reseaux-
generalites/Cours/9-4.htm

25. https://www.malgouyres.org/cours/programmationSysteme/node10.html

26. http://jfgg.free.fr/cmsms/index.php?page=reseaux_netstat

27. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.199.pdf

28. www.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf

29. www.ivision.fr/mettre-en-place-une-politique-de-securite-informatique-les-bonnes-
pratiques/amp/

30. www.ivision.fr/mettre-en-place-une-politique-de-securite-informatique-les-bonnes-
pratiques/amp/

31. www.montefiore.ulg.ac.be/~herbiet/crypto/03-math1.pdf

32. http://www.irem.unilim.fr/fileadmin/documents/2015_01_04
Introduction_complexite_algorithmique.pdf,

33. https://tel.archives-ouvertes.fr/tel-00614559
[75]

Table des matières


EPIGRAPHE ......................................................................................................................... I
DEDICACE .......................................................................................................................... II
REMERCIEMENTS ............................................................................................................ III
LISTE D’ABREVIATIONS .................................................................................................. V
LISTE DE TABLEAUX ...................................................................................................... VI
LISTE DE FIGURES ......................................................................................................... VII
Introduction............................................................................................................................ 1
1. Problématique ............................................................................................................. 1
2. Hypothèse……………………………………………………………………………....2
3. Choix et intérêt du sujet ...………………………………………. …………………....2

4. Méthodes et techniques ...…………………………….. ……………………………....2


5. Subdivision du travail ...………………………………... ………………………..…....2
Chapitre 1 : Les réseaux informatiques et la programmation réseau ...................................... 4
I.1. Introduction .................................................................................................................. 4
I.2. Définition ..................................................................................................................... 4
I.3. Classification des réseaux ............................................................................................. 5
I.4. Applications ................................................................................................................. 5
I.5. Différentes formes de ressources partagées dans un réseau ........................................... 6
I.6. Topologies .................................................................................................................... 6
I.6.1. La topologie physique ............................................................................................ 6
I.6.2. La topologie logique .............................................................................................. 9
I.7. Architectures .............................................................................................................. 10
I.7.1. Architecture centralisée ........................................................................................ 10
I.7.2. Architecture poste à poste .................................................................................... 10
I.7.3. Architecture client/serveur ................................................................................... 10
I.7.4. Architecture Trois tiers ......................................................................................... 11
I.8. Les supports de transmission ...................................................................................... 12
I.8.1. Les Supports guidés ............................................................................................. 12
I.8.2. Les supports libres ............................................................................................... 15
I.9. La standardisation ....................................................................................................... 16
I.10. Adressage et routage ................................................................................................. 16
[76]

I.10.1. Adressage........................................................................................................... 16
I.10.2. Routage .............................................................................................................. 17
I.11. La programmation réseau ......................................................................................... 18
I.11.1. Modes de communication ................................................................................... 18
I.11.2. Identification des expéditeurs et destinataires ..................................................... 18
I.12. Conclusion ............................................................................................................... 22
Chapitre 2 : La sécurité informatique .................................................................................... 23
2.0. Introduction ............................................................................................................... 23
2.1. Définition de la sécurité informatique ........................................................................ 23
2.2. Objectifs .................................................................................................................... 24
2.3. Terminologie de la sécurité informatique ................................................................... 25
2.4. La sécurité des connexions ......................................................................................... 26
2.5. Étude des risques ....................................................................................................... 28
2.6. Établissement d’une politique de sécurité ................................................................... 29
2.7. Éléments d’une politique de sécurité .......................................................................... 29
2.8. Aspects techniques de la sécurité ............................................................................... 31
2.9. Conclusion ................................................................................................................. 31
Chapitre 3 : Les algorithmes cryptographiques ..................................................................... 32
3.0. Introduction ............................................................................................................... 32
3.1. Définitions ................................................................................................................. 32
3.2. Naissance de la cryptographie informatique : Alan Turing ......................................... 33
3.3. Algorithme cryptographique ...................................................................................... 33
3.4. Types d’algorithmes cryptographiques ....................................................................... 35
3.5. Rudiments mathématiques ......................................................................................... 38
3.5.1. Théorie de l’information ...................................................................................... 38
3.5.2. Confidentialité parfaite ........................................................................................ 40
3.5.3. Théorie de la complexité...................................................................................... 41
3.6. Conclusion partielle ................................................................................................... 43
Chapitre 4 : L’étude d’opportunité........................................................................................ 44
4.0. Introduction ............................................................................................................... 44
4.1. Situation géographique .............................................................................................. 44
4.2. Historique de la SONAS ............................................................................................ 44
4.3. Mission juridique ....................................................................................................... 45
[77]

4.4. Organisation structuro-fonctionnelle .......................................................................... 45


4.4.1. Structure organique ............................................................................................. 45
4.4.2. Organigramme fonctionnel .................................................................................. 47
4.5. Fiche d’analyse du parc informatique ......................................................................... 49
4.6. Diagnostic du système existant................................................................................... 49
4.7. Solution proposée ...................................................................................................... 50
4.8. Conclusion partielle ................................................................................................... 50
Chapitre 5 : Conception du nouveau système et implémentation ........................................... 51
5.0. Introduction ............................................................................................................... 51
5.1. Conception du nouveau système ................................................................................ 51
5.1.1 Spécification des besoins ..................................................................................... 51
5.1.2. Le langage UML ................................................................................................. 52
5.1.3. Les différents types diagrammes d'UML .............................................................. 52
5.1.4. Identification des acteurs ..................................................................................... 53
5.1.5. Les Diagrammes des cas d'utilisation ................................................................... 53
5.1.6. Diagramme de séquence ...................................................................................... 54
5.1.7. Diagramme de classe ........................................................................................... 57
5.2. Implémentation .......................................................................................................... 58
5.2.1. Algorithme choisi ................................................................................................ 58
5.2.2. Architecture du réseau à mettre en place .............................................................. 60
Source : Ce tableau est conçu par nous-mêmes. ............................................................. 62
5.2.3. Environnement de développement ....................................................................... 62
5.2.4. Présentation de l’interface de l’application........................................................... 63
5.2.5. Extraits de codes sources ..................................................................................... 67
5.3. Conclusion partielle ................................................................................................... 71
Conclusion Générale ............................................................................................................ 72
Bibliographie ....................................................................................................................... 73
I. Livres ........................................................................................................................ 73
II. Articles ...................................................................................................................... 74
III. Sites web................................................................................................................ 74
Table des matières ................................................................................................................ 75
[78]

Vous aimerez peut-être aussi