Décompiler un logiciel, pour quoi faire - Décryptualité du 25 octobre 2021

De April MediaWiki


Titre : Décryptualité du 25 octobre 2021 - Décompiler un logiciel, pour quoi faire ?

Intervenants : Mag - Manu - Luc

Lieu : April - Studio d'enregistrement

Date : 25 octobre 2021

Durée : 15 min 22

Podcast

Décryptualité du 25 octobre 2021 - Décompiler un logiciel, pour quoi faire ?

Revue de presse de l'April pour la semaine 42 de l'année 2021

Licence de la transcription : Verbatim

Illustration : À prévoir

NB : transcription réalisée par nos soins, fidèle aux propos des intervenant·e·s mais rendant le discours fluide.
Les positions exprimées sont celles des personnes qui interviennent et ne rejoignent pas nécessairement celles de l'April, qui ne sera en aucun cas tenue responsable de leurs propos.

Transcrit MO

Description

La Cour de justice de l'Union européenne s'est prononcée en faveur de la décompilation d'un logiciel propriétaire pour corriger ses failles. L'occasion de se pencher sur cette pratique difficile rendue nécessaire par l'absurdité du logiciel.

Transcription

Luc : Décryptualité. Semaine 42. Salut Manu.

Manu : Salut Mag.

Mag : Salut Luc.

Manu : Semaine 42. Semaine 42 !

Luc : Il faut demander à l’experte en bouquins.

Mag : Douglas Adams a écrit le livre Le Guide du voyageur galactique. À un moment donné, on pose à un ordinateur la question qu’est-ce que l’univers. Il met une éternité à répondre et il répond « 42 ».

Luc : Le sens de la vie, de l’univers et du reste.

Manu : Donc c’est une référence geek par excellence.

Luc : Tout à fait. Mais je pense que pas de mal de nos auditeurs la connaissent.
Qu’est-ce qu’on a au sommaire Manu ?

Manu : Cinq articles assez sympas il y a des trucs rigolos.

Mag : Numerama, « Plagiat, usurpation d'identité, hack… le réseau social de Donald Trump est attaqué de toute part », par Corentin Bechade.

Manu : Voilà ! Moi je n’en peux plus, c’est drôle, c’est marrant parce que les gars se sont…

Mag : Plantés !

Manu : Non, ils ont fait beaucoup d’efforts. Ils ont eu vraiment beaucoup de difficultés, ils ont pris leur courage à deux mains pour installer un réseau social nouveau, libre, qui va défendre la liberté d’expression. Ils ont pris une bonne idée, ils ont pris Mastodon, un logiciel libre, mais ils ne l’ont pas dit et surtout ils n’ont pas rediffusé le code source qu’ils avaient modifié donc ils vont à l’encontre de la licence, pourtant une licence pas très compliquée, qui est une licence libre, une licence AGPL [<em<GNU Affero General Public License]. Aujourd’hui ce réseau qui s’appelle « TRUTH Social », le réseau de la vérité on va dire, est attaqué. Il n’est pas attaqué que sous cette forme-là parce qu’il y a plein d’autres problèmes qui en découlent. Vous avez un petit peu écouté ?

Mag : Moi je rigole. Voir Mastodon écrit partout mais caché, je trouve ça très drôle.

Manu : Sachant qu’en plus il a été ouvert, mais il a été tout de suite découvert par des hackers qui ont inscrit des comptes et qui ont commencé à s’amuser en se faisant passer pour différents acteurs du mouvement républicain, Donald Trump, Bannon et compagnie.

Mag : Il a été découvert avant même d’être ouvert !

Manu : C’est ça. Donc ils ont arrêté le réseau, ils ont tout effacé, ils ont tout relancé et on s’est rendu compte dans les conditions d’utilisation qu’il y avait des clauses absurdes du genre « on n’a pas le droit de critiquer le réseau social, on n’a pas le droit de critiquer Donald Trump et on n’a pas le droit de tout écrire en majuscules » parce que le tout écrit en majuscules n’a pas l’air de leur plaire en général, sauf quand c’est Trump qui le fait.

