Où stocker la protection des informations de première instance But Software Protection

StackOverflow https://stackoverflow.com/questions/4521468

  •  12-10-2019
  •  | 
  •  

Question

Il est peut-être en double avec d'autres questions, mais je vous jure que je googlé beaucoup et à la recherche StackOverflow.com beaucoup, et je ne peux pas trouver la réponse à ma question:

Dans une application C # .Net, où stocker les informations d'essai de protection, tels que la date d'expiration, Nombre de fois utilisé?

Je comprends que, toutes sortes de stratégies de protection des logiciels peuvent être craquées par un pirate sophiscated (parce qu'ils peuvent obtenir presque toujours autour de l'étape de vérification d'expiration). Mais ce que je vais maintenant faire est juste pour le protéger d'une manière raisonnable qu'un utilisateur « commun » / « avancé » ne peut pas foirer.

OK, afin de prouver que j'ai googlé et beaucoup cherché à StackOverflow.com, je suis la liste de toutes les stratégies possibles que j'ai eu:

1. Entrée du Registre

Tout d'abord, certains utilisateurs pourraient ne pas avoir accès à lire, même la table d'enregistrement.

En second lieu, si l'on met l'utilisateur peut toujours trouver des informations de première instance de la protection dans un registre d'entrée, où il est en comparant les différences avant et après l'installation du logiciel. Ils peuvent tout simplement changer simplement.

OK, vous pourriez dire que nous devrions chiffrer Info Trial Protection, oui nous pouvons le faire. Mais si l'utilisateur vient changer la date de leur système avant d'installer?

OK, vous pourriez dire que nous devrions aussi mettre une dernière occasion ce jour, si quelque chose ne va pas, la dernière date utilisée pourrait fonctionner comme un guide de protection. Mais si l'utilisateur vient désinstaller le logiciel et supprimer toutes les entrées de registre liées à ce logiciel, puis réinstaller le logiciel?

Je n'ai aucune idée sur la façon de traiter cette question. S'il vous plaît aider.

Un simple fichier

D'abord, il y a des endroits pour mettre le fichier simple:

  • 2.a) un simple fichier XML sous le chemin d'installation du logiciel
  • 2.b) fichier de configuration

Encore une fois, l'utilisateur peut simplement désinstaller le logiciel et supprimer ces fichiers simple (s), et réinstaller le logiciel.

- Le logiciel lui-même

Si nous mettons les informations d'essai de protection (date d'expiration, nous ne pouvons pas mettre Nombre de fois utilisé) dans le logiciel lui-même, il est toujours sensible aux cas je l'ai mentionné ci-dessus. De plus, il est même pas cool de le faire.

- Un essai produit-clé

Il fonctionne comme un processus d'autorisation, qui est, nous mettons les informations de première instance dans une chaîne de RSA-signé. Cependant, il faut trop d'étapes pour un utilisateur d'avoir un essai d'utiliser le logiciel (ils pourraient perdre patience):

  • 4.a) Les utilisateur télécharge le logiciel;
  • 4.b) L'utilisateur envoie un e-mail pour demander un produit-clé de première instance en fournissant le nom d'utilisateur (ou e-mail) ou informations sur le matériel;
  • 4.c) Le serveur reçoit la demande, RSA-signes et l'envoyer à l'utilisateur;
  • 4.d) L'utilisateur peut désormais l'utiliser sous la condition de (la date d'expiration et numéro de Times d'occasion).

Maintenant, le serveur a un enregistrement de nom d'utilisateur de l'utilisateur ou l'information du matériel, l'utilisateur sera rejeté pour demander un second procès. Est-il d'information juridique matériel de collection?

En un mot, juste pour avoir essayer d'utiliser le logiciel, ce qui est pas cool (me surprends à penser en tant qu'utilisateur).

l'utilisateur doit faire un pas de plus en plus (demander une clé de produit d'essai)

NOTE: Cette question ne concerne pas la licence, au contraire, il est sur l'endroit où stocker les informations d'essai. Après le procès arrive à expiration, l'utilisateur doit demander une licence (CD-Key / produit-clé). Je vais utiliser la signature RSA (lié au matériel de l'utilisateur)

P.S .: Mon logiciel sera ciblons le marché chinois, dont le marché des logiciels est différent des États-Unis. La plupart des gens en Chine, ils n'acheter du matériel, ils ne sont généralement pas acheter des logiciels comme Micosoft Windows / Office (ils utilisent simplement des copies piratées). Cependant, certains logiciels professionnels visant à un champ spécifique, les gens de recherche sont toujours prêts à acheter s'il n'y a pas de version de fissure ou la version de fissure est très difficile à installer.

Était-ce utile?

La solution

