To top
Products Products

Blurry Box Cryptography

Share:

Kerckhoffs’ Principle

Auguste Kerckhoffs

Auguste Kerckhoffs
Image Source: Wikipedia.org

Auguste Kerckhoffs a postulé son principe éponyme au XIXe siècle : 'un système cryptographique doit être sécurisé même si tout ce qui a trait au système, à l’exception de la clé, est de notoriété publique'. Autrement dit, une méthode efficace ne doit pas être tenue secrète. Si c’était le cas, vous devriez vous demander pourquoi.

Wibu-Systems est fidèle à ce principe depuis plusieurs années. Alors que de nombreux autres dongles présents sur le marché reposent sur des algorithmes propriétaires, Wibu-Systems a déjà commencé à utiliser le célèbre algorithme public FEAL et a publié le schéma de dérivation de clé dans le manuel de la WibuBox en 1992, lors du premier lancement de WibuKey. Alors qu’un certain nombre de systèmes (non publiés) ont été piratés dès le début, WibuKey a été capable de résister à l’épreuve du temps, jusqu’à ce que la clé de 40 bits (utilisée en raison des restrictions à l’exportation) devienne trop petite. Les WibuBox actuelles utilisent une clé de 64 bits et n’ont jamais été piratées jusqu’à présent. La première version de CodeMeter, qui a suivie en 2003, a déployé un autre algorithme de chiffrement public AES de 256 bits. Et une fois de plus, aucun CmDongle n’a été piraté à ce jour.

Le Concept

Contrairement au processus de chiffrement qui se déploie dans un dongle, aucun moyen d’intégrer des protections sécurisées dans les logiciels n’a été publié jusqu’à présent, ce qui équivaut à une « Sécurité par l’obscurité », l’exact opposé de ce qu’affirme le Principe de Kerckhoffs. Ces méthodes non publiées ne peuvent être ni évaluées ni comparées entre elles. Là encore, Wibu-Systems a offert l’opportunité de discuter des méthodes et des fonctionnalités de CodeMeter Protection Suite lors de ses conférences et événements.

Grâce à Blurry Box, la cryptographie atteint un nouveau niveau. La cryptographie de Blurry Box offre une protection logicielle reposant entièrement sur des méthodes accessibles au public et pouvant donc être évaluée et comparée. Inutile de dire que la cryptographie de Blurry Box peut être combinée aux méthodes traditionnelles de CodeMeter Protection Suite.

Chart describes the AxProtector.NET Operational Principle

Le principe de base de la cryptographie de Blurry Box consiste à utiliser une ou plusieurs clés sécurisées dans un dongle et dans le fait que le logiciel est généralement complexe. Son but est de faire en sorte qu’il faille déployer plus d’efforts nécessaires pour copier de manière illégale un logiciel que pour réécrire complètement le même logiciel. En substance, personne ne pourrait empêcher un pirate qui sait comment un logiciel donné fonctionne de simplement construire un logiciel similaire – personne d’autre que le simple effort nécessaire.

Les méthodes

La cryptographie de Blurry Box comprend sept méthodes, ce qui augmente l’effort nécessaire pour créer une contrefaçon au point qu’il devient plus facile et plus rapide de redévelopper le logiciel à partir de zéro.

Illustrations montrant les sept méthodes de Blurry Box

Images shows the seven methods of Blurry Box

Création des variantes

Pour augmenter la complexité du logiciel, les fonctions du logiciel sont reproduites en tant que variantes de la fonction. Une fonction d’enveloppe sélectionne la variante à exécuter en fonction des paramètres d’entrée donnés de la fonction.

Modification des variantes

Les variantes individuelles sont modifiées pour fonctionner uniquement dans la plage de valeurs valable pour chaque variante. Cela empêche les pirates de corriger la fonction d’enveloppe afin d’exécuter uniquement la même variante à chaque fois.

 

Chiffrement des variantes

Toutes les variantes sont chiffrées pour empêcher les pirates de procéder à une rétro-ingénierie du code sans avoir à le déchiffrer au préalable.

Insertion de pièges

En plus des variantes déjà générées, d’autres variantes sont insérées comme pièges et sont chiffrées. Un piège contient un code de verrouillage, ce qui signifie que si le piège est déchiffré via le dongle, le dongle se verrouille automatiquement et ne peut plus être utilisé pour le déchiffrement. Cela empêche un pirate de déchiffrer toutes les méthodes sans rétro-ingénierie.

Choix de la variante dans le dongle

La fonction d’enveloppe utilise le dongle afin de sélectionner la variante. Pour ce faire, les paramètres d’entrée sont envoyés au dongle et la variante à utiliser est renvoyée. Il n’est donc plus possible pour le pirate de distinguer les variantes requises simplement en procédant à une rétro-ingénierie d’une fonction d’enveloppe déchiffrée. Il devra exécuter le code pour tous les paramètres d’entrée possibles afin de pouvoir le localiser avec une certitude absolue.

Moteur d’état dans le dongle

Le développeur sait que les fonctions ne peuvent être exécutées que dans l’ordre qu’il a choisi. La dernière méthode de déchiffrement est enregistrée dans le dongle en tant qu’état. Le déchiffrement suivant vérifiera alors si cet état a été atteint. Dans le cas contraire, un piège peut être déclenché pour empêcher un pirate d’essayer toutes les variantes à un point donné du logiciel. Il devra toujours revenir au point de départ, ce qui augmente la complexité de l’attaque.

Délai de déchiffrement

En fonctionnement normal, seul un certain nombre de déchiffrements peut être effectué toutes les 30 secondes. Ce nombre est enregistré comme seuil de déchiffrement dans le dongle. Le dongle régule son travail de déchiffrement en conséquence. En plus de rendre le processus plus complexe, ce mécanisme ralentit les pirates.

Résumé

La cryptographie de Blurry Box utilise sept méthodes publiées qui augmentent considérablement la complexité et le temps nécessaire pour réussir une attaque. Au final, il serait plus facile et moins coûteux pour le pirate potentiel de développer un logiciel similaire à partir de zéro.

La cryptographie de Blurry Box peut être combinée aux méthodes anti-débogage et d’obscurcissement typiques de CodeMeter Protection Suite. Grâce à Blurry Box, la protection des logiciels devient mesurable et comparable. Nul besoin de faire aveuglément confiance : vous achetez une solution qui a été minutieusement testée et acceptée par des experts dans le domaine.