Pour comprendre, il faut tout d'abord avoir quelques petites choses en tête.

HTTP est un protocole historique en clair

La plupart des échanges sur internet utilisent des services web. Tous ces échanges utilisent le protocole HTTP. Ce protocole a été défini il y a déjà bien longtemps. Comme bien des protocoles qui ont servi à construire l'Internet d'aujourd'hui, il s'agit d'un protocole en clair. Cela signifie que toutes les informations échangées dans un sens ou dans l'autre sont parfaitement lisibles si quelqu'un parvient à intercepter la communication. Mais ca n'est pas le seul dans ce cas. Les échanges de mails entre les serveurs sur internet utilise le protocole SMTP, qui lui aussi est en clair. Toutes ces briques de bases ont été définies à une époque où la sécurité des communications ne posait pas problème. Le protocole HTTP était initialement incapable d'assurer un suivi de session. Par la suite on a donc ajouté les fameux cookies. Il s'agit d'une sorte ticket d'identification que le client (navigateur web) et le serveur échangent à chaque transaction. Mais comme tout circule en clair, il est en théorie facile d'intercepter ce cookie pour reprendre la session à son compte. On le voit, la majorité de nos communications sur le web ne sont donc pas sécurisées et l'interception d'une session est tout fait possible et relativement simple techniquement. Seuls un certain nombre d'acteurs ont pris conscience de l'enjeu et crypter les communications : les sites bancaires, de vente en ligne et G-Mail (suite des problèmes de piratage). Le problème ne date pas d'hier et seule l'utilisation de HTTPS (HTTP par dessus SSL) permet de corriger ce problème.

Les réseaux wifi ouverts sont ouverts ... à tous!

Dans les réseaux d'aujourd'hui, il n'est normalement pas simple d'intercepter les communications. C'est peut-être pour cette raison que l'adoption du HTTPS n'est pas aussi massive qu'elle devrait l'être. Il y a cependant un cas toutes les communications sont "interceptables" sans aucun effort : les wifi ouverts. En effet, ces réseaux ne disposent d'aucun chiffrement. N'importe qui peut donc simplement écouter les communications et collecter les informations qui circulent en clair. Même si vous vous identifiez sur une page web, cela vous permet de vous ouvrir les accès au services, mais ne vous assure aucune sécurité complémentaire. Ces réseaux ouverts constituent donc un terrain de jeu idéal pour récupérer des informations qui circulent en clair.

Conclusion

Cette affaire met donc en lumière deux problèmes réels que l'on a trop longtemps ignorés.

  • Les éditeurs de sites web ne sécurisent pas suffisamment leurs infrastructure et continuent à utiliser HTTP alors que HTTPS serait plus approprié.
  • Les réseaux wifi ouverts sont pratiques mais représentent un risque réel, notamment compte tenu du fait que les éditeurs utilisent encore massivement le HTTP au lieu du HTTPS.

Bien qu'elle soit triviale, l'exploitation de ces faiblesses restaient jusqu'à présent réservée à des initiés. Comme les éditeurs n'ont pas pris la mesure du problème, Firesheep a donc le mérite de taper du poing sur la table et de lancer un message très clair : la situation doit changer. Steve Gibson et Leo Laporte dans l'excellent podcast Security Now N° 272 parlent "spanking lesson" (une bonne fessée).

Que peux-t-on faire à notre niveau pour améliorer les choses ?

Vous pouvez dès à présent utiliser un certain nombre de vos sites habituels en HTTPS (Facebook, Twitter, Google, etc.). Mais si par malheur, une connexion est restée en HTTP, le risque est toujours là. Il existe des initiatives pour forcer les navigateurs a toujours utiliser le HTTPS. Cela passe par des plugins ou encore une extension du protocole HTTP (HTTP-STS : Strict Transport Security).

Pour les éditeurs de sites web : systématiquement avoir recours a des connexion chiffrées (via SSL par exemple).

Pour les réseaux wifi ouverts : Évitez de les utiliser dans la mesure du possible. Si vous fournissez un réseau invité pour vos clients ou vos visiteurs, Il existe un moyen de sécuriser l'usage. Il vous suffit d'utiliser un chiffrement WPA ou WPA2 pour votre réseau. Cela impose de mettre un login et mot de passe, mais ils n'ont absolument pas besoin d'être compliqué et tous le monde peut utiliser les mêmes (invite/pass par exemple). Lors de la négociation de la connexion Wifi, le point d'accès et le client vont échanger des clés et sécuriser la connexion entre eux. Chaque client dispose donc d'un canal sécurisé qui lui est propre et personne ne peut intercepter les communications d'un autre. Attention, cela n'est pas le cas de réseaux Wifi utilisant WEP.

Références :