pt
Moulé à la louche depuis 1999
Les trucs qui m'énervent... et je vais pas prendre de pincettes
Internet, informatique, logiciel libre, économie, politique, vie courante et tout le reste...

Les certificats SSL ne suffisent plus

Vendredi 26 mars 2010

Introduction aux certificats

SSL (ou HTTPS) permet de sécuriser vos communications en chiffrant (encryptant) les données entre votre navigateur et le serveur sur lequel vous vous connectez. Pour être certain que vous êtes bien en train de "parler" au bon serveur, quand vous vous connectez à un site en HTTPS, celui-ci vous envoie un certificat. C'est une sorte de "carte d'identité" du site.

Comment vérifier l'authenticité de cette "carte d'identité" électronique ? Elle est signée (cryptographiquement) par une autorité de certification.

Par exemple si vous allez sur le site du Crédit Mutuel (banque française), on peut voir que leur certificat est signé par VeriSign:

Sur GMail (mail de google), on voit qu'il est signé par Thawte:

Le rôle des autorités de certification est de s'assurer de l'identité des personnes et organismes qui veulent faire signer leur certificat.

Ainsi, je peux créer de toutes pièces un certificat mentionnant "Crédit Mutuel" (c'est techniquement très facile), mais les autorités de certification sont censées me refuser de le signer, car je ne pourrai pas leur prouver que je suis bien le Crédit Mutuel.

Dans votre navigateur

Votre navigateur contient une liste de certificats racines, c'est à dire un ensemble de certificats appartenant justement à ces autorités de certification (Thawte, VeriSign...). Vous pouvez le voir dans les paramètres sécurité du navigateur.

Chaque fois que vous vous connectez sur un site, le navigateur reçoit le certificat du site et vérifie qu'il est signé par une des autorités de certification qu'il a en mémoire. Si le certificat est bien signé par une de ces autorités, aucune alerte n'est affichée.

Ainsi, même si j'arrivais à détourner vos connexions réseau et vous présenter un certificat SSL que j'ai bricolé, votre navigateur verrait qu'il n'est pas signé et afficherait une alerte. Voici typiquement le genre d'alerte qu'affiche Firefox quand il reçoit un certificat non signé par une des autorités:

Donc tout va bien: La combinaison du système de signature des certificats et du travail des autorités de certification me protège, ok ?

Malheureusement, non.

Avoir le certificat d'une autorité de certification installé dans votre navigateur signifie que vous faites implicitement confiance à cette autorité de certification. Et, sans le savoir, vous faites implicitement confiance à pas mal de monde: VeriSign, VISA, GoDaddy, Thawte, AOL Time-Warner, CertPlus, Dell, Deutsche Telecom, gouvernement Japonais, Microsoft, RSA Security, Swisscom...

Mais les connaissez-vous toutes ? Savez-vous si elles sont bien leur travail de vérification ? Si elles n'ont pas été abusées ? Si elles sont honnêtes ?

Vous n'êtes pas à l'abri d'usurpations

Il semble que certaines autorités de certification collaborent (volontairement ou non) avec certains gouvernement, polices ou services de renseignement et acceptent de signer des certificats bidons, construits de toutes pièces. Cela permet donc de détourner votre trafic réseau tout en ne levant aucune alerte SSL, que ce soit le web (HTTPS), les emails mais aussi d'écouter vos communications VOIP malgré le chiffrement. Ou même - tiens ! - s'introduire sur les réseaux VPN pour espionner ou modifier le trafic réseau.

Ajoutez à cela que certains fabricants de firewall se targuent d'avoir du matériel capable de faire à la volée la substitution de certificats, il n'y a plus beaucoup de doutes à avoir quant à la faisabilité technique de la chose. Les auteurs d'une étude suggèrent même que la pratique existe depuis un bon moment. Ces autorités de certification sont de toute manière soumises aux lois des pays dans lesquels elles résident, et se doivent donc d'obéir aux injonctions judiciaires... ou aux menaces.

Et il n'y a pas de raisons de penser qu'il n'y a que nos gentilles forces de l'ordre qui font pression sur les autorités de certification. (Tiens avez-vous remarqué que Firefox inclue maintenant le certificat racine de CNNIC. Vous ne savez pas qui est CNNIC ? C'est l'organisme qui gère internet en Chine (y compris les noms de domaine), sous la coupe du Ministère des Communications. Et vous leur faites donc confiance pour signer des certificats SSL. Le fait que le certificat de creditmutuel.fr soit du jour au lendemain signé par une autorité de certification chinoise ne lèvera pas d'alerte dans votre navigateur.)


Les certificats SSL ne suffisent plus. La confiance implicite que vous faite dans les autorités de certifications présentes dans votre navigateur est problématique. Mais les solutions de remplacement ne sont pas évidentes.

Les auteurs de l'étude proposent donc des écrans de validation vous demandant si vous faites confiance à certaines autorités de certification.

Si le certificat de bankofamerica.com est du jour au lendemain signé par une autorité de certification Russe, il y a des doutes à avoir.

C'est un pis-aller, mais c'est mieux que rien.

Voir tous les billets