On est en 2020, tout le monde utilise Internet pour tout et n’importe quoi. Pas un jour ne passe sans qu’une nouvelle attaque informatique ne soit révélée, mais ça n’empêche pas certains éditeurs de sites Internet de ne pas respecter les règles élémentaires de sécurité, au détriment de leurs utilisateurs.

On le répète à tout va, et j’ose espérer que la majorité des internautes en est conscient maintenant : Connectez-vous uniquement à des sites sécurisés matérialisés par HTTPS.

Les principaux navigateurs ont même agit en ce sens en affichant clairement la couleur aux utilisateurs pour leur permettre de distinguer plus facilement les sites sécurisés des sites non-sécurisés.

Le navigateur affiche un cadenas a côté de l’adresse du site Internet et un texte en vert indique « Connection secure »
Exemple d’un site sécurisé sur Firefox

Si tout le monde insiste autant sur ce petit cadenas, c’est parce qu’il y a de bonnes raisons. Et on va les voir ensemble.

Fonctionnement des sites Internet avec HTTP

Lorsque vous saisissez une adresse dans votre navigateur favori, une demande, qu’on appelle requête, est envoyée au propriétaire du site Internet, plus précisément sur le serveur1 sur lequel est hébergé le site Internet pour être exact. En réponse, le serveur retourne également une requête qui contient le contenu de la page demandée.

La communication entre l’utilisateur, appelé client, et le serveur est possible car les deux parties parlent le même langage. Ou plutôt, ils utilisent le même protocole de communication : le fameux HTTP2. HTTP est encore utilisé aujourd’hui malgré le fait qu’il n’apporte pas de mécanisme permettant de sécuriser et chiffrer la transmission.

C’est un peu comme si vous décidiez d’envoyer une carte postale à un ami. En utilisant un langage que votre destinataire maîtrise, vous vous assurez qu’il comprendra bien votre message, mais vous n’avez aucune garantie que le message ne soit pas lu ou modifié pendant le transit.

Sécuriser la communication avec HTTPS

Pour chiffrer la communication, on peut utiliser le protocole HTTPS qui contient une couche de sécurité appelée TLS3.

Le protocole HTTPS permet aux utilisateurs de s’assurer que les informations sont envoyées à la bonne personne et qu’elles ne sont ni lues ni modifiées par un tiers. Ces garanties sont indispensables et évitent que des personnes ou organismes tiers malintentionnés puissent écouter les messages échangés ou pire, modifier le contenu des messages.

Pour reprendre l’exemple de la carte postale, c’est comme si vous envoyiez votre carte dans une boite fermée par un cadenas et que seul votre destinataire possède la clé.

Évolution d’HTTPS

Initialement, seuls les échanges d’informations « sensibles » étaient protégés par le protocole HTTPS, comme l’accès aux comptes bancaires, ou les paiements par carte bancaire.

Aujourd’hui, au vu des menaces grandissantes et des abus constatés, la grande majorité des échanges est sécurisée. Une étude montre, en effet, que 80 % des sites visités seraient désormais sécurisés, et seuls quelques récalcitrants font encore prendre un risque à leurs internautes.

En 2015, 30 % des sites sont sécurisés. En 2017, 50 %. En 2018, 70 %. En 2020, 80 %
Evolution du nombre de sites Internet utilisant HTTPS. Source : Let’s Encrypt/Firefox Telemetry

Le cas du site de l’Assemblée Nationale

Parmi les mauvais élèves, il y a malheureusement le site de notre chère Assemblée Nationale.

Dans les 568 millions d’euros4 de budget annuel de l’Assemblée Nationale, ils n’ont pas jugé utile de proposer une version sécurisée de leur site.

Les investissements informatiques s’élèvent à 6,85 M€ dont 2,81 M€ d’acquisitions et de développements de logiciels et 3,72 M€ d’acquisitions de matériels informatiques
Budget 2020 de l’Assemblée Nationale consacré à l’informatique. Source : Assemblée Nationale

