Les algorithmes de chiffrement asymétrique sont basé sur le partage entre
les différents utilisateurs d'une clé publique. Généralement le partage de cette clé
se fait au travers d'un annuaire électronique (généralement au format
LDAP) ou bien d'un site web.
Toutefois ce mode de partage a une grande lacune : rien ne garantit
que la clé est bien celle de l'utilisateur a qui elle est associée. En
effet un pirate peut corrompre la clé publique présente dans l'annuaire en la remplaçant par
sa clé publique. Ainsi, le pirate sera en mesure de déchiffrer tous les messages
ayant été chiffrés avec la clé présente dans l'annuaire.
Ainsi un certificat permet d'associer une clé publique à une entité
(une personne, une machine, ...) afin d'en assurer la validité. Le certificat est en quelque
sorte la carte d'identité de la clé publique, délivré par un organisme appelé autorité de certification (souvent notée CA pour Certification Authority).
L'autorité de certification est chargée de délivrer les certificats, de leur assigner une date
de validité (équivalent à la date limite de péremption des produits alimentaires), ainsi que de révoquer
éventuellement des certificats avant cette date en cas de compromission de la clé (ou du propriétaire).
Les certificats sont des petits fichiers divisés en deux parties :
- La partie contenant les informations
- La partie contenant la signature de l'autorité de certification
La structure des certificats est normalisée par le standard X.509 de l'UIT,
qui définit les informations contenues dans le certificat :
- Le nom de l'autorité de certification
- Le nom du propriétaire du certificat
- La date de validité du certificat
- L'algorithme de chiffrement utilisé
- La clé publique du propriétaire
L'ensemble de ces informations (informations + clé publique du demandeur)
est signé par l'autorité de certification, cela
signifie qu'une fonction de hachage crée une empreinte de ces informations, puis ce condensé
est chiffré à l'aide de la clé privée de l'autorité de certification; la clé publique ayant été
préalablement largement diffusée afin de permettre aux utilisateurs de
vérifier la signature avec la clé publique de l'autorité de certification.
Lorsqu'un utilisateur désire communiquer avec une autre personne, il
lui suffit de se procurer le certificat du destinataire. Ce certificat contient le nom du destinataire, ainsi
que sa clé publique et est signé par l'autorité
de certification. Il est donc possible de vérifier la validité du message en appliquant d'une part la fonction
de hachage aux informations contenues dans le certificat, en déchiffrant d'autre part la signature de l'autorité
de certification avec la clé publique de cette dernière et en comparant ces deux résultats.
|