Les certificats numériques et le protocole « HTTPS »

Actualité

Si l’on voulait parler en détail du protocole « HTTPS » et des certificats numériques, on devrait alors parler du chiffrement, mais ne vous inquiétez pas, nous vous épargnerons cette peine. Comprenez bien cela néanmoins : à ce jour, un chiffrement solide est probablement la meilleure garantie que nous avons pour une sécurité et une confidentialité efficaces.

certificats_https

 

On nous a tous dit de regarder le petit cadenas vert ou gris qui, dans la plupart des navigateurs, signifie la présence de la version sécurisée du protocole de transfert hypertexte (HTTPS). On nous dit que « HTTPS » est synonyme de sécurité et que nous devrions nous assurer de le voir dans la bar d’adresse du navigateur avant de rentrer des informations sensibles sur un site Web, surtout quand il s’agit d’identifiants bancaires. Mais alors qu’est-ce que le « HTTPS » ?

« HTTPS » est une abréviation anglaise pour « Hypertext Transfer Protocol Secure » (protocole de transfert hypertexte sécurisé). Il s’agit de la version sécurisée du protocole de transfert hypertexte, qui est à l’origine de la manière avec laquelle nous échangeons des données sur Internet. Pour faire simple, se connecter sur un site via « HTTPS » (au lieu du protocole HTTP standard) signifie que toutes les données que vous échangez avec le site en question – qu’il s’agisse d’identifiants de connexion, de laisser un commentaire sur un blog, ou de payer un ticket de parking – passeront par un protocole TLS (Transport Layer Security) chiffré, ou par son prédécesseur SSL (Secure Sockets Layer).

Ok, donc « HTTPS » est synonyme de chiffrement et le chiffrement est lui synonyme de sécurité, mais si on met de côté le chiffrement, comment puis-je savoir que je communique bien avec la personne ou le service avec lequel je veux communiquer en ligne ? Je suis certain que vous y avez déjà pensé : comment pouvez-vous être sûr que le site sur lequel vous êtes et dans lequel vous vous apprêtez à vous identifier n’est pas une très bonne copie ? Disons que vous achetez un logiciel anti-virus de Kaspersky Lab, comment pouvez-vous être certain que votre paiement nous soit bien envoyé et qu’il n’arrive pas à un pirate amateur au fin fond de la Roumanie ? Et comment savez-vous qu’un tiers n’espionne pas votre transfert de données ? C’est là que les certificats rentrent en jeu.

Vous pouvez taper « HTTPS » dans la barre d’adresse de n’importe quel site plus ancien. Si le site possède un certificat valide, alors le serveur hébergeant le site présentera ce certificat à votre navigateur (qui est doté d’une liste intégrée d’émetteurs de certificats de confiance) et rien de visible ne se produira. Suivant le navigateur, vous pouvez cliquer sur le petit cadenas (ou son équivalent) afin d’obtenir certaines informations sur le certificat et son émetteur. Néanmoins, si vous essayez d’accéder à la version « HTTPS » d’un site qui ne dispose pas d’un certificat valide, vous verrez un avertissement SSL tel que celui-ci :

Cet avertissement est pour votre navigateur une manière de vous signaler qu’il ne peut pas vérifier l’identité du serveur du site auquel vous essayez de vous connecter. Vous pouvez probablement imaginer pourquoi il est important d’avoir un tel système de certificat pour vérifier que les sites et les services sont bien ce qu’ils prétendent être. Si votre imagination vous fait défaut, alors informez-vous sur les attaques de l’homme du milieu.

Maintenant que vous avez une compréhension générale de ce que sont le protocole « HTTPS » et les certificats, vous vous demandez peut-être comment les deux sont liés. En bref, « HTTPS » signifie que l’information que vous envoyez est bien chiffrée pendant son transfert et le certificat numérique que ces informations vont bien là où elles sont supposées aller.

J’ai expliqué comment les certificats fonctionnent ainsi que leur fonction, mais ceux-ci ne sont pas uniquement des concepts intangibles. Un certificat numérique est un document électronique qui contient son propre et unique algorithme de signature numérique, des informations permettant d’identifier le site Web ou le service pour lequel le certificat a été créé, des informations sur l’identité de l’émetteur lui-même, et une période de validité qui indique quand le certificat a été créé et pour combien de temps il sera valide. La signature algorithmique est au cœur même du certificat numérique. La signature est la partie du certificat qui confirme que vous communiquez bien avec le site avec lequel vous souhaitez communiquer et que la communication est bien effectuée en chemin.