Et le risque imposé aux utilisateurs (et citoyens) est élevé : Quelles garanties ont-ils que les informations affichées soient vraies ? Et qu’elles n’aient pas été modifiées par leur fournisseur d’accès à Internet, le propriétaire du point d’accès Wi-Fi sur lequel ils sont connectés ou le pays dans lequel ils se trouvent.

La France doit s’assurer que toutes les informations issues des organismes d’État sont fiables pour ne pas être la cible d’attaques et éviter des conséquences fâcheuses.

Cette recommandation de proposer une version sécurisée de son site Internet est partagée par l’Agence Nationale de la Sécurité des Systèmes d’Information (ANSSI), agence dont la mission est d’assurer la sécurité de l’État et de prévenir et détecter les attaques5 :

« Le recourt à TLS, c’est à dire l’emploi du protocole HTTPS, est recommandé dès lors que les communications entre le client et le serveur doivent être protégées en confidentialité ou en intégrité. »

Dans notre cas, l’intégrité des informations reçues par l’internaute, c’est à dire l’assurance que l’information n’ait pas été modifiée, est essentielle.

Et, ce n’est pas tout.

Le site de l’Assemblée Nationale propose la possibilité de se connecter à un espace personnel.

Un formulaire avec un champ texte pour l’adresse électronique et un deuxième champ texte pour le mot de passe.
Page de connexion de l’Assemblée Nationale pour accéder à son espace personnel

La page qui contient le formulaire de connexion est, elle, sécurisée, ce qui est très bien. Le problème est que seule la page de connexion est sécurisée, et que pour accéder à cette page, il est nécessaire de passer par une page non sécurisée6.

Cette page non sécurisée par laquelle l’utilisateur passe, comme la page d’accueil, peut avoir été modifiée à son insu. Et le lien qui est censé l’amener vers la page de connexion peut lui aussi avoir été modifié pour amener l’utilisateur vers une page de connexion pirate, que l’on pourrait imaginer identique, et même sécurisée !

L’utilisateur ne se rendrait pas compte de la supercherie car il ferait confiance au lien présent dans la page, se connecterait avec ses identifiants, et communiquerait ses identifiants au pirate.

Le pirate pourrait non seulement récupérer les informations du compte de l’utilisateur, mais aussi utiliser ses identifiants pour se connecter sur d’autres comptes lui appartenant, étant donné que la plupart des internautes utilisent le même mot de passe quasiment partout.

Encore une fois, l’ANSSI partage mes dires :

« Lorsqu’on recourt à TLS, il est prudent de le faire sur l’ensemble du site et non uniquement sur les parties "sensibles" »

Si on résume, en plus de proposer des informations aisément falsifiables à ses visiteurs, l’Assemblée Nationale prend le risque de compromettre la sécurité des comptes de tous ses utilisateurs, et de tâcher l’image de la France.

Malheureusement pas un cas isolé

L’Assemblée Nationale n’est malheureusement pas un cas isolé. Beaucoup de sites rattachés à l’Administration sont dans le même cas, comme 76 sites7 des préfectures, le site du Ministère de la Justice ou le site de la DIRRECTE. Tous ces organismes ont également été contactés.

L’Assemblée Nationale a été alertée

L’Assemblée Nationale a été contactée et a sécurisé son site Internet. Les internautes peuvent désormais consulter le site de l’Assemblée en toute sécurité.

Note : le choix s’est porté sur cet organisme car leur site illustrait au mieux les propos de cet article. L’objectif n’est pas de dénigrer leur travail, mais de faire comprendre au plus grand nombre les risques encourus pour inciter tous les éditeurs de sites Internet à utiliser HTTPS.

Note 2 : j’estime qu’un délai raisonnable a été laissé à l’Assemblée Nationale. La décision a donc été prise de publier cet article, non pas pour inciter d’éventuels pirates à profiter de la situation, mais pour sensibiliser les utilisateurs, internautes, et citoyens français, et leur faire prendre conscience des risques encourus à visiter le site de l’Assemblée Nationale.

