PKI
Niveau :
Résumé : PKI ; IGC
Une PKI (Public Key Infrastructure), en français IGC (Infrastructure de Gestion des Clés) est un système permettant de gérer des clés publiques. Il s’agit en général de gérer des certificats x509. Elle établit un réseau de confiance entre utilisateurs, lequel passe nécessairement par l’autorité de certification.
Ces certificats peuvent servir selon leur contenu à :
- Chiffrer (des communications)
- Signer (des documents)
- S’authentifier (sur des applications)
- Certifier d’autres clés
Disposer d’une PKI signifie qu’on est capable de créer, pour chacun de ses utilisateurs, des certificats qui nous permettront par la suite de lui faire confiance. Pour cela une PKI offre plusieurs services :
- Un service d’enregistrement qui vérifie l’identité des “utilisateurs”
- Un service de signature de demande de certificats
- Un service de renouvellement de certificats
- Un service de publication des certificats
- Un service de révocation des certificats
- Un service de publication des révocations
- Parfois un service de création de clés
Ces fonctionnalités sont généralement regroupées dans des entités séparées pour des raisons de sécurité. En effet, une PKI une fois en place devient rapidement un élément critique puisqu’elle permet de se faire passer pour une entité digne de confiance (pensez social engineering mais sans le social) . C’est pourquoi un certain nombre de fonctionnalités peuvent être installés dans un équipement dédié (un HSM, hardware security module). Du coté utilisateur, on peut faire pareil, sauf qu’on appel cet appareil dédié une carte à puce.
Mettre en place une PKI est une chose assez lourde. Mais elle devient intéressante à partir du moment où on se retrouve à gérer un grand nombre de certificats (beaucoup de serveurs ou beaucoup d’utilisateurs). Vous n’avez pas envie d’installer une PKI pour vous authentifier sur un seul serveur. Mais si vous avez 200 000 employés et que vous voulez que tout le monde signe ses mail en x509, il est temps d’en installer une.
Je voudrais attirer votre attention sur le fait qu’il ne s’agit pas seulement de créer des certificats et de les signer. La confiance se fait sur toute une chaîne, et il faut pouvoir garantir que l’autorité n’a pas été compromise (AC séparée). Il faut pouvoir garantir cette confiance dans le temps (renouvellement), il faut pouvoir se prémunir des erreurs, des vols ou des changements d’organisation (révocation). C’est pourquoi il est nécessaire de prendre son temps avant de l’installer pour bien comprendre le fonctionnement de chaque élément.
Il existe plusieurs PKI open source dont EJBCA ou NewPKI. Je parlerai d’OpenSSL, la PKI du pauvre, dans mes prochains articles. Principalement pour pouvoir mettre les mains dans le cambouis, ne pensez pas à l’utiliser tel quel comme PKI.