Luc : C’est beau la liberté d’expression. Article suivant.

Mag : Next INpact, « Souveraineté numérique: « on a tout d'un pays colonisé» (€) », par Sébastien Gavois.

Manu : C’était à l’occasion de toute une organisation, de toute une rencontrer le B-Boost à La Rochelle. Il y a eu notamment des discussions autour de l’informatique en nuage et de ce qui s’est passé récemment, on en a parlé la semaine dernière, le fait que oui, OK, c’était bon, on allait accepter de travailler avec des entreprises américaines pour faire du nuage de confiance et pas du nuage souverain. C’est-à-dire qu’on se doute, en fait, et c’est ça qui en découle, que les entreprises européennes ne sont pas assez compétentes, on a besoin des acteurs américains, de Google, d’Amazon, pour faire de l’informatique en nuage. C’est ça qui en découle et c’est pour ça que les intervenants de ces conférences font remarquer qu’on est des colonisés, c’est-à-dire que vraiment on n’est pas nous-mêmes assez compétents.

Luc : Ce n’est pas ce qu’il y a dans l’article Manu, je ne suis pas content du tout !

Manu : Vas-y.

Luc : Effectivement, ce qui ressort de la décision de faire du cloud de confiance c’était de dire, en tout tel que je le comprends, qu’avec le cloud souverain qui avait été lancé par Sarkozy et où l’argent avait disparu dans les poches de grosses boites alors qu’à l’époque il y avait des PME, et c’est rappelé dans l’article, qui savaient déjà faire des choses. Aujourd’hui l’État revient à la charge et dit « puisque ça n’a pas marché la dernière fois, c’est sans doute que ce n’était pas faisable, donc il faut utiliser des licences américaines ». Ce qui se dit dans cette table ronde, ce qui s’est dit, c’est que les technologies et les savoir-faire existent en France, de la même manière qu’ils existaient à l’époque du cloud souverain, et que l’État s’acharne surtout à ne pas aller dans cette direction-là parce que ce ne sont pas des grands groupes français, ce sont des PME qui se conduisent effectivement comme des colonisés à aller chercher des technos américaines et pas à aller chercher les compétences ni se donner les moyens de les développer.

Manu : Je suis d’accord avec le fait et clairement c’est ce qui est mis en avant : il y a des compétences en Europe, il y a des entreprises françaises qui fonctionnent assez bien.

Luc : Il est dit qu’il y en a une centaine. Ce que je trouve intéressant c’est qu’on a entendu dire, notamment Nicolas à l’époque où il participait encore au podcast, qu’il n‘y avait pas les compétences nécessaires en Europe pour faire de gros clouds. Les gens qui participaient à cette table ronde, il y avait quand même du beau monde, notamment plusieurs personnes qui sont à la CNIL, disent l’inverse. Pour moi c’est quand même très intéressant d’avoir cet autre son de cloche qui va remettre en cause cette idée que les compétences et les technos n’existent pas en Europe.

Mag : Si l’État prenait de bonnes décisions au niveau du logiciel libre, on le saurait depuis le temps, non !

Luc : Là ce n’est même pas qu’une question de Libre.

Manu : Il me semble que ce ne sont pas que des gens de la CNIL, mais notamment du CNLL [Union des entreprises du logiciel libre et du numérique ouvert]. Il y avait pas mal de beau monde.

Luc : Au moins deux personnes ne sont pas là avec leur casquette CNIL mais sont à la CNIL, notamment François Pellegrini qui participait à la table ronde.

Manu : Effectivement.

Mag : On passe à l’article suivant parce que sinon on n’aura pas le temps de finir.
01.net, « Que reste-t-il de la loi pour réduire l'empreinte environnementale du numérique? », par Amélie Charnay.