MAJ du 04/11/2020 : l’article a été initialement écrit le 08/10/2020. Depuis, HTTPS a été déployé sur 22 sites de préfecture : Alpes-de-Haute-Provence (04), Alpes-Maritimes (06), Ariège (09), Bouches-du-Rhône (13), Gard (30), Haute-Garonne (31), Gers (32), Hérault (34), Isère (38), Lozère (48), Pyrénées-Orientales (66), Rhône (69), Savoie (73), Haute-Savoie (74), Seine-et-Marne (77), Yvelines (78), Tarn-et-Garonne (82), Essonne (91), Hauts-de-Seine (92), Seine-Saint-Denis (93), Val-de-marne (94), Val-d’Oise (95).

MAJ du 04/12/2020 : ajout de la réponse d’un des questeurs de l’Assemblée Nationale et du signalement à l’ANSSI.

MAJ du 05/12/2020 : HTTPS a été déployé sur les sites de 10 préfectures : Charente (16), Charente-maritime (17), Corrèze (19), Creuse (23), Dordogne (24), Gironde (33), Marne (51), Meurthe-et-moselle (54), Deux-sèvres (79), Haute-vienne (87).

MAJ du 28/12/2020 : le site de l’Assemblée est désormais sécurisé.

MAJ du 30/12/2020 : HTTPS a été déployé sur les sites de 14 préfectures : Aube (10), Doubs (25), Jura (39), Haute-marne (52), Meuse (55), Moselle (57), Pyrénées-atlantiques (64), Haute-saône (70), Vienne (86), Vosges (88), Yonne (89), Guadeloupe (971), Martinique (972), Mayotte (976).

Notes et références

  1. Un serveur est ni plus ni moins qu’un ordinateur classique qui est généralement situé dans un datacenter chez un hébergeur pour s’assurer qu’il tourne 24h/24.
  2. HTTP : Hypertext Transfer Protocol.
  3. TLS pour Transport Layer Sécurité est basé sur des certificats numériques pour chiffrer les échanges.
  4. Budget de l’Assemblée Nationale 2020 : 568,38 M€ (source).
  5. Les missions de l’ANSSI sont d’assurer la sécurité de l’État et de prévenir et détecter les attaques (source).
  6. Il est nécessaire de passer par une page non sécurisée sauf dans le cas où l’utilisateur sauvegarderait le lien de la page final dans son navigateur, et y accéderait directement.
  7. Les 76 préfectures concernées sont : Ain (01), Allier (03), Alpes-de-Haute-Provence (04), Hautes-Alpes (05), Alpes-Maritimes (06), Ardèche (07), Ardennes (08), Ariège (09), Aude (11), Aveyron (12), Bouches-du-Rhône (13), Calvados (14), Cantal (15), Charente (16), Charente-Maritime (17), Corrèze (19), Corse-du-Sud (2A), Haute-Corse (2B), Côte-d’Or (21), Creuse (23), Dordogne (24), Doubs (25), Drôme (26), Gard (30), Haute-Garonne (31), Gers (32), Gironde (33), Hérault (34), Isère (38), Jura (39), Landes (40), Loire (42), Haute-Loire (43), Lot (46), Lot-et-Garonne (47), Lozère (48), Maine-et-Loire (49), Marne (51), Haute-Marne (52), Meurthe-et-Moselle (54), Meuse (55), Moselle (57), Nièvre (58), Orne (61), Puy-de-Dôme (63), Pyrénées-Atlantiques (64), Hautes-Pyrénées (65), Pyrénées-Orientales (66), Bas-Rhin (67), Rhône (69), Haute-Saône (70), Saône-et-Loire (71), Savoie (73), Haute-Savoie (74), Seine-et-Marne (77), Yvelines (78), Deux-Sèvres (79), Tarn (81), Tarn-et-Garonne (82), Var (83), Vaucluse (84), Vendée (85), Vienne (86), Haute-Vienne (87), Vosges (88), Yonne (89), Essonne (91), Hauts-de-Seine (92), Seine-Saint-Denis (93), Val-de-Marne (94), Val-d’Oise (95), Guadeloupe (971), Martinique (972), Guyane (973), La Réunion (974) et Mayotte (976).