Ce projet est réalisé par Akram JAOUADI et Sana Zakraoui.
Parallèlement à l’évolution des réseaux informatiques, les risques de piratages s’accentuent. Ainsi, s’est senti, le besoin de développer des systèmes de sécurité de plus en plus performants.
En effet, la sécurité de tout système d’information s'avère l’objet d’une attention particulière de la part des entreprises tout en essayant de garantir la confidentialité et l'intégrité des données, la non répudiation, l'authentification et le contrôle d'accès.
La cryptographie est considérée l’une des solutions garantissant la sécurité des transactions à savoir l’achat et la vente, la conclusion de contrat, l’échange d'informations confidentielles, la conduite de projet, l’établissement d’actes juridiques, l’échange de transactions bancaires, l’utilisation de procédures administratives, le règlement d’obligations fiscales, etc.
Pour se faire, cette technique a recours à des méthodes à noter la cryptographie symétrique qui repose sur la notion d’échange de clé secrète. Cette dernière doit être de même sécurisée afin de protéger les données échangées.
C’est dans ce cadre que s’inscrit notre projet de fin d'études, intitulé « Développement d’une solution d’échange de clés symétriques », dont l’objet est de créer une application permettant à un utilisateur de crypter et décrypter des données, de vérifier l’état du certificat électronique et de sécuriser la clé symétrique lors de son échange en lui appliquant une méthode de chiffrement asymétrique.
Au terme du travail ci présent, on aura trois chapitres à mettre en œuvre. Nous entamerons le travail par un premier chapitre d’étude théorique permettant de présenter les notions de base qu’on introduira lors de la suite du rapport. Un deuxième chapitre sera consacré pour la spécification des besoins du projet y compris les besoins fonctionnels et ceux non fonctionnels ainsi que pour la conception de l’application contenant les différents diagrammes représentés par la méthode UML. Un troisième chapitre contient la phase de réalisation de notre projet. Ce chapitre expose les différentes interfaces de l’application accompagnées d’une description précise. Enfin, une conclusion récapitule notre travail et présente les connaissances acquises suite à ce projet de fin d’études.
CHAPITRE 1 : Etude Théorique
1.1. Introduction
Afin de lutter contre les attaques passives, consistant à prendre frauduleusement connaissance des données transmises ou stockées, et contre les attaques actives, qui visent à modifier leur origine ou leur contenu, la cryptographie s'avère le moyen le plus utile permettant d'assurer les services de sécurité.
Dans ce cadre, ce premier chapitre se divise en deux parties. La première est consacrée aux notions de la cryptographie, ses caractéristiques et ses modes. La seconde définit et présente la PKI (Public Key Infrastructure).
1.2. Définitions :
1.2.1 Les services de sécurité :
La sécurité est un processus visant à prévoir les attaques qui peuvent causer des pertes ou des dommages dans le système d’information, en faisant appel à des mécanismes de sécurité pour assurer un certain nombre de services. [1]
Les services de sécurité sont définis au niveau des recommandations de l’ITU-T (X.800, Security Architecture for OSI) qui les regroupent en cinq catégories :
- Authentification : c’est le processus de validation de l’identité d’une personne.
- Contrôle d’accès : c’est le processus qui permet de surveiller et d’empêcher l’utilisation non autorisée d’une ressource et de garantir que l’information n’est accessible que par ceux qui en ont le droit.
- Confidentialité : c’est le processus qui assure la protection des données transmises contre les attaques passives et des flux de données contre l’analyse.
- Intégrité : c’est le processus qui permet de détecter si les données ont été modifiées au cours de leur transfert depuis la source vers la destination.
- Non répudiation : c’est le processus qui empêche la source et la destination de nier avoir transmis ou reçu un message. [2]
1.2.2 Cryptographie :
La cryptographie est l'étude des principes, méthodes et techniques mathématiques reliées aux aspects de sécurité de l'information.
La cryptographie permet le stockage des informations sensibles ou leur transmission à travers des réseaux non sûrs (comme Internet) de telle sorte qu'elles ne peuvent être lues par personne à l'exception du destinataire convenu. [3]
1.2.3 La cryptanalyse:
La cryptanalyse étudie la sécurité des procédés de chiffrement utilisés en cryptographie. Elle consiste à casser des fonctions cryptographiques existantes, c'est-à-dire à démontrer leur sécurité.
La cryptanalyse mêle une intéressante combinaison de raisonnement analytique, d'application d'outils mathématiques, de découverte de redondances, de patience, de détermination, et de chance. [4]
1.2.4 Le cryptographe:
Le cryptographe fournit des outils pour éliminer les risques, afin de rendre les échanges d'information confidentiels, infalsifiables, authentiques et inaltérables. L'information est chaque jour échangée d'un point à un autre et se trouve susceptible d'être lue, copiée, supprimée, altérée ou falsifiée. [5]
1.2.5 Le cryptosystème:
Il est constitué d'un algorithme cryptographique ainsi que toutes les clés possibles et tous les protocoles qui le font fonctionner. [6]
1.3. Les caractéristiques d'un cryptosystème:
1.3.1 Notion de clé:
Une clé est une donnée utilisée par un traitement cryptographique et donne le moyen de chiffrer ou déchiffrer, de sceller ou de signer une autre donnée que l'on souhaite protéger ou authentifier.
Une clé est représentée, comme toute donnée informatique, par une suite de 0 et de 1. La valeur d'une clé peut représenter soit une suite aléatoire de bits qui n'ont globalement aucune signification mathématique ou logique, soit un nombre choisi ou encore un ensemble de nombres qui possèdent une ou des propriétés mathématiques spécifiques.[7]
La longueur d'une clé est donc le nombre de bits significatifs qui définissent sa valeur. Cette longueur peut aller de quelques dizaines de bits à quelques milliers de bits, elle dépend essentiellement de l'algorithme qui l'emploie et de l'usage à laquelle on la destine.
La longueur d'une clé et son niveau de sécurité sont essentiellement dépendants de l'algorithme. Il existe deux grandes familles d'algorithmes :
- les algorithmes à clés symétriques ou à clés secrètes qui exigent l'emploi de la même clé pour chiffrer et déchiffrer un message.
- les algorithmes à clés asymétriques ou clés publiques qui utilisent une clé dite publique pour chiffrer et une clé dite privée pour déchiffrer. [8]
1.3.2 Chiffrement symétrique ou à clef secrète :
Dans la cryptographie conventionnelle, les clefs de chiffrement et de déchiffrement sont identiques : c'est la clef secrète, qui doit être connue des tiers communiquant et d'eux seuls. Le procédé de chiffrement est dit symétrique.
On distingue les algorithmes de chiffrement en continu, qui agissent sur le texte en clair un bit à la fois et les algorithmes de chiffrement par blocs, qui opèrent sur le texte en clair par groupes de bits appelés blocs. [9]