Le problème commence à être connu et il est malheureusement non résolu : Tout le modèle de sécurisation des sites web par HTTPS (chiffrage SSL/TLS) est à revoir.
Il était déjà bancal dès le départ en instaurant des autorités de confiance qui n’ont qu’un rôle de rentier et qui taxent tous les utilisateurs, mais leur multiplication et leur manque de sécurisation rend totalement vide de sens la sécurité du système.
En fait c’est assez simple :
- Nous avons au grand minimum une compromission d’autorité de certification par mois, et chacune permet d’usurper n’importe quel site auprès de n’importe quel navigateur.
- Certaines autorités sont contrôlées par ou en collaboration avec des états, y compris autoritaires ou non démocratiques, ces états ayant alors la capacité d’espionner ou d’intercepter les communications chiffrées vers n’importe quel site sans que cela ne se voit.
- L’opacité totale des autorités de certification rend impossible de connaître la plupart des dégâts ou des risques en jeu.
Il est d’ailleurs important de noter qu’on ne parle pas de questions théoriques mais de procédés concrets qui ont été mis en jeu. On parle de certificats illégitimes au nom de Google, de Yahoo ou de banques qui ont été émis pour tromper les navigateurs, et de matériels qui sont réalisés pour intercepter et espionner les communications TLS pour qui (états) a des certificats maitres à sa disposition.
Le fait même d’avoir mis en place un système centralisé me semble avoir été une erreur énorme, mais il est temps d’arrêter les frais. Il est plus que temps de passer à un modèle décentralisé qui n’aura pas toutes les qualités théoriques du modèle actuel, mais qui ne sera pas autant troué. Cela demande toutefois que les états acceptent de ne plus être en capacité de contrôler ce qu’il se passe, même indirectement. Mon côté paranoïaque m’en fait douter.
Entre temps, sur Mozilla Firefox vous permet d’initier le mouvement à l’aide de quelques extensions.
8 réponses à “Sécurité sur le web avec HTTPS ? des clous !”
Sur le sujet, je vois un hackerlab qui va lancer des réflexions, je ne sais pas si tu les connais : http://blog.nicelab.org/nicelab-booting.html
En même temps, à la réflexion, je me demande si on a raison, comme je le lis ici et là, de penser que la logique du web c’est la décentralisation.
En termes de réseau, oui, sans doute. Mais par exemple pour les DNS, il faut bien accepter des « autorités », avec ce que ça comporte de centralisation et de normalisation des autorités.
(réflexion embryonnaire que je livre en passant)
Le problème de la centralisation c’est le risque de dérive ou de casse. Maintenant tant que ça ne dérive pas et ne casse pas ça semble forcément plus joli :) Les autorités TLS sont fortement cassées, les DNS pas encore à ce point.
La problématique du DNS elle-même est encore irrésolue sur le moment, il y a des enjeux assez contradictoires. Pour l’instant on voit cette centralisation comme un avantage parce que le noeud central est neutre, en ayant subit peu de problèmes, et qu’on a de fait une première décentralisation avec une extension par pays.
Maintenant si demain les États Unis commencent à user de décisions de justice pour imposer des conditions sur le noeud central on va vite déchanter. Même chose si la France se met à imposer des délires administratifs pour interdire les sites qui ne plaisent pas, ou si un pays plus prude interdit les noms de domaines pour les sites érotiques, etc.
Maintenant il y a aussi des enjeux différents parce que les DNS sont un annuaire technique alors que les autorités TLS sont là pour marquer de la confiance. De la technique ça peut se centraliser (avec tout de même des risques), la confiance n’a jamais été centralisée par contre, c’est une vue de l’esprit.
J’ai un petit reproche à faire à ton « c’est assez simple » : dans les deux cas, en plus du certificat bidon, il faut au minimum corrompre les informations DNS pour l’utilisateur, et au maximum intercepter tout le trafic réseau.
Je l’aurais plutôt tourné dans le sens inverse, repartir d’Alice et Bob : l’encryption asymétrique ça marche parce que Bob a donné à un moment à Alice sa clef publique, et Alice est sûr de Bob et de celle-ci. Le problème sur le web (grosso-modo) est le suivant : que faire quand Alice ne connaît pas bien Bob ? Avec HTTPS, ce qui est proposé c’est qu’Alice parle à une adresse qui normalement mène à Bob, et dans la réponse, on trouve le sous-entendu « je suis Bob » et sa clef publique. HTTPS ne lève pas ce sous-entendu « je suis Bob », qui est difficilement vérifiable à l’heure actuelle (déjà car DNS et pas DNSSEC, mais même comme ça, ça ne résoud pas l’interception complète du trafic), et par contre est capable de dire avec une quasi-certitude : cette clef publique est in fine issue des données gérées par cette entreprise commerciale dite « autorité de confiance ».
Voilà, dit comme ça, je trouve que c’est plus simple et on voit tout de suite les failles :-) Mais bon, c’est personnel :-)
Non, je confirme, c’est assez simple.
Tu te connectes comment à Internet ?
– à l’école / université ? il y a une passerelle Internet, souvent gérée par les étudiants eux même d’ailleurs.
– En entreprise ? même chose, sauf que là c’est l’administrateur et l’employeur qui peuvent intercepter (et ils ne s’en privent souvent pas, il existe des solutions toutes faites pour intercepter le SSL justement à destination des réseaux entreprise). Même sans ça, combien de boîtes ont des routeurs avec une politique de mots de passe ou de mise à jour défaillante (j’ai été chez plusieurs très très grosses boites et opérateurs, j’ai vu des vrais problèmes à ce niveau, ce n’est pas de l’hypothétique)
– Dehors via WIFI public et autres réseau Free/SFR/FON ? Aie, ton réseau peut être écouté, probablement. Écouté et probablement même faussé (un faux réseau Freebox)
– Chez toi via WIFI ? Combien d’entre nous ont une box Internet qui n’a pas un réseau WIFI assez sûr ? Combien ont un équipement réseau/routeur avec les mots de passe par défaut ?
– Par 3G ? tu as vu les faux réseaux de téléphonie montés par l’État avec de simples mallettes pendant les manifestations ? Tu as vu la sécurité des femtocell qui te permettent d’étendre/créer un réseau ?
– Chez toi, par cable, via un modem/routeur que tu contrôles, qui est à jour de son firmware, sans faille connue, avec un mot de passe changé et sûr … déjà on ne parle plus que d’une poignée de personnes ….
Dans ce dernier cas, il reste encore :
– Des failles existantes pour empoisonner le DNS de ton FAI ou de ton navigateur (difficiles à exploiter mais possibles)
– Des FAI qui peuvent être la source de filtrages et ou écoutes (c’est encore pas mal paranoiaque mais ça le devient de moins en moins, recherches par exemple « carnivore » sur wikipedia dans la catégorie logicielle)
– Des États qui peuvent intercepter en entrée/sortie tout le réseau (facebook qui s’était pas intercepté par je ne sais plus quel pays au moment des révolutions arabes)
– Des interceptions techniquement possible par n’importe quel gros acteur réseau : transit, peering, cloud, etc.
Alors oui, ta grand mère a peu de moyens d’intercepter tes communications et d’exploiter le problème de la chaîne de confiance, mais on est très loin d’avoir une chaîne efficace pour nous protéger des dangers réels et existants actuellement.
Dans tous les cas que tu cites, il n’y a pas d’interception possible si tu connais la clef publique de là où tu vas au préalable. C’est le point de base. C’est ça que je te reproche de ne pas dire explicitement :-)
Oui, ce qui gêne ce n’est pas le système TLS ou même le système de certificat, ce qui gêne c’est la chaîne de confiance à l’aide des autorités tierces.
Si tu connais l’empreinte au préalable, ou si tu arrives à la faire certifier par un moyen plus efficace que le système actuel, tout fonctionne bien.
Si ce n’était pas explicite, maintenant ça l’est.
Voilà :-)