Environnement, sécurité et open-source
Trois sujets connectés

Page en construction ! (à l'origine il s'agissait essentiellement d'une collection de liens à usage personnel, progressivement mise en forme. Le texte est toujours mal écrit à mon goût (en particulier, je n'ai pas encore complètement clarifié à quel public je m'adressais... il y a à la fois de la vulgarisation et des éléments un peu techniques sur les systèmes Linux embarqués donc a minima il faut un petit bagage technique en informatique/télécoms :). Tout ça sera retravaillé un jour quand je trouverai le temps, mais d'ici là ma prose vise surtout à donner le minimum d'enrobage et de contexte pour encourager à aller cliquer sur les liens / voir les vidéos et s'informer un maximum !)

IT et environnement...

TL;DR

La presse a commencé à s'emparer du sujet du changement climatique, et dans une (bien) moindre mesure de la raréfaction du pétrole (pour plus d'éléments, voir l'excellente série de cours de J.M.Jancovici à Mines Paristech. Voir aussi de manière plus résumée cette ancienne conf très didactique qui a été à l'époque une révélation pour moi, de même que le tout aussi excellent livre de James McKay pour fixer des ordres de grandeurs. N.B. Nombreux sont ceux qui soutiennent que la quantité de pétrole sur terre dépend du prix du pétrole (plus il est cher, plus cela ouvre des perspective sur des champs non rentables), mais sur ce sujet trop long à traiter en quelques lignes j'invite vraiment à regarder l'ensemble des vidéos et documentations plus bas).

Mais le pétrole n'est pas la seule ressource existant en quantité finie, c'est notamment également le cas de nombreux métaux : la presse parle parfois des "terres rares", mais le problème est plus vaste (voir l'excellent livre de Philippe Bihouix sur le sujet, mais aussi les vidéos de conférence d'Aurore Stephant ci-dessous, cet article de vulgarisation de Science et Vie © et ce post de Matthieu Auzanneau). Même si en théorie les métaux se recyclent à l'infini, P.Bihouix explique très bien dans son livre qu'en général plus un objet est complexe, plus ses constituants sont difficiles à recycler (e.g. composants/matériaux/atomes impossibles à séparer aisément, ce qui s'apparente à un usage dispersif : de la même manière que l'on ne sait pas récupérer efficacement le métal dans les peintures métallisées ou les dentifrices, il est difficile de désimbriquer les atomes dans un composant électronique. Au mieux arrive t-on à mettre au point des procédés - souvent polluants - permettant de récupérer un ou deux métaux de grande valeur tels que l'or, sans possibilité de refondre ou récupérer chacun des éléments comme c'est le cas avec des produits "low-tech" => par construction, un objet high-tech est souvent peu recyclable, et le réparer ou prolonger sa durée de vie est en général plus efficace sur le plan environnemental que recycler/refabriquer avec de fortes pertes en matériaux et énergie.

Bref, je suis de ceux qui pensent que 1°/ si l'industrie IT souhaite durer, elle serait avisée d'anticiper un monde qui change avec en particulier une disponibilité en pétrole et en divers métaux qui diminue (dans un monde interdépendant : moins de pétrole signifie aussi moins de minage et moins de transports, etc.), et 2°/ les soucis qui nous attendent impliquent ce que j'appelle les "flux amont" (ressources) et les "flux aval" (pollution / changement climatique), ce dernier étant davantage évoqué par les médias mais pas toujours traité à sa juste valeur (e.g. en se limitant souvent la consommation des appareils et non ce qu'a nécessité leur fabrication). Même si cette page référence des vidéos et de la littérature qui s'intéressent au problème de manière globale, je me focaliserai ici essentiellement sur ce qui constitue ma spécialité, à savoir l'IT et les télécoms.

Les rapports du Shift Project sur la sobriété numérique et la vidéo en ligne constituent un excellent point de départ pour tenter de quantifier l'impact environnemental (énergie/CO2/ressources) du numérique. Voir par exemple aussi cette page de GreenIT et l'excellente cette autre page. Deux remarques importantes :

=> Quelques conclusions simples : il serait souhaitable de


Je conseille très fortement le visionnage des vidéos suivantes :



Faire durer nos terminaux plus longtemps : aspects logiciels & sécurité

Pour résumer :

Mises-à-jour et cybersécurité

Le sujet se décline différemment selon que le modèle de menace dont à souhaite se protéger concerne un attaquant extérieur "classique", ou le fabricant de composant (ou une agence gouvernementale en lien avec ce dernier).

Vis à vis des failles exploitables par un attaquant "lambda" :

