No puede proteger completamente ninguna aplicación (administrada o no). Si los sistemas como Playstation y iPad pueden romperse, donde el vendedor incluso controla el hardware, ¿qué esperanza tiene su aplicación? Afortunadamente, realmente no quieres. En mi opinión, debe proteger su aplicación lo suficiente como para que alguien no pueda piratear accidentalmente su producto, y nada más.
Por ejemplo, si usa una licencia por máquina, no debería funcionar solo cuando la instala en una segunda máquina nueva. Querrá un buen mensaje de error para evitar llamadas de soporte adicionales, pero no pase más tiempo haciendo que sea demasiado difícil evitarlo y no golpee a los usuarios con la cabeza.
Otro ejemplo es una prueba de tiempo limitado. Ni siquiera se preocupe por cosas simples como si los usuarios solo pudieran retroceder el reloj del sistema. Alguien que hace eso sabe que está infringiendo su licencia, y siempre que un usuario sepa cuándo está violando, usted ya ha hecho lo suficiente.
Debe hacer esto mucho porque a los usuarios no les importa su licencia. Las licencias son cosas inventadas que a nadie le importan hasta que lo necesitan. Nadie los lee, y realmente no deberían tener que hacerlo. Por lo tanto, la mejor manera de decirle al usuario dónde están los límites es si el comportamiento listo para usar para su aplicación cumple con la licencia. En este primer caso, eso significa no instalar o instalar en modo de versión de prueba la segunda vez. Para este último, podría significar verificar una fecha de texto sin formato en un archivo de configuración. De cualquier manera, asegúrese de manejarlo de una manera elegante, útil y respetuosa.
Eso explica lo que significa hacer exactamente eso. ¿Pero por qué no ir más allá? ¿Por qué no taponas cada pequeño agujero que puedes encontrar? La respuesta está en dos partes. Primero, si alguien cruza el umbral ético de romper conscientemente los términos de su licencia, incluso de una manera simple, también estará dispuesto a hacer algo más difícil o peligroso como sacar su aplicación de un torrentesitio - y existe una cierta cantidad de peligro involucrado en la ejecución de aplicaciones descargadas de fuentes no confiables. Hacerlo más difícil es solo una molestia menor para estos usuarios y los riesgos de causar problemas con sus clientes que pagan. Mantenerlo simple puede evitar que alguien profundice en su aplicación y libere una grieta más completa. En segundo lugar, tiene pocos ojos disponibles para buscar defectos; los hackers tienen muchos, y tienen más práctica para encontrarlos. Solo necesita perderse un pequeño defecto, y su aplicación tendrá la misma distribución en sitios piratas como si no hiciera nada. Tienes que tener razón cada vez; solo tienen que tener suerte una vez. Por lo tanto, el esfuerzo requerido es muy alto y la probabilidad de cualquier medida de éxito es muy baja.
En última instancia, si alguien quiere piratear su aplicación (en lugar de solo usarla), y ese es su objetivo principal, lo harán. No hay nada que puedas hacer para detenerlos. Esta es la naturaleza del software; Una vez que los archivos que componen el producto están en la computadora de un usuario que van a ser capaces de hacer con ellos lo que quieran. Esto es especialmente relevante en entornos administrados como Java o .NET , pero definitivamente también se aplica al código nativo. El tiempo está de su lado y, dado el tiempo suficiente, se puede romper cualquier seguridad digital.
Como no puede evitar que los usuarios pirateen su producto, su mejor curso de acción es involucrar a esta clase de usuarios de una manera que los utilice para su beneficio. A menudo es posible hacer que trabajen para usted en lugar de en su contra. Con eso en mente, no importa cuál sea su aplicación, probablemente valga la pena mantener una versión gratuita que sea casi completamente funcional y que no caduque. La diferencia entre incluso un precio de US $ 1 y gratis es enorme, si no por otra razón que el cliente no tiene que confiar en usted con su tarjeta de crédito. Una edición gratuita de su producto no solo matará efectivamente la distribución pirateada (¿por qué arriesgarse a una versión pirateada cuando puede ser legítimo por el mismo precio?), Sino que tiene el potencial de expandir dramáticamente su audiencia.
El resultado es que es posible que deba aumentar el precio de la edición de pago, de modo que al final en lugar de 2,000 usuarios a $ 20 cada uno, tenga 100,000 usuarios gratuitos, de los cuales 500 están dispuestos a pagar $ 99 por la edición "profesional" . Esto le permite ganar más dinero que si pasara mucho tiempo bloqueando su producto. Más que eso, puede involucrar a estos usuarios gratuitos y aprovechar la relación de varias maneras importantes.
Uno es el apoyo. Un pesimista aprovecharía esta oportunidad para quejarse por el aumento del costo de dar soporte a 100,000 usuarios gratuitos, pero en cambio sucede algo sorprendente: su producto se vuelve en gran medida autosuficiente. Usted ve esto todo el tiempo con grandes proyectos de código abierto que no tienen dinero para los costos de soporte. Los usuarios darán un paso adelante y lo harán posible.
Los usuarios gratuitos generalmente tienen expectativas de soporte reducidas para empezar, y por una buena razón. Todo lo que necesita hacer es marcar la edición gratuita como la única que califica para el apoyo de la comunidad y crear un foro en línea moderado por el usuario para ese propósito. Su base de conocimiento de soporte es autogenerada, y los usuarios avanzados guiarán a aquellos que necesitan una mano extra en su nombre. Aún más importante, esto le permitirá identificar y corregir errores más rápidamente, mejorando en última instancia la calidad de su producto y reduciendo los costos totales de soporte. Esto no era posible antes porque su base de usuarios no era lo suficientemente grande, pero cuando trata a los usuarios gratuitos como clientes, puede funcionar muy bien.
Otro es la retroalimentación. Al mirar su foro, aprende ideas importantes de mejora que quizás nunca haya considerado de otra manera. Esto puede permitirle en última instancia convertir a más usuarios gratuitos en usuarios pagos y crear un producto más atractivo que atraiga a un público aún mayor.
Finalmente, debes considerar el marketing. Todos estos usuarios gratuitos ahora son fanáticos en lugar de adversarios, y actuarán en consecuencia. No solo eso, sino que cuando llegue el momento de lanzar su próxima versión, todos estos usuarios habrán pasado por su canal de distribución aprobado, en lugar de algún otro mecanismo desconocido. Eso significa que para su próxima versión comenzará conectado con un público más amplio, altamente interesado y solidario.
Las mejores características para reservar para la edición profesional son las herramientas destinadas a facilitar la implementación y administración corporativas. Un cracker no verá esto como una razón lo suficientemente convincente como para hackearlo para su propio uso, pero para una empresa que busca comprar 300 licencias y expulsarlo en toda la compañía, esto es imprescindible. Por supuesto, la edición profesional será pirateada de todos modos, pero de nuevo: no se preocupe porque probablemente no podrá vender el producto a esos piratas sin importar lo que haya hecho, por lo que no le costará ningún ingreso.
Si bien psicológicamente puede ser difícil regalar tanto su producto, es de esperar que pueda entender cómo es realmente la mejor manera de hacerlo. No solo eso, es el único camino a largo plazo. Sé que alguien está ahí afuera pensando que no quiere hacerlo de esta manera. Después de todo, han logrado vender su producto bloqueado de $ 20 durante años. Pero eso es una lástima, porque si no lo haces de esta manera, eventualmente alguien más lo hará . Y su producto será tan bueno como el suyo, o lo suficientemente cerca como para salirse con la suya. Entonces, de repente, su precio parece escandaloso, las ventas caen drásticamente y no hay nada más que pueda hacer. Puede optar por un nivel medio adicional si es necesario, pero es poco probable que lo ayude.