|
Comment se protéger de l'informatique, ou l'informatique à l'ère post-Snowden
Dernière modification :
08/02/2014 09:22
Edward Snowden, en révélant la surveillance agressive généralisée qu'effectuent les agences de renseignement états-unienne NSA et britannique GCHQ, a fait entrer l'informatique dans une nouvelle ère : l'ère où tous les scénarios du pire informatique sont possibles.
Violation complète de la vie privée, attaques informatiques, destruction et/ou modification de toutes nos données, remise en cause (partielle) [1] de la cryptographie. Malheureusement, ceux qu'on appelait avec condescendance les paranoïaques avaient tout simplement raison.
Les preuves publiées démontrent que ces agences de renseignement font modifier les matériels (ordinateurs, routeurs, parefeux, etc.) et les logiciels (Microsoft Windows [2], probablement tous les systèmes d'exploitation Apple [3], et peut-être même des logiciels libres [4]) pour écouter massivement les communications et s'introduire illégalement dans les ordinateurs. À volonté.
À l'heure actuelle, il existe des preuves publiques uniquement pour les agences NSA et GCHQ. Mais il est très probable que d'autres agences de renseignement, et même directement des états, ont des pratiques similaires. La perte de confiance envers l'informatique suite aux révélations d'Edward Snowden est si profonde que la moindre (vraie ou fausse) rumeur de porte dérobée se répand vite, comme par exemple la suspicion sur les ordinateurs chinois Lenovo, plus tard réfutée par le gouvernement australien.
Enfin, les agissements malveillants en informatique ne sont pas le seul fait des agences de renseignement et des états, car ces premiers font souvent appel au milieu du crime organisé pour trouver les vulnérabilités informatiques qu'ils exploitent. Pour preuve, ces vulnérabilités font l'objet d'un commerce parallèle où chaque vulnérabilité a son prix.
Pour nous défendre contre toutes ces menaces, il nous faut à jamais changer notre manière d'utiliser et de cohabiter avec l'informatique, c'est-à-dire aussi avec tous les matériels comportant une partie informatique. Pour cela, plusieurs postures doivent être adoptées :
- Par défaut, ne pas faire confiance pour tout ce qui touche à l'informatique
Par défaut, ne pas faire confiance à l'informatique, et ce, sous toutes ses formes (de l'ordinateur personnel au site web de réservation en ligne en passant par le téléphone ou la voiture). C'est-à-dire pour un utilisateur : par défaut, ne pas faire confiance aux logiciels qu'il pourrait télécharger et utiliser, aux services informatiques en ligne ou aux organisations qui les gèrent. Et pour un développeur : par défaut, de ne pas faire confiance à une bibliothèque informatique, à un algorithme. Donner sa confiance uniquement en connaissance de cause, c'est-à-dire après vérification au mieux de toute la chaîne (depuis les auteurs jusqu'à la diffusion, en utilisant des paquets signés, etc.) grâce à un réseau de confiance (comme ce que permet GPG).
Exemples :
- Ne jamais enregistrer son numéro de carte de paiement sur un site web, car même si ce site web n'est pas malveillant, il pourra être attaqué et se faire voler toutes les données qu'il contient (soit du fait de l'incompétence de ses équipes, soit par le biais de failles non encore connues).
- Certaines très grosses entreprises de l'industrie informatique, comme Google (mais pas uniquement), constituent de gigantesques bases de données qui permettent de transformer les utilisateurs/clients en
produit , en valorisant toutes leurs informations et habitudes. Et ces entreprises collaborent de manière forcée ou non avec les services de renseignement étatiques. C'est-à-dire qu'au-delà de l'absence de confiance que l'on peut avoir ou non dans le logiciel et le matériel, se pose une vraie problématique de libertés publiques à l'égard de ces méga bases de données.
- Penser que les systèmes de sécurité électronique-informatique d'une habitation (portes à code, systèmes d'alarme par réseau, système de surveillance vidéo, domotique, etc.) peuvent être compromis et détournés.
- Ne faire confiance qu'aux logiciels libres et vérifier la chaîne de confiance
Seul le code libre peut être audité, modifié et redéployé sous sa forme modifiée pour bénéficier de ces modifications. Privilégier le code interprété, comme JavaScript ou Python (facilement auditable) et, dans un contexte d'utilisation critique, le code à compiler soi-même à partir des sources, plutôt que les paquets et le code binaire (certes utilisables tout de suite et rapidement, mais que l'on peut seulement exécuter et quasiment pas relire).
Les logiciels ne se limitent pas aux programmes que nous voyons et que nous utilisons volontairement. Il y en a dans les couches électroniques profondes d'une quantité croissante de matériels, sous la forme de microcode (le BIOS des ordinateurs, le code des modems, des routeurs qui assurent les connexions à l'Internet, le code des serveurs de stockage en réseau, le système d'amorçage des téléphones portables, etc.).
Le seul logiciel fiable est celui dont on a soi-même audité le code (ou fait faire par une personne de confiance) et dont on a réalisé la version binaire prête à utilisation en le fabriquant soi-même (phases de compilation, édition de liens, empaquetage, etc.).
Le logiciel libre est donc nécessaire, mais pas suffisant. C'est pour cela que les communautés du logiciel libre ne font preuve d'aucun triomphalisme, mais redoublent plutôt leurs efforts pour créer des chaînes de confiance parfaitement contrôlables et vérifiables.
Exemples :
- Acheter des matériels fournis de base avec des logiciels libres, ou sans logiciel, auprès de bons vendeurs, acheter des matériels utilisant uniquement du microcode libre dans le BIOS et la carte réseau.
- On peut remplacer le système d'exploitation ou le navigateur de son téléphone portable ou de son ordinateur par un logiciel libre de confiance audité et vérifié par la communauté mondiale des développeurs de logiciels libres. Il faut préciser que lorsqu'on effectue une mise à jour d'un système d'exploitation, on peut dans certains cas arriver à une situation instable et se retrouver avec un matériel inutilisable, sans support de l'équipementier ou de l'opérateur. C'est pourquoi l'idéal est de choisir dès le départ des matériels équipés de logiciels libres (cf. point ci-dessus).
- Les utilisateurs expérimentés peuvent installer des distributions GNU-Linux basées sur les sources, comme Gentoo, qui ont la caractéristique que les logiciels sont compilés et installés à partir des sources, uniquement au moment de leur installation, avec une procédure de compilation et d'installation toujours accessible et modifiable par l'administrateur du système. C'est avec ces distributions de logiciels que les options de compilation (notamment du noyau Linux) sont les plus facilement vérifiables.
- Brendan Eich, inventeur du langage JavaScript et directeur technique de Mozilla, milite pour la confiance par la vérification, et demande à tous les chercheurs en sécurité de vérifier régulièrement le code source du navigateur web Firefox ainsi que le code final produit distribué et que tout le monde peut télécharger. La confiance doit être méritée et renouvelée régulièrement uniquement sur la base de preuves.
- Passer au tout-chiffré pour tout ce qui est informatique
Le chiffrement n'est pas juste bon à protéger le caractère privé de ses communications (web, courriel, messagerie instantanée, etc.) de potentiels indiscrets. Le chiffrement protège aussi les utilisateurs des attaques qui insèrent dans les requêtes réseau (requêtes DNS, requêtes HTTP, requêtes SMTP, requêtes IMAP/POP, etc.) des instructions ou du code malveillant. La seule solution est le passage au tout-chiffré avec DNSSEC, HTTPS, GPG, etc. cf. Here’s How They Did It .
En ce qui concerne les développeurs et les administrateurs systèmes, ils ont la responsabilité de sélectionner des protocoles de communication et des algorithmes de chiffrement sûrs et de se tenir informés des failles qui sont découvertes, de manière à, en réponse, faire évoluer les infrastructures dont ils sont responsables.
Exemples :
- Une bonne pratique pour les utilisateurs est de naviguer uniquement sur les sites web disponibles en HTTPS (le protocole de transfert sécurisé utilisé notamment par les sites web, dont l'utilisation est manifeste quand on voit un cadenas dans la barre d'adresse du navigateur web). Il faut donc insister auprès des sites que nous visitons régulièrement pour qu'ils proposent par défaut un accès en HTTPS. L'extension pour navigateurs web HTTPS Everywhere et HTTP Nowhere permettent d'automatiser cette précaution. (La différence entre HTTPS Everywhere et HTTP Nowhere réside dans le fait que la première extension essaye de passer en HTTPS dès que possible, alors que la seconde extension refuse la navigation dès lors que du HTTPS n'est pas disponible)
- Pour les développeurs et administrateurs systèmes qui déploient du HTTPS, il faut utiliser le protocole TLS 1.2 (et pas les versions antérieures comme TLS 1.1 et TLS 1.0) chaque fois que c'est possible ainsi que choisir des algorithmes d'échange de clé offrant de la confidentialité persistante.
- Être exigeant avec ses matériels informatiques et privilégier la diversité géo-politique
Choisir ses matériels informatiques avec soin, en boycottant les fournisseurs connus pour leurs failles de sécurité (involontaires ou non…) et les portes dérobées. Utiliser des matériels et des logiciels de marques et de fournisseurs différents, si possible de groupes géo-politiques différents.
Exemples :
- On fera en sorte que son modem-routeur, son parefeu, et son ordinateur ne soient pas conçus au sein du même groupe géo-politique (USA, Chine, Europe, Amérique du Sud etc.). C'est-à-dire qu'on évitera, par exemple, de combiner un ordinateur équipé de Microsoft Windows avec un routeur Cisco (USA), on évitera ordinateur Apple avec un routeur Cisco (USA), ou encore on évitera un ordinateur Lenovo avec un routeur Tenda (Chine).
- Choisir une distribution GNU-Linux communautaire internationale comme Debian, qui est élaborée par des ressortissants des USA, d'Europe, de Chine, de Taïwan, et du reste du monde, est un gage de confiance de par la nature divergentes des intérêts politiques des différents contributeurs.
Demain
En conclusion, en lisant ce document qui répond à la question quel comportement dois-je adopter, moi , on se rend vite compte que ces mesures sont difficiles à mettre en place et contraignantes. Même pour les personnes dont l'informatique est le métier.
Aussi, ce sont nos choix de demain qui feront évoluer le monde dans certaines directions plutôt que d'autres :
- La responsabilité des utilisateurs est dans le choix des logiciels qu'ils utilisent. En utilisant uniquement des logiciels libres de confiance qui ne bafouent pas leurs libertés, ils influenceront durablement le marché (en choisissant Firefox OS au lieu d'Android, en choisissant Firefox au lieu de Google Chrome, Internet Explorer, Safari, etc., en choisissant LibreOffice.org à la place de Microsoft Office, etc.).
- La responsabilité des développeurs, dans le cadre de leurs projets, est de sélectionner et de contribuer aux bibliothèques et modules logiciels libres sûrs, qui vont dans le sens de la liberté des utilisateurs, c'est-à-dire en se basant sur de la confiance prouvée, et aussi décentralisée.
Et il faut aussi d'ores et déjà sensibiliser les jeunes générations qui sont les décideurs de demain. Des jeunes qui s'interrogent, qui exercent leur esprit critique, qui savent programmer, c'est l'espoir d'avoir des citoyens et des décideurs qui comprennent l'outil informatique. Plutôt que de le subir (perdre la main sur ses données personnelles, etc.) ou de s'en servir comme justification de l'incompétence (choix des ordinateurs de vote, etc.) ou du manque de courage (prescription de logiciels non libres, etc.), ils pourront en tirer parti pour le bien de la société. À cet effet l'AFUL lance une activité pédagogique de dessin pour les enfants de 7 à 17 ans : Dessine-moi les méchants.
Notes
[1] Remise en cause (partielle) de la cryptographie
La première remise en cause vient des algorithmes utilisés, la NSA ayant travaillé pour produire et faire adopter des algorithmes avec portes dérobées comme Dual EC DRBG.
La deuxième remise en cause vient des implémentations des algorithmes de cryptographie qui sont très fragiles et très vulnérables (c'est constaté régulièrement) s'ils fonctionnent dans des conditions imparfaites (par exemple avec des générateurs de nombres aléatoires imparfaits).
Enfin, la cryptographie forte pourrait être menacée si la NSA, ou d'autres agences, disposaient déjà des ordinateurs quantiques. Les recherches scientifique dans ce domaine sont très fortement financées par la NSA.
[2] Portes dérobées dans les produits Microsoft
Les révélations d'Edward Snowden sur le programme PRISM de la NSA indiquent que Microsoft collabore activement avec la NSA. Différents chercheurs indiquent la présence de portes dérobées dans Microsoft Windows, et ce, depuis 1999.
[3] Portes dérobées dans les produits Apple
Le chercheur et expert en sécurité renommé Jacob Appelbaum déclare lorsqu'on lui pose la question :
Do you think Apple helped them build that?
I don't know. I hope Apple will clarify that. Here's the problem: I don't really believe that Apple didn't help them, I can't really prove it but [the NSA] literally claim that anytime they target an iOS device that it will succeed for implantation. Either they have a huge collection of exploits that work against Apple products, meaning that they are hoarding information about critical systems that American companies produce and sabotaging them, or Apple sabotaged it themselves. Not sure which one it is. I'd like to believe that since Apple didn't join the PRISM program until after Steve Jobs died, that maybe it's just that they write shitty software. We know that's true.
[4] Des portes dérobées jusque dans des logiciels libres ?
Rien n'empêche qu'il y ait des portes dérobées jusque dans les logiciels libres, même si c'est beaucoup moins probable qu'avec des logiciels fermés, non libres. On citera un cas de suspicion sur une distribution GNU-Linux comme rapporté par des mainteneurs du noyau Linux Theodore Ts’o et Alan Cox.
C'est la distribution états-unienne RedHat Enterprise Linux qui est visée. Un ingénieur RedHat a demandé aux mainteneurs du noyau Linux que le générateur pseudo-aléatoire matériel des puces Intel soit utilisé comme unique source d'entropie du noyau Linux. Or :
- Il n'y a aucune preuve possible que le générateur pseudo aléatoire d'Intel ne soit pas instrumenté (d'où la bonne stratégie de mélanger différentes sources d'entropie).
- Le comportement de l'ingénieur RedHat en question a paru suspicieux aux mainteneurs du noyau Linux par son manque de réponse lorsqu'il lui a été demandé des détails.
- Les comportements des ingénieurs d'Intel ont paru suspicieux aux mainteneurs du noyau Linux par la véhémence de leurs demandes que le noyau Linux utilise exclusivement la source Intel. Il faut savoir que les algorithmes cryptographiques comme ceux utilisés pour les connexions sécurisées en HTTPS (TLS) sont extrêmement sensibles à la qualité de la source d'entropie qu'ils utilisent. Si l'entropie est faible, la communication prétendument sécurisée devient plus facile, voire très facile, à casser.
- Theodore Ts’o :
- I am so glad I resisted pressure from Intel engineers to let /dev/random rely only on the RDRAND instruction
Et c'est Alan Cox, éminent développeur noyau Linux reconnu et ancien employé RedHat et Intel qui suggère que la distribution RHEL est compromise. Plus précisément on lit dans cette page :
- Alan Cox :
- And I wonder how much they lean on the binary distro providers that have a major US presence.
- Jan Wildeboer : Do you really think RHEL might be backdoored?
- Alan Cox : if I was the US government in that position I would make damn sure it was. It's used by all the worlds major banks, and by agencies like GCHQ.
Contributeurs : Marc-Aurèle DARCHE, Laurent SÉGUIN, Cyprien GAY, Jean PEYRATOUT, Bruno CORNEC, Gauthier CATTEAU, Camille MOULIN, Stéphane PÉTRUS
|
|