Mozilla continue sa croisade pour pousser l’adoption du HTTPS un peu plus. Après avoir annoncé sa volonté de marquer les sites en HTTP comme étant non sécurisés, la fondation vient d’annoncer qu’elle va restreindre les fonctionnalités web de Firefox pour qu’elles soient servies sur HTTPS seulement.
« À compter d’aujourd’hui, toutes les nouvelles fonctionnalités qui sont exposées sur le web seront restreintes aux contextes sécurisés. Exposée sur le web veut dire que la fonctionnalité peut être observée à partir d’une page web ou un serveur, que ça soit par JavaScript, CSS, HTTP, les formats média, etc. » a écrit Anne van Kestren, ingénieur de Mozilla et auteur de plusieurs standards ouverts du web.
Autrement dit, si Firefox ajoute le support d’un nouveau standard ou d’une nouvelle fonctionnalité, les communications entre le navigateur et le serveur externe devront être acheminées par HTTPS, sinon le standard ne fonctionnera pas avec le navigateur.
Cette décision n’est pas une surprise si l’on se rappelle que Mozilla a fait la demande durant mars dernier pour que la géolocalisation sur le web soit ajoutée en tant que contexte sécurisé, toutefois son appel n’a pas eu la résonnance souhaitée par la fondation.
Le principe de contextes sécurisés est assez simple, il stipule que certaines fonctionnalités puissantes du web et des API (dont les utilisateurs ignorent leur risque) soient forcées à fonctionner avec HTTPS.
Ces fonctionnalités qui sont pour la plupart cachées sont :
- la géolocalisation ;
- Bluetooth ;
- HTTP/2;
- notifications Web (API) ;
- L’accès à la webcam et au microphone ;
- l’algorithme de compression web Brotli de Google ;
- Accelerated Mobile Pages de Google (AMP) ;
- Encrypted Media Extensions (EME) ;
- requête de paiement (API) ;
- Service Workers utilisés par la synchronisation en arrière-plan et les notifications.
(La liste devrait contenir prochainement l’API AppCache, l’orientation de l’appareil et le plein écran.)
Toutes ces fonctionnalités peuvent fonctionner avec HTTP, mais elles pourraient présenter un risque pour l’utilisateur final si des attaquants arrivent à les exploiter pour dérober des informations, traquer les utilisateurs et intercepter des données en recourant à l’attaque de l’homme du milieu.
Bien que HTTPS sécurise une connexion du navigateur à un site web, une fonctionnalité non HTTPS pourra toujours fonctionner sur une autre fenêtre sans que l’utilisateur se rende compte de cette insécurité.
Se rendant compte de la complexité grandissante du web, Google a donné le coup d’envoi de l’initiative de contextes sécurisés en 2014, en ajoutant graduellement les normes requises dans Chrome. Toutefois, Google n’a jamais annoncé une règle formelle qui stipule que tous les nouveaux standards doivent fonctionner via HTTPS, mais les ingénieurs du moteur de la recherche ont toujours implémenté les fonctionnalités récentes pour ne fonctionner que dans des contextes sécurisés.
Les efforts des ténors du web pour pousser l’adoption du HTTPS ne se sont pas arrêtés là. Plus tard, en août 2017, Google a fait pression sur les développeurs en leur indiquant par courriel que les connexions de leurs sites HTTP qui collectent des mots de passe ou des cartes de crédit seront marquées comme non sécurisés sous la version 62 du navigateur Chrome.
Mozilla a choisi pour sa part depuis le début de supporter le projet Let’s Encrypt, une initiative qui a donné ses fruits puisque 67 % des pages chargées sur Firefox en novembre 2017 se sont servies du protocole HTTPS, contre 45 % seulement en fin d’année dernière (selon les données de Let’s Encrypt).
Mozilla ne compte pas épargner les standards actuels
Mozilla espère dans le futur que toutes les fonctionnalités de Firefox « seront traitées au cas par cas » afin de les migrer (lentement) vers des contextes sécurisés à leur tour, une décision qui risque de ne pas plaire à tout le monde. Pour cette raison, Mozilla a promis de fournir des outils aux développeurs pour faciliter la transition vers les contextes sécurisés et faire des tests sans serveur HTTPS.
— Pensez-vous que tous les standards/fonctionnalités de Firefox doivent passer aux contextes sécurisés ?
— Quel effet aura cette décision sur les développeurs web ?