Les transformations d'obfuscation de code visent à protéger le code en le rendant le plus difficile possible à comprendre. Nous proposons une obfuscation d'aplatissement du flot de contrôle, qui appartient à la classe très étudiée des transformations d'obfuscation du flot de contrôle. Nous décrivons l'utilité de ce type de transformation et son utilisation dans les outils de protection logicielle. Nous présentons l'implémentation et l'évaluation de sécurité de ce type de protection. Nous discutons en toile de fond de l'utilité de la cryptographie dans le domaine d'application de la protection logicielle.
1. Introduction
1.1 Contextes et méthodes d'attaque
Lorsqu'un logiciel est distribué, il est parfois souhaité que son fonctionnement interne soit protégé. Ce peut être le cas lorsqu'il utilise un algorithme particulier, ou qu'il contient des données sensibles (par exemple, une clé de déchiffrement) que l'on veut protéger. Il est en effet préférable qu'une « simple » analyse du code du logiciel n'expose pas la clé de déchiffrement sur laquelle repose le fonctionnement du logiciel. De même, si l'on veut empêcher la modification du logiciel (c'est-à-dire protéger son intégrité), il est préférable qu'il soit difficilement compréhensible afin de ne pas rendre la tâche de l'attaquant trop facile.
L'obfuscation est une des techniques pouvant être utilisées lorsque l'on souhaite cacher le fonctionnement d'un composant à son utilisateur. Elle permet de transformer le composant original pour en obtenir un second ayant une forme différente et dont la...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première