Sécurité : Mozilla et Opera coupent le support de WebSocket

Une faille dans la poignée de mains 68
Vincent Hermann
Parmi la montagne de spécifications du standard en devenir HTML5, on trouve le protocole WebSocket. Toutes les versions en développement des navigateurs intègrent son support, mais la situation vient de brutalement s’inverser : des failles de sécurité ont été trouvées dans le protocole, et des éditeurs font machine arrière.

opera 11
Opera 11 bêta

WebSocket est autant un protocole qu’une interface de programmation (API). L’utilisation depuis plusieurs années de l’objet XMLHttpRequest et plus généralement de l’Ajax ont permis au web de se transformer. Désormais, la puissance des navigateurs et les nouveaux besoins font apparaître la nécessité de pouvoir disposer d’un mode de communications plus direct. WebSocket permet ainsi d’établir un canal bidirectionnel et fullduplex entre le navigateur et le serveur, ce dernier pouvant alors notifier au client un changement d’état quelconque. En outre, le serveur peut « pousser » les données (le mode push).

Mozilla et Opera ont annoncé que les versions 4 et 11 de Firefox et Opera respectivement ne supporteraient pas WebSocket. Plus précisément, le code pour le support sera présent, mais inactif. La raison est simple : des failles de sécurité ont été trouvées dans le protocole lui-même, et le navigateur ne peut rien y faire.

Le problème se situe dans la négociation qui se fait entre le serveur et le navigateur. Lorsque ce dernier envoie une requête, une « poignée de main » (handshake) s’établit. Des chercheurs en sécurité ont ainsi prouvé qu’il était possible d’empoisonner le cache pour remplacer un fichier JavaScript par un malware. Une menace jugée beaucoup trop grave pour laisser le protocole actif dans cet état.

Pour l’instant, seuls Mozilla et Opera ont annoncé réagir aux failles de sécurité découvertes. Apple et Google doivent encore se prononcer, tandis que Microsoft n’a rien à dire de particulier : le support de WebSocket n’est pas assuré par Internet Explorer 9.