Le reverse engineering menacé
Qu'est-ce que le reverse engineering (ou ingénierie inverse) ?
Le Jargon Français définit les rétrotechniques utilisées dans le reverse engineering (ou ingénierie inverse) de la manière suivante :
En général, il s'agit de décompiler ou de désassembler un programme, c'est-à-dire de prendre quelque chose de compréhensible par une machine mais pas par un être humain et d'en faire quelque chose de lisible pour un homme mais plus pour un ordinateur.
Dans la pratique, le reverse engineering consiste à analyser le fonctionnement d'un programme ou d'un périphérique (typiquement en analysant la communication qu'il a avec le reste du système), ou alors en examinant pas à pas les résultats de son exécution.
Utilité du reverse engineering
De nombreux fabriquants de matériel refusent de diffuser les spécifications de leur matériel. Les développeurs de logiciels sont bien souvent dans l'obligation de recourir au reverse engineering pour utiliser ce matériel. C'est le cas de pratiquement toutes les cartes graphiques, du BIOS d'IBM, ...
De plus, le reverse engineering est souvent nécessaire pour lire des formats de fichiers propriétaires non documentés (par exemple le format MS-Word), tout comme pour pouvoir communiquer via un protocole secret avec un serveur propriétaire (le logiciel Samba qui sert à partager des fichiers entre différentes architectures via le protocole SMB est basé entièrement sur le reverse engineering).
Le reverse engineering est aussi la garantie de ne pas être emprisonné par un format de fichiers propriétaire et non documenté. En utilisant des techniques de reverse engineering, il est tout a fait possible de comprendre la structure d'un tel document et de le convertir dans un format ouvert. Cela permet de garder la maîtrise de son patrimoine documentaire même une fois les systèmes utilisés obsolètes.
Si le reverse engineering était prohibé, de nombreux logiciels (libres et non libres) n'auraient pu voir le jour. L'ensemble de l'industrie informatique repose sur ces techniques. La communauté du logiciel libre serait d'autant plus touchée que les fabriquants et éditeurs ne voient pratiquement jamais l'intérêt de communiquer leur spécifications à des développeurs de logiciels libres.
Le reverse engineering est légal !
Beaucoup d'éditeurs et de constructeurs essayent de limiter l'utilisation du reverse engineering sur leurs produits de peur qu'on ne leur vole des « secrets de fabrication ». Certains, comme c'est le cas avec la DVD-CCA utilisent même des pressions légales pour arriver à leurs fins.
Et pourtant, le reverse engineering est une technique tolérée dans de nombreux pays. Ne nous méprennons pas, l'autorisation du reverse engineering est avant tout motivée par son importance économique, le reverse engineering permettant la migration de techniques informatiques d'un système à un autre.
L'utilisation du reverse engineering est toléré en Europe dans le cas du fair-use, qui l'autorise lorsque l'utilisation des connaissances acquises répond à des besoins d'implémentation d'interfaces ou de correction d'erreurs (débogage).
À terme, le reverse engineering sur un programme permet la création d'un programme voisin, similaire aux programmes écrits par le fabriquant de la technologie analysée, mais qui repose sur des bases complêtement distinctes. Les accusations du viol de secrets industriels ou de propriété industrielle sont donc infondés.