Par une décision du 6 octobre 2021, la Cour de Justice de l’Union européenne s’est prononcée sur les modalités relatives à la décompilation d’un logiciel aux fins de correction des erreurs.
A cette occasion, Mathias Avocats vous propose de revenir sur la notion de décompilation, ses usages, les droits des licenciés, ainsi que les risques pour les éditeurs.
La décompilation ou « reverse engineering », également désignée sous les noms de rétro-ingénierie, ingénierie inversée, rétroconception ou encore ingénierie à rebours, est un ensemble de pratiques consistant à étudier un produit, tel qu’un logiciel ou une application, afin d’en tirer des informations sur son fonctionnement.
En toute hypothèse, les opérations d’analyse du code source aux fins de décompilation doivent être réalisées dans le respect des conditions de licence applicables.
Toutefois, certains actes de décompilation ne sont pas soumis à l’accord de l’éditeur et font l’objet d’une énumération limitative au sein du Code de la propriété intellectuelle.
Dans quels cas la décompilation est-elle possible sans l’autorisation de l’éditeur ?
Plusieurs cas d’usage permis en l’absence d’autorisation de l’éditeur sont visés par le Code de la propriété intellectuelle (article L122-6 et suivants).
- La correction d’erreurs
L’utilisateur légitime d’un logiciel peut en corriger les erreurs et ainsi recourir à sa « traduction, la reproduction ou l’adaptation » (article L122-6-1 I du Code de la Propriété Intellectuelle). Cependant, l’éditeur peut organiser contractuellement cette exception en précisant les modalités de recours à ces actes, et en se réservant le droit de corriger les erreurs, via une prestation de maintenance.
D’un point de vue pragmatique, il reste toujours préférable qu’un éditeur corrige, lui-même, les bugs, erreurs et/ou autres types de vulnérabilités détectées. Toutefois, en cas de refus de l’éditeur, ce droit permettra a minima à un utilisateur de continuer à bénéficier du fonctionnement normal du logiciel.
Ce principe a été précisé à l’occasion d’une décision récente de la Cour de Justice de l’Union européenne (CJUE, 6 octobre 2021, C-13/20). En l’espèce, un licencié a procédé à la décompilation d’une partie d’un logiciel dans le but d’en désactiver une fonction défaillante.
Deux questions préjudicielles étaient posées à la Cour :
- Le recours à la décompilation, en l’absence d’autorisation de l’éditeur, est-il licite lorsqu’il vise à corriger des erreurs affectant le fonctionnement du programme ?
- Dans l’affirmative, à quelles conditions ce recours à la décompilation doit-il obéir ?
S’agissant de la première question, la Cour estime que le recours à la décompilation pour corriger des erreurs affectant le fonctionnement du programme est licite.
En effet, la Cour assimile la décompilation à la reproduction et à la traduction, en précisant que:
« la décompilation permet généralement d’obtenir non pas le code source original, mais une troisième version du programme concerné appelée « quasi-code source », qui pourra à son tour être compilée en un code objet permettant à ce programme de fonctionner. La décompilation constitue dès lors une opération de transformation de la forme du code d’un programme impliquant une reproduction, à tout le moins partielle et provisoire, de ce code, ainsi qu’une traduction de la forme de celui-ci ».
En d’appuyant sur les conclusions de l’avocat général, la Cour indique également qu’en pratique, la correction des erreurs d’un logiciel implique, dans la plupart des cas, de disposer du code source, ou, le cas échéant, du « quasi-code source » dudit logiciel. Par conséquent, le recours à la décompilation semble inévitable dans certaines hypothèses de correction des erreurs.
S’agissant de la seconde question, la Cour soumet la décompilation d’un programme au respect des conditions suivantes :
- Les actes de décompilation doivent être nécessaires pour permettre l’utilisation du programme d’une manière conforme à sa destination et notamment pour en corriger les erreurs.
- L’erreur s’entend de tout défaut affectant la possibilité d’utiliser le programme conformément à sa destination.
- L’accès au code source autorisé par la loi ou le contrat à l’utilisateur légitime ne suffit pas à considérer que la décompilation est nécessaire.
- La décompilation en vue de corriger des erreurs n’est licite qu’en l’absence de dispositions contractuelles spécifiques. En effet, si les parties ne peuvent exclure la possibilité de procéder à la correction des erreurs, elles peuvent organiser les modalités de cette faculté, notamment en mettant à la charge de l’éditeur la maintenance corrective du programme. Dans cette hypothèse, l’utilisateur légitime ne pourra pas recourir à la décompilation en vue de corriger les erreurs.
- Le résultat de la décompilation (c’est-à-dire le « quasi-code source ») ne peut être utilisé à d’autres fins que la correction des erreurs affectant le fonctionnement du programme.
A la lumière de cette décision, il est préconisé d’encadrer la décompilation aux fins de correction des erreurs par le contrat, ainsi que via les modalités de maintenance mise en œuvre par l’éditeur.
- L’interopérabilité du logiciel
L’utilisateur légitime peut recourir à la décompilation, si cette pratique est nécessaire pour assurer l’interopérabilité d’un logiciel ou d’une application avec un autre produit logiciel ou applicatif (article L122-6-1 IV, Code de la Propriété Intellectuelle).
Ce droit à la décompilation aux fins d’interopérabilité s’applique à condition que la décompilation soit limitée aux parties du logiciel nécessaires à l’interopérabilité et que les informations requises afin de permettre l’interopérabilité n’aient pas déjà été rendues « facilement et rapidement » accessibles à l’utilisateur disposant d’une licence sur ledit logiciel.
A titre d’illustration, une application peut faire l’objet d’une décompilation légitime afin de :
- assurer son bon fonctionnement avec une extension développée en interne,
- permettre son intégration avec un logiciel tiers, notamment via une API (« Application Programming Interface »),
- effectuer des opérations de migration de données, comme l’a souligné la Cour de cassation : Cass. civ. 1re, 20 oct. 2011, n°10-14069.
Néanmoins, la principale difficulté d’interprétation de cette notion d’interopérabilité réside dans sa définition globale et générale. En effet, elle est définie comme « la capacité d’échanger des informations et d’utiliser mutuellement les informations échangées » (Directive 2009/24/CE du 23 avril 2009 relative à la protection juridique des programmes d’ordinateur, considérant 10).
Il convient de noter que le droit à la décompilation d’un logiciel aux fins d’interopérabilité est attaché à un utilisateur spécifique, disposant d’une licence d’utilisation. Ainsi, les informations acquises par la décompilation ne peuvent pas être communiquées à des tiers. Ces informations sont par essence de nature confidentielle ou encore soumises au respect du secret des affaires.
- La sécurité du logiciel
L’utilisateur légitime a également la possibilité de décompiler un logiciel ou une application afin d’en analyser le fonctionnement ou la sécurité et ce, sans l’autorisation de l’éditeur (article L.122-6-1, III du Code de la propriété intellectuelle). Cette exception permet à l’utilisateur d’étudier et/ou de tester le logiciel ou l’application au regard de ses propres exigences de sécurité.
Ainsi, face au besoin croissant de faire évoluer la sécurité des systèmes d’information, cette disposition pourrait permettre aux entreprises utilisatrices d’avoir recours à des tests de sécurité ou encore à des plateformes de Bug Bounty. Il est néanmoins recommandé d’encadrer et de préciser cette possibilité dans le contrat.
L’utilisateur légitime peut également réaliser une copie de sauvegarde du logiciel, notamment en cas de perte des données et/ou de défaillance du support. En effet, comme le dispose l’article L.122-6-1, III du Code de la propriété intellectuelle: « l’utilisateur, ayant le droit d’utiliser le logiciel peut faire une copie de sauvegarde lorsque celle-ci est nécessaire pour préserver l’utilisation du logiciel ».
Quels sont les risques ?
La décompilation est donc strictement encadrée la loi. Ainsi, l’utilisateur doit avoir acquis légitimement sa licence et respecter le champ d’application des usages prévus pour la décompilation.
En cas de méconnaissance de ces conditions, l’utilisateur pourra être poursuivi pour contrefaçon. Tel a été le cas notamment pour des individus, condamnés pour avoir effectué illégalement des opérations de décompilation et communiqué les informations obtenues par ce procédé à des tiers (Cour d’appel de Caen, 18 mars 2015).
Les exceptions permettant la décompilation étant strictes, son usage doit s’effectuer, au cas par cas. Ainsi, une analyse technique documentée pourrait permettre d’éviter tout risque de contestation ou encore de contrefaçon.