Manu : C’est un truc rageant. Effectivement dans le numérique, l’informatique en général, on le sait, le coût essentiel c’est le coût de fabrication. Donc réutiliser et faire durer le matériel c’est carrément hyper-intéressant et il faut l’encourager. Eux-mêmes le savent, les gens qui font les lois s’en rendent bien compte mais malheureusement, et malgré cela, ils veulent remettre en place des taxes sur les contenus, des taxes pour les ayants droit parce que, vous comprenez, s’il y a des disques durs on peut faire de la copie, donc il faut leur donner de l’argent pour les droits d’auteur parce que sinon ils vont perdre. Donc sur du matériel réutilisé, et c’est bien, il va y avoir quand même des taxes qui peuvent être assez conséquentes, ça peut être de l’ordre de dix euros.

Luc : Surtout que c’est du matériel qui a déjà été taxé, en plus.

Manu : Oui. C’est la deuxième ou la troisième fois qu’on taxe le même matériel, donc c’est clairement désincitatif, ce n’est pas une bonne idée, mais les ayants-droit ont eu gain de cause et ils arrivent à encore récupérer de l’argent sur ce mécanisme-là. C’est très énervant.

Mag : La Tribune, « Décompiler un logiciel n'est pas légal », par Jean-Jacques Quisquater et Charles Cuvelliez.

Manu : Du beau monde, ce sont en partie des universitaires et ça parle d’un sujet très technique, la décompilation. Là je suis en force, vous allez pouvoir me laisser parler pendant dix minutes au moins et je vais vous parler de ce qu’est la décompilation, récupérer du code source à partir du logiciel privateur, le transformer en quelque chose que les informaticiens comme moi peuvent modifier. Voilà, vous ne pouvez plus rien dire là !

Mag : Du coup, quelle est la différence entre décompilation et rétro-ingénierie ?

Manu : La décompilation c’est vraiment un geste technique. Je prends un logiciel, souvent un logiciel privateur parce que ce n’est pas intéressant de décompiler du logiciel libre et j’en extrais du code source que je peux ensuite à peu près et avec beaucoup de difficultés modifier parce que ce code source, en général, n’est pas très clair. Alors que la rétro-ingénierie, qui est souvent aussi très difficile à faire, c’est plutôt faire une analyse technique sur comment ça marche, qu’est-ce que ça fait. La décompilation peut en faire partie, mais pas que, c’est plus global.

Mag : Autre question parce que je ne suis pas technique : décompiler c’est uniquement pour les logiciels propriétaires ? On n’a pas besoin de le faire si c’est un logiciel libre ?

Manu : Carrément. Pour le coup je vais directement à la fin de l’article qui dit bien « attention, certes on peut décompiler du logiciel privateur avec beaucoup de difficultés, mais le logiciel libre n’a pas ces problèmes-là et, au contraire, on a tout de suite le code source, direct, c’est open source, et on peut le modifier, on est encouragé à le faire. »

Mag : Dernière question : pourquoi aurait-on envie de décompiler du logiciel propriétaire, privateur ?

Manu : C’est là que c’est intéressant parce que, en fait, c’est interdit. La loi nous interdit de décompiler du logiciel privateur. C’est interdit sauf dans quelques cas. Tu as aussi un peu suivi Luc ?

Luc : Je croyais que tu allais dire que c’est intéressant de le faire juste parce que c’est interdit !
Techniquement on pourrait décompiler du logiciel libre, c’est juste que comme l’objectif c’est d’obtenir le code source et qu’il est déjà disponible, ce serait vraiment se faire du mal pour rien. On parle, dans cet article, de pourquoi aller décompiler du code propriétaire. Une décision de justice est tombée là-dessus. Ça s’est passé en Belgique. Une collectivité territoriale, si j’ai tout bien suivi, a décompilé le code propriétaire d’un de ses fournisseurs pour résoudre des problèmes techniques qu’elle avait, ça ne marchait pas bien. Son fournisseur l’a attaquée en justice en disant qu’elle n’avait pas le droit.

Mag : Elle n’avait pas le droit de le redistribuer ou elle n’avait pas le droit de le faire ?

Manu : De le décompiler pour corriger. D’après le fournisseur, et aller en justice c’était pour vérifier, non, c’était interdit et clairement il fallait repayer quelque chose parce que c’est de ça dont il s’agit en général, c’est de l’argent.

