2011-06-15 2 views
5

J'ai essayé de trouver un moyen d'empêcher les utilisateurs de trafiquer un fichier de licence livré avec mon logiciel. J'ai regardé RSA et employant la signature pour vérifier les données. Maintenant, d'après ce que j'ai compris, j'ai essentiellement des données (le fichier de licence) et j'utilise la méthode SignData de RSACryptoServiceProvider pour créer une signature pour les données avec une clé publique et privée créée via ExportParameters (true). Puis je donnerais le fichier de licence et la clé publique avec le logiciel pour que je puisse vérifier les données (licence) sur le client en utilisant VerifyData mais ce qui empêcherait l'utilisateur de créer sa propre paire de clés publique/privée et recréer le données et juste écraser la clé publique et les données?Utilisez RSA pour signer un fichier de licence

J'ai lu et fait des recherches sur Google mais je suis toujours coincé avec cela, je suis assez nouveau pour le cryptage et la signature, mais j'ai besoin de comprendre cela. Je sais qu'il est pratiquement impossible de sécuriser un fichier de licence comme s'ils voulaient simplement pouvoir décompiler le code et supprimer les chèques, donc je veux juste rendre plus difficile pour eux d'abuser du logiciel. Je ne veux pas qu'ils soient en mesure de faire leur propre licence ou de transférer une licence sur une autre machine.

Quelqu'un pourrait-il me diriger dans la bonne direction ou donner des conseils?

Merci.

+0

Je me suis penché sur moi-même, pour l'octroi de licences Java. Le client dans mon cas n'était pas disposé à mettre en place un serveur d'activation afin que mon logiciel puisse vérifier la licence par rapport à cela, donc j'ai dû adopter l'approche encrypt/decrypt. Ce que j'ai fait était d'encoder les détails du client dans les dates de licence et d'expiration et les limites de volume, etc. pour décourager la copie de la licence à d'autres endroits. Pourtant, si le client comprenait Java, il aurait pu remplacer les classes qui traitent de l'activation du produit, mais je ne peux pas facilement empêcher cela - juste le rendre plus difficile. –

+0

J'ai également examiné cette approche, en chiffrant un fichier de licence et en le décryptant sur le client. Où avez-vous stocké la clé? L'avez-vous intégré dans le logiciel ou l'avez-vous dans un fichier? –

+0

Je trouve les serveurs d'activation offensifs. Afin de pouvoir exécuter un certain logiciel, je dois continuellement utiliser (et dépenser des ressources pour) un service réseau non audité dont l'analyse m'interdit de détecter des vulnérabilités pouvant être pertinentes pour la sécurité de mon réseau d'entreprise. –

Répondre

4

Rien ne les arrêterait. Tout l'intérêt de l'application de la cryptographie à l'octroi de licences de logiciels consiste à créer des preuves plus solides à utiliser dans un tribunal. Ne passez pas trop de temps à rendre votre système de licence difficile à contourner (plus il est compliqué, plus les gens le verront comme un défi), mais assurez-vous que vos clients payants ne sont pas gênés par cela.

+0

Ouais, c'est à peu près ma réponse à mon client. Je ne suis pas satisfait de ma solution actuelle, car elle ne répond pas aux exigences du client. –

+0

Oui, vous avez raison, je pense que je vais juste faire en sorte qu'ils ne peuvent pas facilement se donner un accès complet à tout ou déplacer le fichier de licence à une autre machine. Je suis d'accord avec Simons pour commenter le serveur d'activation. –

+0

La difficulté à empêcher les personnes de transférer des licences vers d'autres machines est qu'elles les empêchent souvent de déplacer la licence vers une nouvelle installation. –

Questions connexes