Infrastructures à clé publique et certificats
Rubrique : cryptographie, PKI, OpenSSL, certificat, X.509, SSL, sécurité informatique.
Description et origine des PKI
Lors de l’utilisation de la cryptographie à clé publique, chaque utilisateur (qui peut être une personne ou un serveur) possède une paire de clés privée et publique. Afin que l’on puisse l’identifier, un utilisateur doit distribuer ou mettre à disposition sa clé publique auprès de tout le monde.
Une PKI (Public Key Infrastructure) — ou IGC (infrastructure de gestion de clés) en français — permet de mettre à disposition sur un serveur les clés publiques des utilisateurs.
- Mais, dans ce cas, se pose le problème de savoir à qui appartient telle ou telle clé publique. Comment rattacher la clé publique — qui est une chaîne binaire — à son propriétaire ?
- La solution est, non pas de distribuer des clés, mais des certificats numériques contenant ces clés. Un certificat numérique est un fichier qui contient la clé publique d’un utilisateur et son état civil (nom, prénom, adresse, adresse électronique, …). Afin d’être reconnu comme valide et authentique, ce certificat doit être signé par un certificat de confiance de l’autorité de certification (AC), qui est appelé « certificat d’AC racine ».
- Mais comment reconnaître à son tour ce certificat d’AC racine comme valide et authentique ?
- Pour cela, le certificat d’AC racine se signe lui-même : on dit qu’il est autosigné.
Donc, une PKI est une infrastructure qui comprend des serveurs et des certificats et qui met à disposition ses certificats numériques. La norme la plus courante de certificats numériques est la norme ITU-T X.509.
- Qu’est-ce qu’une autorité de certification ?
- Une autorité de certification — CA pour Certificate Autority en anglais — est l’entité juridique représentant un tiers de confiance.
Une PKI peut être formée d’un seul certificat d’AC racine (Root CA certificate) :
Les différents types de certificats
Il existe deux grandes familles de certificats à clé publique :
- les certificats d’autorité de certification (en abrégé « certificats d’AC ») ;
- les certificats d’entités finales (également appelés « certificats finaux »).
Type | Description |
---|---|
AC racine | Une AC racine est représentée par un certificat auto-signé. |
AC subordonnée | Une AC subordonnée est représentée par un certificat émis par une autre AC. |
Type | Usage |
---|---|
Serveur SSL | Mise en œuvre d’un serveur web sécurisé en SSL (cadenas du navigateur fermé), afin d’authentifier le serveur et de chiffrer les données. |
Utilisateur | Authentification forte (e.g. pour un extranet), signature et/ou chiffrement de courriel (e.g. selon la norme S/MIME). |
Signature de code | Garantir l’intégrité et l’authenticité d’un code exécutable ou d’un fichier binaire (e.g. applications, applets Java, paquets tar.gz /RPM/DEB). |
Mettre en œuvre sa propre PKI
Outils de tests
Outils de mise en œuvre manuelle d’une PKI expérimentale :
- OpenSSL, outil Open Source en ligne de commande ;
- XCA, outil graphique Open Source s’appuyant sur OpenSSL (pour GNU/Linux, Windows, Mac OS).
Applications industrielles
Applications de PKI à déployer pour une mise en œuvre en entreprise :
- EJBCA, PKI en Open Source, sous licence libre (GNU Lesser GPL v2.1) ;
- OpenCA, PKI en Open Source, sous licence Apache.
Ressources et outils
Outils pour GNU/Linux
- OpenSSL
- http://www.openssl.org/source/
- Apache
- http://www.apache.org/dist/httpd/
- Mod_SSL
- http://www.modssl.org/source/
- XAMPP (Apache, MySQL, PHP and Perl) pour Linux
- http://www.apachefriends.org/en/xampp-linux.html
Outils pour Windows
- Cygwin (environnement GNU/Linux sous Windows)
- http://www.cygwin.com/
- http://cygwin.cict.fr/release/openssl/
- Win32 OpenSSL (Shining Light Productions)
- http://www.slproweb.com/products/Win32OpenSSL.html
- XAMPP (Apache, MySQL, PHP and Perl) pour Windows
- http://www.apachefriends.org/en/xampp-windows.html