Luc : On ne connaît pas le détail, mais typiquement il y a plusieurs situations face à ça.
L’éditeur a peut-être une nouvelle version et il veut que le client migre ; la version n’est peut-être plus maintenue et le client décompile pour régler ses problèmes au lieu de passer sur la nouvelle version.
Ou alors l’éditeur n’a pas envie de corriger parce que c’est pour un usage assez particulier et ça va lui coûter cher pour très peu de clients, voire un seul client, et il ne le fera pas.
Donc il peut y avoir plusieurs raisons là-dessus.
Ce qui est intéressant c’est que dans les débats au cours du procès l’éditeur admettait que dans le texte juridique de référence, il était autorisé de faire de la décompilation pour des questions d’interopérabilité. L’interopérabilité c’est l’idée qu’on a ce logiciel privateur, chaque utilisateur, chaque client va le faire tourner dans son propre contexte et c’est très compliqué pour l’éditeur de s’assurer que sa solution marche pour tout le monde, partout, dans toutes les circonstances, parce qu’il peut y en avoir des milliers ; c’est très compliqué pour lui de suivre.

Mag : Il me semblait qu’on avait aussi le droit de décompiler en cas d’accessibilité.

Manu : Ça doit être lié parce qu’ils doivent considérer que l’interopérabilité et l’accessibilité sont en relation. Mais là c’est ce qu’on découvre, il y a maintenant un nouveau droit de décompilation.

Luc : Jusqu’à qu’une autre décision de justice dise le contraire. En tout cas l’interprétation du tribunal, s’appuyant sur un autre article, est qu’on peut également décompiler pour corriger des problèmes, donc résoudre des problèmes techniques.

Mag : Mais il y a toujours des problèmes techniques. Du coup on peut décompiler quand on veut !

Manu : Vraisemblablement on peut décompiler pour corriger des problèmes techniques. Eh oui, il y a toujours des bugs, clairement le métier principal de l’informaticien c’est écrire des bugs, je le sais ! Par contre, tu ne peux pas décompiler pour changer la forme, rajouter des fonctionnalités ou adapter de nouveaux éléments qui n’étaient pas prévus à l’origine, ça, clairement, ça reste en dehors du cadre. C’est pour ça qu’il faut faire du logiciel libre. Le logiciel libre ne pose ces problèmes, ne risque pas de nous emmener en justice, on n’a pas de problèmes avec ça.
Ce que je trouve intéressant, c’est de se rendre compte qu’on a tous, à un moment donné, des logiciels privateurs dans notre vie, dans notre métier ou dans notre vie personnelle ; on a tous des briques qui peuvent nous bloquer. On risque de rencontrer ces problématiques-là un moment donné dans le temps.

Mag : Tu veux dire qu’on a tous un téléphone portable ?

Manu : Pas que. J’en connais aussi qui ont dans leur entreprise des logiciels privateurs dont ils dépendent. Je suis sûr, Mag et Luc aussi, que vous avez du logiciel privateur dans vos entreprises.

Luc : Là où je bosse il n’y a quasi que du logiciel privateur. C’est une sorte de culture, la question ne se pose pas là-bas et ça pose des soucis, mais qui ne sont pas considérés comme des soucis tellement les gens ont l’habitude de ça. De fait, on rencontre tout le temps ces problématiques de logiciels finis, plus maintenus, des choses comme ça, ou qui ne marchent pas comme on a envie et pour lesquels ce n’est pas l’intérêt de l’éditeur de les faire évoluer. Effectivement on se retrouve dans des situations potentiellement difficiles à cause de ça.

Mag : Moi je n’ai qu’un seul logiciel propriétaire c’est le logiciel métier de libraire. Tout le reste, tu es bien placé de le savoir, ce n’est que du Libre. J’ai la chance d’avoir un éditeur qui est très demandeur de retours et qui fait énormément d’améliorations. Donc oui, c’est privateur, mais…

