EESS - Gestion Des Cles Publiques
EESS - Gestion Des Cles Publiques
EESS - Gestion Des Cles Publiques
PROJET DE RECHERCHE
PRÉSENTÉ
COMME EXIGENCE PARTIELLE
DE LA MAÎTRISE EN GÉNIE LOGICIEL
PAR
STÉPHANE GRATON
HIVER 2010
Projet en génie logiciel
Gestion des clés publiques pour les EESS
1 Introduction............................................................................................. 10
1.1 Contexte.............................................................................................................. 10
1.2 Objectifs .............................................................................................................. 11
1.3 Structure du document......................................................................................... 11
2 Définition du problème........................................................................... 12
5 Recommandations.................................................................................. 64
Page 3 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
6 Expérimentations.................................................................................... 79
6.1 Description de l’environnement ............................................................................ 79
6.1.1 Configurations logicielles .......................................................................... 80
6.1.2 Architecture de l’ICP ................................................................................ 80
6.2 Création des entités dans l’ICP ............................................................................ 82
6.3 Génération et installation des certificats SSL........................................................ 82
6.3.1 Certificat SSL du serveur Web .................................................................. 82
6.3.2 Certificat du client dans le fureteur Web Firefox ........................................ 86
6.3.3 Activation de l’authentification client par certificat ...................................... 89
7 Conclusion .............................................................................................. 91
Bibliographie ..................................................................................................... 93
Page 4 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 5 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 6 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 7 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Sigles et abréviations
AC Autorité de certification
AE Autorité d’enregistrement
AEL Autorité d’enregistrement locale
AES Advanced Encryption Standard
CMP Certificate Management Protocol
CRL Certificates Revocation List
EAL Evaluation Assurance Level
ECDSA Elliptic Curve Digital Signature Algorithm
DES Data Encryption Standard
DN Distinguished Name
DSA Digital Signature Algorithm.
EE End entity (entité d’extrémité)
EESS Entreprises de l’Économie Sociale et Solidaire
FIPS Federal Information Processing Standard
HSM Hardware Security Module
HTTP HyperText Transfer Protocol
HTTPS Hypertext Transfer Protocol over Secure Socket Layer
ICP Infrastructure à clé publique
IPSec Internet Protocol Security
IETF Internet Engineering Task Force
ISO International Organization for Standardization
ISO/IEC ISO / International Electrotechnical Commission
ITU International Telecommunication Union
ITU-T ITU - Telecommunication Standardization Sector
JKS Java KeyStore
LDAP Lightweight Directory Access Protocol
LGPL GNU Lesser General Public License
MAC Message Authentication Code
MD5 Message Digest 5 (algorithme de hachage)
NIST National Institute of Standards and Technology
OCSP Online Certificate Status Protocol
OLF Office de la Langue Française
Page 8 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 9 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
1 Introduction
Ce rapport présente les résultats d’un projet de recherche réalisé dans le cadre de
l’activité MGL9701 – Projet en génie logiciel du programme MGL3822 – Maîtrise en
génie logiciel de l’Université du Québec à Montréal (UQAM).
1.1 Contexte
Ce projet de recherche se veut une contribution au chantier sécurité de la Chaire de
logiciel libre – Finance sociale et solidaire, rattachée au département d’informatique de
l’Université du Québec à Montréal (UQAM). Principalement financée par L’Association
internationale du logiciel libre pour l’économie sociale (AI2L), la Chaire a pour double
mission de poser les fondements d’une famille de logiciels libres pour la finance sociale
et solidaire, ainsi que d’étudier les spécificités du développement du logiciel libre en
relation avec les meilleures pratiques du génie logiciel [CHAIRE].
Le sujet de ce projet fut proposé par M. Louis Martin, titulaire de la Chaire. Au fait des
nouvelles normes et réglementations devant être prises en compte par les logiciels
financiers, M. Martin avait identifié certains besoins essentiels en matière de sécurité.
Parmi ceux-ci figurait la gestion des clés publiques, un élément à la fois stratégique et
essentiel dans le contexte de la finance. Il s’agit donc du sujet auquel est consacré ce
projet de recherche.
Les attentes envers ce projet furent exprimées par une brève mise en contexte,
accompagnée d’un certain nombre de questionnements concernant la gestion des clés
publiques, ainsi que des certificats numériques qui servent à leur distribution :
• Une entreprise peut-elle émettre et gérer ses propres certificats à clé publique
sans faire appel à une autorité de certification commerciale?
• Quels sont les principales normes et standards de l’industrie en la matière?
• Serait-il envisageable de développer ou de faire appel à une solution en logiciel
libre existante pour le faire?
• Comment faire pour que le certificat SSL d’un serveur Web, émis par une
autorité de certification interne, soit reconnu par les fureteurs Web des
utilisateurs de la communauté?
• L’AI2L pourrait-elle éventuellement agir en tant qu’autorité de certification au
même titre que des autorités commerciales reconnues?
Le principal besoin alors exprimé concernait la gestion des certificats à clé publique
utilisés pour sécuriser les échanges de commerce électronique entre les entreprises de
l’économie sociale et les clients particuliers (B2C), ainsi que les clients et partenaires
commerciaux (B2B).
Page 10 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
1.2 Objectifs
Les travaux présentés dans ce document ont pour objectif de fournir un ensemble de
recommandations en ce qui a trait à la gestion des clés publiques dans un contexte
d’entreprises de l’économie sociale et solidaire.
Page 11 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
2 Définition du problème
Les logiciels qui seront développés par la Chaire de logiciel libre – Finance sociale et
solidaire, devront être conçus de manière à permettre aux entreprises de respecter les
normes internationales en matière de gestion de la sécurité de l’information. Pour
atteindre cet objectif il faudra dès le début d’un projet, s’assurer de définir les exigences
de sécurité ainsi que les procédures permettant leur mise en œuvre. De cette manière,
celles-ci pourront être intégrées dès la phase de conception du logiciel. Une intégration
tardive effectuée pendant ou après la mise en œuvre d’un logiciel est souvent plus
complexe à réaliser, et demande généralement plus d’efforts que si elle avait été
réalisée lors de la conception initiale [ISO27002].
Pour répondre aux diverses exigences de sécurité, les logiciels devront faire appel à
différents services de sécurité tels que l’authentification, l’autorisation, la confidentialité,
l’intégrité, l’imputabilité et autres. À titre d’exemple, il est raisonnable de croire que :
• l’accès aux applications sera contrôlé par une forme d’authentification forte;
• les communications entre applications et utilisateurs devront demeurer
confidentielles et intègres;
• tout accès aux données confidentielles, ainsi qu’aux fonctions de nature critique
du logiciel sera soumis à une autorisation préalable;
• les utilisateurs des logiciels ne devront pas pouvoir nier les actions qu’ils auront
posées;
La mise en œuvre de ces services de sécurité est rendue possible grâce à la
cryptographie moderne qui offre différents mécanismes de sécurité tels que le
chiffrement et la signature numérique. Plusieurs de ces mécanismes sont basés sur des
algorithmes cryptographiques asymétriques dits « à clé publique ». Bien que très
efficace, la cryptographie à clé publique comporte cependant un enjeu majeur, soit la
gestion des clés publiques. En effet, l’efficacité des mécanismes de sécurité basés sur la
cryptographie à clé publique dépend du niveau de certitude que détient l’utilisateur d’une
clé publique quant à l’identité de son propriétaire légitime.
Les clés publiques sont distribuées à l’intérieur de certificats à clé publique. Ce certificat
permet de créer une association entre la clé publique qu’il contient et l’identité de son
propriétaire. Ainsi, ceux qui désirent utiliser la clé publique contenue dans un certificat,
peuvent s’assurer de l’identité de son propriétaire, dans la mesure où ils ont confiance
en l’autorité qui a émis le certificat.
En intégrant aux logiciels différents mécanismes de sécurité basés sur la cryptographie
à clé publique, cela risque de provoquer l’accroissement du nombre de certificats à clé
publique requis au sein des entreprises qui utiliseront ces logiciels. Par exemple, le
déploiement d’un logiciel développé par la Chaire pourrait forcer une entreprise à fournir
un certificat à clé publique à chacun de ses employés. Or, la majorité des EESS
(Entreprises de l’Économie Sociale et Solidaire) ne disposent pas des moyens
nécessaires pour réaliser l’émission massive de certificats à clé publique.
Page 12 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Cette situation place les EESS dans une position délicate où celles-ci devront faire un
choix important, et considérer l’une des deux options suivantes :
1. Faire l’acquisition des certificats à clé publique auprès d’une autorité de
certification commerciale;
2. Mettre en place les infrastructures nécessaires afin de leur permettre d’effectuer
elles-mêmes la gestion des certificats à clé publique;
Ces deux (2) options comportent des avantages et des inconvénients, ainsi qu’un certain
niveau de risque pour les EESS. Généralement, ce choix est grandement influencé par
l’aspect financier et non par l’aspect technique. Cependant, les recommandations
émises au terme de la présente étude devront respecter les valeurs de l'économie
sociale et solidaire partagées par les entreprises qui utiliseront les logiciels développés
par la Chaire. Dans ce contexte, l’aspect financier de la solution devient un facteur parmi
tant d’autres, car il faut permettre à la Chaire ainsi qu’à l’AI2L de respecter des
engagements tels que :
« … contribuer, par la création de logiciels libres, à l'objectif d'une
indépendance des entreprises d'économie sociale et solidaire vis-à-vis des
producteurs capitalistes du code informatique, pour la gestion de leurs
systèmes d'information et dans leurs échanges électroniques; » [AI2L]
« … faciliter, sur une base nationale et internationale, et grâce aux logiciels
libres développés, la mise en réseau d’entreprises d'économie sociale et
solidaire; » [AI2L]
La problématique se résume donc à déterminer comment la Chaire et l’AI2L pourront
supporter les EESS dans la gestion des clés publiques qui seront nécessaires afin de
permettre l’utilisation des logiciels développés par la Chaire.
Page 13 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Ce chapitre présente différents éléments liés à la gestion des clés publiques. La section
3.1 offre une introduction à la cryptographie, la section 3.2 présente les principaux
éléments normatifs encadrant la gestion des clés publiques, et finalement la section 3.3
présente l’infrastructure à clé publique.
3.1 La cryptographie
La cryptographie se définit comme étant « l’ensemble des principes, méthodes et
techniques dont l'application assure le chiffrement et le déchiffrement des données, afin
d'en préserver la confidentialité et l'authenticité. » [OLF]. Il s’agit de l’élément technique
fondamental sur lequel s’appuient les mécanismes traités dans ce projet.
La cryptographie offre des services de sécurité tels que la confidentialité, l’intégrité,
l’authentification, l’autorisation ainsi que la non-répudiation [SP80021]. Ces services sont
réalisés en appliquant des transformations sur les données à protéger. Ces
transformations sont réalisées à l’aide d’une fonction mathématique (algorithme) et d’un
paramètre (une clé).
Cette section offre une introduction aux notions élémentaires de la cryptographie. Une
connaissance minimale de ces notions de base est nécessaire à la compréhension des
concepts abordés dans le cadre de cette étude. Cette section introduit :
• Les mécanismes cryptographiques;
• Les familles d’algorithmes cryptographiques (à clé secrète, à clé publique);
Page 14 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
3.1.1.1 Le chiffrement
Le chiffrement est le mécanisme cryptographique par lequel un message (fichier,
courriel, etc.) dit « en clair », est transformé à l’aide d’un algorithme mathématique et
d’une clé, de manière à le rendre inintelligible. Le déchiffrement est l’opération inverse
qui, par un procédé similaire, applique une transformation sur un message chiffré, de
manière à le ramener dans sa forme intelligible. Le chiffrement a pour objectif d’assurer
la confidentialité des données.
Chiffrement Déchiffrement
Message en clair Message chiffré Message en clair
Fonction de
hachage
Message de
longueur variable
Page 15 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Fonction de
hachage
Message de
longueur variable
Message signé
avec une clé privée
Haché de
longueur fixe Message en clair
+
Signature
La signature numérique a pour objectif d’assurer l’authenticité ainsi que l’intégrité des
données, en plus de permettre la non-répudiation.
Page 16 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Chiffrement Déchiffrement
Message en clair Message chiffré Message en clair
Page 17 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Chiffrement Déchiffrement
Message en clair Message chiffré Message en clair
La clé privée doit être conservée de manière sécuritaire, et ne doit être divulguée sous
aucun prétexte. Contrairement à la clé secrète utilisée par les algorithmes symétriques,
la clé privée d’une entité n’a pas à être connue des autres entités qui participent aux
échanges de messages sécurisés. La clé publique, quant à elle, peut être publiée sans
aucun risque, pourvu qu’il soit possible de vérifier son authenticité.
La cryptographie à clé publique est principalement utilisée pour assurer l’intégrité des
données, l’authentification, la non-répudiation et l’échange de clés [SP80021].
Le tableau suivant énumère les principaux algorithmes asymétriques ainsi que l’usage
pour lequel ceux-ci ont été conçus.
Page 18 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Cette section décrit les principaux éléments normatifs régissant la mise en place ainsi
que l’exploitation d’une ICP dans le domaine de la finance.
Page 19 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 20 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Les standards PKCS (Public-Key Cryptography Standards) ont été établis par RSA
Laboratries, en collaboration avec différents développeurs de systèmes sécurisés de
partout à travers le monde. L'objectif de cette initiative fut d’accélérer le déploiement de
la cryptographie à clé publique. Publiées pour la première fois en 1991 à la suite de
réunions impliquant un groupe restreint d’organisations réceptives à la technologie de la
clé publique, les spécifications PKCS ont depuis été largement citées et mises en
œuvre. Les contributions de la série PKCS font désormais partie des nombreuses
normes et standards tels que ANSI X9, PKIX, SET, S/MIME, et SSL [RSALABS].
Parmi les standards PKCS, voici ceux qui sont les plus pertinents pour la présente
étude :
Page 21 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le tableau suivant énumère les standards PKCS qui ont été repris par le group de travail
PKIX de l’IETF.
RSA IETF
PKCS#1 RFC 3447 - Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography
PKCS#5 RFC 2898 - PKCS #5: Password-Based Cryptography Specification
PKCS#7 RFC 2315 - PKCS #7: Cryptographic Message Syntax
PKCS#8 RFC 5308 - Public-Key Cryptography Standards (PKCS) #8 : Private-Key
Information Syntax Specification Version 1.2
PKCS#10 RFC 2986 - PKCS #10 : Certification Request Syntax Specification
Table 3 - Standard PKCS ayant été repris par l'IETF
Page 22 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
3.2.5 ANSI X9
L’ANSI (American National Standards Institute) est la voie officielle des États-Unis en
matière de standards et d’évaluation de conformité des systèmes. Depuis sa fondation
en 1979, le comité X9 a pour objectif de standardiser les opérations dans le domaine
financier. Ce comité contribue activement à d’autres comités tels que le TC 68 d’ISO.
Parmi les nombreux standards développés et maintenus par ce comité, un seul standard
semble s’avérer pertinent pour la présente étude. Il s’agit du standard suivant :
• ANSI X9.79 - PKI policy and practices framework. La norme ANSI x9.79
définit les composantes d’une ICP. Elle fixe un cadre de pratiques ainsi qu’un
ensemble d’exigences en matière de politiques d’ICP. La norme définit les
pratiques opérationnelles par rapport aux objectifs de contrôle des systèmes
d’information du secteur des services financiers.
Page 23 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
3.2.6 ITU-T
3.2.7 NIST
Le NIST (National Institute of Standards and Technology) est une agence américaine
dédiée au développement de technologies, de méthodologies et de standards. Les
travaux du NIST sont réalisés de concert avec les entreprises américaines afin de
contribuer à leur développement économique.
La « Computer Security Division » émet différentes publications traitant de différents
aspects de la protection des technologies de l’information. Plusieurs de ces publications
s’avèrent d’ailleurs être d’une grande pertinence pour la présente étude :
• Publications Spéciales (Série 800). Depuis sa création en en 1990, cette
catégorie regroupe les publications relatives à la sécurité des technologies de
l’information. On y retrouve des publications telles que :
o SP800-15 - Minimum Interoperability Specification for PKI
Components. Spécifications minimales en termes d’interopérabilité pour
les ICP. Cette spécification fût développée lors de l’élaboration de l’ICP
fédérale américaine.
o SP800-21 - Guideline for Implementing Cryptography in the Federal
Government. Recommandations générales sur la sélection des
mécanismes cryptographiques.
o SP800-32 - Introduction to Public Key Technology and the Federal
PKI Infrastructure. Introduction aux différents concepts de l’ICP. Cette
publication a été développée dans le but d’assister les dirigeants
d’agences fédérales américaines dans leur prise de décision à l’effet de
mettre en place ou non une ICP.
Page 24 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 25 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Les sections 3.3.1 à 3.3.8 effectuent un survol de l’ICP de manière à identifier ses
principales composantes, les différents services de gestion et de sécurité qu’elle peut
offrir, ainsi que certains enjeux relatifs à son implantation et à son utilisation.
Page 26 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le groupe PKIX de l’IETF propose une vue simplifiée du modèle architectural de l’ICP
X.509 en la subdivisant en cinq (5) composantes distinctes [RFC 5280], soit :
• L'entité d’extrémité (EE). Abonné et/ou système propriétaire d’une clé publique.
• L'autorité de certification (AC). Composante s’acquittant de la signature des
certificats numériques servant à la diffusion des clés publiques, ainsi que du
maintien du statut de révocation de ceux-ci.
• L'autorité d'enregistrement (AE). Composante optionnelle à qui l’AC délègue
certaines fonctions de gestion. L’AE est entre autres responsable d’effectuer les
vérifications concernant l’identité des entités d’extrémité avant de procéder aux
demandes d’émission de certificats.
• L’émetteur de liste de révocation de certificats (CRL). Composante qui
s’acquitte de la génération des listes de révocation de certificats. Cette tâche est
souvent réalisée par l’AC.
• Le dépôt. Systèmes distribués où sont stockés les certificats ainsi que les listes
de révocation, afin que les utilisateurs puissent les récupérer librement. Ce dépôt
prend généralement la forme d’un annuaire de type LDAP.
Page 27 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Il faut noter que malgré cette subdivision, il est possible que dans certaines
implantations, l’AC s’acquitte des rôles d’autorité d’enregistrement, d’émetteur de listes
de révocation ou d’autorité de séquestre. Cependant, lorsque ces rôles sont délégués à
des composantes externes, l’AC doit avoir en elles une confiance absolue, ce qui
implique qu’elles doivent être soumises à des politiques de sécurité aussi strictes que
l’AC elle-même.
Le tableau suivant décrit sommairement les différents services de gestion qui sont
généralement offerts par les ICP.
Service Description
Enregistrement des abonnés Service par lequel :
• l’AC (ou l’AE) procède à l’identification, ainsi qu’à
l’authentification de l’abonné.
• l’AC procède à l’émission du certificat contenant la clé
publique de l’abonné.
En apposant sa signature numérique sur le certificat d’un
abonné, l’AC certifie que la clé publique contenue dans le
certificat appartient bel et bien à l’abonné identifié par le
certificat.
Révocation de certificats Service qui permet de signaler qu’un certificat n’est plus valide,
suite à la perte ou la compromission de la clé privée associée
par exemple.
Publication de certificats Service par lequel l’AC rend public le certificat à clé publique
des abonnés, de manière à permettre aux utilisateurs de les
obtenir au besoin.
Recouvrement de clés Service permettant d’effectuer une sauvegarde sécurisée de la
clé le déchiffrement. Ainsi, les données chiffrées pourraient être
récupérées dans l’éventualité où un abonné n’aurait plus accès
à sa clé de déchiffrement, par exemple dans le cas du crash de
Page 28 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Service Description
son poste de travail.
Séquestre de clés Service similaire au recouvrement, mais destiné à permettre à
un parti autorisé d’obtenir la clé de déchiffrement d’un abonné,
afin de lui permettre de déchiffrer des données ayant été
chiffrées pour ce dernier. Ceci permet, entre autres, à une
entreprise d’avoir accès à des communications privées d’un
employé.
Service de vérification en Service permettant à un utilisateur de déterminer si un certificat
ligne (OCSP) a fait l’objet d’une révocation, sans avoir à gérer de listes de
révocation (CRL).
Service de vérification hors Service permettant à un utilisateur de récupérer une liste de
ligne (CRL) certificats ayant fait l’objet d’une révocation (CRL). Cette liste
est publiée périodiquement par un service de l’ICP (sur un site
Web, dans un annuaire LDAP, etc.), puis récupérée par les
utilisateurs selon un intervalle défini par une politique de l’ICP.
Service Description
Authentification Service qui permet à un utilisateur de s’assurer qu’une entité
est réellement qui elle prétend être.
Intégrité Service qui permet à un utilisateur de s’assurer que des
données n’ont pas été altérées de manière intentionnelle ou
non, en transit ou depuis un certain temps.
Confidentialité Service qui permet à un utilisateur de s’assurer que seule
l’entité à qui sont destinées les données pourra les interpréter
correctement.
Table 5 - Description des services primaires offerts par l’ICP. Inspiré de [ADAMS03]
Le tableau suivant offre une brève description des services complémentaires rendus
possibles par l’ICP. Contrairement aux trois (3) services fondamentaux décrits
précédemment, ces services peuvent être offerts en option par l’ICP, ou par des entités
externes. Tous ces services ont cependant la propriété d’être réalisables en faisant
appel aux trois (3) principes fondamentaux décrits ci-haut.
Service Description
Communication sécurisée Service permettant de transmettre des données entre deux
entités (un transmetteur et un receveur), en assurant au moins
une des propriétés suivantes : authenticité, intégrité et
confidentialité. Parmi les plus répandus, nous pouvons citer : le
courriel sécurisé (S/MIME), SSL, VPN, etc.
Page 29 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Service Description
Horodatage Mécanisme permettant de lier « cryptographiquement » des
données à une date/heure précise. Ceci permet de prouver que
les données associées existaient après cette date précise.
Notarisation Mécanisme permettant de certifier, hors de tout doute, que les
données concernées sont valides et correctes. Ce mécanisme
repose sur d’autres services de l’ICP tels que l’authentification
et l’horodatage.
Non-répudiation Mécanisme permettant d’assurer que les entités d’extrémité
demeurent honnêtes quant à leurs actions. Les preuves
cryptographiques offertes par ce mécanisme font en sorte que
celles-ci ne peuvent nier leurs actions, à moins d’évoquer la
négligence ou le fait que leur clé privée ait été compromise à
leur insu.
Gestions des privilèges Mécanisme permettant d’identifier et de contrôler ce qu’une
entité est en mesure d’accéder et d’exécuter dans un
environnement spécifique.
Cette section décrit brièvement les principaux protocoles supportés par les différentes
composantes de l’ICP. Ces protocoles permettent aux utilisateurs de l’ICP de faire appel
aux différents services offerts par l’ICP.
Page 30 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 31 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le certificat numérique prend donc la forme d’un bloc de données structuré, répondant à
un format normalisé. Bien qu’il existe plusieurs formats de certificats (ex. : X.509, PGP,
SPKI, etc.), le format X.509 est aujourd’hui la norme de l’industrie qui permet d’assurer
l’interopérabilité entre les différents systèmes.
La figure suivante illustre la structure d’un certificat répondant à la norme X.509.
Page 32 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Lors de l’émission d’un certificat, l‘AC insère la clé publique de l’entité dans le certificat,
puis elle y appose sa signature numérique. En plus de permettre de contrôler l’intégrité
et l’authenticité du certificat, cette signature atteste qu’au meilleur des connaissances de
l’AC, la clé publique qu’il contient appartient bel et bien à l’entité pour laquelle a été émis
le certificat. Ainsi, avant d’utiliser la clé publique contenue dans ce certificat, les
utilisateurs pourront s’assurer que l’entité pour laquelle a été émis le certificat est
réellement en possession de la clé privée associée.
Le tableau suivant décrit brièvement chacun des attributs d’un certificat X.509 v3.
Attribut Description
Version Numéro de version du standard X.509 auquel répond le certificat.
SerialNumber Numéro d’identification du certificat. Ce numéro unique permet
d’identifier le certificat parmi tous les certificats émis par une AC.
Issuer Identité de l’AC ayant émis le certificat.
Validity Période de validité du certificat. Il s’agit de l’intervalle de temps durant
laquelle l’AC s’engage à maintenir le statut de validité du certificat.
Subject Identité de l’entité à qui appartient la clé publique contenue dans le
certificat.
SubjectPublicKeyInfo Clé publique de l’entité ainsi que l’algorithme associé (ex. : RSA).
Extensions Attribut permettant d’ajouter d’autres attributs sans affecter la
définition de la structure du certificat.
Signature Signature apposée par l’AC ainsi que l’identifiant de l’algorithme ainsi
que de la fonction de hachage utilisé pour signer le certificat.
Table 8 - Attributs d'un certificat X.509 v3
Les sections qui suivent abordent trois (3) importants concepts liés aux certificats à clé
publique soit les classes de certificats pouvant être gérés par une AC, le nommage,
c'est-à-dire la manière de nommer le propriétaire ainsi que l’AC émettrice d’un certificat,
et finalement les extensions qui permettent d’ajouter des attributs supplémentaires au
certificat.
Page 33 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
3.3.5.2 Le nommage
Les attributs « Subject » et « Issuer » identifient respectivement l’entité propriétaire de la
clé publique qu’il contient, ainsi que l’AC émettrice du certificat. La valeur de ces
attributs est spécifiée sous la forme d’un « distinguished name » (DN), définit par la
norme X.501. Il s’agit en fait de la méthode de nommage utilisée par les annuaires
X.500 ainsi que LDAP (Lightweight Directory Access Protocol) [RFC4510], dont l’usage
est aujourd’hui très répandu.
Cette méthode de nommage permet de représenter, à l’aide d’une chaine de caractères,
le nom unique d’une entité. Ce nom correspond à la position de l’entrée dans un modèle
hiérarchique qui décrit l’environnement dans lequel existe l’entité. Le DN représente le
chemin absolu qui permet de retrouver l’entité dans la hiérarchie. Ayant pour point de
départ l’entité elle-même, le chemin exprimé par cette notation permet de remonter
jusqu’à la racine de la hiérarchie en parcourant chacune des entrées intermédiaires
(nœuds).
Dans l’exemple suivant, le DN identifie le certificat de l’entité « Serveur1 », émis par
« AC1 », une AC de l’ICP de l’organisation « AI2L.org » :
CN=Serveur1, OU=Certs, OU=AC1, OU=ICP, O=AI2L.org
Dans l’exemple précédant, les attributs utilisés pour nommer chacune des entrées du
DN sont définis dans le standard LDAP. Ces attributs tirent leurs origines de la norme
X.500.
Page 34 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le tableau suivant énumère les attributs standard couramment utilisés pour nommer les
entrés dans un annuaire.
Page 35 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Extension Description
• nonRepudiation;
• keyEncipherment;
• dataEncipherment;
• keyAgreement;
• keyCertSign;
• cRLSign;
• encipherOnly;
• decipherOnly;
Certificate Policies Permet de spécifier la liste des politiques applicables à
l’émission ainsi qu’à l’utilisation du certificat. Les politiques
définissent les règles d’applicabilité du certificat dans un
domaine particulier.
Policy Mappings Permet de spécifier des équivalences entre des politiques de
deux domaines de certification.
Subject Alternative Name Permet de spécifier un nom alternatif afin de désigner l’entité à
qui appartient la clé publique (ex. : adresse de courriel, nom
DNS, etc.).
Issuer Alternative Name Permet de spécifier un nom alternatif afin de désigner l’AC
ayant émis le certificat (ex. : adresse de courriel, nom DNS,
etc.).
Subject Directory Attribute Permet de spécifier des attributs supplémentaires concernant
l’entité propriétaire de la clé publique.
Basic Constraints Permet de spécifier s’il s’agit d’un certificat d’AC ainsi que la
longueur maximale du chemin de certification permis sous ce
certificat. Cette extension permet donc de restreindre le nombre
d’AC subordonné dans la hiérarchie d’AC.
Name Constraints Permet de spécifier l’espace de nommage dans lequel devra se
retrouver l’ensemble des entités pour qui l’AC émettra des
certificats. Applicable uniquement aux certificats d’AC.
Policy Constraints Permet de contrôler l’application des politiques sur les
certificats émis par l’AC. Applicable uniquement aux certificats
d’AC.
Extended Key Usage Permet de spécifier les conditions d’utilisation prévues pour le
certificat. Peut remplacer ou complémenter l’extension « Key
Usage ». Le groupe PKIX a défini les conditions d’utilisation
suivantes :
• id_kp_serverAuth;
• id_kp_clientAuth;
• id_kp_codeSigning;
• id_kp_emailProtection;
• id_kp_ipsecEndSystem;
• id_kp_ipsecTunnel;
• id_kp_ipsecUser;
• id_kp_timeStamping;
• OCSPSigning;
CRL Distribution Point Permet de spécifier comment la liste de révocation de l’AC
émettrice peut être obtenue. La valeur spécifiée prend la forme
Page 36 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Extension Description
d’une liste d’URI (LDAP, HTTP, etc.).
Inhibit anyPolicy Permet de contrôler l’application de la politique « Wildcard »
anyPolicy. Applicable uniquement aux certificats d’AC.
Freshest CRL Permet de spécifier comment obtenir la liste de révocation la
plus récente. Similaire à l’extension « CRL Distribution Point »,
mais conçue pour être utilisée avec les Delta CRL.
Table 10 - Les extensions standards X.509 v3
Un des principaux rôles de l’ICP est de s’acquitter de la gestion complète du cycle de vie
des clés et des certificats. Le cycle de vie des clés et des certificats se divise en trois (3)
phases distinctes, soit :
• Initialisation. Phase initiale du cycle de vie durant laquelle une entité effectue
des démarches pour s’abonner à l’ICP.
• Émis. Phase durant laquelle le certificat d’une entité a été émis et est considéré
comme étant valide.
• Annulation. Phase finale du cycle de vie durant laquelle le certificat d’une entité
devient invalide.
Cette section décrit brièvement chacun des processus pouvant être exécutés dans le
cadre des différentes phases, telles qu’exposées dans [ADAMS03].
Page 37 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
3.3.6.1.1 Enregistrement
C’est lors du processus d’enregistrement qu’est réalisé l’ensemble des vérifications
quant à l’identité de l’entité d’extrémité qui désire s’abonner à l’ICP. Les vérifications à
réaliser sont dictées par les politiques de l’ICP. Le processus d’enregistrement peut être
réalisé de différentes manières.
La figure suivante illustre un scénario d’enregistrement réalisé à partir d’un fureteur Web
auprès d’une autorité d’enregistrement.
À noter que dans ce type de scénario, la requête de certificat qui est réalisée par l’entité
d’extrémité nécessite la spécification d’un mot de passe. Ce mot de passe aura
préalablement été communiqué à l’entité d’extrémité par l’AE suite à l’enregistrement.
L’enregistrement peut aussi s’effectuer en contactant directement l’AC. L’utilisation d’une
AE est un choix d’implantation qui se justifie en fonction des besoins et de la
configuration de l’ICP. De plus, il faut savoir qu’il est aussi possible de réaliser
l’enregistrement en fournissant un CSR (Certificate Signinig Request) ou en utilisant un
protocole tel que SCEP (Simple Certificate Enrollment Protocol), utilisé par différents
manufacturiers d’équipement réseau.
Page 38 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 39 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Ce n’est qu’après avoir réalisé l’ensemble de ces validations avec succès que
l’utilisateur peut utiliser la clé publique de l’entité pour réaliser des opérations
cryptographiques.
Page 40 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
3.3.7 La confiance
D’un point de vue technique, la génération de certificats à clé publique constitue en soi
une opération relativement simple. Il existe aujourd’hui des logiciels (ex. OpenSSL) qui
permettent d’émettre des certificats sans trop d’efforts. Ces logiciels peuvent être
téléchargés librement et gratuitement sur l’internet. Il est ainsi possible, pour quiconque
désirant générer des certificats, d’installer ce type de logiciel sur son poste de travail
personnel, de créer sa propre autorité de certification, et ainsi procéder à la génération
de certificats à clé publique.
Les certificats générés par ces autorités de certification improvisées sont tout aussi
valides que ceux ayant été générés par une autorité de certification reconnue. Ils
respectent le standard X.509 et peuvent être utilisés par les différents systèmes de
sécurité faisant usage de la cryptographie à clé publique. Le respect du standard X.509
permet d’assurer une compatibilité d’un point de vue technique, mais n’offre que très
peu de valeur en termes de sécurité. Bien que les certificats générés de cette manière
puissent satisfaire des besoins liés à un usage personnel, tel que le chiffrement de
fichiers par exemple, il en est autrement pour des opérations plus critiques, telles que
des échanges entre partenaires d’affaires, ou des transferts de fonds entre des
institutions financières.
C’est la notion de « confiance » qui confère à un certificat numérique toute sa valeur en
termes de sécurité. Le niveau de confiance que l’on accorde à une autorité de
certification qui a émis un certificat à clé publique permet d’évaluer le niveau de risque
associé à l’utilisation de ce certificat.
Le niveau de confiance que l'on peut accorder à une infrastructure à clé publique est
basé sur les politiques de certification ainsi que sur l'intégrité de ses AC. Cette intégrité
découle de la protection de sa clé de signature. Cette clé sert à signer les certificats à
clé publique des entités d’extrémité de l’ICP. De plus, dans le cas d’une AC racine, cette
clé de signature est aussi utilisée pour signer sa propre clé publique. Lorsque la clé de
signature d’une AC est compromise, cela signifie que tous les certificats signés par cette
AC ainsi que par les AC subordonnées, deviennent aussitôt suspectes, et ainsi la
crédibilité de l'ICP est détruite.
Cette section effectue un survol des modèles de confiance ainsi que du mécanisme de
validation qui permet d’établir le niveau de confiance d’un utilisateur envers un certificat.
Page 41 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 42 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Cette section décrit les modèles de confiance les plus répandus, ainsi que leurs
avantages et inconvénients respectifs.
Page 43 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Remarques Modèle très simple, peu évolutif et difficile à gérer. Entre autres
utilisé par les fureteurs Web.
Page 44 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 45 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Remarques Les certificats émis dans ce modèle sont plus complexes. Il est
plus difficile de gérer les politiques en fonction du type de
certificat émis.
Page 46 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 47 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 48 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 49 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Les produits propriétaires avec lesquelles celui-ci a été comparé, ont quant à eux été
sélectionnés en fonction de la réputation de leurs éditeurs. Il s’agit donc de :
• RSA Digital Certificate Solution;
• Entrust Authority Security Manager.
À noter que cette étude comparative est basée sur la documentation publiée sur les
sites web des éditeurs, ainsi que sur une étude réalisée par le laboratoire indépendant
« NSS Labs» en 2002 [NSS2002]. Notre étude fut réalisée dans le but d’identifier les
écarts fonctionnels entre le produit en logiciel libre EJBCA et les produits propriétaires
qui constituent habituellement le « nec plus ultra » des ICP.
Les sections 4.1.1 à 4.1.3 explorent deux produits d’ICP propriétaires, ainsi qu’un produit
d’ICP en logiciel libre dans le but d’en comparer les principales caractéristiques. La
section 4.2.3 présente certaines observations faites sur ces solutions.
Page 50 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le produit offert par RSA est composé de modules interopérables qui permettent
d’effectuer la gestion des certificats numériques. Celui-ci permet de créer un
environnement où il est possible d’authentifier et de protéger les communications ainsi
que les transactions électroniques.
Les principaux modules offerts par ce produit sont les suivants :
• RSA Certificate Manager. Ce module permet de gérer les certificats
numériques. Celui-ci est conçu de manière à permettre aux entreprises de
réaliser efficacement des transactions électroniques sécurisées. Il permet aux
entreprises de mieux gérer le développement, ainsi que le déploiement de
services de commerce électronique en offrant un service d’automatisation, ainsi
qu’une gestion centralisée des clés cryptographiques et des certificats
numériques.
• RSA Registration Manager. Ce module agit en collaboration avec le module
RSA Certificate Manager. Celui-ci s’acquitte du processus d’inscription en gérant
les grands volumes de demandes de certificats provenant des entités
d’extrémité. Il permet de s’assurer de la légitimité des demandes en validant
l’identité des demandeurs ainsi que de l’entité d’extrémité.
• RSA Key Recovery Manager (optionnel). Ce module permet de conserver, de
manière sécurisée, les clés privées des entités d’extrémité en vue de rencontrer
des exigences réglementaires, ou d’être en mesure de récupérer des documents
chiffrés suite à un crash ou à un litige.
Page 51 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 52 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 53 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Éditeur Entrust
Produit Entrust Authority Security Manager
Version actuelle 7.0
Référence http ://www.entrust.com/pki/
Plateformes Microsoft® Windows® Server 2003 Standard
supportées Microsoft® : Windows® Server 2003 Enterprise
Microsoft® Windows® 2000 Server
Microsoft® Windows® 2000 Advanced Server
Sun Solaris 9 and 8
HP®-UX 11i
IBM AIX 5.1
Standards de Émission de certificats pour utilisateurs, équipements et applications
certificats supportant le standard de certificat X.509.
supportés Supporte les standards de certificats tels que :
CRL
PKIX-CMP
PKCS#7/10
SCEP
Permet l’interopérabilité avec les applications intégrant les concepts
d’ICP tels que les VPN, les navigateurs Web, le courrier électronique et
les applications de commerce électronique.
Certifications de Common Criteria EAL4+
l’industrie
Caractéristiques de Interopérable avec annuaires LDAP (incluant Microsoft Active Directory)
l’annuaire
Caractéristiques de Liste de révocation (CRL) X.509 et CRL avec extensions
l’ICP Nombre illimité d’AC subordonnée dans la chaîne de confiance (ICP
hiérarchique)
Support pour certification d’égal à égal (peer-to-peer) et certification
croisée hiérarchique d’AC (hierarchical crosscertification of CAs)
Caractéristiques de Certificats X.509 v1 et v3
certificats Certificats RSA, DSA et ECDSA
Longueur de clés allant jusqu’à 4096-bit pour authentification
Configuration flexible des DN de certificats
Certificats S/MIME
Signature d’objets (Java™, ActiveX®)
Extensions PKIX v3
Extensions SET
Certificats Firefox® et Microsoft® Internet Explorer
Support RSA (jusqu’à 6144-bits)
Page 54 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 55 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
4.1.3 EJBCA
Entièrement écrit en Java/J2EE, EJBCA est un produit d’ICP en logiciel libre sous
licence LGPL. Enregistré auprès de SourceForge.net en 2001, le projet EJBCA est
principalement financé par la firme Suédoise PrimeKey Solutions, un éditeur de logiciels
libres spécialisé en ICP. Cet éditeur propose donc le produit EJBCA qu’elle décrit
comme étant le chef de file en matière d’ICP en logiciel libre. PrimeKey soutient que le
produit EJBCA est installé et utilisé dans de grandes entreprises comptant plusieurs
milliers d’employés, ainsi que dans des entreprises faisant l’émission de plusieurs
millions de certificats [PRIMEKEY]. De plus, toujours selon PrimeKey, il semblerait que
certaines installations d’EJBCA aient été certifiées, confirmant ainsi d’une certaine
façon, la conformité du produit à de hauts standards tels qu’ETSI ou WebTrust.
L’objectif du projet EJBCA est d’offrir un produit d’ICP hautement paramétrable, offrant
les composantes de bases d’une ICP. Cette ICP permet la gestion des certificats à clé
publique, tout en assurant une délégation complète des droits d’administration. Il s’agit
d’un produit pouvant offrir un haut niveau de performance, de disponibilité et
d’extensibilité [PRIMEKEY].
Le produit EJBCA à l’avantage d’être totalement indépendant des systèmes
d’exploitation, des SGBD et des serveurs d’applications. Son architecture Web 3 tiers
est très bien adaptée aux infrastructures actuelles des entreprises. En plus de l’interface
Web standard, EJBCA offre aussi une interface SOAP, ainsi qu’une interface par ligne
de commande qui facilite l’intégration et l’automatisation de certaines opérations.
Le diagramme suivant illustre l’architecture applicative à 3 tiers d’EJBCA.
En plus des fonctions de base offertes par la plupart des produits d’ICP propriétaires,
EJBCA offre un serveur OCSP, un serveur d’horodatage, ainsi qu’un serveur de
signature. [EJBCAFU]
Page 56 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Voici la liste des composantes offertes par EJBCA qui permettent de réaliser l’ensemble
des opérations du cycle de vie des certificats :
• Autorité de certification (AC). Composante à la base de l’ICP EJBCA. Celle-ci
s’acquitte de l’émission et de la gestion des certificats numériques.
• Autorité d’enregistrement (AE). Composante qui s’acquitte du processus
d’inscription des entités d’extrémité. Celle-ci est responsable des fonctions qui lui
sont déléguées par l’AC en vertu de la politique de certification.
• Autorité d’enregistrement locale (AEL). Composante qui permet aux
personnes, aux machines ou aux agents logiciels d’effectuer des demandes de
certificats.
• Dépôts. Composantes qui stockent les éléments publics de l’ICP tels que les
certificats et les listes de certificats qui ont été révoqués (CRL), de manière à les
rendre disponibles aux utilisateurs.
Toutes les fonctions offertes par EJBCA peuvent être administrées à l’aide d’une
interface Web, dont l’accès peut être contrôlé à l’aide d’un mécanisme d’authentification
forte par certificat.
EJBCA a été construit de manière à répondre rapidement et sans développement
complémentaire, aux contraintes liées aux certificats de l’entreprise. Il permet donc de
créer des profils de certificat, des formulaires de requête, des cinématiques
fonctionnelles, ainsi que de personnaliser des cartes à puce ou des « dongles » USB
[EJBCAFU].
Le diagramme suivant illustre les quatre (4) niveaux fonctionnels d’EJBCA.
Page 57 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 58 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Certificats S/MIME.
Signature d’objets (Java™, ActiveX®).
Extensions PKIX v3
Certificats Netscape, Mozilla, Microsoft® Internet Explorer, etc.
Certificats pour authentification par carte à puce.
Support RSA (jusqu’à 4096-bits)
cryptographique Elliptic Curve DSA signing
MD5, SHA-1, SHA-256
Chiffrement API modulaire pour équipements de type Hardware Security Module
matériel (HSM). Support “Built in” pour nCipher, PrimeCardHSM, Eracom
(maintenant SafeNet), SafeNet Luna, Utimaco CryptoServer, AEP
Keyper, ARX CoSign et autres équipements HSM offrant une librairie
PKCS#11.
Modèle tarifaire Gratuit. Offert en logiciel libre sous licence LGPL, donc libre de toute
redevance pour utilisation, amélioration ou redistribution.
Table 18 - Caractéristiques techniques - EJBCA
Après avoir effectué un survol rapide de ces trois (3) produits d’ICP, nous pouvons
constater que ceux-ci :
• Comportent des caractéristiques techniques similaires;
• Offrent l’ensemble des services de base que doit offrir une ICP;
• Respecte les standards de l’industrie (ex. : X.509 v3, CRL, PKIX, SCEP, etc.);
• Supporte un nombre illimité d’autorités de certification subordonnées;
• Supportent les principaux algorithmes cryptographiques (Ex. RSA, DSA, SHA-1,
SHA-2, etc.);
• Supportent des longueurs de clés RSA de plus de 2048 bits;
• Supportent les annuaires de type LDAP v3;
• Permettent l’utilisation d’un module cryptographique (HSM);
D’un point de vue technique, il est clair que ces trois (3) produits sont aptes à remplir
leur mission, et à répondre à la majorité des besoins auxquels doit répondre une ICP.
Cette comparaison a cependant permis de faire ressortir l’existence de deux (2)
différences importante entre les produits propriétaires et EJBCA, soit :
1. Le produit EJBCA n’a fait l’objet à ce jour d’aucune certification en termes de
sécurité. Les produits propriétaires ont tous deux fait l’objet d’une certification
selon la norme Common Criteria (ISO/IEC 15408);
2. Le produit EJBCA étant offert sous licence LGPL, celui-ci offre donc toutes les
libertés fondamentales associées au logiciel libre. Son utilisateur est donc libre
de l’exécuter, de l’adapter, de l’améliorer et de le redistribuer sans aucune
redevance. Il s’agit d’un avantage marqué de cette solution sur les solutions
propriétaires.
Page 59 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Les sections 4.2.1 et 4.2.2 explorent les solutions d’ICP offertes par certains éditeurs de
produits d’ICP dans le but de comprendre leur fonctionnement. Nous devons tenir
compte de ce mode d’exploitation, car celui-ci pourrait représenter une alternative
intéressante pour les EESS (Entreprises de l’Économie Sociale et Solidaire). La section
4.2.3 présente certaines observations faites sur ce type de solutions.
Page 60 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La solution Managed Services PKI offerte par Entrust permet aux entreprises de
bénéficier du contrôle offert par l’exploitation d’une ICP interne, sans avoir à faire
l’acquisition, le déploiement ainsi que l’exploitation d’un produit d’ICP. Selon Entrust,
cette solution offre les principaux avantages suivants :
• Mise en place rapide. Aucun déploiement requis;
• Faible investissement initial. Il n’est pas nécessaire de mettre en place des
installations sécurisées et autres mécanismes de protection;
• Facturation à la demande. Les entreprises paient que pour ce dont elles ont
besoin.
• Fiabilité. Cette solution permet de bénéficier d’une infrastructure complètement
redondante, offrant surveillance, sauvegarde robuste ainsi qu’un plan de
recouvrement en cas de désastre exceptionnel.
La figure suivante offre une vue de haut niveau de l’architecture de la solution, où on
peut voir que l’ICP réside entièrement dans les installations sécurisées d’Entrust.
L’entreprise accède aux différents services de l’ICP via l’Internet.
Page 61 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
• Service dédié. Les certificats sont émis par un CA dédié à l’entreprise. Cette
solution permet donc de personnaliser les certificats ainsi que les politiques (CP
et CPS).
• Service d’autorité racine. Solution qui permet à une entreprise de posséder sa
propre AC racine, à laquelle il est possible de rattacher des CA subordonnés
situés à l’extérieur de chez Entrust.
Page 62 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
En ayant pris connaissance des offres de ces deux (2) entreprises en matière de
solutions d’ICP sous forme d’un service hébergé, nous pouvons réaliser les deux
constats suivants :
• C’est possible de le faire. À premier abord, en ayant connaissance de l’aspect
critique de l’ICP en termes de sécurité, il ne semblait pas évident qu’une telle
solution puisse être exploitée dans un nuage (cloud). Nous venons de constater
qu’il est possible de le faire dans un environnement contrôlé, répondant à
certaines exigences de sécurité.
• Cette option comporte des avantages intéressants. L’implantation ainsi que
l’exploitation d’une ICP au sein d’une entreprise implique des coûts initiaux
substantiels, une expertise spécialisée, ainsi que la mise en place d’installations
sécurisées. Or, l’hébergement permet de centraliser les installations, de manière
à libérer les utilisateurs de cette lourdeur inhérente à l’ICP.
Il va de soit que la gestion des certificats à clé publique n’est pas le « core business »
des EESS (Entreprises de l’Économie Sociale et Solidaire). Par contre, ces entreprises
ne peuvent négliger l’aspect de confiance offert par les certificats, c’est pourquoi celles-
ci n’ont d’autres choix que de faire selon les règles de l’art.
C’est dans cette situation bien précise que la solution de l’hébergement prend tout son
sens. Elle permet de bénéficier d’une infrastructure de confiance fiable avec un minimum
d’efforts et d’investissements. La mise en place d’une ICP centralisée, dans laquelle une
AC est partagée par plusieurs entreprises, devrait permettre de réaliser une économie
d’échelle considérable, tout en simplifiant la tâche des administrateurs TI des
entreprises.
Page 63 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
5 Recommandations
Page 64 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 65 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La mise en œuvre d’une ICP centralisée constitue l’occasion parfaite pour tirer profit de
la « virutalisation » des serveurs. Une étude préliminaire réalisée par la Chaire en 2009
a conclu que l’utilisation du « cloud computing » au sein d’une communauté telle que les
EESS, représentait une option intéressante [COPPO09]. L’ICP pourrait donc être la
première composante à être offerte sous la forme d’un SaaS (Software as a Service),
hébergée dans un « cloud » communautaire déployé par la Chaire.
La figure suivante offre une vue globale de la solution proposée.
La section 5.1.1 présente la liste des logiciels libres qui permettront la mise en œuvre
d’une ICP dans le « cloud » communautaire des EESS. La section 5.1.2 décrit
brièvement la manière dont ces composantes devront être agencées afin de former une
ICP répondant aux besoins des EESS.
Page 66 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Composante Produit
Système d’exploitation Linux (distribution au choix)
ICP (AC, EA, OCSP) EJBCA
http://www.ejbca.org/
Serveur d’applications J2EE Jboss
http://www.jboss.org/
Java Runtime Environment Sun Java SE Development kit
http://java.sun.com/
Base de données PostgreSQL
http://www.postgresql.org/
Annuaire LDAP ApacheDS
http://directory.apache.org/
Serveur de signature SignServer
(Horodatage et Notarisation) http://www.signserver.org/
Serveur Web Apache HTTP Server
http://httpd.apache.org/
Pare-feu applicatif ModSecurity
http://www.modsecurity.org/
5.1.1.2 EJBCA
Ce produit d’ICP est décrit en détail dans la section 4.1.3. Des travaux réalisés dans le
chantier sécurité de la Chaire font aussi référence au produit EJBCA pour la gestion des
certificats à clé publique [HETUM09].
Page 67 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
5.1.1.3 JBoss
JBoss est un serveur d’application J2EE en logiciel libre reconnu et largement utilisé par
la communauté de développeurs d’application Web d’entreprise. Pour s’exécuter, les
composantes logicielles d’ICP EJBCA doivent être déployées dans un serveur J2EE.
JBoss est un des nombreux serveurs d’applications supportés par le produit EJBCA.
5.1.1.5 PostgreSQL
PostgreSQL est un puissant système de gestion de base de données (SGBD) objet-
relationnelle en logiciel libre qui a fait ses preuves depuis plus de 15 ans. Il s’agit d’un
SGBD de grade commercial offrant toute la puissance, la robustesse, ainsi que la
fiabilité attendue d’un tel système. PostgreSQL est compatible avec les composantes
d’ICP d’EJBCA ainsi que le système d’exploitation Linux.
5.1.1.6 ApacheDS
ApacheDS est un serveur d’annuaire entièrement écrit en Java qui supporte le standard
LDAPv3. Ce service d’annuaire a d’ailleurs été retenu par la Chaire lors de travaux
réalisés dans son chantier architectural [CHAIRE]. ApacheDS sera utilisé pour la
publication des certificats ainsi que des listes de révocations de l’ICP.
5.1.1.7 SignServer
Membre de la famille d’EJBCA, SignServer est un « framework » applicatif auquel les
applications peuvent déléguer l’exécution de certaines opérations cryptographiques.
SignServer offre des services tels que :
• Service d’horodatage conforme au [RFC3161];
• Service de signature de documents (PDF, XML, ODF, etc.);
• Service de validation de documents XML;
• Service de validation de certificats à l’aide de CRL ou d’OCSP;
Dans l’ICP des EESS, cette composante sera principalement utilisée pour son service
d’horodatage ainsi que pour réaliser la signature dans le cadre des opérations de
notarisation. Des travaux réalisés dans le chantier sécurité de la Chaire font aussi
référence au produit SignServer pour la notarisation [HETUM09].
Page 68 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
5.1.1.9 ModSecurity
ModSecurity est un pare-feu applicatif qui protège les applications Web de différentes
attaques. Ce module offre des fonctions de surveillance, de journalisation, et d’analyse
en temps réel du trafic HTTP. Ce module peut être installé en mode autonome, ou
intégré au serveur Web Apache. Le mode intégré est recommandé, car ainsi il se greffe
à une composante essentielle de l’architecture Web, soit le serveur mandataire inverse
(reverse-proxy).
Des travaux réalisés dans le chantier sécurité de la Chaire font aussi référence au
produit ModSecurity à titre de pare-feu applicatif [HETUM09].
Cette section décrit brièvement la manière dont devraient être organisées les différentes
composantes de l’ICP dans le « cloud » communautaire des EESS. L’objectif n’est pas
de définir la solution complète, mais plutôt de proposer un modèle de base sur lequel la
Chaire pourra s’appuyer pour élaborer la solution finale.
La section 5.1.2.1 décrit la configuration des composantes logicielles des serveurs de
l’ICP et la section 5.1.2.2 propose un modèle pour la répartition de ces serveurs sur le
réseau.
Page 69 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 70 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Il sera préférable de placer les AC émettrices dans la zone sécurité pour les raisons
suivantes :
• Les AC sont des composantes critiques qui ne devraient pas être accessibles de
l’internet;
• Seuls les administrateurs de l’ICP ayant un niveau de privilège élevé devraient
avoir accès aux AC.
L’enregistrement des abonnées sera réalisé exclusivement à travers les AE. Afin de
restreindre le trafic qui entre dans la zone de sécurité où résidera l’AC, les AC
émettrices iront elles-mêmes, de façon périodique, lire les requêtes de signature dans la
zone de production où résideront les AE.
Ce mécanisme est rendu possible grâce au « External RA API » offert par le produit
EJBCA. La Chaire devra cependant développer sa propre interface AE, qui consiste en
une petite application Web qui fera appel à cette API.
Page 71 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La figure suivante illustre les deux (2) niveaux d’AC de l’ICP dont le 2ième niveau
comporte une AC responsable d’émettre des certificats pour les entités d’extrémité tels
que les personnes, les équipements réseaux, les serveurs Web internes, etc., ainsi
qu’une AC responsable d’émettre des certificats pour des AC subordonnées.
Page 72 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
L’ICP devra faire appel à des algorithmes cryptographiques reconnus, et utiliser des clés
de longueurs suffisamment grandes, afin d’assurer un niveau de robustesse adéquat
des mécanismes de sécurité. Il est donc suggéré de suivre les recommandations émises
par le NIST à cet effet. La publication spéciale SP800-57 [SP800573] définit les
algorithmes ainsi que la taille des clés à utiliser par les utilisateurs ainsi que les
composantes d’une ICP.
Page 73 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Il existe plusieurs fonctions de hachage. Le standard FIPS 180-3 [FIPS180] décrit deux
familles d’algorithme de hachage, soit :
• SHA-1;
• SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512);
De ces algorithmes, SHA-1 est encore aujourd’hui celui qui est le plus utilisé par les
systèmes de sécurité [WIKISHA], par contre il s’agit aussi du plus faible. Bien qu’une
faille de sécurité ait été identifiée en 2005, cet algorithme fait toujours partie de la liste
des algorithmes recommandés par le NIST [SP800107].
Malgré le fait que le NIST recommande aux agences américaines de ne plus utiliser
SHA-1 pour la signature numérique dans les applications développées après 2010
[SP800107], son utilisation demeure acceptable en entreprise, car SHA-1 offre encore
un niveau de robustesse adéquat pour celles-ci, et qu’il existe encore beaucoup de
systèmes qui ne supportent pas la famille SHA-2.
Même si EJBCA supporte la famille d’algorithme de hachage SHA-2, il est tout de même
recommandé d’utiliser l’algorithme SHA-1 pour des raisons d’interopérabilité avec les
systèmes de sécurité.
Bien que l’AC soit apte à générer les paires de clés des entités d’extrémité ainsi que des
AC intermédiaires, il faut privilégier une approche où le matériel cryptographique est
généré par son propriétaire. Par exemple, au moment de configurer un serveur Web
sécurisé, l’administrateur du serveur procède à la génération de la paire de clés, ainsi
que du CSR (Certificate signing request) qu’il acheminera par la suite à l’AC afin qu'elle
puisse procéder à la signature. Après avoir réalisé la signature, l’AC retourne le certificat
à clé publique à l’administrateur du serveur Web qui procède à son installation.
Page 74 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La section 3.3.8.2 présentait deux (2) types de modules de sécurité qui pourraient
satisfaire les besoins des composantes de l’ICP. Cependant, afin de tirer pleinement
avantage des différents mécanismes de sécurité offerts par les applications qui seront
mis en place par la Chaire, les EESS devraient considérer l’utilisation de la carte à puce
pour le stockage des clés privées des administrateurs et utilisateurs bénéficiant de
privilèges élevés.
Les cartes à puce offrent un niveau de sécurité physique très élevé. Plusieurs modèles
supportent l’interface standard PKCS#11, garantissant ainsi la compatibilité avec les
applications. La carte à puce offre un moyen efficace de protéger les clés privées et
permet de réaliser une authentification forte à deux facteurs, en utilisant les certificats
générés par l’ICP.
Page 75 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Une clé cryptographique ne devrait être utilisée que pour une seule fin (par exemple
pour le chiffrement, l’authentification, l’emballage de clé, la génération de nombres
aléatoires, ou la signature numérique) [SP800571]. Par conséquent, il est préférable de
définir plusieurs profils de certificats correspondants aux différentes utilisations.
Le tableau suivant décrit les profils de certificats qui devraient permettre de combler
l’ensemble des besoins des EESS :
Profil de certificat Extension Valeurs
AC Key Usage Certificate Signing
Off-line CRL Signing
CRL Signing
Extended Key Usage -
OCSP Key Usage Digital Signature
Extended Key Usage OCSPSigning
Signature de code Key Usage Digital Signature
Extended Key Usage Code Signing
SSL Serveur Key Usage Digital Signature
Key Encipherment
Extended Key Usage Server Authentication
Entité d’extrémité Key Usage Digital Signature
Key Encipherment
Non-repudiation
Extended Key Usage Client Authentication, Email Protection
Table 22 - Utilisation des clés par type de certificat
Le tableau suivant contient des valeurs suggérées, basées sur les pratiques courantes
de certaines autorités de certification reconnues.
Page 76 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 77 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Afin d’éviter cette situation, les EESS devront faire l’acquisition des certificats SSL
destinés aux serveurs web publics auprès d’une autorité de certification reconnue. À
noter que, bien qu’il s’agisse d’une pratique peu courante, les EESS pourraient
éventuellement décider d’émettre, via leur ICP communautaire, un certificat à clé
publique à chacun de leurs clients. Ces certificats pourraient par exemple servir à
l’authentification des clients qui accèdent aux applications web de l’entreprise.
Page 78 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
6 Expérimentations
Ce chapitre décrit les expérimentations menées dans le cadre de ce projet. Des travaux
pratiques furent réalisés, afin de démontrer comment la Chaire et les EESS pourront
utiliser les certificats à clé publique émis par l’ICP, afin de sécuriser des applications
web internes, ou partagées par les membres de la communauté des EESS.
La section 6.1 décrit l’infrastructure ayant été mise en place afin de produire les
certificats nécessaires aux expérimentations. Les sections 6.2 et 6.3 décrivent la marche
à suivre pour utiliser les certificats à clé publique dans un contexte d’application web en
configurant adéquatement un serveur web Apache et un fureteur web FireFox.
La section 6.1.1 décrit la configuration logicielle du poste client ainsi que du serveur
hébergeant l’ICP. La section 6.1.2 décrit l’architecture de l’ICP ainsi que les certificats
utilisés pour mener les expérimentations.
Page 79 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La figure ci-dessous illustre l’agencement des composantes logicielles installées sur les
deux ordinateurs utilisés pour réaliser les expérimentations.
Les composantes logicielles ont été installées en suivant les procédures d’installation
disponibles sur les sites internet des éditeurs.
Page 80 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le tableau ci-dessous contient les valeurs des principaux attributs des certificats
X.509v3 émis via l’ICP pour réaliser les expérimentations.
Autorité de certification racine
DN du sujet CN=RootCA1, O=AI2L.org
DN de l’émetteur CN=RootCA1, O=AI2L.org
Validité 20 ans
Clé publique RSA (2048 bits)
Key Usage Digital Signature, Key certificate sign, CRL sign.
Algorithme de signature SHA1WithRSAEncryption
Autorité de certification émettrice pour serveurs SSL
DN du sujet CN=AI2L.org CA pour Serveurs SSL, O=AI2L.org
DN de l’émetteur CN=RootCA1, O=AI2L.org
Validité 10 ans
Clé publique RSA (2048 bits)
Key Usage Digital Signature, Key certificate sign, CRL sign.
Algorithme de signature SHA1WithRSAEncryption
Autorité de certification émettrice pour utilisateurs
DN du sujet CN=AI2L.org CA Classe-1, O=AI2L.org
DN de l’émetteur CN=RootCA1, O=AI2L.org
Validité 10 ans
Clé publique RSA (2048 bits)
Key Usage Digital Signature, Key certificate sign, CRL sign.
Algorithme de signature SHA1WithRSAEncryption
Entité d’extrémité Serveur
DN du sujet CN=www.serveur1.ai2l.org, O=AI2L.org
DN de l’émetteur CN=AI2L.org CA pour Serveurs SSL, O=AI2L.org
Validité 2 ans
Clé publique RSA (2048 bits)
Key Usage Digital Signature, Key encipherment
Algorithme de signature SHA1WithRSAEncryption
Client
DN du sujet CN=Utilisateur1, O=AI2L.org
DN de l’émetteur CN=AI2L.org CA Classe-1, O=AI2L.org
Validité 2 ans
Clé publique RSA (2048 bits)
Key Usage Digital Signature, Non-repudiation, Key encipherment
Algorithme de signature SHA1WithRSAEncryption
Table 24 - Attributs des certificats utilisés pour les expérimentations
Page 81 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La génération des clés du serveur fût réalisée en place, c'est-à-dire sur le serveur où
s’exécute le serveur Web qui utilisera la clé privée. Pour ce faire, nous avons fait appel à
OpenSSL (www.openssl.org), une boîte à outils pratique, offrant une interface ligne de
commande qui permet entre autres de réaliser rapidement différents types d’opérations
cryptographiques.
OpenSSL permet de réaliser en une seule étape, la génération des clés
cryptographiques ainsi que la création de la requête de signature de certificat (CSR). Au
moment de l’exécution de cette commande, il faut fournir certaines informations sur
l’identité de l’entité, ainsi que le mot de passe servant à protéger la clé privée.
Page 82 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 83 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Lorsqu’un certificat SSL serveur est émis par une autorité de certification émettrice
intermédiaire, il faut configurer la chaine de certificat complète au niveau du serveur
Web Apache. En d’autres mots, il faut fournir au serveur Web tous les certificats de la
hiérarchie d’AC qui sont nécessaires à la validation de son propre certificat. Ainsi, le
serveur pourra transmettre cette chaine de certificats aux clients lors de l’établissement
de la connexion (handshake), afin de leur permettre d’authentifier son certificat.
Dans le modèle de confiance à deux (2) niveaux, la chaine de certificat se compose
donc des certificats de l’AC racine « CN=RootCA1, O=AI2L.org », ainsi que de l’AC
intermédiaire ayant signée le certificat du serveur, c'est-à-dire « CN=AI2L.org CA pour
Serveurs SSL, O=AI2L.org ». Ces certificats ont été téléchargés en format PEM (Privacy
Enhanced Mail) à partir du site Web public de l’ICP, à l’aide de la fonction « Fetch CA &
OCSP Certificates ».
Page 84 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Le serveur Web Apache demande à ce que tous les certificats d’AC de la chaine soient
placés les uns à la suite des autres dans un même fichier PEM. Il a donc fallu
concaténer les deux fichiers PEM téléchargés dans un nouveau fichier nommé
server_ca_chain.pem.
Une fois cette étape franchie, il ne nous restait plus qu’à compléter la configuration du
serveur Web Apache afin qu’il puisse utiliser ces certificats. Pour ce faire, il suffit de
réaliser les quelques opérations suivantes :
1. Créer le répertoire /etc/apache2/ssl et placer les fichiers suivants :
o cert.pem (le certificat à clé publique);
o key.pem (la clé privée);
o server_ca_chain.pem (la chaine de certificats);
2. Éditer le fichier /etc/apache2/sites-available/default-ssl afin d’ajuster les
paramètres suivants :
SSLCertificateFile /etc/apache2/ssl/cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/key.pem
SSLCertificatePathChainFile /etc/apache2/ssl/server_ca_chain.pem
3. Redémarrer le serveur à l’aide de la commande suivante :
sudo /etc/init.d/apache2 restart
4. À l’aide d’un fureteur Web, accéder à la page d’accueil du site :
https://www.serveur1.ai2l.org/
Lors de la tentative de connexion, le fureteur Web Firefox nous signale qu’il lui est
impossible de procéder à la validation du certificat serveur. Ce comportement était
attendu puisque le certificat racine de notre ICP permettant de valider le certificat du
serveur n’avait pas encore été installé au niveau du fureteur Web.
Page 85 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 86 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 87 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La figure suivante illustre la saisie des informations dans le formulaire standard offert par
EJBCA pour récupérer puis installer le certificat d’une entité dans le fureteur Web
Firefox.
Après avoir saisi les informations puis avoir appuyé sur « OK », EJBCA a demandé de
spécifier certaines informations sur le profil de certificat à utiliser lors de la génération.
L’utilisation d’un profil de certificat personnalisé aurait permis d’éviter cette saisie qui
pourrait semer la confusion chez les utilisateurs.
Page 88 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
La figure suivante démontre que le certificat client de l'entité « Utilisateur1 » fût installé
avec succès dans la liste des certificats appartenant à l’utilisateur du fureteur.
Page 89 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Page 90 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
7 Conclusion
En conclusion, depuis son introduction dans les années ’70, la cryptographie à clé
publique a permis de développer de nombreuses solutions de sécurité. Cependant, la
gestion des clés publiques représente toujours un défi de taille pour les entreprises.
Pour effectuer cette gestion, on doit recourir à une infrastructure à clé publique. Cette
infrastructure est constituée de composantes matérielles et logicielles. Son exploitation
est encadrée par des politiques ainsi que des procédures très strictes dont l'objectif est
d’assurer son intégrité afin qu’elle demeure digne de confiance.
Cette étude a démontré que les entreprises peuvent aujourd’hui recourir à différentes
solutions en matière de gestion de clés publiques. Une entreprise peut donc :
• faire l’acquisition de certificats à clé publique auprès d’une autorité de
certification commerciale;
• gérer elle-même ses certificats en faisant appel à une infrastructure hébergée;
• mettre en place sa propre infrastructure qui lui permet de gérer ses propres
certificats à l’interne.
Depuis bon nombre d’années, plusieurs groupes de travail s’affairent à définir des
normes et des standards en la matière. Ces initiatives ont eu pour effet de favoriser
l’interopérabilité entre les différentes composantes de l’ICP et les systèmes de sécurité
qui les utilisent. Les entreprises ont maintenant plus de facilité à mettre en œuvre des
solutions techniques interopérables, car les produits logiciels offerts respectent ces
standards.
Les travaux réalisés dans le cadre de cette étude ont aussi permis d’identifier un produit
d’ICP complet, offert en logiciel libre qui répond aux principaux standards de l’industrie.
Le produit logiciel EJBCA est suffisamment complet et flexible pour répondre à la
majorité des besoins d’une entreprise en matière de gestion des clés publiques. D’un
point de vue technique, nous avons fait la preuve qu’il est possible de mettre en œuvre,
à très peu de frais, une ICP entièrement constituée de composantes en logiciel libre.
Les enjeux entourant l’ICP sont principalement liés à son exploitation. Le développement
et la maintenance des politiques et des procédures d’exploitation de l’ICP nécessitent
différents domaines d’expertise. L’ICP agissant à titre de tiers de confiance a certaines
responsabilités envers ses abonnés et utilisateurs. L’exploitation d’une ICP n’est donc
tout simplement pas à la portée de toutes les entreprises.
La mise en œuvre et l’exploitation d’une ICP interne ne permettent cependant pas de
répondre à tous les besoins de l’entreprise en matière de certificats. Le modèle de
confiance Web basé sur une liste de confiance exige que le certificat racine d’une
autorité de certification soit installé à même le fureteur du client pour que ce dernier
puisse se connecter, sans avertissement de sécurité, à un serveur détenant un certificat
ayant été émis par cette autorité. Or, seuls les certificats racines d’autorités de
certification reconnues sont éligibles à être distribués avec les fureteurs Web. Très peu
d’entreprises ont la volonté ainsi que la capacité de se soumettre à une telle certification,
ainsi que de faire des démarches auprès des éditeurs de fureteurs Web pour que leur
certificat racine soit distribué avec ceux-ci. L’exploitation d’une ICP interne ne permet
donc pas de générer des certificats destinés aux serveurs Web sécurisés accessibles au
grand public.
Page 91 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
À la lumière des faits recueillis dans le cadre de ce projet de recherche ainsi que des
résultats obtenus lors des diverses expérimentations, il fut possible d’émettre un
ensemble de recommandations adressant spécifiquement les besoins des EESS. Parmi
ces recommandations nous pouvons citer :
• Bénéficier des avantages du « cloud computing » en offrant le « PKI as a
service ». Mettre en œuvre une ICP communautaire, entièrement constituée de
produits en logiciel libre. Cette ICP permettra aux EESS de gérer elles-mêmes
leurs certificats à clé publique de manière centralisée, via l’internet;
• Utiliser un modèle de confiance hiérarchique simple;
• Définir les politiques de l’ICP dès le départ, sans procéder à une certification
externe. Ceci pourra toutefois être réalisé dans le futur si jamais le besoin en
était justifié;
• Acquérir les certificats SSL des serveurs Web sécurisés accessibles au grand
public auprès d’une autorité de certification commerciale reconnue;
• Utiliser les algorithmes cryptographiques RSA (2048 bits), Diffie-Helleman et
SHA-1, afin de garantir un niveau robustesse adéquat, ainsi qu’un niveau
d’interopérabilité optimal;
• Stocker la clé privée (de signature) des AC à l’intérieur d’un module de sécurité
matériel (HSM) répondant minimalement aux exigences de la norme FIPS 140-2
niveau 3;
L’application de ces recommandations offrira aux EESS l’opportunité de réduire les
coûts d’acquisition de certificats, ainsi que leur niveau de dépendance envers les
autorités de certification commerciales. Cette stratégie repose sur la centralisation de
l’expertise et des installations, ainsi que sur le partage des coûts de mise en œuvre et
d’exploitation de la solution. En prime, les EESS s’engageront sur une voie plus verte,
car le concept de « cloud computing » permettra de réduire la consommation d’énergie
ainsi que du nombre de serveurs physiques requis, limitant ainsi les effets négatifs de
leurs activités sur l’environnement.
Page 92 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Bibliographie
Livres
[ADAMS03] Adams, C., & Lloyd, S. (2003). Understanding PKI : Concepts, Standards, and
nd
Deployment Considerations (2 Edition)
Boston, MA : Pearson Education inc.
[HOUSL01] Housley, R., Polk, T., (2001). Planning for PKI – Best Practices Guide for
Deploying Public Key Infrastructure.
New York, NY : John Wiley & Sons inc.
Articles
Normes et standards
Page 93 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
RSA Laboratories.
Avril 2009
[PKCS12] PKCS #12 - Personal Information Exchange Syntax Standard.
RSA Laboratories.
Juin 1999
[RFC2560] RFC 2560 - X.509 Internet Public Key Infrastructure Online Certificate Status
Protocol - OCSP.
Juin 1999
[RFC3161] RFC 3161 - Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP).
Août 2001
[RFC3647] RFC 3647 - Internet X.509 Public Key Infrastructure Certificate Policy and
Certification Practices Framework.
Novembre 2003.
[RFC3851] RFC 3851 - Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1
Message Specification.
Juillet 2004
[RFC4210] RFC 4210 - Internet X.509 Public Key Infrastructure Certificate Management
Protocol (CMP).
Septembre 2005
[RFC4211] RFC 4211 - Internet X.509 Public Key Infrastructure Certificate Request
Septembre 2005
[RFC4510] RFC 4211 - Lightweight Directory Access Protocol (LDAP): Technical
Specification Road Map
Juin 2006
[RFC4514] RFC 4514- Lightweight Directory Access Protocol (LDAP): String Representation
of Distinguished Names
Juin 2006
[RFC5280] RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate
Revocation List (CRL) Profile.
Mai 2008
[SP800107] NIST SP 800-107 - Recommendation for Applications Using Approved Hash
Algorithms
Février 2009
[SP80021] NIST SP 800-21 - Guideline for Implementing Cryptography In the Federal
Government
Décembre 2005
[SP800571] NIST SP 800-57 - Recommendation for Key Management – Part 1 : General
Mars 2007
[SP800573] NIST SP 800-57 - Recommendation for Key Management – Part 3: Application-
Specific Key Management Guidance
Décembre 2009
Page 94 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
Sites Web
[AI2L] http://ai2l.org/
Association Internationale du Logiciel Libre pour l'Économie Sociale.
Page d’accueil.
[ANSIX9] http://www.x9.org
Page d’accueil du comité ANSI X9
[CHAIRE] http://www.chaire-logiciel-libre.uqam.ca
Chaire de logiciel libre – Finance sociale et solidaire. Page d’accueil.
[COPPO09] http://www.chaire-logiciel-libre.uqam.ca/IMG/pdf/CloudComputing.pdf
Cloud Computing for Social Economy SMEs – Deploying Open Source Social
and Solidarity Financial Services Applications, Grace Coppola, Dec. 2009
[EJBCA] http://www.ejbca.org
Page d’accueil du projet.
[EJBCAFU] http://www.ossir.org/sur/supports/2008/Presentation-EJBCA-FR_1.1.pdf
EJBCA : Le futur de la PKI
[ENTMNG] http://download.entrust.com/resources/download.cfm/23676/Entrust-Managed-
Services-
Entrust. 3 elements that comprise a high quality PKI … and how you can get it
for less.
[ENTPKI01] http://download.entrust.com/resources/download.cfm/21720/Entrust_and_you_
new_version.pdf/?start
Introduction to Entrust PKI
[ENTTCO] http://download.entrust.com/resources/download.cfm/23826/Entrust-Managed-
Services-PKI_TCO.pdf/?
Entrust. Why outsourcing your PKI provides the best value. A Total Cost of
Ownership analysis
[HETUM09] http://www.chaire-logiciel-
libre.uqam.ca/IMG/pdf/Cartographie_securite_logiciel_libre.pdf
Cartographie des solutions de sécurité dans le monde du logiciel libre,
Michel Hétu, Dec. 2009
[ISOJTC1] http://www.iso.org/iso/fr/standards_development/technical_committees/list_of_i
so_technical_committees/iso_technical_committee.htm?commid=45020
Page du groupe technique ISO JTC 1
[ISOTC68] http://www.iso.org/iso/fr/standards_development/technical_committees/list_of_i
so_technical_committees/iso_technical_committee.htm?commid=49670
Page du groupe technique ISO TC 68 SC 2
[ITUT] http://www.itu.int/ITU-T/index-fr.html
Page d’accueil du groupe ITU-T
[NETASSI] http://www.apprendre-en-ligne.net/crypto/bibliotheque/PDF/IntroToCrypto.pdf
Introduction à la cryptographie
Network Associates, Inc.
[NISTCSD] http://csrc.nist.gov/index.html
NIST Computer Security Division
[NSS2002] http://nsslabs.com/test-reports/NSS-PKI-ED5.pdf
Public Key Infrastructure – Group Test (Edition 5)
The NSS Group, 2002
Page 95 sur 96
Projet en génie logiciel
Gestion des clés publiques pour les EESS
[OPENTR] http://www.opentrust.com/index.php?option=com_content&view=article&id=85
&Itemid=87&lang=fr
OpenTrust PKI
[PKIX] http://www.ietf.org/dyn/wg/charter/pkix-charter.html
Page d’accueil du groupe de travail PKIX (Public-Key Infrastructure X.509)
[PRIMEKEY] http://www.primekey.se/Products/EJBCA+PKI
PrimeKey EJBCA PKI
[RSALABS] http://www.rsa.com/rsalabs/node.asp?id=2124
RSA Laboratories – Standards PKCS.
[WIKISHA] http://en.wikipedia.org/wiki/SHA_hash_functions
Wikipedia. SHA hash functions
[XKMS] http://www.w3.org/TR/xkms/
W3C, XML Key Management Specification (XKMS)
Page 96 sur 96