Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 12 mai 2024Flux principal

Les langues peu documentées et le libre : quelques enjeux scientifiques

Comme beaucoup de domaines scientifiques, la documentation de la diversité linguistique entretient une relation forte avec les mondes du Libre. Dans cette dépêche, je vous propose de découvrir ce domaine à travers la présentation de plusieurs logiciels et ressources libres ou en accès ouvert. La documentation des langues étant un thème peu courant sur LinuxFr.org, on commencera par une présentation de cette problématique. Nous continuerons par une description des deux ressources principales existantes pour cataloguer et se repérer au sein de cette diversité linguistique. Je parlerai ensuite d’ELAN et de FLEX, deux logiciels utilisés pour annoter des enregistrements audio-visuels, une étape clef dans l’analyse linguistique, et qui permet le partage et la réutilisation de ces enregistrements. Enfin, après un court passage sur la question de l’archivage, je présenterai deux compilations de corpus de documentation en accès libre, une pratique récente qui permet de nouveaux questionnements quantitatifs sur les langues orales peu documentées, et qui contribue également à la transparence et la traçabilité des analyses linguistiques.

    Sommaire

    L’étude des langues à travers le monde

    Actuellement, environ 7000 langues ont été recensées à travers le monde. Ce chiffre ne peut être qu’une approximation car, il n’y a pas de consensus sur la définition de ce qu’est une langue. Une difficulté par exemple est de définir à quel moment une langue est distincte d’une autre. Lorsqu’il y a variation, mais intercompréhension, de nombreux linguistes s’accordent à dire qu’il s’agit alors de dialectes d’une même langue, et donc, lorsqu’il n’y a pas intercompréhension, alors il s’agit différentes langues. Cette perspective considère que tout le monde parle un dialecte (que ce soit celui de référence, ou un plus régional comme celui de Paris, de Marseille, du Québec), la langue n’étant qu’une abstraction permettant de regrouper les diverses pratiques langagières. En ce qui concerne l’intercompréhension, ce critère n’est malheureusement pas absolu car elle peut varier selon les personnes et leur parcours personnel. Et lorsqu’on considère l’évolution d’une langue à travers le temps, sa diachronie, définir ce qu’est une même langue à travers ses évolutions temporelles se complexifie d’autant plus.

    Si certaines langues ont émergé récemment, on pense assez souvent aux langues dites créoles (le Bichelamar, les créoles malais, à Madagascar ou au Cap Vert), ou également lorsque certains dialectes se distinguent suffisamment pour ne plus être intercompréhensibles, la tendance actuelle est surtout à la disparition massive des langues. Cette disparition est souvent rapportée à travers la mort des derniers locuteurs et locutrices, on peut aussi considérer qu’une langue meurt lorsqu’elle n’est plus parlée d’une part, et qu’elle disparait si elle n’est pas documentée. Si certains aujourd’hui se questionnent sur la corrélation entre la diversité culturelle et la diversité écologique, il est évident que la disparition des langues correspond également à des inégalités et des tensions socio-politiques.

    Bref, la documentation des langues, c’est un sujet actuel, et d’un point de vue scientifique, la perte de cette diversité aura de tristes conséquences sur la connaissance des langues et de l’univers des possibles languagiers, encore souvent sous-estimé :

    • l’article The myth of language universals : Language diversity and its importance for cognitive science d’Evans donne un bel aperçu du débat qui existe entre les linguistes fonctionnalistes, notamment les approches générativistes telles que proposées par Noam Chomsky. Pourtant, régulièrement à travers la documentation des langues, des catégories cognitives jusque-là non-soupçonnés, voire rejetées car non-observées, sont identifiés. Nous nous sommes rendu compte récemment qu’un quart des langues grammaticalisaient l’emploi d’évidentiels, ces morphèmes qui indiquent la source d’une information. Au niveau de l’odorat, des neurologistes pensaient que si nous n’avions pas de termes abstraits pour catégoriser les odeurs, c’était lié au fait que notre cerveau ne le permettait pas. La description des termes liés à l’odorat en Jahai (par ici si vous souhaitez écouter du Jahai), qui possède donc des termes spécifiques pour catégoriser les odeurs, a montré le contraire.
    • accéder à des facettes non-matérielles de la préhistoire, non-accessibles à travers l’archéologie. La documentation des langues nous permet d’accéder, dans une certaine mesure, aux termes et aux concepts utilisés durant les différentes préhistoires à travers la comparaison des langues et de leurs structures. Les travaux sont nombreux et anciens en ce qui concerne les langues européennes, mais les recherches en linguistique historique (ou comparée) portent également sur toutes les langues connues à travers le monde. Les chercheurs et chercheuses de ce domaine collaborent assez régulièrement avec les archéologues pour retracer les mouvements de population.
    • mettre au point des systèmes d’écriture pour les langues orales, ou simplement des traitements de texte adapté aux écritures existantes. Parfois, certaines personnes savent écrire dans la ou les langues officielles du pays, mais ne connaissent pas d’écriture pour une de leurs langues régionales. C’est ainsi souvent le cas pour les personnes au Vanuatu. Le pays reconnait même le droit d’enseigner les langues locales à l’école, mais il n’existe que très rarement des ressources (que ce soit les personnes ou les manuels) pour cela. Parfois, les gens ne connaissent tout simplement pas de système d’écriture.

    Quelques concepts et termes liés à la documentation des langues

    Comme tout domaine de recherche, la terminologie et les concepts linguistiques évoluent au gré des discussions et peut se distinguer de l’usage attendu des termes. Une étape importante dans la documentation d’une langue est la production d’une grammaire décrivant les structures linguistiques de cette langue. De nombreux linguistes estiment alors qu’on peut dire que cette langue est décrite. Il ne faut pas se tromper cependant, aucun linguiste ne considère qu’une langue est alors complètement décrite. Une grammaire ne contient que quelques aspects estimés actuellement essentielles par les linguistes de terrain. Ces points sont, le plus souvent, une description du système phonologique d’une langue (c’est-à-dire comment les sons d’une langue sont organisés les uns vis-à-vis des autres), des morphèmes et des processus morphologiques associés (la conjugaison, l’expression de la possession, les déclinaisons, les genres, les classifications, etc.) d’une langue et souvent un début de description des processus syntaxiques. Il existe de nombreuses approches pour décrire les faits linguistiques, et la description d’une langue se fait souvent en dialogue avec les pratiques et terminologies qui ont été employées dans l'aire linguistique concernée.

    Depuis l’article Documentary and descriptive linguistics de Nicholaus Himmelman, qui a promu la distinction entre la documentation linguistique et la description linguistique, on accorde beaucoup plus d’importance à la production d’un corpus d’enregistrements annotés. On dit alors d’une langue qu’elle est documentée si des enregistrements annotés, de préférences audio-visuels, de cette langue existe. Enfin, il existe la problématique de l’outillage d’une langue, c’est-à-dire si ses locuteurs et locutrices ont accès ou non aux outils informatisés, du traitement texte aux dictionnaires informatisés en passant par la reconnaissance vocale, la transcription automatique, voire aujourd’hui aux modèles de langues et autres ressources nécessitant des corpus beaucoup plus grands.

    Les catalogues et base de données pour l’identification des langues

    Une problématique récurrente dans le domaine des langues est de clairement identifier la langue sur laquelle on travaille. Cependant, identifier une langue, ce qui relève ou non de cette langue, où elle est parlée, est l’enjeu de nombreux débats, souvent politique, et n’est pas une tâche simple. Quoi qu’il en soit, il existe des ressources, bases de données, qui proposent d’associer à des noms de langues, endonymes ou exonymes, des codes pour rendre leur identification univoque.

    L’Ethnologue et l’ISO 639 : une norme gérée par le Summer Institute of Linguistics (SIL)

    Ethnologue, Languages of the World, ou plus simplement l’Ethnologue, est une base de données développée et maintenu par l’organisme évangélique SIL, Summer Institute of Linguistic depuis 1951. Elle vise à recenser toutes les langues du monde. L’ISO 639 est une norme issue de ce catalogue, également maintenue par le SIL. Cet organisme est très actif au niveau de la documentation des langues et de la création d’écritures, car un de ses objectifs est de traduire la Bible dans toutes les langues du monde. Historiquement, l’Ethnologue est un des premiers catalogues dont l’objet a été de recenser les langues. Si cette norme semble le plus souvent suffisamment exhaustive pour les besoins liés à l’informatique, après tout, les internautes consultent Internet en très peu de langue, d’un point de vue linguistique, il possède de nombreuses lacunes.

    La liste SIL des langues

    Un premier souci est la nécessité d’avoir une granularité plus importante que simplement la langue. Les linguistes travaillent sur des dialectes et des variétés, sur des familles de langues, et parfois ont travaillé sur des distinctions qui n’ont parfois plus cours. Afin de pouvoir associer ces ressources à des langues, ou des entités linguistiques particulières, l’approche du SIL ne suffit pas.

    Enfin, la gestion du catalogue par un organisme religieux, donc avec parfois d’autres enjeux qu’uniquement scientifiques, le fait qu’il s’agisse d’une norme, donc la nécessité de collaborer avec l’ISO, et le fait que seule une partie du catalogue est accessible (il faut un abonnement pour accéder à la totalité de la ressource) rend la ressource moins pertinente pour de nombreux linguistes. Ces limites ont poussé des linguistes à proposer une ressource alternative.

    Glottocode : par le Max Planck Institute for Evolutionary Anthropology.

    Le projet Glottolog, initialement développé par Sebastian Nordhoff et Harald Hammarström, catalogue non seulement les langues du monde actuelles et passés, les familles de langues et leurs différentes branches, mais également « les restes » des hypothèses de langues ou de regroupements historiques. Cette granularité permet de retrouver les documents associés à chacun de ces objets. Si le catalogue est dédié aux langues moins connues, les langues les plus centrales sont elles aussi répertoriées. Il s’agit actuellement du catalogue mis en avant par les linguistes documentant les langues à travers le monde. L’application Glottolog est disponible via la licence MIT.

    Aperçu du Glottolog à travers la liste des langues

    Si aux premiers abords, la liste des langues du Glottolog ne se distingue pas franchement de celle de l’ISO 639, c’est parce qu’il faut regarder plus en détail pour comprendre les différences essentielles entre les deux ressources. Notons tout de même la colonne « Child dialects » : « Dialectes enfants », et les champs vides au niveau des colonnes Top-level-family et pour la langue Abai Tubu-Abai Sembuak dans la colonne « ISO-639-3 ». La colonne « Child dialects » représente une information qui n’est pas documenté dans l’ISO 639, ce n’est pas son objet après tout, mais qui est intéressant pour les linguistes travaillant sur cette langue, indiquant qu’un minimum de données sociolinguistiques sont disponibles. Les champs vides dans la colonne « Top-level family » sont dus au fait que ces langues sont des isolats, c’est-à-dire que la linguistique comparée ne trouve pas de correspondances significatives entre cette langue et d’autres langues qui permettraient de les regrouper en une famille. Enfin, le vide dans la colonne ISO-963-3 révèle que la langue Abai Tubu-Abai Sembuak ne possède pas d’entrée dédiée dans la norme.

    Ainsi, lorsque l’on consulte une langue en particulière, ici le Nisvai, on voit apparaitre tous les embranchements existants associés à cette langue :

    La langue Nisvai dans le Glottolog

    Cette vue de l’arborescence associée à une langue particulière révèle tous les embranchements auxquels peut⁻être associée une langue. Et à chacun de ces embranchements, si des ressources linguistiques ont été identifiées par les mainteneurs du Glottolog, celles peuvent être proposées. Cette fonction permet aux linguistes de trouver des ressources sur les langues proches, non pas géographiquement (même si en pratique c’est le plus souvent le cas), mais d’un point de vue généalogique.

    Les autres

    Il existe d’autres initiatives pour cataloguer les langues du monde, que ce soit la liste proposée par Wikipedia, la liste de la CIA ou encore The Linguasphere Register, mais ces initiatives ne sont pas aussi pertinentes du point de vue de la documentation des langues.

    Documenter les langues

    ELAN : des schémas d’annotation flexibles

    ELAN est un des logiciels libres (GPL3) les plus utilisés par les linguistes pour annoter des enregistrements audio et vidéo. Il permet d’élaborer des structures d’annotation complexes permettant ainsi de rendre compte des analyses que les linguistes souhaitent associer à un enregistrement. Ces couches d’annotation sont reliées les unes aux autres par des relations logiques, avec le plus souvent une couche de référence indexée temporellement à l’enregistrement. Les annotations les plus courantes sont une transcription, une traduction et une annotation morphologique. Mais des nombreuses autres analyses peuvent être incluses, que ce soit les parties du discours, les références et anaphores, l'animéité, mais aussi les gestes, la structuration du discours, les signes pour les sourds et malentendants.

    Extrait d’une narration présente dans DoReCo, et vue sur les différentes couches d’annotation pouvant être associés à un enregistrement.

    Dans cette capture d’écran issu d’un texte de DoReCo retravaillé par l’auteur, on aperçoit un extrait de quelques secondes d’une narration nisvaie. Il s’agit d’un des modes de visualisation des annotations proposées par ELAN pour représenter les différentes couches d’annotation. Certaines de ces annotations ont été réalisées à la main par l’auteur, d’autres ont été retravaillées par les algorithmes mis en place par DoReCo, puis manuellement corrigés. Enfin, il y a également des couches d’annotation de la prosodie par le biais de SLAM+.

    FLEX : gérer un projet de documentation

    FLEX est un logiciel développé par le SIL et dont le code source est régie par la licence LGPL 2.1. Il est conçu davantage pour coordonner l’ensemble d’une documentation linguistique, de la gestion des textes à l’élaboration d’un dictionnaire, en passant par les analyses linguistiques. En revanche, il ne gère pas réellement l’annotation d’enregistrements. De nombreux linguistes l’utilisent en complément d’ELAN.

    Si le logiciel est prometteur sur le papier, à chaque fois que je l’ai essayé, j’ai été rebuté par son côté usine à gaz, et surtout ses nombreux plantages notamment lorsqu’on essaie de gérer des fichiers multimédia avec. Et il en est de même pour les autres logiciels développé par le SIL, tel que SayMore pour gérer les métadonnées des enregistrements, WeSay pour faire des dictionnaires en collaboration avec les locuteurs et locutrices, à chaque fois que je les ai essayés, enthousiasmé par leurs fonctionnalités, j’ai été déçu par le fait qu’ils ne fonctionnaient pas correctement sur mon ordinateur.

    Aperçu de Flex

    Cette capture d’écran illustre un des modes de saisie de FLEX, ici la vue tabulaire du lexique, qui permet de rentrer et gérer les définitions des lexèmes (les entrées du dictionnaire) de manière assez rapide. On aperçoit dans la partie en haut à gauche les autres modes d’édition du lexique, et en dessous les autres catégories liées à la gestion d’un projet de documentation : Texts & Words, Grammar, Notebook et Lists. C’est à travers la catégorie Texts & Words que l’on peut par exemple importer des textes transcrits, voire des fichiers ELAN pour peupler la base de données lexicales. Grammar permet de décrire les paradigmes grammaticaux, FLEX propose d’ailleurs quelques algorithmes qui aident à la construction des paradigmes grammaticaux. Notebook et Lists servent à la gestion du projet, le premier pour prendre des notes diverses, et le second pour créer des listes, en particulier des tâches encore à réaliser.

    Et il y en a bien d’autres encore

    Il existe de nombreux autres logiciels similaires, tels qu’EXmaralda pour l’annotation des enregistrements (surtout utilisé en Allemagne à ma connaissance), Sonal (non libre, et dont le développement semble arrêté) qui est utilisé par les sociologues et les anthropologues pour une annotation thématique de leurs entretiens, Anvil, qui semble intéressant mais que je n’ai jamais réellement vu utilisé, ou enfin le vieux Transcriber qui lui était encore employé par certains projets il y a quelques années. Rentrer dans le détail de tous ces logiciels dépasserait le cadre d’une dépêche comme celle-ci, mais énumérer la diversité logicielle montre qu’il s’agit d’un secteur un minimum dynamique, d’ailleurs la question de la transcription et de l’annotation des enregistrements ne se limite pas du tout qu’au domaine de la documentation des langues du monde.

    L’archivage et la compilation de corpus

    Afin de conserver et partager les corpus et donnée enregistrées par les linguistes, chercheurs voire simplement les personnes ayant documenté une langue, il existe des archives, le plus souvent en ligne. Il y a en France par exemple Pangloss, géré par le LACITO, dédié aux langues orales, ou ORTOLANG, plus générique, pour les corpus de langue. En Océanie, il y a Paradisec. Il y a aussi ELAR, autrefois à Londres, et qui a déménagé récemment à Berlin récemment.

    Ces archives proposent diverses interfaces pour déposer, gérer et parfois même consulter les enregistrements et les annotations réalisés par les linguistes et leurs collaborateurs·e·s. À noter que pour ces archives, Ortolang décrit son architecture logicielle qui repose sur des briques ouvertes, en revanche concernant Paradisec et Pangloss, bien que leur statuts soient sûrement similaires du fait de la démarche générale de ses ingénieurs, je n’ai pas trouvé de liens vers les logiciels employés. Quant à ELAR, le logiciel utilisé est Preservica, une solution propriétaire qui, quand on a le malheur de devoir l’utiliser, fonctionne bien lentement.

    La compilation de corpus, si elle se rapproche de l’archivage en ce qu’il s’agit également de recueillir, conserver et publier les corpus des linguistes, correspond également à une édition particulière de ces corpus. La compilation de corpus est réalisé à travers la mise en place de processus de qualité, d’annotations et de conventions particulières. Les deux compilations de corpus présentées ici sont des compilations de corpus de documentation de langues orales. Les enregistrements ont été systématiquement annotés en utilisant une convention nommée les gloses interlinaires (le nom fait en fait référence à la pratique ancienne d’insérer des explications entre les lignes d’un texte. En pratique aujourd’hui, ce n’est plus vraiment ce que font les linguistes, puisque le travail est informatisé et les annotations ne sont plus entre les lignes, mais, le terme a cependant été conservé).

    DoReCo

    DoReCo est une compilation de 52 corpus en accès ouvert (NdR : auquelle l’auteur a contribué). La compilation a nécessité la mise en place de processus de qualité afin d’assurer la cohérence de l’ensemble et de fournir un certain nombre de garanties quant aux qualités du corpus.

    Les langues dans DoReCo

    Une première qualité, et l’une des originalités de DoReCo, est de proposer un alignement temporel est très fin. La durée de chaque phonème, de chaque morphèmes, de chaque mot (ici suivant la définition de la personne à l’origine du corpus, car la définition d’un mot n’a rien d’une évidence) et enfin de chaque groupe de souffle est fournie. Une deuxième qualité a été de s’assurer que pour l’ensemble des retranscriptions, chacun des termes et des morphèmes possède une glose, c’est-à-dire qu’ils possèdent une explication linguistique.

    La compilation totalise une centaine d’heures d’enregistrements audio, en grande majorité des narrations monologiques. À noter que les corpus de la compilation sont accès ouvert, via une licence Creative Commons, mais que les droits d’utilisation varient d’un corpus à l’autre. Les données sont accessibles aux formats d’ELAN : .eaf, de Praat : . TextGrid, TEI.xml, et.csv.

    Multi-CAST

    Multi-CAST est également une compilation de 18 corpus de documentation de langues différentes. Les textes annotés via le logiciel ELAN. Contrairement à DoReCo, l’alignement temporel des annotations n’est pas réalisé de manière précise, mais manuellement, par les personnes à l’origine du corpus, à l’échelle de l’énoncé. Les textes sont également en grande majorité des narrations monologiques. L’originalité de cette compilation de corpus vient du fait que les textes contiennent trois couches d’annotation particulières : GRAID, Grammatical Relations and Animacy in Discourse, (voir), puis RefIND et ISNRef (Referent Indexing in Natural Language Discourse, voir Schiborr et al. 2018).

    La page d’accueil de Multi-Cast

    Cette compilation de corpus est aussi disponible dans plusieurs formats. XML évidemment, puisque c’est le format natif d’ELAN, mais aussi TSV et il existe également un paquet pour R. Tout cela est disponible via la licence CC-BY 4.0.

    Conclusion

    J’espère que vous avez apprécié cette introduction à la documentation des langues à travers les logiciels libres. L’idée est surtout d’attiser la curiosité, car il reste évidemment encore de nombreux aspects ou points à discuter et à approfondir. La prochaine fois que j’aborderai le thème de la documentation linguistique ici, j’espère que ça sera pour présenter mon application basée sur Django pour faire de la lexicographie.

    Il y a également un autre sujet sur lequel j’aimerais bien échanger ici prochainement : la question des licences des données collectés et la négociation lorsque l’on travaille avec des personnes à tradition orale. Si ouvrir l’accès aux données de recherche et aux corpus peut sembler être une évidence pour certains, il ne faut pas oublier que souvent, les chercheurs et chercheuses de terrain collectent des informations personnelles, que la connaissance n’est pas forcément considérée comme un bien public et les enregistrements, notamment les narrations, qui ne sont pas forcément perçues comme des fictions, sont souvent couverts par des droits locaux. Enfin, ouvrir ses données de recherche, si c’est permettre à d’autres de réutiliser ses données, requiert beaucoup de travail de la part des linguistes, c’est une tâche longue, ingrate et surtout peu valorisée. Alors qu’il est de plus en plus précaire d’être chercheur en sciences humaines, il est aussi difficile de demander à ces chercheurs et chercheuses de consacrer une grande partie de leur temps à des tâches qui ne leur permettront pas de se constituer un CV, nécessaire si l’on souhaite avoir un poste stable (c’est-à-dire plus de deux ans).

    Label sans IA : ce texte a été rédigé sans aucun aide de la part d’une LLM.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    À partir d’avant-hierFlux principal

    Codeberg, la forge en devenir pour les projets libres ?

    Face aux risques que fait peser GitHub sur le monde des logiciels libres suite à son rachat par Microsoft en 2018, une alternative semble avoir percé. Cette dépêche propose un tour d'horizon des problèmes posés par GitHub et expose comment Codeberg pourrait y répondre.
    Logo Codeberg

      Sommaire

      Les points forts de Codeberg

      L'association Codeberg e.V. 1 et son projet Codeberg.org ont été fondés en janvier 2019, suite au rachat par Microsoft de GitHub. En plus d'un statut associatif à but non lucratif, ce qui limite les risques de disparition du jour au lendemain, Codeberg est basé en Europe (à Berlin), ce qui est un plus pour nos données personnelles.

      Son logo représente un sommet enneigé sur fond de ciel bleu. En effet, en Allemand, der Berg veut dire la montagne et on pourrait donc traduire Codeberg par une « montagne de code ». Et effectivement, la communauté compte fin avril 2024 plus de 102 000 utilisateurs et plus de 129 000 projets y sont hébergés. L'association qui dirige le projet compte plus de 400 membres. Le financement s'effectue par les dons (déductible des impôts en Allemagne) et/ou contributions aux projets sous-jacents à la forge.

      La forge est basée sur Forgejo, logiciel libre sous licence MIT, dont le nom vient de l'Esperanto forĝejo, ce qui est cohérent avec l'attention portée à la langue de l'utilisateur et aux problèmes de traduction (service Weblate). Comme avec GitLab, la licence libre implique qu'un projet peut posséder sa propre instance s'il le souhaite. On notera que Forgejo est un fork de Gitea, lui-même fork de Gogs, et est donc écrit en langage Go, langage sous licence BSD avec un brevet. Le projet Forgejo, évidemment hébergé sur Codeberg, est très actif avec plus de 900 Pull Requests acceptées depuis un an.

      La problématique du tout GitHub

      GitHub, lancé en 2008, est devenu la plus grosse plateforme d'hébergement de codes sources, utilisée par un grand nombre de projets majeurs du monde du libre (Firefox, Matrix, Yunohost…). Ce qui par effet d'attraction — et de réseau centralisant, contraire au choix de git décentralisé par nature — conduit souvent à faire de Github un choix par défaut, facilitant les interactions avec les autres projets et permettant d'accéder à une large base de contributeurs potentiels. Quand on cite une URL GitHub dans un réseau social, on peut d'ailleurs voir apparaître ce genre de message :

      Contribute to Someone/my_project development by creating an account on GitHub.

      Cependant, si ce service fourni par Microsoft est actuellement encore gratuit, il est soumis à son bon-vouloir, avec le risque de voir se répéter l'épisode SourceForge (publicités trompeuses, installateurs modifiés, usurpation d'identité de projets partis ailleurs, etc.).

      Par ailleurs, derrière une communication favorable à l'open source, le code de la forge GitHub est volontairement fermé. Vous ne pouvez donc pas avoir votre propre instance de GitHub. En outre, cela laisse un flou sur l'exploitation de nos données (au sens large, le code lui-même et nos données personnelles, l'hébergement étant délégué). Avec l'arrivée du projet Copilot, il est cependant certain que nos codes servent à alimenter un outil d'IA, permettant à Microsoft de monétiser des suggestions de code en faisant fi des questions de licence. Une partie d'un code sous licence libre pourrait potentiellement se retrouver injectée dans un projet avec une licence incompatible et de surcroît sans citation de l'auteur.

      Des alternatives possibles

      On pense tout d'abord à GitLab, logiciel lancé en 2011, qui permet d'avoir sa propre instance serveur pour maîtriser l'ensemble (client et serveur sont libres). Parmi les grands projets libres, on trouve en particulier GNOME et Debian qui utilisent leur propre instance GitLab CE (Community Edition), logiciel sous licence MIT. Mais il faut nuancer : la forge GitLab.com utilise GitLab EE (Enterprise Edition) qui est propriétaire et propose des fonctionnalités supplémentaires. GitLab suit donc un modèle dit open core. GitLab compterait plus de 30 millions d'utilisateurs inscrits et l'entreprise GitLab Inc., lancée en 2014, génère plusieurs centaines de millions de dollars de revenus. On notera enfin qu'en 2018, le site migre de Microsoft Azure à Google Cloud Platform (USA), ce qui a posé des problèmes d'accès dans certains pays.

      Autres projets de forges libres plus modestes :

      • Codingteam.net (une initiative française, service clôturé en 2019).
      • SourceHut http://sr.ht (et https://sourcehut.org/), initié par Drew DeVault.
      • Disroot basé sur Forgejo comme Codeberg, mais il ne semble pas avoir attiré de projets d'envergure (le portail, sorte de Framasoft néerlandais, est néanmoins à recommander).
      • Chez un Chaton (GitLab ou Gitea pour la plupart).
      • L'auto-hébergement : chez-vous, dans un fablab, en datacenter sur serveur dédié…

      Pour vous faire venir sur Codeberg

      Premières impressions

      La page principale est accueillante et annonce que Codeberg.org ne vous piste pas et n'utilise pas de cookies tiers. Les statistiques actuelles sont affichées : nombre de projets, d'utilisateurs et de membres de l'association. Chose agréable, vous avez la possibilité de choisir le français parmi les nombreuses langues proposées pour l'interface. Petite icône qui attire l'attention : l'activité de chaque dépôt peut être suivie grâce à un flux RSS. Sinon, l'organisation générale est très semblable à celle de GitHub ou GitLab et la prise en main de Codeberg se fait donc sans effort.

      Fonctionnalités avancées

      • Codeberg pages : permet de disposer d'un site web statique pour le projet
      • Forgejo actions : pour dérouler automatiquement les actions nécessaires à l'intégration continue (CI/CD)
      • Weblate : pour gérer les traductions de votre projet. On peut d'ailleurs y constater que parmi les traductions de Forgejo, le Français est dans le peloton de tête.

      Projets ayant migré ou ayant un miroir sur Codeberg

      Un certain nombre de projets importants utilisent désormais Codeberg, ce qui est à la fois un gage de confiance et assure une base de contributeurs a minima :

      • libreboot : remplacement libre de BIOS/UEFI.
      • Conversations : le client majeur XMPP sur Android.
      • WideLands : jeu libre basé sur le concept de Settlers II.
      • LibreWolf : fork de Firefox axé sur la vie privée.
      • F-Droid : magasin d'applications libres pour Android.
      • FreeBSD : miroir de https://cgit.freebsd.org/
      • FreeCAD : miroir officiel.
      • Forgejo : fork communautaire de Gitea suite à la privatisation de celui-ci en 2022.
      • Fedilab : client Android pour le Fediverse.
      • irssi : client IRC.
      • Peppermint OS : une distribution Linux avec bureau minimaliste.
      • DivestOS : un fork de LineageOS orienté sur la protection de la vie privée.
      • VeggieKarte : un service pour trouver des restaurants végétariens/végétaliens.

      Comment migrer vers Codeberg ?

      Migrer le code source et l'éventuel Wiki associé ne devrait pas poser de problème particulier. Il suffit de configurer git pour pusher vers la nouvelle forge. Cette page décrit comment migrer l'ensemble de votre projet (incluant les issues, le wiki, les Pull Request, etc.) vers Codeberg : https://docs.codeberg.org/advanced/migrating-repos/

      Concernant les Workflows (CI), bien qu'il n'y ait pas de garantie de compatibilité avec les Actions Github, la syntaxe se veut similaire pour faciliter la transition : https://forgejo.org/2023-02-27-forgejo-actions/

      Au-delà de l'aspect technique, il reste aussi à faire migrer la communauté d'utilisateurs (la présence fortement suivie sur Mastodon peut être un avantage).

      Conclusion

      Codeberg est un outil prometteur. Il reste pour la communauté du logiciel libre à le faire grandir. Rappelons les statistiques : 100 millions de développeurs sur GitHub, 30 millions utilisant GitLab et 100 000 pour Codeberg. Le potentiel est grand, l'un des enjeux est de financer l'association pour accompagner la croissance de la communauté, tout en faisant monter en puissance l'infrastructure informatique.

      Sources / Liens

      Controverse GitHub

      Forges diverses

      Codeberg


      1. e.V. est l'abréviation de eingetragener Verein (association déclarée). 

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      L’informatique sans écran

      Lors d’un Noël de ma tendre jeunesse pré-adolescente est arrivé un « ordinateur » dans le foyer. Ce PC (Intel 386) a été installé dans le bureau et a vite dégénéré en console de jeux. Puis les années passant c’est devenu une formidable source d’expérimentation informatique pour un geek en devenir. À cette époque on sensibilisait la jeunesse à ne pas passer trop de temps devant la télévision et la console de jeux, puis devant l’ordinateur et les jeux vidéo violents. Mais on ne parlait pas vraiment de l’écran.

      Aujourd’hui les messages de sensibilisation se résument aux écrans :

      • « pas d’écran avant trois ans »
      • « nos jeunes passent leurs temps sur leurs écrans » (comme si les « vieux » n’y étaient pas non plus)
      • « attention les écrans fabriquent une génération de crétins »
      • « les écrans, les écrans, les écrans…»

      Il est vrai qu’aujourd’hui l’informatique ne se résume presque plus qu’à un écran. De l’ordinateur avec clavier+souris+écran, voire crayon optique, on est passé aux tablettes et ordiphones qui n’ont plus que l’écran (tactile quand même).

      Pour prendre le contre-pied de cette obsession des écrans, je me demandais donc s’il existait encore une informatique « sans écran ». La formidable multiplicité des activités que l’on peut avoir sur un ordinateur pourrait-elle se faire sans écran ? Dans quelle mesure peut-on coder, surfer sur le web, lire/envoyer des mails sans écran ? Cette informatique fantasmée par notre ex-ministre de l’éducation est elle une réalité ?

        Sommaire

        L’informatique, une histoire d’abord sans écran

        Si l’on date la naissance de l’ère de l’informatique avec Ada Lovelace, et qu’on estime l’arrivée des ordinateurs avec écrans à la fin des années 1970, alors on peut aisément dire que l’informatique a été plus longtemps sans écran qu’avec.

        Peinture d’Ada LovelaceMalgré son look cosplay de manga elle n’a pas subi trop d’écrans dans son enfance, elle.

        De même, il est raisonnable de considérer l’ordinateur comme l’outil principal pour faire de l’informatique. Il fut largement sans écran à ses débuts.

        Ken Thompson (assis) et Dennis Ritchie (debout) manipulant un DEC PDP-11
        Pas d’écran pour ces deux geeks qui ont développé UNIX et le langage C (source)

        L’altair8800, sorti en 1975 et sur lequel Microsoft a écrit son BASIC, se programmait avec des rubans perforées, voire avec des commutateurs, et l’affichage se faisait avec quelques diodes (DEL) en face avant.
        Les cartes à trous étant plutôt utilsées avec les gros ordinateurs (aka Big Iron).

        Vue de face de l’Altair8800Difficile de considérer ces deux lignes de diodes rouges comme l’écran de l’Altair8800

        L’écran ≠ la vue

        Pour faire sans écran, on pense instinctivement à utiliser d’autres sens que la vue comme l’ouïe ou le toucher (pour le goût ou l’odorat difficile d’imaginer la chose). Mais l’histoire de l’informatique nous montre que les premières interfaces homme-machine ne fonctionnaient pas avec des écrans, et pourtant utilisaient la vue (lumière, LED, imprimante, position mécanique…).

        Mais qu’appelle-t-on écran ?

        D’après la définition de Wikipédia, « un écran d’ordinateur est un périphérique de sortie vidéo d’ordinateur. Il affiche les images générées par la carte graphique de l’ordinateur. Grâce au taux de rafraîchissement d’écran élevé, il permet de donner l’impression de mouvement. »

        Donc si l’on s’en tient à wikipédia, un écran d’ordinateur c’est :

        • des images générées par une carte graphique d’ordinateur. Exit la télé cathodique avec un tuner analogique (qui devient rare aujourd’hui avec la TNT).
        • avec un taux de rafraîchissement élevé. Exit les liseuses et autres appareils utilisant un affichage type «  papier électronique ».
        • pas d’indication de résolutions.

        On peut sans doute rajouter les écrans (comme les télés) qui ne sont pas raccordés à une carte graphique dans la catégorie écran.

        Cela serait donc la résolution (définition et taille…) et le rafraîchissement (fréquence de balayage) du périphérique de sortie vidéo qui font un écran.

        La matrice 5 × 5 d’un micro:bit ne correspond pas à un critère de résolution suffisant, pas plus que les deux poussoirs ne pourraient prétendre à être un clavier.
        micro:bit Pourtant il affiche bien une « image » de cœur <3 !

        Les afficheurs 7 segments ne peuvent pas être considérés comme des écrans. Ils n’affichent que des chiffres et quelques symboles. Difficile de créer une impression de mouvement avec seulement des segments.
        Afficheur 7 segmentsEn faisant un effort, on arrive à reconstituer quelques lettres.

        En doublant le nombre de segments, on arrive à afficher l’ensemble des lettres de l’alphabet latin
        Afficheur 14 segmentsSans diacritiques, faut pas pousser

        Un « panel » LCD 20×4 et ses caractères de 8 pixels sur 5 forme un écran de 100 pixels sur 32, la résolution est déjà meilleure, même s’il est toujours prévu pour n’afficher que du texte. Néanmoins on se rapproche de l’idée que l’on se fait d’un « écran ».

        Du papier électronique ne peut pas être un écran. La résolution peut être excellente mais le rafraîchissement reste insuffisant.

        Finalement la définition de Wikipédia n’est guère rigoureuse ni efficace, entre l’unique LED du panneau de contrôle et l’écran haute résolution, il y a un continuum de périphériques de sortie utilisant des signaux lumineux pour former des images. Il faut peut-être alors chercher les systèmes informatiques qui, dans leur usage normal, utilisent d’autres périphériques de sortie ou pas de périphériques de sortie du tout.

        L’embarquée, une informatique massivement sans écran

        Bien sûr il faut définir le mot « informatique ». Si l’on se réfère à la définition de Wikipédia :

        L’informatique est un domaine d’activité scientifique, technique, et industriel concernant le traitement automatique de l’information numérique par l’exécution de programmes informatiques hébergés par des dispositifs électriques-électroniques : des systèmes embarqués, des ordinateurs, des robots, des automates, etc.

        Avec cette définition, le moindre dispositif électronique embarqué est de l’informatique. Lancer une machine à laver, programmer son four ou préparer une cafetière pour le lendemain est donc une forme de manipulation informatique… qu’on peut envisager sans écran.

        Cependant dès que vient le besoin de développer un système embarqué ou même de le réparer/déverminer, l’écran revient au galop. On a rapidement besoin d’un écran pour y connecter son environnement de développement et sa sonde de debug. Et même l’oscilloscope ou l’analyseur logique que l’on branche pour « voir » les signaux dispose d’un écran.

        En usage normal donc, certains dispositifs informatiques sont conçus pour ne pas nécessiter d’écran parce qu’ils disposent d’un autre périphérique de sortie. Certains centres commerciaux, certaines gares proposent des distributeurs d’histoires courtes : trois boutons comme périphérique d’entrée et une imprimante thermique comme périphérique de sortie. Appuyez et vous aurez de la lecture pour une, trois ou cinq minutes.

        Distributeur d’histoires courtes en gare de Lyon-PerracheSoyons optimistes : il n’y aura pas plus de cinq minute d’attente !

        Plus courant, une box Internet domestique est aussi un dispositif informatique sans écran.

        Livebox 6- Il est où l’écran ? - Dans ton… navigateur

        Il faut reconnaître que si l’usage courant, la connexion à l’Internet, ne nécessite pas d’écran sur la box, son paramétrage en utilise bien un : celui de l’ordinateur sur lequel tourne votre navigateur préféré.

        Les assistants vocaux sont des ordinateurs sans écran. Les principaux périphériques d’entrée comme de sortie sont audio : commande vocale, réponse également. Radio France fait d’ailleurs la publicité pour son offre pour enfants, une histoire et… Oli, sur cette absence d’écran, jouant, sans trop le dire, sur cette peur parentale des écrans.

        Pourrait-on pousser l’utilisation de ces ordinateurs pour faire du développement et «coder en vocal» ? Possible, il est tout à fait possible de programmer l’ouverture de ses volets, la lecture d’une musique ou le thermostat de sa chaudière avec. Mais ça n’est pas du développement.

        L’éducation numérique mais sans écran

        Il est largement possible d’apprendre l’informatique sans écran, et même sans ordinateur.

        La robotique pédagogique se développe depuis l’apparition de la tortue Logo. Actuellement, pour les plus jeunes dès l’école maternelle, c’est une abeille qui est proposée comme initiation à la programmation.

        Bee-Bot en actionSi, si, je suis bien un ordinateur

        La Bee-Bot se programme à l’aide de sept touches et les périphériques de sortie sont les moteurs de déplacement, un petit haut-parleur et en option un porte-crayon. Avec une interface HommeEnfant-Machine aussi simple, il s’agit plutôt d’une mémorisation de séquences de mouvements que de programmation à proprement parler et pour en utiliser toutes les capacités, un interfaçage avec une application ou un ordinateur plus conventionnel est possible, mais on y retrouve un écran ! De nombreux autres robots pédagogiques, un peu plus complexes et performants, existent mais ceux-ci utilisent un écran classique pour accéder à l’interface de programmation.

        Quitte à supprimer les écrans autant aller au bout de la démarche et supprimer l’ordinateur dans son ensemble. Des pédagogues ont ainsi inventé l’informatique déconnectée. Un papier, un crayon, ni écran ni matériel comme le jeu du robot idiot. Les esprits chagrins pourraient y voir une solution au manque de matériel des établissements scolaires.
        Plus que d’informatique il s’agit en fait d’initiation à l’algorithmie.

        Mais peut-on se passer d’écran pour développer ?

        Les plages braille

        Il existe une catégorie de population qui est contrainte de se passer d’écran pour se servir d’un ordinateur : les aveugles.

        Les personnes aveugles peuvent pourtant se servir d’ordinateur, notamment grâce à un clavier spécifiquement développé pour eux nommé « plage braille ». Grâce à ces plages brailles, les aveugles peuvent lire les caractères en braille en touchant une ligne munie de petites pointes pilotés.

        Le prix de ces appareils est assez prohibitif pour quelqu’un qui voudrait jouer avec sans en avoir réellement besoin (un geek quoi). C’est pourtant une bonne manière de faire de l’informatique sans écran. Pour le codage informatique, on utilise un braille à huit points au lieu des six habituels ce qui permet d’avoir 256 combinaisons, soit autant que la table ASCII. La table braille informatique actuelle a été approuvée à l’unanimité en 2007 par la Commission Évolution du Braille Français, elle porte le numéro TBFR2007.

        Que vaudrait un jeu vidéo développé pour une plage braille ? Et pourrait-on l’appeler jeu vidéo ?

        Avec du papier et un stylo/machine à écrire/carte perforé puis scanner

        On peut également faire beaucoup de choses un papier un crayon/stylo/pinceau puis le scanner pour qu’il soit utilisé dans l’ordinateur. Ça reste généralement qu’une étape du développement les programmes ne sont pas plus réalisés intégralement sur papier avant d’être intégré à l’ordinateur.

        Pour conclure

        Avec des écrits comme « la fabrique du crétin digital » et des propos comme ceux de notre ex-ministre de l’éducation, les écrans sont devenus la bête noire de tous les pédagogos.

        Mais l’important n’est-il pas de savoir ce que l’on fait avec un écran ? Faut-il vraiment s’acharner à s’en passer ?

        Sans doute pas.

        Il serait cependant intéressant d’apprendre à se servir d’outils réservés aux aveugles par exemple. Si nous n’avons plus besoin de la vue pour coder, nous pourrions être un peu plus multi-tâches et coder tout en… regardant la télé !

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Degate : espionner un CPU depuis les waters

        Degate est un logiciel libre pour faire de l'ingénierie inverse sur les processeurs.

        Pour le présenter, Dorian Bachelot, mainteneur du projet, a accepté de répondre à nos questions.

        Logo Degate

        Sommaire

        Présentation

        Entretien avec Dorian Bachelot

        Présentation

        Qui êtes-vous ? Quel est votre parcours ?

        C’est sûrement très « bateau », mais comme beaucoup je suis avant tout un passionné d’informatique et d’électronique. J’ai commencé à programmer dans mes années collège (début des années 2010) et suis rapidement arrivé à découvrir Linux ainsi que d’autres galaxies (C++, git, virtualisation, reverse engineering…). Par la suite j’ai eu la chance de réaliser un diplôme d’ingénieur à l’ESIEA (école d’ingénieur généraliste sur Laval) qui m’a permis de découvrir de nombreux domaines comme l’électronique embarquée, la cybersécurité et l’intelligence artificielle. Comme beaucoup, j’ai un faible pour les domaines complexes et devoir me limiter à une seule spécialité pour mes études ne m’allait pas trop. C’est sur ce dernier point que démarre l’aventure Degate au côté du laboratoire de recherche en cybersécurité de mon école. Cette dernière proposait en effet un format « espoir recherche » permettant de creuser un sujet de recherche en plus des cours. Mon sujet a justement porté sur Degate, puisque comme nous allons le voir la rétro-ingénierie matérielle a l’avantage de toucher autant à l’électronique, qu’à la physique, la cybersécurité et l’intelligence artificielle !

        Quant à aujourd’hui, après avoir travaillé sur le sujet de la rétro-ingénierie matérielle pendant presque 3 ans (en publiant 5 articles dans Hackable et en travaillant sur Degate) et avoir obtenu mon diplôme, je suis Tech Lead R&D Cyber/IA chez Neverhack (on vient de lever 100 millions d’euros). J’ai pu en effet garder une dualité de spécialité, à travers la cybersécurité et l’intelligence artificielle, principalement grâce à cette aventure d’espoir recherche (et donc en partie de Degate) 1.

        Est-ce que vous êtes parent de Roselyne ?

        Et non, du tout, mais bien vu ;)

        Qu’est-ce que Degate ?

        En une phrase : Degate est un logiciel open source (GPL-3.0) et multiplateforme aidant ses utilisateurs à effectuer de la rétro-ingénierie sur des puces de silicium 2.

        Maintenant, pour donner un peu de contexte, le développement de Degate a commencé dès 2008 avec la thèse de master de Martin Schobert 3. Jusqu’à la fin de cette dernière en 2011, Martin a pu faire évoluer la solution et collaborer avec d’autres chercheurs pour l’utiliser sur des sujets de cybersécurité. Par exemple, Degate a pu être utilisé 4 pour aider à la rétro-ingénierie de la puce RFID MIFARE Classic de NXP (le développement de Degate a d’ailleurs pour source ce cas précis). Par la suite, les chercheurs Karsten Nohl et Starbug ont pu trouver une faille cryptographique dans la puce permettant d’outrepasser toutes les sécurités (on parle ici d’un impact économique énorme pour NXP) 5.

        Degate est donc un logiciel avec une histoire riche de plus de 10 ans, qui a déjà permis d’avoir un impact dans l’industrie (et, suite au cas MIFARE Classic, dans la société). Il est aujourd’hui le seul bastion permettant à n’importe qui (ou presque) d’effectuer de la rétro-ingénierie matérielle sur des puces.

        Pourquoi dis-tu que c’est le seul bastion ?

        On peut voir ça sous différents angles, mais je parle d’unique bastion car Degate est le seul logiciel disponible à la fois gratuit, accessible (traduction de l’interface, documentation, etc.) et extensible (car open source). Or, les alternatives payantes sont généralement vendues sous conditions et donc difficilement accessibles. Seulement, comme je l’ai expliqué (modulo une déformation par mon parcours), la sécurité d’aujourd’hui passe, pour moi, forcément par une utilisation de la rétro-ingénierie matérielle beaucoup plus massive pour valider tout matériel critique. Et Degate n’est pas qu’un logiciel (surtout à sa création en 2008, c’était plus un outil ou un démonstrateur), c’est aussi une preuve d’importance (MIFARE Classic) et des ressources en ligne (wiki, articles, thèse, etc.). Il ne faut pas seulement voir le logiciel (avec ses défauts), mais plutôt l’approche : essayer de rendre plus accessible la rétro-ingénierie matérielle. Je ne clame pas que Degate réussit à remplir cette vision, mais je crois que nous sommes quasiment les seuls à essayer depuis maintenant plus de 10 ans (outre les projets visant à « rétro-ingénierier » certaines puces en particulier, sans prendre le prisme de la sécurité et de l’accessibilité).

        Comment ça fonctionne ?

        Avant tout il faut comprendre les contraintes et méthodes permettant d’effectuer de la rétro-ingénierie sur un objet aussi petit et complexe qu’une puce de silicium. Quand on parle d’une puce, on parle d’un agencement de milliards de transistors sur quelques millimètres et de leurs liens répartis sur plusieurs couches. La première étape est alors de définir un objectif, pouvant être la reconstruction d’un algorithme implémenté matériellement (et donc dans une zone réduite de la puce) ou encore la reconstitution complète du fonctionnement de la puce, par exemple pour construire un simulateur. Ensuite, il faut réussir à récupérer des images de la puce et de toutes ses couches (images en 2D ou 3D, un de mes articles dans Hackable aborde le sujet 6). Toutes les méthodes permettant d’obtenir ces images impliquent un processus destructeur pour la puce. Cela passe par exemple par un processus de polissage itératif et la prise de photographies (attention, on parle d’un exercice très complexe puisqu’une couche de silicium c’est extrêmement fin, et trop polir implique de devoir recommencer sur une nouvelle puce). On peut aussi prendre une approche chimique (utilisation d’acide pour attaquer couche par couche) ou laser. Sans développer beaucoup plus, ce processus est le plus important, car c’est avec ces photos très hautes résolutions que l’on va pouvoir débuter l’analyse de la puce.

        C’est là que Degate rentre en jeu, son objectif est de permettre d’utiliser les images obtenues, de les importer dans le logiciel (on parle généralement d’images de plusieurs Giga, voire Tera, tellement la résolution et leur taille sont grandes) puis de commencer l’analyse. Ensuite, l’utilisateur peut analyser les parties de la puce en partant de la couche la plus basse, celle avec les transistors, et ainsi reconstruire les portes logiques (c’est ici que des connaissances en physique et en électronique sont importantes, il faut savoir lire à travers les transistors !). Comme vous vous en doutez, effectuer l’analyse de chaque transistor quand il peut y en avoir des milliards serait trop fastidieux, et Degate facilite le processus. Ce dernier propose en effet de construire une bibliothèque de portes logiques reconstituée depuis une zone de l’image de la puce, et puisque l’agencement des transistors ne change pas pour chaque porte logique, on peut alors automatiser la recherche et reconstitution de ces portes via des algorithmes de reconnaissance d’images. Il ne reste alors à l’utilisateur qu’à analyser les connexions entre les portes logiques toujours grâce aux images de la puce (couches supérieures, les liaisons entre couches sont appelées des « Via ») et ainsi reconstituer les algorithmes utilisés par la puce. Degate permet là encore d’automatiser une partie du processus en aidant à la reconnaissance des connexions et en proposant d’exporter toute l’analyse dans un langage type VHDL (permettant de simuler le fonctionnement de la puce, si l’analyse a été réussie).

        Degate ne permet donc pas d’automatiser tout le processus de rétro-ingénierie, et une expertise humaine reste nécessaire (décapage de la puce, prise des photos, analyses des portes logiques puis des connexions), mais il permet de gagner un temps non négligeable sur l’analyse en automatisant plusieurs étapes. Pour cela, Degate implémente des algorithmes de reconnaissances d’images, supporte l’importation d’images extrêmement grandes (plusieurs millions de pixels de large), vous aide dans la navigation des images et couches, vous permet d’identifier les portes logiques formées par des transistors et bien plus.

        Si le sujet vous intéresse, je peux vous donner les références suivantes : on peut citer Ken Shirriff qui est LA personne à suivre sur le sujet (auteur de beaucoup d’analyses sur des puces historiques 7, comme la Intel 8086 ou la fameuse Z80), ou encore la communauté Visual 6502 8 qui ont rétro-ingénierié plusieurs puces (en partant de simples images pour finir par la création de simulateurs complets) ! Vous pourrez également explorer le super site Silicon Pr0n 9. Enfin, pour trouver une liste plus complète n’hésitez pas à vous rendre directement sur le dépôt de Degate 10.

        Il existe des protections contre ceci ? J’imagine que certaines entreprises n’aimeraient pas qu’on fasse de la retro-ingénierie sur leur puce, il me semble que certaines puces possèdent un genre de grillage.

        En effet, il existe beaucoup de méthodes pour essayer de s’en protéger. On parle de deux grandes catégories : les protections passives et actives. Les protections passives peuvent par exemple prendre la forme de résine que l’on “coule” sur les puces pour complexifier leurs récupérations (et aussi empêcher la récupération des références), ou d’une couche directement dans le silicium pour bloquer l’analyse visuelle de surface. D’autres méthodes existent, mais généralement de l’huile de coude et du bon matériel permettent de passer outre. Les méthodes actives sont plus recherchées et protègent contre d’autres approches de la rétro-ingénierie matérielle. Comme cité dans la question, l’ajout d’un grillage actif est une solution assez répandue dans les puces de cartes bleues par exemple. L’idée est à la fois de bloquer une analyse visuelle de surface de la puce, mais aussi d’empêcher le “probing” (essayer d’utiliser une sonde directement sur un “circuit” de la puce) ou la modification de la puce (par exemple en connectant deux “circuits” de la puce). Cela passe par un maillage avec des formes complexes (on peut voir ça comme un labyrinthe) alimenté par un courant qui, en cas de modification du circuit, peut rendre la puce non fonctionnelle. Il est alors compliqué d’aller voir et manipuler les couches inférieures en laissant la puce fonctionnelle. 11

        Est-ce que les différentes façons de gravure qui utilise différent MOSFET (CMOS, FinFET, MBCFET, FD-SOI etc) ne demandent pas des analyses différentes ? Est-ce que ça sera fiable avec les derniers types de gravure avec des transistors imbriqués 3D ?

        À tout problème sa solution : les méthodes d’analyses 3D de puces de silicium se développent également 6. Si le matériel nécessaire pour créer les données 3D venait à être plus accessible, je prévois déjà l’ajout d’un mode d’analyse à Degate permettant de les exploiter. Je ne doute cependant pas que les méthodes d’analyses actuelles fonctionnent pour la majorité des cas, même si le problème est déjà suffisamment complexe pour ne pas rajouter ces spécificités. Je n’ai personnellement pas pu couvrir toutes les méthodes de gravures dans mes analyses ni les nouvelles approches en 3D. Seulement, ces méthodes s’appliquent pour l’instant majoritairement à la mémoire, ce qui n’est pas forcément la cible des analyses.

        Qui se sert de Degate ? Est-ce une communauté de fans de consoles ou des professionnels confrontés à des puces qui ne sont plus documentées ou des gens du logiciel libre, etc. ?

        Dès ses premiers jours, Degate a été pensé pour la cybersécurité. L’idée était de pouvoir faciliter l’analyse d’algorithmes implémentés directement dans les puces de silicium, à la fois pour essayer d’identifier des failles, mais aussi pour vérifier la présence de portes dérobées. En effet, d’un point de vue sécurité trop peu de personnes vont voir ces puces alors que tout dépend d’elles. Comment faire confiance à un système si l’on ne peut pas vérifier la sécurité de son composant le plus important et bas niveau ? Permettre à des chercheurs et passionnés d’attaquer le sujet est ma principale motivation quand je travaille sur Degate, le sujet est pour moi majeur. On a trop tendance à s’arrêter à la rétro-ingénierie logicielle, et c’est malheureusement un risque que l’on oublie trop.
        Je sais aujourd’hui que Degate est utilisé (ou a été étudié) par des entreprises américaines dans le cadre de l’analyse de puces (je ne sais pas pour quel objectif), par la police allemande et par une université.

        Malheureusement le domaine n’encourage pas beaucoup la communication et Degate pourrait être utilisé ailleurs. J’ai d’ailleurs de gros doutes sur son utilisation par une entreprise américaine sous forme de fork non-partagé (ne respectant alors pas la licence GPL qui est copyleft…). Mais ça, c’est un combat classique du monde libre (pour dire, on m’avait même proposé de me payer pour travailler dessus…).

        Mais autrement, le logiciel peut être utilisé par d’autres communautés, comme pour les fans de vieux systèmes. Je sais que la communauté qui s’occupe de rétro-ingénierer la PlayStation s’est déjà intéressée à Degate 12.

        Concernant la sécurité, quels types de puces sont concernées ? J’imagine qu’il ne s’agit pas d’analyser les processeurs généralistes de nos ordinateurs… Ce sont des puces qu’on trouve dans quels matériels ?

        C’est très large, généralement on parle de puces avec des missions/parties critiques. Par exemple (comme pour le cas MIFARE Classic), des puces implémentant des algorithmes cryptographiques sont importantes à regarder : au niveau logiciel on recommande (et c’est un euphémisme) de ne jamais réimplémenter ses propres primitives cryptographiques, pourtant beaucoup de puces le font (méthode simple pour booster les performances, aujourd’hui tout utilise de la cryptographie). Maintenant, on parle généralement de certaines parties/fonctions d’une puce plus que des puces entières. On peut par exemple citer en plus de la cryptographie tout ce qui concerne le stockage de données critiques (comme les clés de chiffrement). Aujourd’hui, je pense que l’on retrouve ces fonctionnalités dans tout type de matériel.

        Comment en êtes-vous devenu le mainteneur ?

        Comme je l’ai expliqué précédemment, c’est via un programme proposé par mon école d’ingénieur que j’ai été amené à travailler sur le sujet de la rétro-ingénierie matérielle à partir de fin 2018. Et comme Degate était le seul programme gratuit et open source permettant d’automatiser une partie du processus (indispensable pour arriver à des résultats sans y passer 10 ans), j’ai rapidement eu l’occasion de pouvoir l’utiliser. Malheureusement l’auteur originel du logiciel ne contribuait plus au projet depuis quasiment 8 ans à l’époque, et j’ai rapidement rencontré des difficultés pour l’utiliser plus largement dans mes recherches.

        Après quelques mois de travail et un refactor à 70 % du projet (j’ai par exemple refait toute la GUI en Qt5 + OpenGL moderne) pour repartir sur de bonnes bases, j’ai publié mon fork sur Github. Par la suite Martin (l’auteur originel de Degate) a préféré mettre le projet initial en archive sur Github, et faire une redirection vers cette nouvelle version (aujourd’hui refaite à quasiment 80 % par moi-même). L’idée était de garder le nom et la communauté même si la grande majorité du logiciel a été refait.

        Maintenant, suite à la fin de mes études, je dispose de moins de temps qu’avant et je suis forcément moins actif. Mais j’essaie de traiter toutes les issues et pull request, tout en continuant à travailler sur de nouvelles fonctionnalités. Je cherche également à faire pérenniser le projet en proposant à des étudiants comme moi (à l’époque) un financement pour travailler sur le sujet (et surtout Degate). Reste maintenant à trouver des personnes motivées, car le sujet est vraiment complexe.

        Tu n’utiliseras donc pas Degate dans le cadre de ton travail ?

        Aujourd’hui non, mais je sais que la question se pose pour des collègues. Le test d’intrusion matériel se développe, et le sujet se pose de plus en plus. Maintenant les compétences nécessaires pour s’attaquer à la rétro-ingénierie de puces de silicium sont un frein pour descendre aussi bas, sans compter le problème du matériel (faut-il encore pouvoir décaper/déstratifier les puces avant de pouvoir commencer l’analyse). La solution actuelle est de pouvoir accéder au design des puces (test en white box), mais les limites sont déjà visibles (un matériel est généralement composé de nombreuses puces de constructeurs différents).

        Quelle est ta motivation ? Qu’est ce qui t’anime avec Degate ? Puisque tu as commencé l’informatique assez jeune, tu jouais peut-être avec des consoles ; est-ce que Degate te permet aussi d’imaginer recréer les puces de ton enfance ?

        Étant aujourd’hui un ingénieur chercheur porté sur la cybersécurité, cela me force à voir Degate et la rétro-ingénierie matérielle à travers ce prisme. Pouvoir permettre à des chercheurs d’analyser des puces utilisées dans des millions de matériels à travers la planète est ce qui m’anime, même si je ne doute pas que bien d’autres cas d’utilisations peuvent être tout aussi intéressants. Je suis par exemple aussi très porté sur l’histoire, et la rétro-ingénierie matérielle est aussi un moyen de ne pas perdre certaines pièces de notre histoire.

        Est-ce que vous tirez un revenu de ce travail ? Est-ce une bonne wafer ?

        Je suis actuellement financé 100$/mois par le mainteneur principal de Rizin/Cutter (logiciel de rétro-ingénierie software) et j’ai déjà eu plusieurs autres propositions de financement. Ayant également publié des articles sur le sujet, j’ai quand même pu être rémunéré pour ce travail, mais on est très loin de quelque chose me permettant de vivre (et ce n’est pas l’objectif).

        Pour finir

        Que dire sur vos autres projets ?

        Au niveau personnel je travaille (quand j’ai le temps) sur une nouvelle approche IA au service de la cybersécurité défensive. Malheureusement mon temps est très limité, et j’évite de trop m’éparpiller. Au niveau professionnel je suis aujourd’hui Tech Lead et Team Leader sur un projet d’automatisation de cybersécurité offensive. L’idée étant de créer un outil entièrement automatisé par IA permettant de jouer des attaques avec le même niveau de sophistication que les vrais acteurs (généralement quand je parle du projet on me parle de Skynet, pour ceux ayant la référence). Un produit devrait sortir dans les deux ans, nous avons déjà fait de nombreuses avancées scientifiques mais la route est encore longue. C’est aujourd’hui ce qui occupe le plus clair de mon temps !

        Que pensez-vous de la directive NIS 2 sur la cybersécurité ?

        La France a été pionnière en matière de réglementation dans le domaine de la cybersécurité, et je pense que la directive NIS 2 se place dans le même esprit que ce que l’on fait déjà depuis plusieurs années (avec la LPM de 2013 par exemple). Je sais que ces réglementations peuvent aussi faire peur, et l’accompagnement sera une condition nécessaire pour réussir son application. Malheureusement je pense qu’il est nécessaire d’agir au plus vite, les récents évènements géopolitiques ainsi que les (très) nombreuses attaques observées chaque semaine imposent d’investir dans la sécurité de nos entreprises. Je pense également que comme la NIS 1, la NIS 2 n’est qu’une étape, et que des évolutions seront nécessaires dans la prochaine décennie pour étendre les attentes concernant la sécurité des entreprises européennes.

        Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ?

        J’utilise depuis maintenant quatre ans Manjaro, venant de Debian/Ubuntu, et je suis très satisfait (le modèle rolling release me plaît beaucoup à l’usage).

        Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OS ?

        Au niveau professionnel je tourne sur du Ubuntu 22.04, et j’utilise principalement du VS Code.

        Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?

        Manjaro et Ubuntu sont les distributions que j’utilise dans la vie de tous les jours. Concernant les logiciels, la question est difficile puisque j’en utilise tellement. En ce moment je ne pourrais plus me passer de Joplin ou Signal, mais je pourrais en citer beaucoup (Virtual box, Kali linux, VSCode, Zotero…).

        Références

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        ❌
        ❌