Vous ne pouvez pas sécuriser complètement une application (gérée ou non). Si des systèmes comme la Playstation et l'iPad peuvent se fissurer - où le fournisseur contrôle même le matériel - quel espoir votre application a-t-elle? Heureusement, vous n'en avez pas vraiment envie. À mon avis, vous devez sécuriser votre application juste assez pour que quelqu'un ne puisse pas pirater accidentellement votre produit, et pas plus.
Par exemple, si vous utilisez une licence par machine, elle ne devrait pas fonctionner uniquement lorsque vous l'installez sur une nouvelle deuxième machine. Vous voudrez un bon message d'erreur pour éviter les appels de support supplémentaires, mais ne passez pas de temps supplémentaire à le rendre trop difficile à contourner et ne frappez pas les utilisateurs par dessus la tête avec.
Un autre exemple est un procès limité dans le temps. Ne vous inquiétez même pas de choses simples comme si les utilisateurs peuvent simplement faire reculer l'horloge système. Quelqu'un qui fait cela sait qu'il casse votre licence, et tant qu'un utilisateur sait quand il viole, vous en avez assez fait.
Vous devez faire beaucoup de choses car les utilisateurs ne se soucient pas de votre licence. Les licences sont des choses inventées dont personne ne se soucie avant d'en avoir besoin. Personne ne les lit, et ils ne devraient vraiment pas avoir à le faire. Par conséquent, la meilleure façon d'indiquer à l'utilisateur où se trouvent les limites est de savoir si le comportement prêt à l'emploi de votre application est conforme à la licence. Dans ce premier cas, cela signifie soit l'échec de l'installation ou l'installation en mode de version d'essai la deuxième fois. Pour ce dernier, cela pourrait simplement signifier la vérification d'une date en texte brut dans un fichier de configuration. Quoi qu'il en soit, assurez-vous de le manipuler de manière élégante, utile et respectueuse.
Cela explique donc ce que cela signifie. Mais pourquoi ne pas aller plus loin? Pourquoi ne pas boucher chaque petit trou que vous pouvez trouver? La réponse est en deux parties. Premièrement, si quelqu'un franchit le seuil éthique de la rupture consciente de vos conditions de licence - même de manière simple - il sera également disposé à faire quelque chose de plus difficile ou dangereux comme retirer votre application d'un torrentsite - et il existe un certain danger lié à l'exécution d'applications téléchargées à partir de sources non fiables. Le rendre plus difficile n'est qu'une gêne mineure pour ces utilisateurs et risque de causer des problèmes avec vos clients payants. Rester simple peut empêcher quelqu'un de creuser dans votre application et de publier un crack plus complet. Deuxièmement, vous avez peu d'yeux pour chercher des défauts; les pirates en ont beaucoup, et ils ont plus de pratique pour les trouver. Il vous suffit de manquer un petit défaut, et votre application aura la même distribution sur les sites pirates que si vous ne faisiez rien. Vous devez avoir raison à chaque fois; ils n'ont de chance qu'une seule fois. L'effort requis est donc très élevé et la probabilité de toute mesure de succès est très faible.
En fin de compte, si quelqu'un veut pirater votre application (au lieu de simplement l'utiliser), et c'est leur principal objectif, il le fera. Il n'y a rien que vous puissiez faire pour les arrêter. Telle est la nature du logiciel; une fois que les fichiers qui composent votre produit sont sur l'ordinateur d'un utilisateur , ils seront en mesure de le faire avec eux comme ils le souhaitent. Cela est particulièrement pertinent dans les environnements gérés comme Java ou .NET , mais cela s'applique également au code natif. Le temps est de leur côté et avec suffisamment de temps, toute sécurité numérique peut être brisée.
Étant donné que vous ne pouvez pas empêcher les utilisateurs de pirater votre produit, votre meilleure solution consiste à engager cette classe d'utilisateurs d'une manière qui les utilise à votre avantage. Il est souvent possible de les faire travailler pour vous plutôt que contre vous. Dans cet esprit, quelle que soit votre application, il vaut probablement la peine de conserver une version gratuite presque entièrement fonctionnelle et qui n'expire pas. La différence entre même une étiquette de prix de 1 $ US et gratuite est énorme, si pour aucune autre raison que le client n'a pas à vous faire confiance avec sa carte de crédit. Une édition gratuite de votre produit ne tuera pas seulement efficacement la distribution piratée (pourquoi risquer une version piratée alors que vous pouvez être légitime pour le même prix?), Elle a le potentiel d'élargir considérablement votre audience.
Le résultat est que vous devrez peut-être augmenter le prix de l'édition payante, de sorte qu'au final au lieu de 2 000 utilisateurs à 20 $ chacun, vous aurez 100 000 utilisateurs gratuits, dont 500 sont prêts à payer 99 $ pour l'édition "professionnelle" . Cela vous fait gagner plus d'argent que si vous passiez beaucoup de temps à verrouiller votre produit. Plus que cela, vous pouvez engager ces utilisateurs gratuits et tirer parti de la relation de plusieurs manières importantes.
L'un est le soutien. Un pessimiste saisirait cette occasion pour se plaindre du coût accru de la prise en charge de 100 000 utilisateurs gratuits, mais quelque chose d'incroyable se produit à la place: votre produit devient largement autosuffisant. Vous voyez cela tout le temps avec de grands projets open source qui n'ont pas d'argent pour les coûts de support. Les utilisateurs intensifieront et y arriveront.
Les utilisateurs gratuits ont généralement des attentes de support réduites pour commencer, et pour une bonne raison. Tout ce que vous avez à faire est de marquer l'édition gratuite comme étant uniquement admissible au support communautaire et de mettre en place un forum en ligne modéré par l'utilisateur à cet effet. Votre base de connaissances de support est auto-générée et les utilisateurs avancés guideront ceux qui ont besoin d'une prise en main supplémentaire en votre nom. Plus important encore, cela vous permettra d'identifier et de corriger les bogues plus rapidement, améliorant finalement la qualité de votre produit et réduisant les coûts totaux de support. Cela n'était pas possible auparavant parce que votre base d'utilisateurs n'était pas assez grande, mais lorsque vous traitez les utilisateurs gratuits comme des clients, cela peut très bien fonctionner.
Un autre est la rétroaction. En regardant votre forum, vous apprenez des idées d'amélioration importantes que vous n'auriez peut-être jamais envisagées autrement. Cela peut vous permettre de transformer davantage de vos utilisateurs gratuits en utilisateurs payants et de créer un produit plus attrayant qui attirera un public encore plus large.
Enfin, vous devez considérer le marketing. Tous ces utilisateurs gratuits sont désormais des fans plutôt que des adversaires, et ils agiront en conséquence. Non seulement cela, mais quand viendra le temps de publier votre prochaine version, ces utilisateurs seront tous passés par votre canal de distribution approuvé, plutôt que par un autre mécanisme inconnu. Cela signifie que pour votre prochaine version, vous commencez par être connecté à un public plus large, très intéressé et solidaire.
Les meilleures fonctionnalités à réserver pour l'édition professionnelle sont des outils destinés à faciliter le déploiement et la gestion de l'entreprise. Un pirate ne verra pas cela comme une raison suffisante pour le pirater pour son propre usage, mais pour une entreprise qui cherche à acheter 300 licences et à la diffuser dans toute l'entreprise, c'est un must-have. Bien sûr, l'édition professionnelle sera de toute façon piratée, mais encore une fois: ne vous en faites pas car vous ne seriez probablement pas en mesure de vendre le produit à ces pirates, peu importe ce que vous avez fait, donc cela ne vous coûte aucun revenu.
Bien que psychologiquement, il puisse être difficile de donner autant à votre produit, j'espère que vous pourrez comprendre comment c'est vraiment la meilleure façon de procéder. Non seulement cela, c'est la seule voie à suivre à long terme. Je sais que quelqu'un pense qu'il ne veut pas le faire de cette façon. Après tout, ils se débrouillent très bien pour vendre leur produit verrouillé de 20 $ pendant des années. Mais c'est tout simplement dommage, car si vous ne le faites pas de cette façon, quelqu'un d'autre finira par le faire . Et leur produit sera aussi bon que le vôtre, ou assez proche, ils pourront s'en tirer en le réclamant. Ensuite, tout à coup, vos prix semblent scandaleux, les ventes baissent considérablement et vous ne pouvez rien faire d'autre. Vous pouvez opter pour un niveau intermédiaire supplémentaire si vous le devez, mais il est peu probable que cela vous aide.