Académique Documents
Professionnel Documents
Culture Documents
Mise en Place D Une Application Securise
Mise en Place D Une Application Securise
Par
BIDUAYA BIDUAYA Symphorien
Juillet 2019
II
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)
III
DEDICACE
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.
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.
V
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.
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.
VI
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
VII
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
VIII
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
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.
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 ;
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.
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
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érateur 7. 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.
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.
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
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.
Ethernet ;
Token ring ;
FDDI.
10
https://www.guill.net/index.php?cat=5&8arc=2&struct=7, Consulté le 29 mars 2019.
10
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.
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.
11
SABINEBONHNKE, Modéliser son système d’information, Editions Eyrolles, Paris, 2010, p.252.
12
Ibid.
11
Définitions
- Client
- Serveur
- Requête
- Réponse
13
Ibid.
12
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
connecteurs spécifiques selon la nature du réseau : sur les réseaux AppleTalk, les connecteurs
sont circulaires avec des broches.
d) La fibre optique
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.
d) Liaisons satellite16
16
A. BLAC-LAPIERRE, La communication en temps réel et transmission efficace, Editions Eyrolles, Paris,
2000, p. 56.
16
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.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.
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 :
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 :
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
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).
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).
24
http://jfgg.free.fr/cmsms/index.php?page=reseaux_netstat, Consulté le 12 mars 2019.
21
Application
Session
UDP/TCP Transport
IP/ARP Réseau
Liaison
Ethernet physique
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
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.
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:
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
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:
• 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.
Ainsi, au regard de tous ces concepts, le risque en terme de sécurité est caractérisé par
l’équation suivante :
𝒗𝒖𝒍𝒏é𝒓𝒂𝒃𝒊𝒍𝒊𝒕é ∗ 𝒎𝒆𝒏𝒂𝒄𝒆
𝑹𝒊𝒔𝒒𝒖𝒆 =
𝒄𝒐𝒏𝒕𝒓𝒆 − 𝒎𝒆𝒔𝒖𝒓𝒆
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)
Les connexions réseau font face à plusieurs types de menaces. Parmi lesquelles,
on trouve diverses catégories :
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.
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
»
o Quelle est la valeur des équipements, des logiciels et surtout des informations ?
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
o Quel sera l’impact sur la clientèle si la sécurité est insuffisante, ou tellement forte
qu’elle devient contraignante ?
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…) ?
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.
- 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.
- 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.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
3.1. Définitions
a) Algorithme
b) Cryptologie
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
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
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).
Où :
M = D(C) si C = E(M)
35
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é.
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
Ek(M) = C
Dk(C) = M.
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.
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.
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
a) L’entropie et l’incertitude
000 = dimanche
001 = lundi
010 = mardi
011 = mercredi
100 = jeudi
101 = vendredi
110 = samedi
40
Ibid., p. 27.
41
Ibid., p.247.
39
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.
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.
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.
On obtient dès lors un pourcentage oscillant entre 68% et 79% (pour l’anglais).
42
Ibid, p. 248.
43
Ibid, p. 250.
40
On définit la notion de confidentialité parfaite par le fait que le texte chiffré ne doit fournir
aucune information concernant le texte clair :
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.
Soient :
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 :
𝑷(𝑴 = 𝒙, 𝑪 = 𝒚) = 𝐏(𝐌 = 𝒙, 𝑲 = 𝒚 − 𝒙)
= 𝐏(𝐌 = 𝒙)𝑷(𝑲 = 𝒚 − 𝒙)
𝑷(𝑴 − 𝒙)
=
𝟐𝟔𝒎
45
B. SCHNEIER, op. cit., p.251-252.
42
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(𝑡 𝑓(𝑛) ), où t est une constante et f(n) est plus que constante mais moins que linéaire, sont
appelés super-polynomiaux.
Les algorithmes habituellement rencontres peuvent être classes dans les catégories
suivantes :46
Complexité Description
temps constant
46
http://www.irem.unilim.fr/fileadmin/documents/2015_01_04-Introduction_complexite_algorithmique.pdf ,
Consulté le 28 juin 2019
43
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.
2. Le secrétariat de direction ;
3. Le pool technico-commercial ;
A. Organigramme
DIRECTION DE
L’AGENCE
SECRETARIAT
SOUS-DIRECTION
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.
La division automobile
La division transport
La division incendie
La division Assurance-vie
Il est chargé de :
L’administration et du personnel ;
A. Le chef de pool
- Dossiers en suspens ;
1. Ordinateur
- CPU : 2Ghtz
- HDD : 500 Go
- OS : Windows 10
2. Imprimante
Hp Laser - 3
Source : Ce tableau est élaboré par nous-mêmes sur base de matériels disponibles à la
SONAS.
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.
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.
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.
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]
48
P. ROQUES, Les cahiers du programmeur UML2, 4eme Edition, Eyrolles, Paris, 2008, p. 10.
[53]
- se connecter ;
- Afficher la liste des ordinateurs connectés ;
- Envoyer et recevoir des messages texte ;
- Se déconnecter.
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.
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]
Figure 5-2 - Le diagramme global des cas d'utilisations associés aux acteurs
5.1.6.1. Définition
52
Ibid, p. 46.
[55]
53
Ibid, p. 46.
[58]
5.2. Implémentation
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.
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 :
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.
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
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
Chiffrement :
Mc=M xor KS
Fin Pour
Déchiffrement :
M=Mc xor KS
FinPour
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.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.
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.
''' <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
''' <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
''' <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]
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 = ""
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
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
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 que 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.
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.
Bibliographie
I. Livres
1. A. BLAC-LAPIERRE, La communication en temps réel et transmission efficace,
Editions Eyrolles, Paris, 2000.
10. J-F. PILLOU & J.-P. BAY, Tout sur la sécurité informatique, Editions Dunod, Paris,
2013.
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.
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
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.
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]
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
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
[77]