Soit l'option 1 (clé de registre simple) ou 2 (fichier ordinaire) est très bien. Voici mon raisonnement:

  • Les utilisateurs standard privilégiés n'ont lu les autorisations pour le Registre. Si elles ne peuvent pas lire votre clé, autre chose ne va pas. Les utilisateurs standard privilégiés ne disposent pas d'autorisations d'écriture pour le registre, mais cela n'a pas d'importance, car ils ont aussi ne disposent pas d'autorisations pour installer le logiciel en premier lieu. En d'autres termes, que ce soit l'utilisateur aura la permission de créer votre clé de Registre lors de l'installation, ou ils auront besoin de l'aide de démarrer l'installation. Par conséquent, les questions techniques de base que vous avez soulevées pour la clé de Registre ne sont pas vraiment un facteur.
  • Il suffit de ne vous inquiétez pas au sujet de ces utilisateurs qui font des choses comme programmer leur horloge système ou pirater manuellement le Registre pour casser votre clé. Permettez-moi de le dire: Il suffit de ne vous inquiétez pas sur les utilisateurs qui font une décision consciente de modifier leur système de manière significative pour dépasser vos limites d'essai - et ne vous trompez pas, la mise en arrière l'horloge système ou la modification du registre sont des modifications importantes. La raison pour laquelle vous ne devriez pas vous soucier de ces utilisateurs est que ils représentent exactement 0 $ en revenu potentiel . Un utilisateur prêt à faire pour prendre ce genre de choix conscient de pirater votre logiciel ne va pas simplement abandonner et décider de payer pour votre produit si elle ne fonctionne pas. Si elles ne peuvent pas obtenir votre logiciel gratuitement, ils vont soit avec un concurrent ou de faire sans. Vous êtes dans ce faire de l'argent - vous ne voulez pas passer du temps et des ressources en essayant de ventes d'appui que vous ne pouvez pas gagner ou l'envoi d'utilisateurs à un concurrent. Par conséquent, les problèmes de sécurité de base que vous avez soulevées pour ces deux options ne sont pas un facteur.

Autres conseils

Vous ne trouverez pas une seule solution parfaite. Les efforts que vous mettez dans ce qui devrait être proportionnelle au prix du produit que vous faites. S'il est beaucoup vaut la peine d'un, puis acheter une solution professionnelle. Dans le cas contraire, utilisez une combinaison de méthodes que vous trouvez. Utilisez le registre, demander une clé d'essai en ligne, vérifier si l'utilisateur manipule le temps du système, et ainsi de suite.

Je suggère de prendre un tact légèrement différent.

Donner une version « lite » de votre logiciel loin. Aucun essai, fonctionnalité vraiment limité.

S'ils veulent essai une version « professionnelle », puis demandez-leur d'obtenir une clé d'essai. Cela devrait être chiffré dans un format, stocker où vous voulez. Lorsque l'application démarre, vérifier l'existence de cette clé d'essai. Si elle est là décrypter il. A l'intérieur de la clé doit être la date d'expiration du logiciel.

Tester la date et agir en conséquence. Si elle n'existe pas alors il suffit d'exécuter la version Lite.

Pour obtenir une clé d'essai, vous pouvez les saisir une adresse e-mail et d'autres informations que vous voulez dans une boîte dans votre application. Il n'est pas déraisonnable de demander que la machine soit connecté à Internet pour cette partie limitée. Même MS Office vous demande de vous connecter à Internet brièvement pour valider les clés. Avoir l'application, contactez votre serveur avec la demande de clé. Envoyer les sauvegarder la clé.

Pour les points de bonus attacher la clé d'essai dans une certaine mesure de la machine elle-même. Même si elle est juste le nom de la boîte. Les changements rarement et il est un procès de toute façon.

Si vraiment vous ne pouvez pas les forcer à être connecté à Internet pour acquérir une clé, alors vous pouvez aller un itinéraire légèrement différent. Demandez à l'application génère une demande (qui comprend le nom de la machine ou quelque chose le long de ces lignes). Demandez à l'utilisateur soit vous appelez avec cet identifiant de demande généré ou faites-les brancher sur un site Web. Ensuite, les envoyer par courriel la clé de cette machine.

Tout cela empêche le partage des clés. A un dos d'automne au cas où l'emplacement clé est mis sur cric avec et empêche la clé d'être déplacés vers d'autres machines. Il vous donne également une façon de faire cela d'une manière complètement déconnectée. Même si elles rip la clé de chiffrement publique de votre application pour décrypter la clé de licence de logiciel, ils ne seront pas votre clé de chiffrement privée afin de construire un nouveau fichier de clé de licence.

Maintenant, la gestion des clés est seulement un aspect du mal que vous combattez.

L'étape suivante est que vous devez obscurcir votre application dans une telle manière qu'ils ne peuvent pas simplement décompiler et contourner vos contrôles clés. Cela est beaucoup plus fréquent que le passage des fichiers autour clés.

Vous pourriez même avoir plusieurs méthodes dans l'application ce test pour la clé de différentes manières .. Mais ceci est une autre question.


En prime finale pour ceux qui sont assez vindicative pour le faire: les semences différentes cartes pirates avec le logiciel clé gen qui fait des choses intéressantes aux machines des gens qui essaient de vous arnaquer. Vous pouvez vraiment créatif ici.

Ou, comme Joel dit, vous pouvez tout simplement pas vous en soucier. Après tout, s'ils vont sortir de leur façon de trouver une version crackée de votre logiciel, ils ne vont pas à payer pour cela de toute façon et vous avez vraiment rien perdu.

Pouvez-vous exiger que les utilisateurs à l'aide de l'essai sont connectés à Internet? Si oui avez juste la version d'essai, contactez un serveur lors du démarrage et vous pouvez vérifier toutes sortes de choses. vous n'avez pas à vous soucier de stocker des choses sur l'ordinateur de l'utilisateur ou les altérer les données ou le temps du système.

Je sais que c'est un vieux fil, mais je viens de tombé sur elle et d'autres pourraient trouver cela utile.

Une option valide ces jours-ci pourrait être que votre application interroge un service de repos lors de l'installation pour générer un procès ou d'un permis payé. Chaque fois que l'utilisateur ouvre l'application de l'application interroge le service de repos pour les informations de licence qui est liée à celle d'une copie spécifique du logiciel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top