Validy  > Produits  > Validy SoftNaos (POC)

Validy SoftNaos (POC)

Validy SoftNaos for Java est un produit de protection des logiciels destiné aux éditeurs de logiciel qui développent en Java. Il empêche le piratage des logiciels et garantit leur intégrité en utilisant simultanément une transformation de logiciel et un composant électronique sécurisé.

Le Jeton USB Validy SoftNaos
Le Jeton USB Validy SoftNaos

 

Pour mettre en place la protection Validy SoftNaos for Java, un post-compilateur transforme le bytecode Java de l'application. Si un jeton USB Validy SoftNaos n'est pas relié au PC, l'application protégée ne peut plus fonctionner correctement.

 

Quand l'application fonctionne, le jeton devient une extension du processeur principal : il contient un sous ensemble de l'état de l'application et exécute les fragments de l'application qui utilisent ou modifient cet état. Le jeton est un "co-processeur" esclave qui reçoit des instructions encryptées et échange des données avec le processeur central par l'interface USB.

 

Le seul lien entre une application protégée et le jeton est une clé cryptographique. Le post-compilateur chiffre les instructions lors de la protection en utilisant une clé secrète et le jeton les déchiffre lors de l'exécution en utilisant cette même clé. Protéger une nouvelle application ou mettre à jour une application existante après que les jetons aient été distribués aux clients est simple : il suffit d'utiliser la même clé lors de l'utilisation du post-compilateur.

 

Parce qu'une partie petite mais essentielle de l'application est exécutée hors d'atteinte, la protection est radicalement différente des solutions basées uniquement sur du logiciel ou de celles basées sur un "dongle" ordinaire. Un attaquant ne peut pas se contenter de trouver et d'enlever les "verrous". Il doit comprendre et réinventer la partie cachée. Le piratage du logiciel devient beaucoup plus difficile et coûteux.

 

Les données et les instructions ne sont pas les seules informations cachées. En associant un identifiant ou "tag" à chaque instruction qui définit une valeur et une liste de tags attendus pour chaque utilisation d'une valeur, des assertions sur le déroulement normal du programme peuvent être incluses dans les instructions chiffrées. Puisqu'il vérifie ces assertions en temps réel, le jeton peut détecter et combattre la plupart des attaques qui modifient le flot des instructions venant du processeur central.

 

Le mécanisme des tags est facile à mettre en oeuvre et très performant puisqu'il n'exécute que des opérations simples. Il est cependant extrêmement puissant puisque des instructions supplémentaires peuvent être reliées aux instructions originales en utilisant les tags. Avec ces instructions supplémentaires, un réseau opaque et inamovible de vérifications de l'état de l'application et de ses invariants peut être fondu dans le code. Les difficultés se combinent et rendent très difficile (pour un attaquant) la modification furtive d'une application, ce qui constitue une méthode très efficace de protection de l'intégrité du logiciel.

 

Comme les algorithmes cryptographiques et les protocoles modernes, Validy SoftNaos ne cherche pas à garder son fonctionnement secret. La technologie est décrite par des brevets et les clients spécialistes en sécurité peuvent auditer son implémentation ou bâtir leur propre implémentation.

 

Pour permettre une évaluation facile et gratuite, nous distribuons une version d'évaluation de Validy SoftNaos for Java, avec le même post-compilateur mais un simulateur logiciel du jeton. Avec ce simulateur pleinement fonctionnel, la plupart des aspects de la protection peuvent être étudiés. Contactez nous pour aller plus loin et obtenir un kit d'évaluation hardware.