URL: https://linuxfr.org/users/claudex/journaux/public-key-pinning-extension-for-http Title: Public Key Pinning Extension for HTTP Authors: claudex Date: 2015年04月18日T20:47:48+02:00 License: CC By-SA Tags: sécurité, tls, firefox, rfc et https Score: 27 Cher journal, En ces temps ou un certain nombre d'entre vous n'ont pas l'air d'avoir envie de tout partager avec leur gouvernement. Voici une annonce qui améliore un peu la sécurité du HTTPS. Tu n'es pas sans ignorer que le modèle actuel de TLS souffre un gros problème. N'importe quelle autorité de confiance peut signer un certificat pour n'importe quel domaine, même si le propriétaire actuel du nom de domaine a déjà demandé à une autre autorité de le faire. Tu me dirais que c'est très gentil de la part d'une autorité de signer gratos un certificat signé par une autre autorité. En fait, c'est souvent fait pour faire du Man In the Middle ou de l'usurpation d'identité. Le problème, c'est qu'il faut des autorités de confiance et qu'on se rend souvent compte qu'une telle autorité de l'était pas quand il est trop tard. La solution, c'est que le site annonce par qui il est signé (tu me diras que c'est déjà le cas, vu que c'est comme ça que fonctionne TLS), sauf qu'au lieu de l'annoncer à chaque requête, on peut se permettre de l'annoncer une fois pour toute. Le seul problème, c'est la première fois qu'on se connecte au site, il faut être sûr de ne pas avoir quelqu'un sur la ligne qui modifie le trafic qui passe. La technique actuelle pour associer une CA à un domaine (qui s'appelle le pinning) est faite manuellement par développeur de web browser. C'est déjà en place dans Chromium et Firefox mais seulement pour les sites connus (Google, Twitter, Facebook...). Mais ça ne passe pas à l'échelle. J'ai envoyé ma CA pour mon site web via la RFC 6214 et j'attends toujours la réponse. En résumé, [comment ça se passe](http://tools.ietf.org/html/rfc7469) pour cette nouvelle technique: la RFC définit un nouveau header HTTP qui permet de spécifier la fingerprint de la CA ainsi qu'un TTL (pour pouvoir quand même changer de CA à un moment). À la connexion l'user agent (donc, le navigateur web dans la plupart des cas) récupère ce header (vérifie que ça correspond bien à l'actuel déjà) et stocker l'association domain → CA, à la prochaine connexion, il ne regardera pas le header, seulement si la CA est bien là. Par contre, pour l'analyse détaillée, il faudra attendre Monsieur Bortzmeyer, moi, j'écris des journaux sur dlfp, je n'ai pas le temps de lire les RFC. Bien sûr, ce n'est pas parfait. Le risque à la première connexion (ou à l'expiration du TTL) est bien réel. Mais pour tous les gens en déplacement dans des environnements peu sûrs, c'est un plus.