Manu : Petite remarque parce que je connais le logiciel de Mag, son logiciel de librairie. Il est plutôt bien, effectivement, non seulement c’est du logiciel privateur, mais, en plus, c’est un logiciel qui nécessite des services à distance. Ça veut dire que ton fournisseur a vraiment barre sur ton entreprise parce qu’il va faire des backups, il va faire des mises à jour de bases de données, les bases de données de livres. Certes c’est possible de le décompiler et la loi l’autorise, mais ce n’est pas hyper-intéressant. Il vaut mieux que tu gardes une bonne relation avec ton fournisseur, clairement, parce que sinon il peut te couper des accès qui sont nécessaires à ta librairie. Et je pense que c’est le cas pour beaucoup de gens aujourd’hui, c’est notamment par l’intermédiaire des services que les fournisseurs peuvent bloquer pas juste du logiciel.

Luc : Il faut quand même rappeler, et c’est écrit dans l’article, que décompiler un logiciel c’est quand même super compliqué, c’est très lourd, ça prend du temps, c’est d’une fiabilité relative, c’est impossible sur des gros logiciels compliqués, parce que, du coup, c’est trop compliqué, on n’y arrive pas. Ce n’est quand même pas une solution viable, c’est vraiment une solution de dernier secours, risquée, qui va probablement coûter très cher à mettre en œuvre. Il faut quand même être très motivé pour faire ça. Une des choses où le Libre a bien plus à apporter pour les utilisateurs, c’est que même si on a les moyens, qu’on se donne les moyens pour décompiler et que le logiciel est adapté, etc., déjà si on est dans ces clous-là, chacun doit le faire parce qu’on n’a pas le droit de redistribuer ces informations-là. Donc si on a une communauté d’utilisateurs qui sont tous coincés pour la même raison, ils ne peuvent pas collaborer. Chacun, dans son coin, est obligé de faire sa petite décompilation et de vivre son petit enfer local. Alors que dans le logiciel libre le code source est disponible donc ça va beaucoup plus vite et c’est beaucoup plus propre. Si quelqu’un apporte une solution il peut la partager avec tous les utilisateurs. C’est quand même un gain énorme.

Manu : Je rajouterais que la décompilation c’est une solution à court terme et c’est une solution qui, comme tu dis, est vraiment très difficile à mettre en place et qui n’est pas vivable, clairement. Mais ça va, avec le temps, devenir de plus en plus nécessaire, j’imagine, d’utiliser ce genre de solution-là. Dans 50 ans, dans 100 ans, dans 500 ans, je peux imaginer des logiciels privateurs d’aujourd’hui qui n’auront plus d’éditeur, qui n’auront plus de code source associé parce qu’il aura été perdu pour z ou y raisons dans les masses de choses et que la décompilation sera le dernier recours des archéologues de l’informatique qui devront voir le jour avec le temps, parce que, pour x ou y raisons, on aura besoin de faire tourner du vieux logiciel sur du vieux matériel. Il y aura peut-être des voitures qui nécessiteront des vieilles briques ou des logiciels bien particulier pour accéder à des données bien particulières et qu’il faudra, dans 1 000 ans, décompiler ces logiciels pour essayer de retrouver un tant soit peu de fonctionnement.

Luc : Dans 1 000 ans!

Mag : Non ! Dans 50 ans on sera tous passés au logiciel libre partout, on n’aura plus besoin de faire ça !

Manu : Tu parles ! Je sais que c’est déjà le cas pour les archives de certains articles du 11 septembre 2001 qui étaient publiés sous format Flash et déjà pour ça, ça pose des problèmes à certains journalistes qui n’ont plus accès à cette technologie Flash parce qu’elle a été retirée par son éditeur et qu’elle n’est plus maintenue, tout simplement !

Mag : Mauvais choix de format d’archive.

Luc : En tout cas, Manu, je te propose, dans la semaine qui vient, que tu mettes des commentaires dans ton code pour les archéologues de l’informatique dans 1000 ans. Laisse-leur des petites notes. Tu diras si tu as un retour parce qu’on peut espérer que dans 1000 ans il y aura le voyage dans le temps. Peut-être que ce serait un moyen de te faire envoyer des goodies depuis l’avenir.

Manu : Sur ce, à la semaine prochaine. On va voyager dans le temps, mais juste d’une semaine.

Mag : OK. Salut.