|
Les certificats numériques X.509 (recommandation X.509 de l'ITU-T et RFC 2459) sont utilisés pour authentifier et chiffrer les communications (web, mail) informatiques. Au niveau du web, ces certificats sont utilisés pour sécuriser les échanges entre un navigateur client et un/des sites sensibles (banques, sites commerciaux, ....). L'une des premières propriétés d'un certificat est de pouvoir authentifier le site distant ou le client. Pour cela, le navigateur s'appuie sur les informations contenues dans le certificat présenté (par le serveur web ou le client) et la confiance accordée au signataire de ce certificat (généralement une autorité de certification (CA) digne de confiance comme Verisign, Thawte, … ou une CA interne comme celle du Cert-IST). Cette authentification s'effectue alors en 2 phases :
Si le premier contrôle est correct et si l'autorité de certification (CA) est connue du navigateur (chaque navigateur intègre une banque de CA qui inclut les CA les plus connues), le certificat est accepté ; sinon, un message d'erreur est affiché. Pour des facilités de gestion des certificats (en fonction de la localisation des entités par exemple ou pour des besoins de hiérarchisation), il peut exister plusieurs CA intermédiaires à qui sont délégués le pouvoir de signature. Une "CA_globale" signe le certificat "CA1_intermédiaire" en lui accordant le droit de signature. Cette "CA1_intermédiaire" peut alors signer les certificats "Certificat_Utilisateur_1", "Certificat_ Utilisateur _2", etc… Ce principe de délégation simplifie donc la tâche de l'autorité globale, tout en permettant à la "CA_intermédiaire" de générer des certificats reconnus par tout navigateur faisant confiance à "CA_globale". Ainsi lorsque le certificat "Certificat_Utilisateur_1" est présenté à un navigateur, ce dernier vérifie la chaîne de signatures du certificat ("Certificat_Utilisateur_1" signé par "CA1_intermédiaire" signé par "CA_globlale"). Si le dernier signataire "CA_globlale" est une autorité de certification reconnue alors, par transitivité, le certificat utilisateur est reconnu comme valide. Dans la norme X509, un contrôle sur l'attribut "Basic Constraints" du certificat doit être effectué pour vérifier que le certificat de la CA intermédiaire "CA1_intermédiaire" est autorisée à signer ou non d'autres certificats. Cependant, sur certains navigateurs, dont Internet Explorer (voir en fin d'article la liste des navigateurs vulnérables), ce contrôle n'est pas effectué de manière correcte, ce qui fait que ces derniers considéreront comme valides des certificats qui ne le sont pas. Prenons l'exemple suivant :
En pratique, ce type d'attaque reste très difficile à mettre en œuvre, car il faut substituer le trafic du serveur légitime vers le serveur pirate, ce qui nécessite par exemple de corrompre les tables de routage ou le DNS. De même, des informations, disponibles dans le certificat X509 appartenant au site pirate et présenté au navigateur client (voir les propriétés du certificat du site HTTPS), peuvent permettre de confondre les auteurs de cette "fraude". Microsoft a réalisé une information sur ce problème (Cf. partie "Pour plus d'information") et travaille actuellement sur un correctif. Dans l'attente de ce correctif , le Cert-IST vous recommande de contrôler de manière plus approfondie les certificats proposés par des sites sécurisés (HTTPS). Il semblerait aussi que ce comportement soit aussi présent dans :
Microsoft a été contacté par le Cert-IST et travaille actuellement sur ces aspects. Remarques :
Pour plus d'information :
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||