Académique Documents
Professionnel Documents
Culture Documents
1
Chapitre 1
La Cryptologie
1. Introduction générale :
Des traces d'écritures secrètes se rencontrent dans l'étude de toutes les civilisations, même
les plus reculées, ce qui nous enseigne que la discipline qui en traite, la Cryptologie, a eu à
toutes les époques des adeptes plus ou moins géniaux.
En effet, c'est au troisième millénaire avant J.C. que naquirent, à peu près, en même temps
que les différentes civilisations chinoises, égyptiennes, phéniciennes, sumériennes - des
écritures symboliques, alphabétiques ou hiéroglyphiques. Ces écritures permettaient à ceux
qui en étaient initiés d'emmagasiner leurs connaissances et de correspondre.
Par la suite, la disposition naturelle des hommes à espionner les paroles ou les écrits de leurs
semblables, imposa l'usage de moyens divers destinés à en assurer le secret.
- les écritures dissimulées qui camouflent le secret dans des textes anodins.
2
Dès l’antiquité, PLUTARQUE (écrivain grec 360-390 avant J.C) nous a signalé dans la vie
de LYSANDRE (général spartiate 39 av. J.C) des documents concernant l’utilisation d’un
moyen de chiffrement : la scytale des LECEDEMONIENS ;
(a b c d e f g h i j k l m n o p q r s t u v w x y z)
(G H I J K L M N O P Q R S T U V W X Y Z A B C D E F )
2. La Cryptologie :
2.1 Définition :
La cryptologie est une science pure, qui émet les idées et les principes qui servent de base à la
technique du Chiffre. Elle a pour objet de concevoir et d’analyser avec des outils
mathématiques, les mécanismes permettant d’assurer des services de sécurité : l’authentification,
l’intégrité, la confidentialité et la non répudiation des données ainsi que la signature
électronique.
La cryptologie regroupe :
- la cryptographie
- et, la cryptanalyse
3
La cryptographie est une science appliquée, qui date, comme nous l’avons rappelé plus haut, de
l’antiquité ; elle provient des mots grecs (Kruptos = caché et graphein = écrit écriture
cachée, secrète). Alors que la Cryptographie protège le secret des données, la Cryptanalyse (ou
le Décryptement ou l’Analyse cryptographique) cherche à en percer le secret.
2.2.1 Le Chiffre :
C’est l’ensemble des moyens et prestations de cryptologie qui permettent de transformer, à
l’aide de codes secrets, des informations claires en informations inintelligibles à toute personne
non qualifiée pour les connaître, ou à réaliser l’opération inverse grâce à des moyens matériels
ou logiciels conçus à cet effet. Le Chiffre revêt deux aspects : défensif et offensif
2.2.2 Chiffrer :
C’est transformer une information claire (appelé libellé ou texte claire, message claire…etc.)
en une information chiffrée (appelé texte chiffré, message chiffré, cryptogramme y compris les
en-têtes et les signatures …. Etc.), inintelligible à toute personne non autorisée)
4
Dans le schéma ci-dessus, on retiendra ce qui suit :
5
Stream Cipher).
2.2.5.1 Les algorithmes de chiffrement non symétriques (Asymétriques)
ou à clefs publiques (Algorithmes de chiffrement utilisant deux
clefs : l’une étant publiée (dans un annuaire par exemple) et
l’autre étant privée ou secrète (elle n’est jamais transmise)
2.2.5.2 Les algorithmes hybrides (mélanges des deux précédents)
6
Avantages et Inconvénients de la cryptographie à clé secrète :
7
4. Cryptographie Asymétrique ou à clés publiques :
Jusque-là, tous les systèmes proposés avaient leur talon d'Achille : ils avaient une clé secrète
(identique pour les correspondants) dont la distribution devient vite critique suivant
l’importance du nombre de correspondants. De ce constat, deux chercheurs américains,
Whitfield Diffie et Martin Hellman proposèrent une autre approche dans la conception et
l'utilisation des clés (Diffie-Hellman Key Exchange) : au lieu d'utiliser une clé connue de
l'expéditeur et du destinataire, il serait plus intéressant d'utiliser une clé publique, disponible
dans un annuaire public (sur Internet par exemple), et une clé privée, connue du seul
destinataire, qui lui permet de déchiffrer ses messages.
Alice et Bob choisissent (p) très grand ; ils choisissent aussi un générateur (a) avec
a p.
Ils publient (a) et (p).
Alice génère une valeur privée aléatoire (KA) avec 0 ≺ KA ≺p-1
Bob génère une valeur privée aléatoire (KB) avec 0 ≺ KB ≺p-1
Ils calculent alors respectivement leurs clefs publiques en utilisant les paramètres
(a) et (p) et leurs valeurs privées (KA) et (KB)
Clef publique d’Alice : EA = aKA (p)
Clef publique de Bob : EB = aKB (p)
Ils échangent leurs clefs publiques (EA, EB).
8
Alice calcule sa clef secrète comme suit : KAB = EBKA(p)=(aKB)KA(p)
Et bob calcule aussi sa clef secrète : KBA = EAKB (p)=(aKA)KB(p)
Alice et Bob ont la même clefs secrète (K) pour protéger leurs informations : K=KAB=KBA
La remarque qu’on peut tirer ici est le système Diffie-Hellman est en fait un protocole
d’échange de clefs secrètes, le premier qui est basé sur le logarithme discret.
C’est qu’en 1979 naquit le système de Chiffrement à clés publiques RSA, au Weizmann
Institute en Israël, du nom de ses inventeurs (Ronald Rivest, Adi Shamir et Leonard
Adleman), précurseur de la cryptologie non symétrique, encore appelée cryptologie à clés
publiques, qui marque ainsi véritablement la naissance de la cryptologie moderne. Les
mécanismes de la cryptologie non symétrique reposent sur l'utilisation de fonctions
mathématiques dites à sens unique, que l’on ne sait pas inverser efficacement d’un point de
vue algorithmique.
Le RSA a ensuite été popularisé par le PGP (Pretty Good Privacy = Plutôt bonne intimité), un
programme conçu, en 1984, par le mathématicien- informaticien Philip Zimmermann pour la
protection du courrier électronique.
• mais la factorisation d'un nombre en ses deux facteurs premiers est beaucoup plus
complexe.
C’est le Crypto Système le plus répandu ; Il emploie de grands nombres entiers (par
exemple représentés sur 1024 bits).
Son principe repose sur une paire de clés, l’une publique et une privée, calculée comme
suit :
Rappel : φ (n) est la fonction d'Euler (nombre d'entiers positifs < n et premiers à n) :
9
- Si n=p * q (avec p et q premiers) : φ (n)= φ(p) φ (q) = (p-1) (q-1)
ii. Calcul de leur produit n = p * q. Selon le niveau de sécurité souhaité, la taille de n
peut varier : 512, 768, 1024 ou 2048 bits.
iii. Détermination d'un nombre (e) tel que :
3<e<(p-1) (q-1) et e^(p-1) (q-1)
iv. Calcul d'un nombre (d) tel que :
ed = 1[(p-1) (q-1)] <==> ed = 1 [φ(n)]
v. En posant (n et e étant publiques et p, q et d étant secrètes) la clé publique
Pk=(e,n) et la clé secrète Sk =(d,n). On peut déduire une équation de chiffrement
et de déchiffrement.
Ainsi pour garantir une bonne sûreté cryptologique, il faut respecter les règles suivantes :
- Le Crypto système de Tahar El GAMAL Basé sur les logarithmes discrets ; il est
utilisé pour assurer la confidentialité et la signature numérique ; sa sécurité repose sur la
difficulté de calculer les logarithmes discrets ;
- Les Crypto systèmes de Robert Mc ELIECE et de NIEDERREITER basés sur les
Codes Correcteurs ;
10
- Les Crypto systèmes basés sur les courbes Elliptiques ; l'utilisation des courbes
elliptiques, pour réaliser des crypto systèmes, a été proposée par KOBLITZ et
MILLER en 1985 ;
Plusieurs autres algorithmes de chiffrement à clés publiques ont été proposés et
décryptés.
5. Cryptographie hybride :
11
Le mécanisme DEM (Data Encapsulation Mechanism ou Mécanisme d’Encapsulation de
Données assure la confidentialité des messages (sécurité sémantique contre les attaques
adaptatives à textes chiffrés choisis)
Le mécanisme KEM (Key Encapsulation Mechanism ou Mécanisme d’Encapsulation de
clés) est un mécanisme qui prend en entrée, du côté de l’expéditeur, une clé publique,
produit à la sortie une clés secrète et une encapsulation de cette clé, à l’usage du
destinataire qui dispose de la clé privée correspondante à la clé publique.
Pour les très longs messages la plus grande partie du travail dans le chiffrement / déchiffrement
se fait par le système clé symétrique qui est plus efficace, alors que le système à clé publique est
uniquement utilisé pour le chiffrement / le déchiffrement et le transport d’une courte valeur de
clé.
Par exemple pour chiffrer un message adressé à Alice dans un système de chiffrement hybride,
Bob fait ce qui suit :
Il génère une Clé.
Symétrique (K) pour le système d'encapsulation de données, et la chiffre avec la clé
publique d’Alice ;
Il Chiffre ensuite le message clair (x) dans le cadre du système d'encapsulation de
données, en utilisant la clé symétrique qu’il a générée.
Envoie ces deux cryptogrammes à Alice.
A la réception des deux textes chiffres, Alice effectue les opérations suivantes :
Elle récupère la clé symétrique (K) en déchiffrant le premier texte chiffré à l’aide de
sa clé privée ;
Elle récupère le message clair (x) en déchiffrant le deuxième texte chiffré à l’aide de
(K) ;
La figure.I.3 montre le fonctionnement de chiffrement hybride.
12
Chapitre 2
Les services de sécurité cryptographique
La cryptographie moderne met à la disposition des concepteurs de systèmes d’information des
outils permettant d’assurer, ou de contribuer à assurer, des fonctions de sécurité telles que la
confidentialité, l’intégrité, l’authenticité et la non-répudiation.
1. L’intégrité :
C’est un service cryptographique qui permet de s’assurer que l’information n’a été ni altérée ni
modifiée, par des personnes non autorisées, pendant sa transmission ou son stockage.
2. L’authentification :
3. La Confidentialité :
C’est un service cryptographique qui permet d’assurer le secret des informations afin qu’elles ne
soient ni rendues accessibles, ni divulguées à un utilisateur, une entité ou un processus non
autorisé.
4. La non répudiation :
5. La signature électronique :
13
Part II
14
Chapitre 1
1. Principe général :
Le principe de fonctionnement des infrastructures de gestion de clés repose
essentiellement sur les services précédemment cités.
Les services que l’infrastructure PKI fournit doivent obligatoirement être précédés d’une mise
en place d’une entité capable d’effectuer la gestion des différents certificats. Ces services se
basent sur des composants tels que nous avons vu préalablement.
15
2. Eléments d’une infrastructure PKI
Une infrastructure à clés publiques PKI est un ensemble de technologies, organisations,
procédures et pratiques qui supportent l'implémentation et l'exploitation des certificats basés sur
la cryptographie à clés publiques. La PKI est une structure à la fois technique et administrative
qui a pour but d'établir la confiance dans les échanges entre des entités morales, physiques et/ou
logiques. Ainsi elle assure la création et la distribution des certificats.
Techniquement la PKI est un système de gestion des clés publiques qui permet de gérer des
listes importantes de clés publiques et d’en assurer la fiabilité pour des entités, généralement
dans un réseau. Elle offre un cadre global permettant d’installer des éléments de sécurité tels que
la confidentialité, l’authentification, l’intégrité et la non-répudiation tant au sein de l’entreprise
que lors de l’échange d’information avec les différentes entités.
Architecture PKI
En synthèse, nous avons représenté sur le schéma suivant les briques fonctionnelles présentes
dans une architecture PKI offrant un service très complet, ainsi que les interactions entre la PKI
et les utilisateurs.
2.2.1 L’archivage est un service qui permet le stockage des paires de clés pour une
restitution en cas de perte de la clé privée. En effet, il a pour mission de stocker en toute sécurité
les clés de chiffrement émis au sein de l’infrastructure.
2.2.2 La publication est un service qui répertorie les différents certificats à clés publiques émis
par la CA afin de les rendre disponibles aux éventuels futurs utilisateurs, c’est pourquoi on se
17
réfère communément à lui par le terme de dépôt. Ainsi, un annuaire peut être utilisé (LDAP ou
X500 par exemple), un serveur Web ou encore un outil de messagerie, etc.
Ce service est contraint par plusieurs exigences telles que, par exemple, le délai de mise à jour
des listes de révocation ou la disponibilité de ces listes. Le dépôt est également responsable de la
publication de la CRL (Liste de Révocation de Certificat).
Ce sont les personnes ou entités organisationnelles ayant émis ou émettant des demandes de
certificat, ou souhaitant simplement de vérifier la validité et les informations sur l’identité d’un
certificat préalablement reçu.
En plus des principaux composants que nous venons de voir, nous avons aussi quelques-uns dits
complémentaires, à savoir : les bases de données, le serveur d’horodatage, les serveurs HTTP,
SMTP, POP.
Un certificat a pour fonction de certifier l’identité de son porteur, et de lier cette identité à une
clef publique. Le premier acteur à prendre en compte est donc le porteur du certificat.
Le certificat est destiné à garantir l’identité du porteur à une personne distincte de son porteur :
ceux qui utilisent les certificats, par exemple pour vérifier les authentifications ou les signatures
électroniques, sont appelés les utilisateurs de certificats.
Les autres acteurs de la certification sont ce que l’on appelle les Prestataires de Services de
Certification Électronique (PSCE). Ils se divisent en de nombreuses catégories que nous
allons décrire ci-dessous :
L’Autorité de Certification (AC) est une entité morale qui a pour rôle la définition des
règles qui régissent le cycle de vie des certificats, et l’application de ces règles.
L’Autorité d’Enregistrement (AE) est une entité qui procède à la vérification de
l’identité du porteur en vue de lui remettre un certificat. Cette opération est parfois
appelée « enrôlement ».
L’Opérateur de Certification (OC) est l’entité chargée de l’exploitation de
l’infrastructure technique de délivrance de certificats.
L’Autorité de Validation (AV) peut être interrogée par l’utilisateur de certificat qui
souhaite vérifier la validité d’un certificat.
18
L’Autorité de Révocation (AR) peut être saisie par le porteur de certificat ou son
responsable (par exemple l’entreprise à laquelle il appartient) pour inscrire le certificat
dans la Liste des Certificats Révoqués.
3. Les certificats
Ils assurent la sécurité d’une clé publique afin d’éviter les failles de sécurité liées à
l’usurpation d’identité et à la modification écrite. Leur rôle dans le fonctionnement des PKI
sera abordé plus en profondeur dans la suite du document.
19
Standard), il peut se présenter soit sous sa forme logicielle ou il peut être stocké dans un support
cryptographique :
Solution logicielle : le certificat est téléchargé et stocké sur le disque dur de
l'ordinateur.
Solution matérielle : Sur une carte à puce ou une clé USB (le certificat est enregistré
sur la clé dédiée qui se connecte directement sur le port USB du PC).
Les avantages d’un certificat stocké dans un support matériel sont plus sûrs et plus pratiques, vu
qu'on ne peut pas le copier.
6 Le certificat X.509
En 1998, l’ITU-T (Organisme international définissant les normes en télécommunication) a
présenté la recommandation X.509 comme membre des recommandations de la série X.500 qui
définissent un service d’annuaire. Appliqué au modèle des infrastructures à clé publique,
l’annuaire représente un serveur qui maintient une base de données des certificats créés. X.509 a
été proposé comme infrastructure à clé publique utilisant des certificats et des signatures
numériques pour gérer la distribution des clés publiques.
X.509 a un fonctionnement fortement centralisé (figure 2.9), il repose sur l’utilisation d’un
ensemble restreint de tierces parties de confiance (autorité de certification) pour fournir la notion
de confiance quant à la distribution des clés publiques aux utilisateurs. Seules les autorités de
certification peuvent créer des certificats et les signer. Chaque principal possède la clé publique
de l’autorité de certification et s’en sert pour vérifier si un autre certificat est valide. Le
principal, par définition, fait confiance à l’autorité de certification qui a signé son certificat.
L’autorité de certification est la racine de la hiérarchie de confiance d’un annuaire X.500.
21
La norme X.509 identifie un principal en utilisant des informations telles que le nom, l’adresse
email, la ville, etc. Le champ sujet d’un certificat X.509 doit contenir l’identité exacte d’un
principal.
L’annuaire X.500 exprime cette idée sous le terme de distinguished name. Un distinguished
name est un nom unique qu’un utilisateur pourra utiliser quand il voudra se référer à une entité.
Étant donné qu’il s’agit d’un service d’annuaire, l’unicité des noms est importante, la relation
entre un principal et son certificat étant une bijection.
Les problèmes inhérents à une architecture à clé publique de type X.509 sont l’obtention de la
clé publique de l’autorité de certification, l’obligation d’utiliser des noms (DN) uniques,
l’architecture globale construite suite au chaînage de certificats des autorités de certification.
22
accessible par le Web. Pour garantir son origine et son intégrité, elle est signée par l’autorité de
certification. De même que les commerçants récupèrent régulièrement la liste des cartes
bancaires non valables, il faut que les outils sécurisés chargent régulièrement, de manière
automatique ou avec intervention de l’utilisateur, cette liste de certificats révoqués.
Ce qu’on peut retenir sur la durée de vie d’un certificat est de :
23
Une Autorité de Certification est une organisation qui délivre des certificats électroniques à une
population. Elle possède elle-même un certificat (auto signé ou délivré par une autre AC) et
utilise sa clé privée pour créer les certificats qu’elle délivre, une AC joue le rôle de tiers de
confiance. Les services des autorités de certification sont principalement utilisés dans le cadre de
la sécurisation des documents ou des communications numériques via Internet ou Intranet.
Lorsqu'une personne souhaite transmettre des données en utilisant par exemple une
communication HTTPS (Hypertext Transfer Protocol Secure), elle génère une clé publique et
une clé privée puis envoie à l'une des autorités de certification une demande de signature de
certificat contenant sa clé publique ainsi que des informations sur son identité (coordonnées
postales, téléphoniques, email...).
Après vérification de l'identité du demandeur du certificat par une autorité d'enregistrement,
l'autorité de certification signe le CSR grâce à sa propre clé privée (et non pas avec la clé privée
de la personne) qui devient alors un certificat puis le transmet en retour à la personne qui en a
fait la demande.
24
8.3.2 Renouvellement des certificats
Chaque certificat a une période de validité et donc une date d’expiration bien connue. Quand un
certificat expire, un processus de renouvellement est éventuellement initialisé et donc après
l’approbation positive, un nouveau certificat va être publié pour l’EE considérée.
8.3.3 Révocation des certificats
L’AC envoyé le certificat pour le CRL (liste de certificats annulés) quand la durée de vie
maximale pour un certificat est expirée. Il y a plusieurs raisons peuvent amener une autorité à
annuler des certificats :
Il est supposé que la clé privée du détenteur du certificat a été révélée ou subtilisée de
façon frauduleuse ;
L’utilisateur a perdu le rôle attaché à la possession de son certificat ;
La clé privée de l’autorité de certification a été compromise ou subtilisée.
Publication des certificats et des CRLs
Une fois le certificat est délivré ou qu’il est révoqué, l’information doit être publiée dans un
annuaire public (conforme aux normes X.500 dans la majorité des cas).
9 Autorité d’enregistrement RA
L'autorité d'enregistrement est responsable des tâches administratives associées aux requêtes
effectuées par l'entité d'extrémité.
C’est une entité optionnelle dans la PKI. Si l'autorité d'enregistrement n'est pas présente dans la
PKI, l’AC assume les mêmes tâches que celles associées à l'autorité d'enregistrement.
Les fonctions qu'une autorité d'enregistrement doit mettre en application varient selon les
fonctions que l'on souhaite mettre en œuvre sur la PKI, mais elle doit au minimum gérer les
fonctions de vérification de l'identité du demandeur.
L’autorité d’enregistrement est généralement constituée des fonctions suivantes :
Authentification personnelle (physique) du sujet demandant un certificat ;
Le LDAP est un protocole d'accès aux services annuaire qui propose une grande flexibilité pour
la gestion des certificats d'une organisation. Les administrateurs systèmes peuvent stocker la
plupart des informations requises par la gestion des certificats dans un annuaire compatible
LDAP. Les informations stockées dans l'annuaire peuvent également être utilisées en association
avec les certificats pour contrôler l'accès aux différentes ressources disponibles sur un réseau en
fonction des utilisateurs ou des groupes d'utilisateurs.
12 Le modèle PKIX
Le groupe de travail PKIX a été créé à l'automne 1995 dans le but de développer des normes
Internet pour prendre en charge les infrastructures à clé publique (PKI) basées sur X.509.
Initialement, PKIX a poursuivi cet objectif en profilant les normes X.509 développées par le
CCITT (plus tard l'UIT-T). Plus tard, PKIX a lancé le développement de normes qui ne sont pas
des profils de travail de l'UIT-T, mais plutôt des initiatives indépendantes conçues pour
répondre aux besoins PKI basés sur X.509 sur Internet. Au fil du temps, cette dernière catégorie
de travail est devenue le principal objectif du travail de PKIX, c'est-à-dire que la plupart des
RFC générées par PKIX ne sont plus des profils de documents ITU-T X.509.
PKIX a produit un certain nombre de RFC normalisés et informatifs. RFC 3280 (certificat et
profil CRL) et RCF 3281 (profil de certificat d’attribut) sont des exemples récents de RFC de
suivi des normes qui profilent les documents de l'UIT-T. RFC 2560 (profil d'état du certificat en
ligne), RFC 3779 (extensions d'adresse IP et de numéro AS) et RFC 3161 (autorité
d'horodatage) sont des exemples de normes de suivi des RFC initiées par l'IETF. Les RFC 4055
(RSA) et RFC 3874 (SHA2) sont des exemples de RFC informatives qui décrivent comment
utiliser les algorithmes de clé publique et de hachage dans les PKI.
27
PKIX continuera à suivre l'évolution des documents UIT-T X.509 et maintiendra la
compatibilité entre ces documents et IETF PKI normes, puisque le profilage des normes X.509 à
utiliser sur Internet reste un sujet important pour le groupe de travail.
PKIX n'approuve pas l'utilisation d'algorithmes cryptographiques spécifiques avec ses
protocoles. Cependant, PKIX publie des normes de suivi des RFC qui décrivent comment
identifier les algorithmes et représenter les paramètres associés dans ces protocoles, et comment
utiliser ces algorithmes avec ces protocoles. Nous prévoyons que des efforts dans ce domaine
continueront d'être nécessaires au fil du temps.
PKIX poursuivra de nouveaux travaux dans l'arène PKI si les membres du groupe de travail
manifestent un intérêt suffisant et s'ils sont approuvés par le directeur de la zone de sécurité
compétent. Par exemple, la validation de certificat sous X. Les normes 509 et PKIX exigent
qu'une partie de confiance utilise une ancre de confiance comme début d'un chemin de certificat.
Ni X.509 ni les normes PKIX existantes ne définissent de protocoles pour la gestion des ancres
de confiance. Les mécanismes existants de gestion des ancres de confiance, par exemple dans
les navigateurs, sont limités en fonctionnalités et non standard. Il y a un intérêt considérable
dans la communauté PKI pour définir un modèle standard pour la gestion des ancrages de
confiance, et des protocoles standard pour permettre la gestion à distance. Ainsi, un futur
élément de travail pour PKIX est la définition de ces protocoles et des modèles de données
associés.
13 La fonction d’administration
Contrôle sur le conteneur des services de clé publique Active Directory. Contrôle donc les
modèles, la publication approuvée et les autres éléments de configuration à l'échelle de
l'entreprise (forêt).
Possède des droits de gestion d'autorité de certification sur l'autorité de certification. Contrôle
l'attribution des rôles sur l'autorité de certification. Est également autorisé à changer les
propriétés de l'autorité de certification. En général, ce rôle correspond également à un
administrateur local du serveur de l'autorité de certification, sauf si une séparation des rôles est
adoptée.
Possède des droits d'utilisateur de gestion de la sécurité et de journaux d'audit sur une autorité de
certification. Ce rôle correspond également à un membre du groupe Administrateurs locaux sur
l'autorité de certification (requis pour accéder aux journaux d'audit).
Possède des droits d'émission et de gestion des certificats sur la CA.
28
Il est possible de configurer plusieurs gestionnaires de certificats sur chaque autorité de
certification – chacun d'eux gérant des certificats pour un sous-ensemble d'utilisateurs ou
d'autres entités finales.
Conserve le certificat et la clé requis pour signer la demande de certificat avant approbation.
Conserve le certificat et la clé requis pour décrypter les clés privées archivées stockées dans la
base de données des certificats.
Possède des droits de sauvegarde et de restauration sur un serveur de CA.
Il faut se rappeler que l’un des buts poursuivis dans notre approche est de proposer une
gestion de la sécurité la plus transparente et configurable possible aussi bien pour
l’utilisateur que pour le développeur. Pour cela, on doit au mieux supprimer ou, dans le pire
des cas, minimiser une interaction entre le code de sécurité et l’utilisateur. Il nous faut une
solution technique qui permette l’automatisation des divers processus entrant en jeu dans la
gestion de la sécurité. Dans le cas qui nous intéresse maintenant, notre solution doit pouvoir
créer les objets nécessaires à l’identification d’une entité automatiquement.
En nous basant sur l’étude bibliographique présentée dans ce manuscrit et des
contraintes suscitées, la solution d’authentification qui s’impose est l’utilisation d’une
architecture à clé publique de type SPKI. Le choix de la solution SPKI s’explique par la
nature même des entités à identifier. En effet, l’infrastructure SPKI permet l’attribution de
certificats à des objets logiques comme les runtimes, les nœuds ou encore les objets actifs ce
qui n’est pas le cas de l’infrastructure PKI dont les certificats identifient une entité physique
ou morale en donnant son nom, son émail, sa localisation, . . . . Ainsi, l’identification des
diverses entités sécurisées se fera en attribuant une identité unique à chaque entité au moyen
de certificats.
Une autre fonctionnalité intéressante réside dans la possibilité d’établir une chaîne de
certificats. Le chaînage de certificats permet d’obtenir l’identité de toutes les entités qui ont
successivement généré des certificats jusqu’au certificat final qui identifie l’entité courante.
29
En d’autres termes, à partir du certificat d’une entité, nous sommes capables de retrouver le
certificat de l’utilisateur qui l’a lancée. Il n’existe aucune limitation à la taille de cette
chaîne de certificats. Cependant il convient de modérer la taille de cette chaîne : étant donné
que la validation d’un certificat requiert la validation de tous les certificats présents dans la
chaîne, plus cette chaîne est courte, plus la validation du certificat sera rapide.
Nous avons créé une interface graphique regroupant les fonctionnalités nécessaires à la
gestion des certificats. Elle permet la création de certificats au format PKCS#12,
l’importation et l’exportation de certificats vers d’autres formats standard pouvant être
utilisés par d’autres logiciels. Il est possible d’utiliser l’interface graphique pour générer des
certificats pour tous les types d’entités ainsi que des certificats d’application. La figure 5.8
présente une entité dont le certificat contient une chaîne de certificats.
30
-la signature électronique pour le contrôle d’authenticité (s’assurer que le message vient bien de
la personne qui déclare l’avoir envoyé) et le contrôle d’intégrité (s’assurer qu’il n’y a pas eu
altération du message pendant le transport).
-le chiffrement pour permettre la confidentialité du message.
Le principe de PGP avant l'expédition du message est le suivant :
La clé secrète
Un xb3pTu
secret 6" U
4g&)j?i
Le message en Le message
clair Le message chiffré
chiffré + la clé
secrète
chiffrée
La clé publique
La clé g6(à
secrèt Yku:
e or9s5,
31
Figure 7 : fonctionnement de PGP : envoi d'un message
16 Autres architectures
L’infrastructure PKI est généralement composée de plusieurs CA reliés par des « trust paths
» ou chemins de confiance. Selon l’environnement, les CAs peuvent être organisés de manière
complètement différente et de leur architecture dépendra l’adaptabilité du modèle de
confiance. Ainsi, les architectures les plus couramment utilisées sont les suivantes :
- L’architecture hiérarchique
Le fonctionnement de cette architecture dans le cas de deux autorités de certification (CA1 et
CA2) régies par une autorité de certification centrale ou « CAroot » est le suivant : CA1 et
CA2 envoient leur clé publique au CA central qui génère un certificat pour chacun des deux
CA. Au sein de cette architecture, le « CAroot » a le plus haut niveau d’autorité et possède
donc un certificat autosigné. Aussi, cela implique que tous les composants de l’architecture
placent leur confiance dans le CA central.
- L’architecture P2P (Peer-to-Peer)
En opposition à l’architecture hiérarchique, l’architecture Peer-to-Peer place les différents CA
au même niveau d’autorité. On arrive alors à une situation dans laquelle les certificats sont
cosignés, le CA1 pouvant signer des certificats pour le CA2 et vice-versa. L’inconvénient de
cette architecture est alors le besoin d’échange mutuel des différentes clés publiques pour
qu’un CA génère des certificats pour ses homologues.
- L’architecture en pont
L’architecture en pont ou « Bridge » est une association des deux architectures précédemment
abordées. Comme l’architecture hiérarchique a pour principales lacunes la disponibilité et la
sécurité et que le modèle pair-à-pair est ralentit par la multitude d’échanges qui y sont
générés, alors l’architecture en pont palie aux lacunes des deux architectures précédentes.
Son fonctionnement est similaire à celui du P2P à la différence que les échanges entre CA qui
ralentissaient le P2P sont réduits dans la mesure où les CAs n’échangent leurs clés qu’avec l’autorité
pont. On peut aussi définir cette architecture comme une architecture hiérarchique où le CAroot est
au même niveau d’autorité que les autres CAs qui y sont affiliés.
La figure 2 et le tableau 2 présentent une comparaison des trois architectures citées ci-haut.
32
Figure 2: Les architectures PKI
Mesh Flexibilité
Non adapté à une grande
implémentation
Difficulté à remonter une chaîne
de confiance
33
Bridge
Interopérabilité entre PKI Problème en cas
Flexibilité d’indisponibilité du Bridge CA
Adapté à une grande
implémentation
17 Spooky/Sudsy (SPKI/SDSI)
La lourdeur d’une infrastructure à clé publique basée sur X.509 a amené la communauté à
chercher d’autres solutions de sécurité basées sur une infrastructure à clé publique. SPKI
(Simple Public Key Infrastucture) [35, 36] est le fruit de ces recherches. Il propose un système
de sécurité distribué simple à mettre en œuvre.
Un des premiers principes de SPKI est de revenir sur la définition du certificat qui, dans
X.509, associe une personne physique à une clé publique. SPKI lève cette limitation en
permettant d’attribuer une paire de clés publique/privée à n’importe quelle entité. Bien
évidemment la notion de propriétaire (personne, organisation, ordinateur) d’une clé est
possible et autorisée mais elle n’est pas nécessaire. Le propriétaire contrôle la clé publique et
on peut la voir comme un proxy pour un individu.
Le deuxième principe est de considérer toutes les clés comme égales. Contrairement à X.509
où seules les autorités de certification peuvent certifier un certificat, tout principal (certificat)
est capable de générer des certificats donc des principaux (certificats). De plus,
l’infrastructure de sécurité ne repose pas sur une architecture centralisée ; cette approche
permet le déploiement facile et rapide d’architectures sécurisés autonomes.
Chaque principal peut assigner un nom choisi arbitrairement à un principal, l’unicité globale
des noms n’est plus requise et ils peuvent être définis de manière à être compréhensible par
des humains. Les noms assignés dans un principal ne restent valides que dans le contexte de
ce principal. Ainsi des noms génériques comme "maman" ou "papa" peuvent être utilisés par
plusieurs principaux sans pour autant faire le lien vers les mêmes principaux.
SDSI (Simple Distributed Security Infrastructure) [90, 80] désigne le mécanisme de nommage
existant au sein de SPKI. Les politiques de sécurité sont conçues pour s’exprimer au sein de
listes de contrôle d’accès. Afin de faciliter leur gestion, il est possible de regrouper les
principaux au sein de groupes et d’utiliser ces groupes au sein des politiques de sécurité ou
d’utiliser les noms symboliques définis au sein des certificats.
34
Cependant le modèle présuppose qu’un principal soit à tout moment accessible pour fournir
un ensemble de services comme l’accès aux certificats générés par ce principal et l’accès aux
autres objets appartenant au principal qui ont pu générer des certificats.
35
Chapitre 2
Présentation d’EJBCA
EJBCA (Enterprise Java Bean Certification Authority) est une IGC Open Source écrit en
JAVA/JEE pouvant gérer plusieurs autorités de certification (CA). C’est la firme suédoise
PRIMEKEY AB qui assure le maintien, du développement et de la distribution de la version
commerciale. EJBCA propose aussi un serveur d’horodatage, un serveur OCSP et un serveur de
signature qui peut être déployé séparément de l’IGC EJBCA.Chaque composant peut être déployé
de manière autonome ou combinée avec EJBCA. EJBCA comporte une architecture applicative et
une architecture fonctionnelle.
L’architecture fonctionnelle est composée de :
l’autorité de la PKI ou autorité de certification ;
l’autorité d’enregistrement ou entité administrative ;
l’autorité d’enregistrement local ;
le webra conçu pour renforcer la partie fonctionnelle d’EJBCA.
De composants additionnels tels que :
1 ARCHITECTURE FONCTIONNELLE
Elle est représentée par la figure suivante :
36
37
1.1 L’autorité de certification ou autorité de la PKI
Elle est chargée de l’émission et de la révocation des certificats. Une même instance peut gérer
plusieurs autorités de certification et autorités de certification subordonnées. Ses principales
fonctions sont :
Edition et création des certificats d’autorité de certification ;
Elle est chargée de la gestion de la PKI c’est-à-dire des fonctions d’authentification, de gestion de
vie des certificats, de la journalisation, de la publication et de paramétrage de la PKI. Elle est par
ailleurs comme toute autorité d’enregistrement de la gestion des requêtes en direction de l’autorité
de certification. Elle permet aussi de définir les éléments constitutifs des certificats et le format
(des entités publiques).
Les fonctions incluses dans l’autorité d’enregistrement sont les suivantes :
38
La gestion des administrateurs et des droits associés ;
Elle joue le rôle d’interface avec l’infrastructure c’est par son biais que sont réalisés les requêtes
de certificats, de révocation ou pour obtenir les éléments publiques de l’Infrastructure de gestion
de clefs. Elle propose les appels suivants :
A partir d’une page web sur le site de l’organisation ou site dédié à l’infrastructure de gestion de
clefs ;
A partir d’une ligne de commandes et permet en outre d’effectuer des tâches d’administration ;
Par le biais du protocole SCEP (Simple Certification Enrollment Protocol) pour les routeurs
CISCO ;
1.4 Le WebRA
Son rôle est de renforcer la partie fonctionnelle et se compose des éléments suivants :
Modules de gestion de vie des certificats (précondition, demande, révocation, renouvellement) ;
Moteur de workflow qui permet de définir des cinématiques de vie des certificats ;
39
2 ARCHITECTURE APPLICATIVE
Elle se compose de trois couches conformément au modèle d’application 3-tiers puisque cette
architecture est développée en Java/JEE : la couche présentation, la couche application et la
couche de données :
La couche présentation ; elle fournit les interfaces aux clients et administrateurs pour les
demandes en direction de l’autorité de certification et d’enregistrement ;
La couche applicative ou couche métier : elle regroupe les fonctions de la PKI et comprend :
La couche de données : elle permet de stocker l’ensemble des données de la PKI dans une base
de données avec la possibilité de connecter un ou plusieurs annuaires LDAP bases de données
pour abriter les données publiques de la PKI ;
2.1 CARACTERISTIQUES
EJBCA est conforme aux standards. Il est compatible avec les spécifications de l’IETF
notamment sur les certificats numériques (X.509V3) et CRLV2 ainsi que PKCS et SCEP
40
(Simple Certificate Enrollment Protocol). Il intègre le protocole CMP (Certificate Management
Protocole) pour l’interopérabilité avec les autres solutions de PKI.
EJBCA est aussi indépendant des systèmes d’exploitation, des bases de données et des serveurs
d’application.
Il peut être déployé sur les systèmes d’exploitation Microsoft, Unix ou Linux, Solaris ;
Il est compatible avec les serveurs d’application tels que JBOSS, GLASSFISH, JONAS,
WEBSPHERE, WEBLOGIC ;
Les bases de données suivantes sont supportées : Oracle, MySQL PostgreSQL, Sybase,
Informix, SQL Server, DB2 ;
Il permet l’utilisation de modules HSM (Hardware Security Module) pour la protection des clefs
cryptographiques. Les produits utilisés sont : nCipher, Utimaco, Safenet, AEP Network.
41
Les différentes étapes et les captures d’écran y correspondant :
Il faut télécharger les logiciels suivants : openjdk, jboss, ejbca en utilisant les commandes
suivantes : apt-get install openjdk-6-jdk
42
43
Après téléchargement, il faut extraire les fichiers qui sont au format .zip avec la commande unzip
et placer les fichiers obtenus, à savoir ejbca_4_0_10 et jboss-5.1.0, dans un même répertoire
d’installation :
Effectuer la commande suivante après avoir extrait les deux fichiers :
echo ‘’ appserver.home = /home/oumarlog/jboss-5.1.0.GA’’ >>
ejbca_4_0_10/conf/ejbca.properties.
A noter que /home/oumarlog est le répertoire de l’utilisateur.
On se déplace sur le répertoire ejbca_4_0_10 et on exécute la commande suivante :
ant bootstrap. On obtient la capture suivante :
44
On ouvre un autre terminal, et on se place dans le répertoire bin de jboss-5.1.0 (cd /jboss-
5.1.0/bin) on tape la commande suivante : ./run.sh pour lancer le serveur d’application jboss
Une fois le serveur jboss lancé on retourne sur l’autre console (ejbca) pour lancer l’installation
d’ejbca avec la commande : ant install. C’est pendant cette étape que seront demandées les
informations sur les caractéristiques du serveur pour la création d’un certificat. Nous avons
conservé les données fournies par défaut.
45
46
47
Dans ce même terminal on effectue le déploiement d’ejbca par la commande : ant deploy
Puis on se rend sur l’autre terminal (jboss) pour arrêter le serveur avec ctrl+c et le redémarrer
avec ./run.sh.
48
La dernière étape consiste à copier le certificat superadmin.p12 stocké dans le répertoire p12 crée
lors de l’installation d’ejbca et de l’importer dans le navigateur web utilisé.
Pour vérifier que notre installation fonctionne correctement, nous ouvrons une page web avec
comme url : https://localhost:8443/ejbca, nous recevons un avertissement de la part du serveur :
49
Nous passons à la présentation de l’interface graphique de l’infrastructure de gestion de clefs
EJBCA.
L’interface d’administration est composée de trois grandes parties qui sont : l’autorité de
certification, l’autorité d’enregistrement et de supervision.
Fonctions d’autorité de certification
Ce menu regroupe un ensemble de sous menus liés aux fonctionnalités de base d’une autorité de
certification : la gestion des certificats d’autorité de certifications émises au sein d’EJBCA. Les
principales fonctions de l’autorité de certification sont :
Création et édition des certificats d’autorité ;
50
La visualisation des informations sur les autorités de certification et leur certificat
Les profils d’entité qui permettent de définir les informations liées au propriétaire du certificat.
Dès la première installation d’EJBCA, il y a un certain nombre de profils de certificats qui sont
marqués (FIXED) qui ne peuvent être ni modifiés ni supprimés.
La gestion des profils de certificats
Le processus se déroule en deux étapes :
La création d’un profil ;
La définition de ce profil.
Le service de publication
C’est un ensemble de fonctions permettant de créer et de paramétrer des services de publication
pour l’infrastructure de gestion de clefs. C’est un service de dépôt pour les données qui sont
considérées comme publiques par exemple les certificats émis par une autorité de certification et
les listes des certificats révoqués. Les types d’annuaire qui peuvent être publiés par défaut sont :
LDAP v3 et Active Directory de Microsoft.
Editer et créer les autorités de certification
Les autorités de certification sont créées et éditées à partir de cette rubrique. Une autorité de
certification peut être créée de plusieurs façons :
L’infrastructure génère le couple de clefs (publique, privée) et le certificat de la future autorité de
certification ;
Une requête de certificat est générée depuis EJBCA et est exportée pour être signée par une
autorité externe.
51
Les fonctions d’autorité d’enregistrement
Elles regroupent un ensemble de sous menus liés aux fonctionnalités de base d’une autorité
d’enregistrement c'est-à-dire la gestion des requêtes et des certificats émis au sein d’EJBCA. Pour
accéder aux fonctions d’autorité d’enregistrement, il faut se connecter en tant qu’administrateur
possédant les droits d’accès à l’autorité d’enregistrement. Cette partie de l’interface est composée
de :
Gestion des données externes
Configuration de services ;
Gestion des administrateurs ce menu permet d’éditer et de créer des groupes d’administrateur
pour la gestion d’EJBCA. Un administrateur peut avoir les droits sur un ensemble de fonctions
(Autorité de certification, autorité d’enregistrement, supervision), à des pages précises, à des
autorités de certification précises. Dans EJBCA, nous disposons d’un certain nombre de rôles
prédéfinis qui sont :
52
Les profils d’entités finales ;
53
Part III.
54
55