Certificat autosigné
En cryptographie et en sécurité informatique, un certificat autosigné (en anglais, self-signed certificate) est un certificat de clé publique qu'un utilisateur émet en son propre nom, par opposition à un certificat émis par une autorité de certification. Un tel certificat est facile à produire et ne coûte rien. Cependant, il ne fournit aucune valeur de confiance.
Par exemple, si le propriĂ©taire d'un site Web utilise un certificat autosignĂ© pour fournir des services HTTPS, les personnes qui visitent ce site ne peuvent pas ĂȘtre certaines d'ĂȘtre connectĂ©es Ă la destination prĂ©vue. Un tiers malveillant pourrait rediriger la connexion en utilisant un autre certificat autosignĂ© portant le mĂȘme nom de titulaire. La connexion est chiffrĂ©e, mais ne mĂšne pas Ă la destination prĂ©vue. En comparaison, un certificat signĂ© par une autoritĂ© de certification empĂȘche cette attaque, car le navigateur Web de l'utilisateur valide le certificat auprĂšs de l'autoritĂ© de certification Ă©mettrice. Le certificat de l'attaquant Ă©choue Ă cette validation.
Les certificats autosignĂ©s ont nĂ©anmoins leurs propres utilisations limitĂ©es. Ils ont une valeur de confiance totale lorsque l'Ă©metteur et l'utilisateur unique sont la mĂȘme entitĂ©. Par exemple, le systĂšme de chiffrement de fichiers de Microsoft Windows (Encrypting File System) Ă©met un certificat autosignĂ© au nom de l'utilisateur qui chiffre et l'utilise pour dĂ©chiffrer les donnĂ©es de maniĂšre transparente Ă la volĂ©e. Un autre exemple est le certificat racine, qui est une forme de certificat autosignĂ©.
Avantages
Les certificats autosignĂ©s peuvent ĂȘtre crĂ©Ă©s gratuitement Ă l'aide d'une grande variĂ©tĂ© d'outils, notamment OpenSSL, Java's keytool, Adobe Reader, wolfSSL et Keychain (en) d'Apple. Ils sont faciles Ă personnaliser ; par exemple, ils peuvent avoir une taille de clĂ© plus longue ou contenir des mĂ©tadonnĂ©es supplĂ©mentaires. Leur utilisation n'implique pas les problĂšmes de confiance envers des tiers qui peuvent signer des certificats de façon incorrecte. Les transactions par certificats autosignĂ©s prĂ©sentent gĂ©nĂ©ralement une surface d'attaque bien plus rĂ©duite, car elles Ă©liminent Ă la fois la validation complexe de la chaĂźne de certificats[1] et les contrĂŽles de rĂ©vocation de l'autoritĂ© de certification telles que les listes de rĂ©vocation de certificats et les protocoles de vĂ©rification de certificat en ligne (en anglais, Online Certificate Status Protocol ou OCSP).
Questions de confiance
Dans une infrastructure à clés publiques basée sur une autorité de certification, les parties engagées dans une communication sécurisée doivent faire confiance à une autorité de certification, c'est-à -dire placer les certificats de l'autorité de certification dans une liste blanche de certificats de confiance. Les développeurs de navigateurs Web peuvent utiliser les procédures spécifiées par le CA/Browser Forum (en) pour inscrire sur une liste blanche des autorités de certification publiques et bien connues. Les groupes individuels et les entreprises peuvent inscrire sur une liste blanche des certificats d'autorité de certification privés supplémentaires. Les problÚmes de confiance d'une entité acceptant un nouveau certificat autosigné sont similaires à ceux d'une entité faisant confiance à l'ajout d'un nouveau certificat d'autorité de certification. Les parties d'une infrastructure à clés publiques autosignée doivent établir la confiance entre elles (en utilisant des procédures extérieures à l'infrastructure à clés publiques) et confirmer le transfert exact des clés publiques, par exemple en comparant le hachage cryptographique du certificat hors bande.
Il existe de nombreuses diffĂ©rences subtiles entre les certificats signĂ©s par une autoritĂ© de certification et les certificats autosignĂ©s, notamment en ce qui concerne la confiance que l'on peut accorder aux affirmations de sĂ©curitĂ© du certificat. Certaines autoritĂ©s de certification peuvent vĂ©rifier l'identitĂ© de la personne Ă laquelle elles dĂ©livrent un certificat ; par exemple, l'armĂ©e amĂ©ricaine dĂ©livre ses Common Access Cards (en) en personne, avec plusieurs autres formes d'identification. L'autoritĂ© de certification peut attester de telles valeurs d'identitĂ© en les incluant dans le certificat signĂ©. L'entitĂ© qui valide le certificat peut faire confiance aux informations contenues dans ce certificat, dans la mĂȘme mesure qu'elle fait confiance Ă l'autoritĂ© de certification qui l'a signĂ© (et, par voie de consĂ©quence, aux procĂ©dures de sĂ©curitĂ© utilisĂ©es par l'autoritĂ© de certification pour vĂ©rifier les informations attestĂ©es).
En revanche, avec un certificat autosignĂ©, la confiance dans les valeurs du certificat est plus compliquĂ©e, car l'entitĂ© possĂšde la clĂ© de signature et peut toujours gĂ©nĂ©rer un nouveau certificat avec des valeurs diffĂ©rentes. Par exemple, les dates de validitĂ© d'un certificat autosignĂ© peuvent ne pas ĂȘtre fiables, parce que l'entitĂ© peut toujours crĂ©er et signer un nouveau certificat contenant une plage de dates valides.
Les valeurs d'un certificat autosignĂ© ne sont fiables que si elles ont Ă©tĂ© vĂ©rifiĂ©es hors bande lors de l'acceptation du certificat et s'il existe une mĂ©thode permettant de vĂ©rifier que le certificat autosignĂ© n'a pas Ă©tĂ© modifiĂ© aprĂšs sa validation. Par exemple, la procĂ©dure de confiance d'un certificat autosignĂ© comprend une vĂ©rification manuelle des dates de validitĂ©, et un hachage du certificat est incorporĂ© dans la liste blanche[2]. Lorsqu'une entitĂ© prĂ©sente le certificat pour le valider, elle vĂ©rifie d'abord que le hachage du certificat correspond au hachage de rĂ©fĂ©rence dans la liste blanche, et s'il correspond (indiquant que le certificat autosignĂ© est le mĂȘme que celui qui a Ă©tĂ© officiellement reconnu), alors les dates de validitĂ© du certificat peuvent ĂȘtre reconnues. Un traitement spĂ©cial des champs de certificat X.509 pour les certificats autosignĂ©s peut ĂȘtre trouvĂ© dans la RFC 3280[1].
La révocation des certificats autosignés diffÚre de celle des certificats signés par une autorité de certification. Par nature, aucune entité (autorité de certification ou autres) ne peut révoquer un certificat autosigné. Mais on peut invalider un certificat autosigné en le retirant de la liste blanche de confiance[3].
Références
- (en) Russ Housley, Tim Polk, Warwick S. Ford, David Solo, « Certificate and CRL Profile », Request for comments no 3280, .
- (en) « How to bypass SSLHandshakeException » [archive du ] (consulté le )
- (en) « Internet X.509 Public Key Infrastructure Certificate and CRL Profile », Request for comments no 2459, .