L'intérêt et l'importance des mises-à-jour système est souvent sous-estimée par le grand public : généralement les usagers en voient l'aspect visible (ajout de nouvelles fonctionnalités, obligation d'avoir un système à jour pour continuer d'installer ou d'utiliser certaines applications telles que Netflix ou Whatsapp...) et parfois les usagers sont même réticents à les appliquer (perception d'obsolescence programmée / ralentissement intentionnel du système par les fabricants, "if it ain't broken, don't fix it !"). Pourtant les mises-à-jour sont un aspect essentiel de la sécurité de ses machines et du contrôle de ses données : une machine qui ne reçoit plus de mises-à-jour est une machine qui devient rapidement vulnérable car des bugs exploitables en failles de sécurité sont découverts tous les jours (les articles suivants de Christophe Blaess {article1, article2, article3} décrivent par exemple le principe de l'exploitation de bugs de type "débordement de buffer" (et d'autres), qui constituent notamment des défauts fréquents dans les grosses bases de code écrites dans des langages comme le C/C++. Le MITRE possède une base de données des "common vulnerabilities and exposure" (CVE) qui recense que les failles de sécurité connues dans des logiciels fortement répandus. Quelques exemples célèbres (arbitrairement choisis parmi des milliers) sous Linux sont les attaques GHOST, ShellShock et Heartbleed (les médias ont également beaucoup parlé de la faille Log4j). Dans le cas de Android, il existe aussi des failles célèbres comme celle de la bibliothèque media StageFright (qui permet à un attaquant de prendre le contrôle d'une machine vulnérable par exemple en envoyant un MMS particulier forgé pour l'occasion pour déclencher le bug, et il est possible d'effacer ses traces dans la foulées de sorte que l'attaque reste inaperçue). Le malware Mirai en constitue un autre exemple dans le monde des routeurs. N.B. en dehors du code, la configuration joue aussi un rôle : il existe par exemple des milliers de machines connectées à internet aisément exploitables car mal configurées e.g. avec des identifiants basiques...

Conclusion : le processus de mise à jour (correction des bugs et failles de sécurité sur le long terme) est essentiel dans le cycle de vie d'un produit. L'excellent post de Stéphane Bortzmeyer sur le RFC 8240 décrit de manière très complète et didactique l'étendue du problème des mises-à-jour dans le cas de l'IoT. Lecture vivement conseillée ! Le site web androidvulnerabilities.org illustre également bien la fragmentation d'Android et le nombre de produits non-sécurisés en circulation. Toute machine non mise à jour doit être considérée comme vulnérable et ne devrait théoriquement plus être utilisée !.

Vis à vis des backdoors intentionnellement insérées par le fabricant :

Le firmware d'origine peut contenir des fonctionnalités malveillantes (voir aussi ici. On n'est plus sur une problématique d'environnement (et par ailleurs on ne peut pas compter sur les mises-à-jour dans ce cas), mais sur ce sujet aussi, l'open-source peut aider considérablement à réduire la surface d'attaque, tout en restant imparfait en l'absence d'indépendance technologique (fabricants de composants/drivers européens).

Bref, il est bon de garder en tête que supprimer le risque théorique d'avoir sur son smartphone un spyware de la NSA ou de son équivalent chinois restera quasi-insoluble tant qu'on n'aura pas d'indépendance technologique européenne sur le design et la fabrication des composants utilisés dans les appareils grand public. Cela dit il est infiniment plus aisé de loger et d'activer une backdoor silencieuse dans l'OS ou le Google Service Framework que dans les drivers/firmwares bas-niveau, et j'estime donc que la majorité du risque est évitée en flashant un système open-source tel que LineageOS+microg / Grapheneos / Calyxos sur son appareil Android (ou OpenWRT sur son routeur, ou n'importe quelle distribution Linux ou BSD sur son PC...), ce qui permet également souvent de prolonger sa durée de vie comme on l'a vu plus haut du fait de la durée de toute façon limitée du support fabricant.

Difficultés de mises-à-jour pour des machines non-PC (smartphones, IoT...)

De même que Linux permet de prolonger la vie de nombreux ordinateurs de bureau considérés comme obsolètes pour MS-Windows, l'open-source est un moyen de prolonger la durée de vie des machines non-PC (smartphones, routeurs, etc.) lorsque le fabricant en cesse le support (e.g. via des projets tels que OpenWRT, LineageOS, Replicant et PostmarketOS). Mais des spécificités apparaissent par rapport au monde du PC : N.B. même si les futures machines ARM/MIPS/RISC-V intégraient un mécanisme d'introspection (e.g. bootloader et device-tree stockés dans une petite flash NOR systématiquement présente sur le PCB, ACPI, SBSA/SBSR, EBBR, etc.), cela n'éviterait pas systématiquement tout risque de vulnérabilité (par exemple en cas de faille présente dans le bootloader lui-même. Les PCs ne sont d'ailleurs pas exempts de failles par exemple dans le Management Engine ou dans le processeur lui-même), mais cela résoudrait cependant un très grand nombre de difficultés pour le support à long terme des machines.

Faire durer nos terminaux plus longtemps : aspects matériels

Une petite image vaut mieux qu'un long discours...


