2010-12-02 37 views
0

J'ai un fichier de licence pour mon application. La seule façon dont il peut être cassé maintenant et l'utilisateur peut avoir un accès illimité est en supprimant le fichier de licence tous les 30 jours et en réinstallant le programme.Comment protéger mon fichier de licence?

Comment puis-je protéger au mieux ce fichier? (ou information)

Ma première pensée est de cacher le dossier quelques dossiers profonds quelque part sous Windows% AllUsersProfile%. Et utilisez des noms obscurs pour les dossiers pour ne pas annoncer l'emplacement.

Une autre idée était d'écrire dans le registre, mais nous ne pouvons pas toujours écrire dans HKEY_Local_Machine comme je le souhaitais, car cela nécessite des privilèges d'administrateur.

Répondre

1

Presque toute méthode de cacher ou d'obscurcir votre fichier de licence est craquable.Vous avez vraiment besoin de décider entre certains scénarios:

  1. Je fais confiance à mes clients, mais ils pourraient par inadvertance briser mes conditions de licence
  2. Mon produit est hautement souhaitable et donc sera la cible des crackers
  3. Mon produit ISN Pas intéressant pour les craquelins, mais mes clients sont des slimebags et vont copier la morve hors de lui.

Dans le cas 1, un simple fichier de licence pour aider vos clients à se conformer est correct. Probablement le cacher ou l'obscurcir n'est pas nécessaire. Je suppose que ce n'est pas votre cas puisque vous avez posté cette question.

Dans les cas 2 et 3, il y a peu, vous pouvez faire qui ne peut être facilement vaincu. Les outils disponibles pour les craquelins sont assez puissants et largement disponibles, ainsi que des techniques pour les utiliser. Notre société (www.wibu.us) a un cryptographe à temps plein qui regarde comment les gens fendent les logiciels afin que nous puissions renforcer la protection contre cela.

probablement l'approche la plus « normale » pour une solution DIY est de chiffrer le fichier de licence à l'aide d'un algorithme « standard » comme AES 128 bits ou Triple DES. Ensuite, faites la clé à partir d'un hachage de plusieurs facteurs, comme l'adresse MAC, le numéro de série MB, la date d'installation, et peut-être certaines données d'entrée utilisateur ("nom" "Téléphone" etc). Cependant, crypto peut devenir compliqué, donc vous voulez vous assurer que vous savez ce que vous faites avec cette approche.

1

Forcer l'application à se rendre sur un serveur distant via le port 80 pour vérifier un hachage qui a été défini lors de la première installation, peut-être en fonction de l'adresse MAC (pas une garantie absolue mais suffisante). S'ils essayent de réinstaller, ils sont au moins liés à l'adresse MAC et vous pouvez arrêter l'installation.

EDIT:

Si votre base de clients est faible et vous avez les ressources nécessaires pour les soutenir, vous pouvez effectuer le même comportement sans accès à Internet, sauf que le client doit venir à vous pour obtenir un fichier de licence. Ils génèrent une clé via leur système, à nouveau liée à l'adresse MAC, puis vous envoient la clé dont vous générez le fichier de licence. Cela dépend bien sûr du nombre de téléchargements sortants par jour.

+0

J'aime cette réponse et il semble que la seule façon d'être sûr, mais le logiciel sera utilisé par les clients qui peuvent ne pas avoir accès à Internet. +1 – Tim

+0

répondre à Edited @ Tim fournir même fonctionnalité sans accès à Internet, avec mise en garde du soutien –

2

Créez un fichier de licence lors de l'installation. Et considérez l'absence d'un fichier de licence comme un fichier de licence invalide. La désinstallation, la suppression du fichier, puis sa réinstallation sont beaucoup plus ennuyantes que la simple suppression d'un fichier. Et je hate si des fichiers avec un nom aléatoire obscur apparaissent quelque part sur mon système, puisque je me demande si j'ai été infecté par un virus, ou si c'est juste un logiciel mal comporté.

Et n'essayez pas trop dur. Il est inutile de le rendre plus difficile que de télécharger un outil de réinitialisation de licence ou de crack à partir du prochain site warez. Et un pirate trouvera votre fichier de licence très rapidement avec des outils comme FileMon.

Une idée qui pourrait réellement fonctionner (sauf contre les fissures qui corrigent votre binaire):
Fixer la date d'expiration sur le téléchargement et intégrer le fichier de licence dans la configuration. De cette façon, ils ont réellement besoin de télécharger une nouvelle version chaque fois que leur licence expire. Mais bien sûr, vos utilisateurs pourraient trouver cela inacceptable ou ne pas correspondre à votre modèle de distribution ...

+0

qui est essentiellement ce que je fais, mais je voulais voir s'il les interdire était une façon de supprimer mon dossier afin qu'ils puissent réinstaller. J'apprécie beaucoup le commentaire sur les noms obscurs. +1 – Tim

0

Une solution consiste à intégrer une date d'expiration avec le fichier de licence. Si votre programme protégé ne trouve pas de fichier de licence, il est invalide.

Donc, même si l'utilisateur le supprime, cela n'aidera pas beaucoup, il est toujours expiré.

Le seul problème dans ce cas est: vous devez fixer une date d'expiration lorsque vous distribuez des fichiers de licence. Vous pouvez résoudre cela avec d'autres astuces (redistribuer de nouvelles licences régulièrement, etc.), mais cela peut ne pas convenir à tous les besoins.