Les aspects juridiques du reverse engineering

*Disclaimer : ce texte a été écrit et conçu dans un cadre personnel et ne s'inscrit aucunement dans un cadre professionnel.*

La question de la légalité de la rétro ingénierie semble être un sujet sans fin. Essayons d’en dessiner les contours.

Un point de définition tout d’abord. La rétro ingénierie ou reverse engineering ou encore RE se définit comme l’étude d’un matériel ou d’un logiciel afin d’en comprendre le fonctionnement et la fabrication. Par exemple, lorsque l’on analyse et que l’on décompile une application Android pour voir comment elle agit sur le téléphone, quelles permissions elle demande et in fine, savoir s’il s’agit ou non d’un malware, c’est du RE.

En droit, le logiciel se définit comme un ensemble de programmes, de procédés et de règles, ainsi que de documents relatifs au fonctionnement d’un ensemble de traitement de données.

Lorsque les logiciels sont libres ou open-source, la question de la légalité ne se pose pas : le code est ouvert. N’importe qui peut le regarder, l’analyser, le décompiler, l’améliorer. C’est le principe même du logiciel libre. Mais quid des logiciels propriétaires ?

Il convient de souligner que si le logiciel peut être protégé par une licence, sa fonctionnalité en tant que telle n’est pas protégeable. Par exemple, le programme Word inclus dans la suite bureautique Office de Windows fait l’objet d’une protection juridique spécifique. Mais la fonctionnalité de Word, à savoir être un logiciel de traitement de texte, n’est pas protégeable par Microsoft.

En France, il peut être légal de procéder à du reverse engineering dans certaines situations particulières. L’article L112-6-1 du Code de Propriété Intellectuelle qui pose les principes généraux.

Tout d’abord, il faut savoir que si la licence ne dit pas le contraire, il n’est pas illicite de s’adonner au reverse au engineering d’un logiciel. Si le concepteur d’un logiciel veut s’y opposer, il faut que cela soit spécifié dans le fameux contrat que l’on doit normalement lire avant de cliquer sur « J’accepte les termes et conditions d’utilisation ». Si cela n’est pas mentionné, rien ne s’y oppose.

Qui dit acceptation des termes et conditions d’utilisation dit acquisition légale du logiciel et cela fait partie des conditions posées dans l’article L112-6-1. L’autre condition essentielle est celle de l’interopérabilité.

L’interopérabilité est la faculté pour un logiciel à fonctionner sur l’ensemble des plateformes existantes.

Ainsi, si on étudie le fonctionnement d’un logiciel afin de le rendre compatible avec un autre système que celui pour lequel il a été initialement conçu, cela reste tout à fait légal, surtout si cela n’a pas été fait le concepteur d’origine. Cela concerne également les traductions et la documentation nécessaire.

Or, certains outils n’existent que pour Windows ou pour MAC mais ne sont pas utilisables sur une distribution Linux, par exemple Paraben, un outil de mobile forensic très cher, n’existe que pour Windows.

Néanmoins, il faut que la partie du reverse se cantonne à cette question de l’interopérabilité. Il est illicite de se servir du reverse engineering pour plagier un logiciel et le revendre par exemple.

Autre exemple : rendre compatible des pilotes pour qu’ils fonctionnent sur Linux n’est pas illicite car il s’agit de rendre interopérable le matériel.

Que se passe-t-il si dans les conditions générales d’utilisation, il est spécifié qu’un utilisateur ne peut pas s’adonner au reverse engineering ? Dans la mesure où la licence spécifie que l’utilisateur n’a pas le droit de s’adonner au RE et que l’utilisateur a accepté la licence en cliquant sur « j’accepte les conditions générales d’utilisation », il n’a pas le droit de « disséquer » l’outil sauf si ce dernier n’est pas interopérable. Mais si le soft est interopérable et aisément disponible, un utilisateur n’aura pas le droit de le décompiler même pour effectuer des maintenances correctives ou évolutives.

Par exemple, si une personne décompile le logiciel pour une autre raison que l’interopérabilité et qu’elle met à disposition les informations qui ont permis de procéder à la compilation, cela est considéré comme une forme une contrefaçon.

De la même façon la publication de résultats d’une expérimentation par RE ne doit alors se cantonner qu’à l’interopérabilité et uniquement si cela est nécessaire à rendre le logiciel interopérable, parce que le développeur ne l’a pas fait.

Enfin, que se passe-t-il si le contrat de licence interdit à l’utilisateur de décompiler le logiciel même à des fins d’interopérabilité ? La clause qui mentionnerait ce type d’interdiction est illicite en France. Un utilisateur a le droit de procéder à du RE sous couvert que cela soit dans un but d’interopérabilité et uniquement dans cette optique.

Concrètement, un logiciel comporte une licence qui interdit de procéder au RE même si cela est nécessaire pour le faire fonctionner : cette limitation ne tient pas mais elle ne vaut que pour la partie de code concernant le fonctionnement interopérable.

Donc, à partir du moment où l’on se met à trifouiller dans le code source d’un logiciel propriétaire pour en comprendre son fonctionnement, sans pour autant chercher à le faire tourner sur une autre plateforme que celle pour laquelle il a été initialement conçu, est illicite et le fait de publier sur Internet les résultats d’une telle expérimentation, accessible à un public Français, aggrave les faits.

Commentaires

"à partir du moment où l’on se met à trifouiller dans le code source d’un logiciel propriétaire" 
Ca c'est à supposer qu'on ait accès au code source, auquel cas il y aura sans doute des questions sur la manière dont on s'y est pris pour y accéder (sauf sources en accès libres).
Et sinon, s'il s'agit de trifouiller le code binaire décompilé c'est pareil non ?

Exactement. Il faudra démontrer que la méthode d'accès au code-source n'a été guidé que dans une optique d'interopérabilité.
Oui pareil pour le code binaire décompilé.

Ajouter un commentaire