(=> tout ce qui est à côté de "we have the right" devrait être rendu obligatoire afin de rendre les produits un peu plus réparables. En particulier : la fourniture de documentation techniques et de pièces détachées pendant au moins 5 ans devrait être garantie. Il pourrait être utile de standardiser et modulariser autant que possible les composants (e.g. batteries / carte-mères à un format génériques pour être interchangeables), même si c'est au prix de smartphones un peu plus gros et un peu moins beaux. Aujourd'hui seul le fabricant Fairphone semble s'en préoccuper. Dans la pratique, acheter un téléphone "flagship" d'occasion peut également faire l'affaire si ce dernier est correctement conçu pour être réparé et s'il a été diffusé en des millions d'exemplaires, rendant envisageable l'achat de pièces détachées sur le marché de l'occasion. Mais cela reste hasardeux et en pratique des smartphones de plus de 5 ans sont difficiles à réparer faute de pouvoir trouver les pièces détachées nécessaires). l'accès à la documentation et aux outils matériels permettant de "débricker" / reflasher un smartphone dont le bootloader est HS devrait également être facilité.

Tirer parti de nos machines : logiciels pour faciliter le travail à distance et éviter les réunions internationales

[N.B. Cette section a été écrite avant le Covid...]

D'une manière générale, même si le numérique permet d'éviter certains postes d'émission (économie du partage, blablacar, jitsi, etc), sur son ensemble il ne permet que rarement d'équilibrer la consommation de ressources nécessaire à la fabrication des machines et des data-centers (sans parler du fait que les usages tels que le commerce en ligne / Amazon contribuent globalement à l'augmentation de la production et du nombre de camions sur les routes même si les entrepôt sont moins visibles que des hypermarchés physiques). Cependant, dès lors que la majorité de la population est déjà équipée en ordinateurs/smartphones et en particulier si on parvient à prolonger leur durée de vie, alors il serait dommage de se priver de ce que le numérique peut apporter...

En l'occurence, la "réunionnite internationale" (tous secteurs confondus) est un vecteur important d'émissions CO2 et de consommation de kérosène (même si comme pour tout sujet, il faut évaluer la balance bénéfice-risque au cas par cas. Un sommet sur le climat mérite sûrement quelques billets d'avion...). Pour donner un exemple et un ordre de grandeur : le 3GPP représente probablement plus de 2000 délégués (tous groupes confondus) qui se réunissent tous les 2 mois quelque part dans le monde ! Certaines négociations gagnent effectivement en efficacité lors d'une réunion face-à-face (notamment car la communication non-verbale et/ou des discussions informelles peuvent jouer un rôle clé) donc il n'est pas question ici de les abolir à court terme, mais dans un monde où il y aura de toute façon de moins en moins de pétrole et où le changement climatique devient une menace sérieuse, il va bien falloir faire avec moins de vols ! Je reste personnellement persuadé que la mise en place d'outils adaptés est un volet essentiel pour permettre de diminuer significativement le nombre de réunions. Or très souvent, les outils de rédaction collaborative se limitent à Microsoft Word (+ marques de révisions) et au mieux un outil tel que Jitsi (ou Webex/Gotomeetings/Zoom/YouNameIt) pour les réunions à distance, et ces conditions sont souvent sous-optimales par rapport à des réunions en présentiel. Pourtant, pour donner un contrepoint et un autre ordre de grandeur : les développeurs du noyau Linux ce sont également plus de 1000 personnes qui collaborent à distance, mais qui se réunissent au mieux une fois par an car ils ont développé les bons outils (j'admets que ce n'est pas comparable car le sujet est supposé essentiellement technique et assez peu politique, mais le parallèle est intéressant). Gitlab est également un bon exemple d'une relativement grosse société s'étant structurée depuis le début en full-remote et ayant documenté les bonnes pratiques ayant permis d'y parvenir

Cette section essaiera d'explorer des outils (notamment open-source) existants pour faciliter le travail à distance, et d'évaluer ce qui manque pour l'encourager.

Cliquer ici pour voir plus en détails
TODO. Il n'existe pas à ma connaissance d'outil open-source tout intégré permettant de travailler simplement à plusieurs sur le même document (comme dans Google Docs ou Etherpad), de faire différentes branches (comme dans git/github), de voter/discuter sur des propositions (comme dans gerrit/phabricator) et d'intégrer au cas par cas les propositions (comme dans github avec les pull request). Mais les outils suivants permettent déjà de faire beaucoup de choses et peuvent être une source d'inspiration pour imaginer une solution plus intégrée

Pour aller plus loin

Pétrole-carbone-climat : quelques messages-clés

Quelques liens supplémentaires

Quelques vidéos complémentaires un peu engagées sur la thématique de la transition, mais pas spécifiquement appliquées à l'IT/télécoms

Chaîne "DataGueule"
Chaîne "Le Réveilleur"