Académique Documents
Professionnel Documents
Culture Documents
Rapport de Stage-1
Rapport de Stage-1
PROVINCE DE SEFROU
PKI
Avec
1|Page
Table des matières
Table des illustrations ............................................................................................................... 4
Introduction .............................................................................................................................. 5
Historique du chiffrement ........................................................................................................ 6
Transition du cryptage symétrique vers asymétrique ........................................................... 9
Algorithme de chiffrement symétrique .................................................................................11
Cryptage asymétrique ...........................................................................................................14
Fonctionnement .....................................................................................................................15
Génération de clé ...............................................................................................................15
Chiffrement du message ....................................................................................................15
Example de génération de clé avec OpenSSL ................................................................15
Avantage du chiffrement asymétrique ............................................................................17
Inconvénient de l’Algorithme de chiffrement asymétrique ............................................17
Signature numérique : ............................................................................................................18
MD5 : ....................................................................................................................................18
SHA : .....................................................................................................................................18
Les certificats électroniques ..................................................................................................20
Fonctionnement d’une CA : ..............................................................................................24
Risques et menaces que peut confrontée les certificats : ..............................................24
Infrastructure à clés publiques...............................................................................................26
Comment PKI fonctionne ...................................................................................................26
Composante de PKI ............................................................................................................28
Type de chiffrement utilisé par PKI .....................................................................................28
Applications de PKI : ...........................................................................................................29
Hiérarchie d’une PKI : .........................................................................................................31
Défis de PKI : ........................................................................................................................32
PKI open-source : ................................................................................................................34
Phase de test : ........................................................................................................................36
Installation des paquets......................................................................................................36
JAVA .................................................................................................................................36
ANT Apache.....................................................................................................................37
2|Page
JBoss/Ejbca ......................................................................................................................38
Interface EJBCA ......................................................................................................................42
Conclusion ..............................................................................................................................72
Références : ............................................................................................................................73
3|Page
Table des illustrations
4|Page
Introduction
L'objectif de ce rapport est de présenter les étapes réalisées pour mettre en œuvre avec
succès EJBCA, une solution open-source réputée pour sa robustesse et sa flexibilité en
matière de gestion des certificats numériques. Au cours de ce stage, une exploration
approfondie des étapes d'installation, de configuration initiale et de déploiement de
l'autorité de certification sera entreprise, en mettant l'accent sur l'utilisation de la
distribution Ubuntu.
5|Page
Historique du chiffrement
De tous temps, les codes secrets ont été des outils indispensables dans les affaires
politiques, diplomatiques et militaires. Ils ont influencé le destin des peuples et des
armées.
Auparavant, envoyer un message n'était pas aussi simple qu'aujourd'hui, grâce au grand
développement des télécommunications. Les informations étaient échangées de
manière vulnérable d'une personne à une autre, ne garantissant aucune protection.
Cela mettait en danger les secrets, qu'ils soient militaires ou diplomatiques. C'est dans le
but de protéger ces informations que l'idée du chiffrement a vu le jour.
Les premiers chiffrements connus remontent à plus de 3000 ans avec les hiéroglyphes. Ils
étaient considérés comme indéchiffrables jusqu'à la découverte de la pierre de Rosette,
qui contenait le code pour décrypter les écritures des stèles. Elle présentait le même texte
écrit en trois langues : le grec, l'égyptien démotique et l'égyptien classique.
Ensuite, durant l'Antiquité, est apparue la première méthode de cryptage bien connue :
le chiffrement par transposition. L'idée consistait à utiliser un bâton autour duquel une
bande de parchemin était enroulée pour écrire le message. Seule cette bande était
envoyée au destinataire, qui devait posséder un bâton de même épaisseur pour
déchiffrer. Cette méthode consistait à changer l'ordre des lettres en fonction de la clé
partagée entre les entités.
Par la suite, le chiffrement de César est né. Son principe était de substituer chaque lettre
du message original par une autre située à une distance fixe dans l'alphabet. Cette
distance devait être connue par l'expéditeur et le destinataire. Ce chiffrement, appelé
chiffrement par décalage, permettait un maximum de 26 combinaisons.
Cette méthode de décalage fixe était facilement déchiffrable. C'est ainsi qu'a été
introduite une substitution aléatoire, associant chaque lettre de l'alphabet à une autre
lettre, regroupées généralement dans un tableau.
6|Page
Figure 1: tableau de Vigenère
Dans la même époque, le chiffrement d'Uesugi est créé, semblable à celui de Vigenère.
Il repose sur une table de conversion composée de sept lignes et colonnes, chacune
désignée par un numéro. À l'intérieur, l'alphabet japonais composé de 48 lettres.
7|Page
Figure 2: Tableau d'Uesugi
8|Page
Transition du cryptage symétrique vers asymétrique
Le principe de cet algorithme (Data Encryption Standard) repose sur la génération d’une
clé de chiffrement de 64 bits, comprenant 8 bits de parité ajoutés pour obtenir une clé
complète. Ensuite, à partir de cette clé d'origine, 16 sous-clés de 48 bits chacune sont
générées, par des opérations de permutation et de rotation. Le processus de chiffrement
commence en divisant le texte clair de 64 bits en deux blocs de 32 bits : le bloc gauche
et le bloc droit, qui subissent ensuite une permutation initiale pour réorganiser les bits selon
une table de permutation spécifique.
Le chiffrement se poursuit avec 16 rondes identiques, où chaque ronde utilise une sous-
clé différente. Dans chaque ronde, le bloc droit est étendu à 48 bits, combiné avec la
sous-clé de la ronde, puis soumis à des tables de substitution (boîtes S) qui fournissent des
substitutions spécifiques. Le résultat est combiné avec le bloc gauche de la ronde
précédente, et ce processus de combinaison, substitution, et permutation se répète pour
chaque ronde. Après les 16 rondes, les blocs gauche et droit subissent une permutation
finale pour rétablir l'ordre des bits.
Le résultat final est un texte chiffré de 64 bits, obtenu après les étapes de chiffrement. Le
même processus est utilisé pour le déchiffrement, en utilisant les sous-clés dans l'ordre
inverse.
Or, malgré son fort algorithme il fait face à des vulnérabilités comme des attaques à
force brute vu sa clé de chiffrement qui est relativement court et aussi les problèmes de
distribution de clé.
9|Page
C’est ici ou la cryptographie à clé publique dit aussi cryptage asymétrique offre enfin
une solution au problème de la distribution des clés
10 | P a g e
Algorithme de chiffrement symétrique
Il existe de nombreux algorithme de chiffrement symétrique autre que DES dont on peut
citez :
AES (Advanced Encryption Standard) : connu sous le nom de Rijndael est l'algorithme de
chiffrement symétrique le plus couramment utilisé de nos jours. Il a été choisi comme
norme de chiffrement par le gouvernement américain en 2001, et il est devenu un
standard mondial pour sécuriser les données.
La deuxième étape, ShiftRows, opère un décalage de lignes circulaire sur les octets du
bloc. Ce décalage renforce la diffusion des données en évitant la linéarité des structures
originales.
Dans la troisième étape, MixColumns, les colonnes du bloc sont mélangées par le biais
d'opérations mathématiques spécifiques à chaque octet. Cette opération complexe
contribue à la diffusion et à la confusion des données.
Enfin, l'étape AddRoundKey combine le bloc de données avec une clé de tour dérivée
de la clé principale. Ce processus d'ajout par XOR (ou exclusif) garantit que chaque tour
soit influencé par une clé différente, renforçant ainsi la sécurité.
L'ensemble de ces quatre étapes est répété plusieurs fois, en fonction de la longueur de
la clé utilisée - 128, 192 ou 256 bits. La combinaison de ces étapes non linéaires, de
substitutions, de décalages et d'ajouts de clés crée un processus de chiffrement solide
et efficace.
Il est utilisé pour des buts divers, y compris le chiffrement des communications sur Internet,
la protection des données sensibles dans les systèmes informatiques, et la sécurisation
des transactions en ligne.
3DES (Triple Data Encryption Standard) : Le Triple Data Encryption Standard (3DES) est une
version améliorée de DES qui utilise trois passes de chiffrement pour améliorer la sécurité.
1- Chiffrement DES 1 : Les données sont d'abord chiffrées à l'aide de la première clé
DES. Ce premier chiffrement ajoute une couche de sécurité en utilisant
l'algorithme DES classique.
11 | P a g e
2- Déchiffrement DES 2 : Les données chiffrées de la première étape sont ensuite
déchiffrées en utilisant une deuxième clé DES, inversant ainsi le processus du
premier chiffrement. Ce déchiffrement renforce davantage la sécurité.
Bien que 3DES soit plus robuste que DES, il est également devenu obsolète en raison de
sa complexité et de ses performances relativement faibles par rapport à AES. Il est donc
généralement déconseillé de l'utiliser dans de nouvelles applications.
12 | P a g e
Cas d’utilisation du chiffrement symétrique :
En raison de sa rapidité, le cryptage symétrique est largement utilisé pour protéger les
informations dans de nombreux systèmes informatiques modernes où la confidentialité
des données et leur intégrité sont essentielles. Il est utilisé pour sécuriser les
communications réseau entre deux entités qui partagent une clé secrète commune,
assurant ainsi que seuls les destinataires autorisés peuvent déchiffrer les messages. Il est
utilisé aussi pour protéger les données stockées sur des dispositifs de stockage tels que les
disques durs, les clés USB et les cartes mémoire, empêchant tout accès non autorisé aux
informations en cas de vol ou de perte du dispositif. Dans certains systèmes, le
chiffrement symétrique est utilisé pour chiffrer les e-mails afin d'assurer leur confidentialité
pendant leur transit. De plus, il joue un rôle essentiel dans l'authentification et la
protection d'accès, sécurisant les informations d'identification.
13 | P a g e
Cryptage asymétrique
Nommer également cryptage a clé publique, ce type de chiffrement vient pour fortifier
le chiffrement symétrique et résoudre les problèmes de gestion des clés, contrairement
au chiffrement symétrique ce type de chiffrement utilise une paire de clé : publique et
privée
Cette innovation (révolution ?) a été révélé en 1976 par Whitfield Diffie, Martin Hellman
et Ralph Merkle, elle repose sur l’idée de chiffrement par clé publique de l’expéditeur
qui est publiée dans des annuaire et déchiffrement par la clé privé unique à chaque
En pratique, pour utiliser ces algorithmes, il faut générer un couple de clés (l’une pour
chiffrer, l’autre pour déchiffrer) pour chaque utilisateur. La personne le fera elle-même à
l'aide d'algorithmes de cryptographie qui reposent sur des problèmes mathématiques
difficiles à résoudre ou quelqu’un de confiance le fera pour elle.
Ainsi la clé privée est généralement stockée de manière sécurisée sur le système
informatique où elle est utilisée. Elle peut être conservée dans des fichiers locaux avec
des permissions d'accès appropriées, garantissant ainsi que seuls les utilisateurs autorisés
peuvent la consulter. De plus, elle peut être protégée par un mot de passe. Dans certains
cas, les clés asymétriques peuvent être stockées dans des modules de sécurité matériels
(HSM1).
Toutefois, ce n’est qu’avec l’apparition de l’algorithme RSA que l’on put passer de la
théorie à la pratique.
L’appellation RSA correspond aux initiales des noms de famille des trois chercheurs
Ronald L. Rivest, Adi Shamir et Leonard M. Adleman, ce dernier peut être utiliser soit pour
le chiffrement où la signature numérique
1 HSM : Hardware Security Module est un dispositif matériel spécialisé qui sécurise et gère les clés
de chiffrement, offrant une protection renforcée pour les opérations cryptographiques sensibles
2 Annuaire : une base de données centralisée qui agit comme un référentiel de données
14 | P a g e
Fonctionnement
Génération de clé
Tout d'abord, on sélectionne deux grands nombres premiers, p et q. Ces nombres doivent
être soigneusement choisis pour un meilleur niveau de sécurité. Ensuite, on multiplie ces
nombres pour obtenir n, qui est utilisé comme le modulo pour le chiffrement et le
déchiffrement.
Chiffrement du message
Maintenant, nous avons notre clé publique, qui est représentée par la paire <e, n>. Cette
clé publique est distribuée largement et est utilisée par n'importe qui pour chiffrer des
messages destinés au détenteur de la clé privée correspondante.
Pour chiffrer un message en clair m avec la clé publique <e, n>, on applique l'opération
m^e mod n. Cela produit le texte chiffré C, qui peut être envoyé en toute sécurité sans
révéler le contenu du message d'origine.
15 | P a g e
- Extraction de clé publique à partir de la clé privée
16 | P a g e
Avantage du chiffrement asymétrique :
Malgré ses avantages, le chiffrement asymétrique est plus lent que le chiffrement
symétrique en raison de la complexité mathématique impliquée. C’est pourquoi il est
souvent utilisé en combinaison avec le chiffrement symétrique dans des méthodes de
chiffrement hybrides, pour bénéficier à la fois de la sécurité du chiffrement asymétrique
et de la rapidité du chiffrement symétrique.
- Taille des clés : Les clés asymétriques sont généralement plus longues que les clés
symétriques pour offrir un niveau équivalent de sécurité. Cela peut augmenter les
exigences en matière de stockage et de bande passante, en particulier lors de
l’échange de clés publiques.
17 | P a g e
Signature numérique :
Une signature numérique est une forme électronique équivalente à une signature
manuscrite. C'est un code unique ou une séquence de caractères qui est associé à un
document ou à un autre message électronique dans le but de garantir son authenticité
et son intégrité. Les signatures numériques reposent sur des techniques de cryptographie
pour assurer que la signature ne peut pas être altérée ou falsifiée. Le processus de
création d'une signature numérique implique l'utilisation d'une clé privée, qui est un code
secret uniquement connu du signataire, ainsi que d'une clé publique, qui est un code
largement accessible et utilisé pour vérifier la validité de la signature, et une fonction de
hachage.
La fonction de hachage est un processus à sens unique qui produit une empreinte
distinctive pour un ensemble de données. Si un seul bit du texte original est modifié, la
sortie de la fonction de hachage sera complètement différente. Cette fonction prend
en entrée des données de taille variable et génère une sortie de taille fixe, le résultat est
ensuite chiffré à l’aide de la clé privé du signataire pour créer la signature numérique
Les fonctions les plus connues sont MD5 qui crée une empreinte de 128bits et le SHA
MD5 :
Le MD5(Message Digest Algorithme 5), ou algorithme de hachage MD5, est utilisé pour
traiter l'intégralité des fichiers à travers une procédure mathématique spécifique afin de
créer une signature unique qui peut être comparée avec le fichier original. Cette
comparaison permet de vérifier que le fichier reçu n’a pas subi des changements lors de
sa transmission, garantissant ainsi que les fichiers sont correctement acheminés vers leur
destination prévue.
SHA :
SHA (Secure Hash Algorithme) est une famille d'algorithmes de hachage
cryptographique utilisés pour transformer des données en une valeur de hachage
unique. Ces valeurs de hachage servent à vérifier l'intégrité et l'authenticité des données,
garantissant qu'aucune altération n'a eu lieu. Les différentes versions de SHA, telles que
SHA-1, SHA-256 et SHA-512, offrent des tailles de hachage et des niveaux de sécurité
variables. Les versions plus récentes, comme SHA-256 et SHA-512, sont préférées pour leur
18 | P a g e
résistance aux attaques cryptographiques et sont largement utilisées dans diverses
applications de sécurité informatique.
--Pour crée une signature numérique le signataire doit initialement créer une paire de
clés. La clé privée, gardée confidentielle, demeure exclusive à l'utilisateur, tandis que la
clé publique est partagée avec ceux qui souhaitent vérifier les signatures. Cette création
de clés est souvent réalisée au moyen d'algorithmes tels que RSA ou DSA.
Une fois que les clés ont été établies, ce dernier est prêt à concevoir une signature
numérique. Il commence par générer un hachage du message qu'il a l'intention de
signer, à partir du contenu du document ou du message.
Ensuite, le signataire chiffre ce hachage avec sa clé privée pour créer la signature
numérique. Cette étape garantit que la signature est unique pour ce message
spécifique. La signature numérique ainsi créée est ensuite attachée au document ou au
message d'origine.
19 | P a g e
Les certificats électroniques :
Comme mentionné précédemment le destinataire déchiffre l’empreinte avec la clé
publique de l’émetteur, or cette clé comme elle est publique, elle peut être trouver de
manière très facile dans les annuaires ou site web. Donc on ne devient plus sur si cette
dernière appartient vraiment à l’émetteur ou non.
C’est pour cela qu’il fallait crée une entité trier pour s’assurer de la validité de cette clé,
à ce moment-là les certificats numériques ressoudent se problème en associons à
chaque clé publique une identité vérifiée par une autorité de certification de confiance.
La même chose en ce qui concerne l’identité de la personne avec laquelle on veut
établir notre connexion est-elle vraiment celle qui assume être ou on a une usurpation
d'identité, dans ce cas les certifs numériques fournissent un mécanisme
d’authentification en liant la clé publique avec une entité vérifiée
• Donc de manière générale un certificat est l’équivalent d’une carte d’identité
comme il est infalsifiable (il est crypté pour empêcher toute modification)
• Nominatif : il est délivré à une entité (comme la carte d’identité est délivrée à une
personne et une seule)
• Certifié : il y a le tampon de l’autorité qui l’a délivré.
20 | P a g e
1 - quelle sont les rôles du certificats Les details sur le certifats, cette partie peut
2 - a qui le certificat est réalisée comporter le nom de l’entité a laquelle ce
3 - par qui le certificat est réalisée dernier est attribué, l’emetteur, le numéro de
5 - période de validité serie, ca periode de validité, l’mpreinte digital,
la version, la clé publique, les politiques de
certifications(régles qui décrivent comment le
certificats peut être utilisé).
21 | P a g e
Ici une représentation plus claire de la clé Et enfin l’empreinte du certificat qui permet
publique qui va permettre de chiffrer les au client de s’assurer que le certicats est n’a
informations entre le client et le serveur pas été falsifié
Cependant, pour établir cette confiance, il est nécessaire de passer par des Autorités de
Certification (CA), des entités de confiance responsables de l'émission et de la gestion
de ces certificats. Les CA jouent le rôle de tiers de confiance, elles sont médiatrices entre
les utilisateurs, les serveurs et les systèmes informatiques. Leur mission consiste à vérifier
l’identité des entités demandant un certificat, établir des communications sécurisées et
authentiques en attribuant des certificats numériques aux entités légitimes et attestant
de la validité des informations contenues dans ces certificats. Grâce à ce processus, les
CA créent une chaîne de confiance qui permet aux utilisateurs de vérifier l'authenticité
des certificats et de sécuriser leurs communications en ligne
22 | P a g e
La chaine de confiance repressente une hiérarchie de certificats qui assure la vérification
de l'émetteur d'un certificat en se basant sur une structure de certificats imbriqués. Au
sein de cette chaîne de confiance, les certificats sont émis et signés par des autorités de
certification (AC) qui occupent des positions hiérarchiques différentes.
23 | P a g e
Fonctionnement d’une CA :
Cela commence généralement par un demandeur qui génère une paire de clés. Le
demandeur envoie ensuite sa demande de signature de certificat, le CSR3, (Certificate
Signing Request) à une autorité de certification de confiance. Le CSR contient toutes les
informations utiles sur le demandeur qui s’afficheront sur le certificat généré, si la
demande est approuvée.
- Falsification de Certificats : Les certificats peuvent être falsifiés par des individus
malveillants qui parviennent à générer des certificats frauduleux en se faisant passer
pour une autorité de certification légitime. Cela peut conduire à des attaques de
type man-in-the-middle, où les communications sont interceptées et lues sans que
les parties concernées en soient conscientes.
- Compromission des Clés Privées : Les clés privées associées aux certificats sont
sensibles et doivent être soigneusement protégées. Si une clé privée est volée ou
compromise, un attaquant peut déchiffrer les communications sécurisées ou falsifier
des certificats en utilisant cette clé.
- Autorités de Certification Non Fiables : Les autorités de certification elles-mêmes
peuvent être vulnérables aux attaques. Si une autorité de certification est
3CSR : est une requête générée par une entité ou un individu pour demander à une autorité de
certification (CA) de signer numériquement un certificat
24 | P a g e
compromise, elle pourrait émettre des certificats non valides ou malveillants, ce qui
peut entraîner la confiance indue envers des entités non dignes de confiance.
- Attaques par Force Brute : Les clés privées utilisées dans les certificats sont générées
avec une certaine longueur de bits pour résister aux attaques par force brute.
Cependant, des avancées dans la puissance de calcul peuvent rendre ces attaques
plus réalisables, surtout si des clés plus faibles sont utilisées.
- Expiration et Révocation de Certificats : Si les certificats ne sont pas correctement
gérés et renouvelés, leur expiration peut entraîner des interruptions dans les
communications sécurisées. De plus, si un certificat doit être révoqué en raison d'une
compromission, il peut être difficile de diffuser cette information efficacement.
- Attaques sur les Infrastructures de Clés Publiques (PKI) : Les infrastructures de clés
publiques centralisent les processus de certification et de gestion des certificats. Si
l'infrastructure est compromise, cela peut avoir un impact majeur sur la sécurité
globale des communications sécurisées.
Ces vulnérabilités soulignent la nécessité de mettre en place des mesures robustes pour
garantir l'authenticité et la sécurité des certificats numériques. C'est ici qu'intervient la
création d'une infrastructure à clés publiques (PKI). La PKI offre une approche systémique
et sécurisée pour relever ces défis.
25 | P a g e
Infrastructure à clés publiques
La PKI (public key infrastructure) est un cadre fondamental qui permet aux utilisateurs et
aux serveurs d'échanger des informations de manière sécurisée au moyen de certificats
numériques. Elle implique un ensemble de composants, comprenant le matériel, le
logiciel, les politiques et les procédures, nécessaires pour crypter les données et
authentifier les certificats. Cette infrastructure repose sur un système de cryptographie
asymétrique à deux clés, comprenant une clé publique et une clé privée. La clé
publique est utilisée pour chiffrer les données et permettre leur vérification par d'autres
entités, tandis que la clé privée est conservée en toute sécurité par l'utilisateur et sert à
déchiffrer les données et à les signer numériquement. La PKI joue un rôle crucial dans des
activités telles que le commerce électronique, les services bancaires en ligne et les
communications confidentielles en fournissant un moyen fiable d'assurer la
confidentialité, l'intégrité et l'authenticité des données échangées sur les réseaux.
Pour sécuriser la communication, les parties utilisent leurs clés privées pour échanger des
clés de session temporaires, utilisées pour chiffrer et déchiffrer les données échangées
pendant la session. Les certificats ont une période de validité et doivent être renouvelés
avant leur expiration. En cas de perte de la clé privée ou d'autres raisons, un certificat
26 | P a g e
peut être révoqué et cette information est enregistrée dans des listes de révocation ou
des bases de données OCSP4.
4OCSP : Online Certificate Status Protocol, est un protocole de vérification en ligne de l'état des
certificats numériques. Il offre une méthode pour vérifier si un certificat numérique spécifique est
toujours valide et n'a pas été révoqué avant son expiration prévue.
27 | P a g e
Composante de PKI
Les éléments clés d'une infrastructure à clé publique (PKI) typique sont les suivants :
- Base de données de Certificats : Cette base de données stocke des informations sur les
certificats émis. En plus du certificat lui-même, la base de données inclut la période de
validité et le statut de chaque certificat PKI. La révocation des certificats est effectuée
en mettant à jour cette base de données, qui doit être consultée pour authentifier les
données signées numériquement ou chiffrées avec la clé secrète du détenteur du
certificat.
- Serveur d'Archivage de Clés : Ce serveur enregistre les clés privées chiffrées dans une
base de données de certificats. Il est généralement utilisé à des fins de récupération en
cas de sinistre, en tant que sauvegarde en cas de perte ou endommagement de la base
de données de certificats d'origine.
28 | P a g e
Applications de PKI :
La cryptographie à clé publique est à la base des protocoles SSL (Secure Sockets
Layer) et TLS (Transport Layer Security) qui sont les fondements des connexions sécurisées
des navigateurs Web en HTTPS. Les certificats SSL/TLS cryptent les communications
Internet et garantissent une connexion client-serveur de confiance.
En plus d'être utilisées pour chiffrer des messages, les paires de clés peuvent être
utilisées pour les signatures numériques et la signature de documents. La PKI utilise la clé
privée de l'expéditeur pour vérifier son identité numérique. Cette vérification
cryptographique lie mathématiquement la signature au message original pour garantir
qu'il n'a pas été altéré.
Signature de Code
Les certificats S/MIME valident les expéditeurs d'e-mails et chiffrent le contenu des
e-mails pour se protéger contre des attaques d'ingénierie sociale et de spear-phishing.
En chiffrant/déchiffrant les messages et les pièces jointes d'e-mails et en vérifiant
l'identité, les certificats S/MIME assurent aux utilisateurs que les e-mails sont authentiques
et non modifiés.
Clés SSH
Les clés SSH sont une forme de certificat X.509 qui fournit une référence d'accès
sécurisée utilisée dans le protocole Secure Shell (SSH). Le protocole SSH est largement
utilisé pour la communication dans les services cloud, les environnements réseau, les
outils de transfert de fichiers et les outils de gestion de la configuration.
29 | P a g e
Les clés SSH authentifient l'identité et protègent ces services contre une utilisation
non intentionnelle ou des attaques malveillantes.
Identités Numériques
5 Zero trust: La stratégie Zero Trust est une approche de sécurité qui suppose qu'aucun utilisateur
ou appareil, qu'il soit interne ou externe, ne doit être automatiquement considéré comme digne
de confiance. Elle exige des vérifications constantes de l'identité et de l'accès, renforçant ainsi
la sécurité des réseaux et des données.
30 | P a g e
Hiérarchie d’une PKI :
La hiérarchie d'une PKI ressemble à une similaire à une pyramide inversée. Au sommet se
trouve l'Autorité de Certification Racine (Root CA), qui agit comme la source de
confiance ultime. Cette autorité génère un certificat racine auto-signé, dont la clé
privée est hautement sécurisée. Ce certificat est ensuite utilisé pour signer les certificats
des Autorités de Certification Intermédiaires (Intermediate CAs).
Dans la couche la plus basse de la hiérarchie se trouvent les certificats d'entité finale, tels
que les certificats de serveurs, d'utilisateurs et de dispositifs. Ces certificats sont émis et
signés par les Autorités de Certification Intermédiaires. Chaque certificat d'entité finale
contient une clé publique, des informations d'identité et une signature numérique qui
garantit son authenticité.
La hiérarchie PKI est construite de manière à établir une chaîne de confiance. Lorsqu'un
utilisateur ou une application souhaite vérifier un certificat, il peut remonter la chaîne en
31 | P a g e
vérifiant les signatures numériques à chaque niveau. Cette vérification permet de
s'assurer que chaque certificat est valide et a été émis par une autorité de confiance.
Défis de PKI :
Parmi les vulnérabilités et défis associés à l'infrastructure à clé publique on trouve :
- Assurance de l'Utilisation des Clés : Il n'existe pas de moyen infaillible pour garantir que
l'entité utilisant une clé privée est effectivement le titulaire légitime du certificat, suscitant
des préoccupations concernant l'usurpation d'identité.
- Protection de la Clé Privée : La sécurité de la clé privée est une préoccupation majeure,
car elle est souvent stockée sur des ordinateurs classiques vulnérables aux attaques, telles
que les logiciels malveillants ou le vol physique.
- Identité du Titulaire du Certificat : Les certificats associent des clés publiques à des noms,
mais la vérification de ces identités peut être délicate en raison des noms communs et
des différences dans les bases de données des CA.
32 | P a g e
- Objectif du Processus de la CA : Les motifs de l'utilisation de la PKI sont parfois peu clairs.
La PKI peut être adoptée sans une compréhension approfondie de ses implications et
de ses limites en matière de sécurité.
33 | P a g e
PKI open-source :
Les solutions PKI open source offrent une alternative flexible aux solutions commerciales,
permettant aux organisations de déployer des systèmes de gestion de certificats sans
dépendre de solutions propriétaires coûteuses.
Dans ce tableau comparatif, nous passons en revue quelques exemples notables de PKI
open source et examinons leurs points forts et faibles du point de vue technique. Chaque
solution présente des caractéristiques uniques qui peuvent répondre à divers besoins
EJBCA Entreprise - Basé sur Java, adapté aux - Exige des ressources
déploiements de niveau importantes, nécessite des
entreprise ressources système
- Peut être utilisé en tant conséquentes
que service ou pour une - La configuration initiale
utilisation interne peut être complexe
- Mise en œuvre complète
d'une CA
OpenSSL - Adopté à grande échelle, -Ne constitue pas une
inclus dans les principales solution PKI complète,
distributions Linux nécessite un
- Boîte à outils polyvalente développement
pour l'activation de PKI et supplémentaire pour une
la mise en place simple mise en œuvre complète
d'une CA - Le développement en
- De qualité commerciale langage C peut être
complexe
CFSSL - Développé par - Focalisation spécialisée
Cloudflare, spécialisé dans sur les certificats TLS, peut
la gestion des certificats TLS ne pas couvrir les besoins
- Prend en charge la PKI plus larges
signature, la vérification et - Peut nécessiter une
le regroupement des intégration supplémentaire
certificats TLS pour un déploiement PKI
- Adapté aux outils PKI TLS complet
personnalisés
XiPKI - CA et répondeur OCSP - Environnement de
basés sur Java, développement basé sur
performants et évolutifs Java peut nécessiter une
34 | P a g e
- Prend en charge courbe d'apprentissage
l'algorithme SHA-3 plus raide
- Moins connu que
certaines autres solutions
PKI
Dogtag Certificates System - Solution de classe - Forte association avec les
entreprise prenant en systèmes Red Hat,
charge la gestion potentiellement moins
complète du cycle de vie adaptable aux
des certificats environnements non-Red
- Adapté aux besoins Hat
complets en CA - La documentation peut
être limitée en dehors de
l'écosystème Red Hat
35 | P a g e
Phase de test :
Lors de cette phase on va exploiter VMware pour installer une PKI open source, dans
notre cas on va installer EJBCA dans un environnement linux basé sur Ubuntu.
36 | P a g e
On rajout le chemin de notre paquet dans JAVA-HOME Path pourque Ubuntu
reconnaître et utiliser cette version particulière du JDK
ANT Apache
Ensuite on installe la version de Ant compatible qui est apache-ant- 1.9.16-bin
Depuis le site officiel d’Apache on télécharge la version d’Ant qu’on entracte, puis on
rajout le chemin de notre paquet à celui de java
37 | P a g e
On vérifie la version de Ant
JBoss/Ejbca
Après le téléchargement et extraction des paquets dans répertoire Downloads
On copie le chemin de Ejbca du ficher sample (modèle) vers le fichier properties qui
représente le fichier de configuration que Ubuntu va utiliser pour l’installation de cette
dernier
Puis on indique a Ejbca ou se trouve le serveur d’application JBoss pour pouvoir accéder
au ressources
38 | P a g e
On se rend au terminal de Ejbca et on execute ant bootstrap qui a comme objectif est
de préparer l'environnement de construction de manière à ce que les autres
commandes de construction (comme "ant deploy”) puissent être exécutées avec
succès
Puis on exécute ant install pour effectuer l'installation initiale de l'autorité de certification,
ce qui engendre la génération des certificats, clés nécessaires, la configuration du TLS
dans le conteneur de servlet, ainsi que la création d'éléments dans la base de données
tels que l'autorité de certification, les profils de certificat et les utilisateurs.
39 | P a g e
Puis ant deploy, cela compilera et construira EJBCA, le déploiera sur JBoss, tout en créant
automatiquement des sources de données
40 | P a g e
41 | P a g e
Interface EJBCA
Une fois l’installation est terminée et JBoss est démarré on arrière-plan on peut accéder
à notre interface EJBCA
6 PKCS#12 :
42 | P a g e
On saisit ensuite la clé établie pour le superAdmin lors de l’installation
43 | P a g e
Notre certificat est importé dans notre navigateur
44 | P a g e
Une fois le certificat est accepté par notre site on a accès a notre interface
Notre 1ére manœuvre consiste dans la création d’une hiérarchie de PKI a trois niveaux :
ROOT, SUB et END ENTITY
45 | P a g e
On spécifie que se profile correspond à une root CA dont les clés de ce certificat de
l'autorité vont être générées avec l’algorithme DSA dont la longueur de la clé est de 256
bits, sa durée de validité est de 30 ans qu’on peut incrémenter avec l’option allow valifity
override qui peut être demandée à partir de la demande de certificat.
Dans la section x.509v3 extansions qui a comme but d’ajouter des fonctionnalités
supplémentaires au certificat on a activé basic constraints qui définit si le certificat est
un CA ou un certificat de fin d’entité et s’il peut être utilisé pour la signature des CRL
- key usage : cette extension spécifie les utilisations de clés autorisée pour le certificat
dans notre cas on a spécifiée digital signature, key certificate sign et CRL sign
- Subject alternative Name : on a permis d’ajouter des noms alternatifs au certificat,
comme une adresse IP ou des noms de domaine supplémentaire
- CRL Distribution Points : spécifie les emplacements ou les listes de révocation des
certificats peuvent être obtenues dans notre cas on peut les trouver dans :
http://localhost:8080/ejbca/publicweb/webdist/certdist?cmd=crl&issuer=CN=Root
CA,C=SProvince
Après on garde les autres cases dans leur état de défaut et on sauvegarde notre ROOT
CA
46 | P a g e
47 | P a g e
De même pour la création du profile SUB CA, on spécifie premièrement son type et
l’algorithme utilisé avec la longueur de clé spécifié, on a fixé sa validité sur 25 ans,
comme il s’agit d’une sub ca l’algorithme de signature va être hérité depuis le certificat
root.
48 | P a g e
49 | P a g e
50 | P a g e
51 | P a g e
Puis pour gérer et stocker les paires de clés de nos certificats on se rend à CryptoToken.
Note 1er token est dédiée pour Root CA ou on a généré trois clés : encryptKey, signKey,
testKey basé sur l’algorithme DSA et 1024bits de longueur
52 | P a g e
Le 2éme est pour le SUB CA :
53 | P a g e
Puis on crée nos autorités de certificats
54 | P a g e
On spécifie le crypto token a utilisée dans chaque cas, vu qu’il s’agit de l’autorité de
certification racine nous utiliserons le ROOToken.
- defaultkey : Cette clé est utilisée quand on ne choisit pas de clé spécifique. On en a
besoin dans différents cas où on n'a pas de but précis
- CertSignKey : c’est une clé de signature pour les certificats quand on les crée, elle signe
les informations importantes dans les certificats tel que la clé publique.
- keyEncryptKey : Elle est utilisée pour déchiffrer des clés spéciale si quelqu’un a perdu
sa clé privée
55 | P a g e
- hardTokenEncryp : Elle fait référence à des fonctionnalités liées au chiffrement de
données sur des jetons matériels.
- testkey : Elle est utilisée pour des vérifications rapides pour être sûr que le système
marche comme il faut.
- Enforce unique public keys : garantit que deux personnes différentes ne peuvent pas
utiliser la même clé publique pour obtenir des certificats. Cela empêche toute
confusion et assure que chaque personne a une clé qui lui est propre
- Enforce unique DN : utilisateur peut avoir plusieurs certificats avec le même DN tant
que le même 'nom d'utilisateur' est utilisé
56 | P a g e
- Default CRL Dist. Point : indiquent où trouver les listes de révocation de certificats
associées aux certificats numériques, ce qui permet aux utilisateurs de vérifier la
validité des certificats en vérifiant s'ils ont été révoqués par l'autorité de certification.
57 | P a g e
On crée ensuite le certificat du SUB CA
58 | P a g e
De même on utilise le token adéquat qui est SUBtoken
59 | P a g e
La période de validité est de 2 ans
60 | P a g e
Notre certificat est comme suit :
61 | P a g e
Pour finalisée notre hiérarchie a trois niveaux on crée noter End Entity certificat
62 | P a g e
63 | P a g e
On a spécifié que notre clé va être utiliser pour authentification du client et code signing
qu’on a présenté son principe précédemment
64 | P a g e
Le certificat de notre profile est crée
65 | P a g e
Dans end entity profile on crée notre entité finale
66 | P a g e
67 | P a g e
On spécifie le nom de l’entité et le mot de passe qui va utiliser lors de la demande des
certificats
68 | P a g e
Comme application on réalise un code signe sur mycode.sh qui contient un code
exécutable
69 | P a g e
Puis a l’aide de l’outil openSSL on signe notre document
Pour mettre on ouvre l’objectif des signatures numériques on effectue des changements
sur le fichier
70 | P a g e
Et on revérifie notre signature
On remarque qu’on a reçu un message d’erreur donc le fichier original a été altéré.
71 | P a g e
Conclusion
L'installation de EJBCA sur la distribution Ubuntu a été une tâche bien guidée par notre
encadrant. Nous avons abordé des sujets tels que la configuration des profils de
certificats, la création de hiérarchies PKI, la gestion des clés privées et publiques, ainsi
que la génération et la vérification de signatures numériques. Nous avons également
exploré les multiples fonctionnalités de EJBCA, telles que la gestion des certificats de bout
en bout, la personnalisation des profils de certificat et l'exploitation des Crypto Tokens
pour sécuriser les clés.
En mettant en œuvre cette solution de sécurité robuste, nous avons pu approfondir notre
compréhension des pratiques de sécurité dans le monde numérique moderne. La mise
en place d'une Autorité de Certification bien configurée dans un environnement Ubuntu
a permis de démontrer l'importance de la gestion des certificats et de la cryptographie
pour garantir la confidentialité, l'intégrité et l'authenticité des communications en ligne.
72 | P a g e
Références :
https://www.schneier.com/wp-content/uploads/2016/02/paper-pki.pdf
https://www.sectigo.com/resource-library/what-is-pki-public-key-infrastructure
https://www.keyfactor.com/education-center/what-is-pki/
https://www.securiteinfo.com/cryptographie/pki.shtml
https://www.techtarget.com/searchsecurity/definition/PKI
https://www.okta.com/identity-101/public-key-infrastructure/
https://venafi.com/machine-identity-basics/what-is-pki-and-how-does-it-work/#item-17
https://www.tevora.com/blog/3-steps-implementing-public-key-infrastructure-pki-
architecture/
https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html
https://www.youtube.com/watch?v=X_gRJs1aTdY&t=311s
https://ant.apache.org/srcdownload.cgi?Preferred=https%3A%2F%2Fdlcdn.apache.org
%2F
https://www.youtube.com/watch?v=oapua8OCtjQ&t=10s
https://jbossas.jboss.org/downloads
https://sourceforge.net/projects/ejbca/files/ejbca6/ejbca_6_5_0/
73 | P a g e