À retenir
- Elle rend le code source incompréhensible pour l'homme sans changer son comportement.
- Elle sert à freiner la rétro-ingénierie et le vol de propriété intellectuelle.
- Ce n'est pas du chiffrement : le code reste exécutable tel quel par la machine.
L'obfuscation est une méthode de transformation du code d'un programme informatique visant à le rendre extrêmement difficile à lire et à comprendre pour un être humain, tout en garantissant qu'il continue de fonctionner parfaitement pour la machine. C'est un peu comme si l'on traduisait un livre clair en remplaçant chaque mot par un code secret complexe que seul l'ordinateur posséderait la clé pour interpréter instantanément.
Étymologie
Le terme est un emprunt à l'anglais obfuscation, lui-même issu du latin obfuscare qui signifie « assombrir » ou « noircir ». En informatique, il désigne l'action d'obscurcir volontairement la logique d'un logiciel pour protéger des secrets de fabrication ou de la propriété intellectuelle.
Exemples d'usage
- Renommer des variables explicites comme
calculer_remiseen noms aléatoires et courts commea1_zpour masquer leur rôle. - Modifier la structure des boucles et des conditions pour qu'elles paraissent illogiques au premier coup d'œil, tout en produisant le même résultat final.
- Insérer des portions de code inutiles (code mort) pour saturer l'attention de quelqu'un qui tenterait d'analyser le programme.
Cas d'usage
On l'utilise principalement dans le développement d'applications mobiles ou web (JavaScript) pour empêcher des concurrents de copier facilement un algorithme. Elle est aussi employée dans la lutte contre le piratage pour protéger les systèmes de licence, et malheureusement par certains logiciels malveillants pour échapper à l'analyse des antivirus.
Bonnes pratiques
L'obfuscation ne doit jamais être la seule mesure de sécurité d'un système. Il faut la considérer comme une barrière psychologique et technique supplémentaire, et non comme un coffre-fort inviolable. Il est recommandé d'utiliser des outils automatisés en fin de processus de développement pour éviter que les développeurs eux-mêmes ne travaillent sur un code illisible.
Synonymes
Antonymes
Conseil
Si vous développez une application web dont le code est public par nature, l'obfuscation est un bon réflexe pour protéger votre travail. Cependant, gardez toujours une version 'claire' et bien documentée de votre code pour votre propre maintenance !
Questions fréquentes
L'obfuscation rend-elle le logiciel plus lent ?
En général, l'impact est imperceptible. Parfois, elle peut même réduire légèrement la taille du fichier (en raccourcissant les noms de variables), ce qui peut améliorer le chargement.
Peut-on inverser l'obfuscation ?
Il existe des outils de 'dé-obfuscation', mais ils ne permettent pas de retrouver les noms originaux des variables ou les commentaires. Le code restera toujours plus difficile à comprendre que l'original.