Tengo esta aplicación java swing que pretendo vender a través de Internet. Por el momento me inclino por implementar la aplicación usando java webstart. El producto tendrá licencia para que el usuario use el programa en una computadora a la vez. Estoy preocupado por la piratería con este modelo. Me gustaría instalar algunas características de seguridad para hacer cumplir el modelo de licencia. El objetivo es, como mínimo, dificultar que un usuario con licencia copie el producto instalado, incluida la clave de licencia, a los usuarios sin licencia. Estas son las opciones que estoy viendo en este momentoCómo prevenir la piratería para la aplicación java webstart
obligar al usuario a autenticar a la nave madre con un nombre de usuario/contraseña cada vez que se inicia el programa.
Simplemente instale una clave de licencia en algún lugar (¿oculto?) En la PC del usuario después de que se hayan registrado y pagado. En tiempo de ejecución, verifique que haya una clave de licencia válida instalada.
Utilice/cree un paquete de seguridad basado en una huella digital de hardware de la computadora del usuario. Esta huella digital se computaría cada vez que se inicia la aplicación y se compara con la clave de licencia instalada localmente utilizando algún tipo de hash. Esta clave de licencia solo sería válida con esta huella dactilar de hardware.
Uno de los problemas aquí es que una vez que se ha instalado esta aplicación, no hay ninguna necesidad de tiempo de ejecución para la aplicación ponerse en contacto con la nave nodriza, con excepción de la comprobación de actualizaciones de aplicaciones utilizando Java Web Start. Todo lo que hace la aplicación lo hace localmente y muestra los resultados al usuario que usa swing. Por lo tanto, cualquier solución que implique un buque nodriza significará básicamente construir una infraestructura de servidor con el único propósito de verificar la licencia.
Supongo que lo que estoy buscando es algo basado en Java que sea al menos algo seguro, fácil de implementar y que no le cueste al usuario. ¿Qué enfoque de seguridad/licenciamiento ha usado?
EDIT: Debo añadir que no estoy necesariamente buscando una bala de plata para evitar que absolutamente todos derroten la seguridad. Siempre habrá alguien con suficiente tiempo para buscar formas de hacerlo. No estoy tan preocupado con estos tipos. Básicamente busco dificultar que un usuario casual simplemente copie la clave de licencia y la envíe a sus amigos. Implementada correctamente, la solución debe convencer al usuario casual de que es más sencillo comprarla.
¿Software que calcula una huella dactilar de su hardware y habla con la nave nodriza solo para fines de licencia? Suena como un dolor en el a ** y me recuerda esas cosas de activación de Windows. Por favor, no hagas esto. –