La dernière pièce du puzzle qui requiert des explications est celle des émetteurs de certificats. Un certain nombre d’organisations vendent ou émettent des certificats numériques. On les appelle les autorités de certification. GoDaddy, VeriSign et Entrust sont par exemple trois autorités de certification importantes. Je pourrais m’autoproclamer autorité de certification et commencer à vendre des certificats si je le souhaitais. Le problème est que personne ne ferait confiance à mes certificats et donc personne ne les achèterait. C’est ce qui se passe avec les autorités de certification : elles sont valides seulement si on leur fait confiance.

Ce système de confiance fonctionne en se basant sur une liste de ce qu’on appelle « certificats racine ». Ces derniers sont considérés comme fiables par défaut par la plupart des navigateurs. Ils ont aussi le pouvoir d’étendre leur confiance à d’autres autorités de certification. Disons qu’un individu qui s’appelle Jacques souhaite émettre des certificats et qu’il est une autorité de certification racine. Votre navigateur va donc faire confiance à tous les certificats que Jacques émet. Votre navigateur va aussi faire confiance à n’importe quel certificat que Jacques garantira. Il existe un grand nombre d’autorités de certification, et c’est ce que nous avons inventé pour les vérifier. Nous avons laissé les 36 autorités de certification les plus fiables décider quelles autres autorités étaient dignes de confiance et ainsi tout le monde vivra heureux jusqu’à la fin de ses jours, non ? Pas vraiment.

Il est important de savoir que le système de certificats numériques actuel est compliqué, alambiqué et controversé. Les certificats numériques, les signatures qu’ils contiennent ainsi que les autorités de certification qui les créent forment la base de la confiance et de l’authentification en ligne. Ironiquement, il est bien connu dans l’industrie que le système d’autorité de certification et de signature numérique est désespérément défaillant et terriblement inadapté. Néanmoins, c’est sur celui-ci que nous nous reposons pour effectuer des paiements et communiquer les uns avec les autres chaque jour.

Les violations qui ont eu lieu dans de grandes autorités de certification telles que DigiNotar et Comodo et la révélation que deux faux certificats ont permis l’attaque du virus Stuxnet montrent clairement qu’un nouveau système est nécessaire. Le chercheur en sécurité, Moxie Marlinspike a suggéré que son système « Convergence SSL » était la solution pour résoudre le problème. Malgré le lancement de Convergence à la conférence Black Hat Security, il y a presque deux ans, et son accueil presque unanimement positif, nous nous reposons toujours sur le système de certification défaillant. Nous assumons en quelque sorte que les certificats que nous utilisons pour communiquer et dépenser de l’argent sont tous fiables. De temps en temps, nous entendons parler de la violation d’une autorité de certification, nous nous plainions et déplorons le problème, et finalement nous passons à autre chose sans régler le problème.

Que pouvons nous donc faire ? Tout ce que vous pouvez faire est de vous assurer que vous naviguez en « HTTPS » quand vous rentrez des données sensibles, telles que des informations de paiement ou des identifiants et même des e-mails. Outre cela, vous pouvez cliquer sur le verrou  ou son équivalent dans votre navigateur et examiner le certificat vous-même. Pour ceux qui s’y connaissent, vous pouvez vous tenir informés des dernières nouvelles en matière de sécurité et manuellement retirer votre confiance d’une autorité de certification si celle-ci est compromise. Révoquer votre confiance signifie que votre navigateur ne fera désormais plus confiance aux certificats garantis par cette autorité. La meilleure solution est de retirer immédiatement la confiance que vous aviez dans cette autorité de certification compromise dans les paramètres de votre navigateur, dès que vous entendez que celle-ci a subi une violation, mais ne vous inquiétez pas trop car Microsoft, Mozilla et Google ont par le passé été assez rapides à révoquer leur confiance (dommage qu’on ne puisse pas dire la même chose pour Apple). Tant que les patchs de votre navigateur et de votre système d’exploitation sont bien mis à jour, vous serez protégé contre les faux et les mauvais certificats.