Protéger un logiciel (de) dispositif médical
Maurice Navarro
Consultant qualité & logiciel pour dispositifs médicaux
Il y a quelques années j'ai travaillé sur un projet de retro-conception (ou "reverse engineering") de logiciel : le fabricant ne retrouvait plus le code source de son logiciel alors qu'il souhaitait le faire évoluer.
La récupération du code source d'un logiciel à partir de son code binaire est parfaitement faisable. De fait, ce projet s'est conclu par un succès.
Mais quelles seraient les conséquences, pour un fabricant de logiciel (de) dispositif médical, si l'exécutable de son logiciel était soumis à ce traitement par un de ses concurrents ?
Pour prévenir ce cas de figure, traitons la protection du logiciel dans le cadre de cet article. Elle s'agence en deux volets qui se complètent l'un l'autre :
- la protection par conception du logiciel et
- la protection juridique du logiciel.
La protection par conception d'un logiciel (de) dispositif médical repose sur le secret
L'objectif de la protection par conception est de rendre le code source du logiciel (de) dispositif médical difficilement accessible à toute personne souhaitant le récupérer.
On distingue quatre grandes approches pour assurer cette protection :
- l'obfuscation,
- le cryptage,
- la spécialisation et
- l'exécution distante.
Obfuscation
L'obfuscation consiste à modifier le code source du logiciel pour le rendre très difficilement lisible par la personne susceptible de le récupérer.
En fonction de l'obfuscateur considéré, différentes approches sont mises en œuvre : suppression des commentaires, modification des identifiants de méthodes et d'attributs, modification de la visibilité des variables, transtypage, suppression des styles de codage…
Moyennant quelques précautions pour le choix de l'obfuscateur, cette approche peut aussi permettre d'optimiser le logiciel, notamment par la réduction de la quantité de mémoire requise pour son exécution.
Cryptage
La protection par cryptage consiste à rendre le code du logiciel inaccessible en l'absence de la clef de décryptage.
Parmi les différents algorithmes de cryptage qui existent, le choix est à considérer au regard de l'environnement et du mode d'exécution du logiciel.
Par ailleurs, cette approche peut ralentir le lancement ou l'exécution du logiciel en fonction de sa mise en œuvre.
Spécialisation
La spécialisation consiste à compiler le code source pour une plateforme matérielle très spécifique.
Plus la plateforme présentera de particularités et plus l'existence d'un décompilateur efficace sera remise en cause.
Cette approche peut s'avérer particulièrement adaptée dans le cadre de dispositifs médicaux matériels incorporant du logiciel (DMIL).
Exécution distante
Quant à l'exécution distante, elle consiste à faire reposer l'exécution du logiciel sur une infrastructure client / serveur.
Plusieurs configurations sont possibles néanmoins l'opportunité de cette approche doit être étudiée au cas par cas.
En effet, l'exécution de code distant requiert une connexion vers l'extérieur depuis le réseau des utilisateurs du logiciel (de) dispositif médical ce qui peut augmenter leurs risques de cybersécurité.
Ces approches sont complémentaires les unes des autres. Néanmoins, les contourner n'est qu'une question de temps et de moyens mis en œuvre.
De ce fait, il est important que le logiciel soit aussi protégé juridiquement.
La protection juridique d'un logiciel (de) dispositif médical repose sur le droit d'auteur et le brevet
Dans le cadre d'un logiciel (de) dispositif médical on peut distinguer
- d'une part les codes et la documentation du logiciel et
- d'autre part les nouveaux algorithmes que le logiciel implémente.
Ces deux éléments bénéficient de protections juridiques distinctes.
Le logiciel et sa documentation sont protégés par le droit d'auteur
Le logiciel, notamment le logiciel (de) dispositif médical, est couvert par le droit d'auteur.
Il s'agit d'un droit exclusif de reproduction, d'adaptation, d'arrangement, de traduction et de distribution du logiciel qui interdit toute reproduction partielle ou totale du logiciel, sous quelque forme que ce soit (y compris la reproduction à des fins pédagogiques ou personnelles).
Le titulaire du droit d'auteur peut néanmoins concéder des licences d'exploitation ou d'utilisation du logiciel à titre payant ou gratuit.
Par ailleurs, dans un arrêté du 22 décembre 1981, la Commission ministérielle de terminologie informatique a défini le terme "logiciel".
Logiciel (n. m.) : Ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitement de données (en anglais : software).
Source : Journal Officiel de la République Française du 17 janvier 1982
Ainsi, d'un point de vue juridique, le terme "logiciel" désigne les éléments d'implémentation (les programmes) et les éléments de documentation du logiciel.
Sur cette base, le droit d'auteur couvre les éléments suivants d'un logiciel (de) dispositif médical :
- les enregistrements d'exigences du logiciel,
- les enregistrements de conception architecturale du logiciel,
- les enregistrements de conception détaillée du logiciel,
- l'interface utilisateur du logiciel (ou GUI pour "Graphic User Interface"),
- le code source du logiciel,
- le code binaire (ou code objet) du logiciel,
- le manuel utilisateur du logiciel et
- la / les procédure(s) ou instruction(s) d'installation.
Les algorithmes peuvent parfois être protégés par brevet
Un brevet ne peut porter que sur une invention nouvelle à l'exclusion des méthodes mathématiques et des programmes d'ordinateur.
Il confère à son titulaire le droit de décider si l'invention peut être réalisée, utilisée, distribuée ou vendue par des tiers et dans quelles conditions. Par défaut, le consentement du titulaire est requis.
Les algorithmes sont des suites d'opérations mathématiques qui permettent de traiter, d'exploiter et / ou d'optimiser des données. De ce fait, ils sont exclus des brevets.
Néanmoins, si l'algorithme est "nouveau" et comprend un caractère technique (des aspects matériels et logiciels par exemple) il peut faire l'objet d'un brevet.
En effet, l'Office européen des brevets (OEB), par la décision de la chambre de recours technique 3.5.1 du 21 avril 2004 dans le cadre de l'affaire Méthode d'enchères/HITACHI, a considéré qu'un algorithme intégré au sein d'une invention brevetable peut bénéficier d'une protection par brevet s'il contribue au caractère technique de l'invention.
L'opportunité de cette approche doit être examinée au cas par cas.
Intérêt pour le fabricant de dispositifs médicaux
Les logiciels (de) dispositifs médicaux présentent deux caractéristiques importantes :
- ils sont souvent mis au point dans le cadre de l'innovation et
- leur documentation technique est contrainte par la réglementation.
Qui plus est, la documentation technique du logiciel et l'exécutable correspondant sortent souvent des murs du fabricant avant même que le dispositif médical correspondant puisse être commercialisé :
- l'évaluation clinique / évaluation des performances du dispositif médical peut forcer l'installation du logiciel en externe avant son marquage CE et
- la documentation technique du logiciel peut être demandée par l'organisme notifié (ON) pour l'évaluation de conformité du dispositif médical.
Dans ce contexte, la protection du logiciel prend toute son importance.
De plus, la protection d'un logiciel (de) dispositif médical augmente les actifs de l'entreprise car un logiciel protégé a une valeur plus importante qu'un logiciel non protégé.
Pour en savoir plus
La protection par conception d'un logiciel (de) dispositif médical peut participer à la cybersécurité du logiciel.