Dónde almacenar la Protección Información de prueba para el fin específico de protección de software

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

  •  12-10-2019
  •  | 
  •  

Pregunta

Podría ser duplicado con otras preguntas, pero juro que busqué en Google mucho y buscar en StackOverflow.com mucho, y no puedo encontrar la respuesta a mi pregunta:

En una aplicación C # .Net, dónde almacenar la información de prueba de protección, como la fecha de caducidad, número de veces usado?

Lo entiendo, todo tipo de estrategias de protección de software puede ser violada por un pirata informático sophiscated (porque casi siempre pueden moverse por la etapa de caducidad comprobación). Pero lo que ahora voy a hacer es simplemente para protegerlo de una manera razonable de que un "común" / usuario "avanzado" no puede meter la pata.

De acuerdo, con el fin de una prueba de que he buscado en Google y buscado mucho en StackOverflow.com, estoy lista de todas las posibles estrategias que tengo:

1. Entrada de Registro

En primer lugar, algunos usuarios podrían no tener el acceso ni siquiera a leer la tabla de registro.

En segundo lugar, si ponemos la Protección Información de prueba en una entrada del registro, el usuario puede encontrar siempre hacia fuera donde es mediante la comparación de las diferencias antes y después de la instalación del software. Pueden simplemente cambiarlo.

Aceptar, se podría decir que hay que cifrar la Protección Información de prueba, sí podemos hacer eso. Pero lo que si el usuario acaba de cambiar la fecha de su sistema antes de instalar?

Aceptar, se podría decir que también hay que poner un último usado Fecha, si algo está mal, el utilizado por última vez la fecha podría funcionar como una guía de protección. Pero lo que si el usuario simplemente desinstalar el software y eliminar todas las entradas de registro relacionadas con este software y vuelva a instalar el software?

No tengo ni idea de cómo hacer frente a esta. Por favor, ayuda.

Un archivo plano

En primer lugar, hay algunos lugares para poner el archivo sin formato:

  • 2.a) un simple archivo XML en la ruta de instalación de software
  • 2.b) archivo de configuración

Una vez más, el usuario puede simplemente desinstalar el software y eliminar estos archivos sin formato (s), y volver a instalar el software.

- El software en sí

Si ponemos la información Descarga protección (Fecha de vencimiento, no podemos poner Número de veces usada) en el software en sí, todavía es susceptible a los casos que he mencionado anteriormente. Por otra parte, no es ni siquiera se enfríe para hacerlo.

- Un producto de ensayo-Key

Funciona como un proceso de licencia, es decir, ponemos la información de prueba en una cadena de RSA-firmado. Sin embargo, requiere demasiados pasos para que el usuario tenga una oportunidad de utilizar el software (que podrían perder la paciencia):

  • 4.a) El usuario descarga el software;
  • 4.b) El usuario envía un correo electrónico para solicitar una versión de prueba del producto-Key, proporcionando el nombre de usuario (o correo electrónico) o información de hardware;
  • 4.c) El servidor recibe la solicitud, RSA-signos y enviarlo de nuevo al usuario;
  • 4.d) El usuario ahora puede utilizarlo bajo la condición de (Fecha de vencimiento y número de utilizado Times).

Ahora, el servidor tiene un registro de nombre de usuario o hardware información del usuario, por lo que el usuario será rechazado para solicitar un segundo juicio. ¿Es legal información de hardware colección?

En una palabra, el usuario tiene que hacer un paso más supletoria (solicitar una prueba clave de producto) sólo para tener una oportunidad de utilizar el software, que no se enfríe (pensando a mí mismo como un usuario).

NOTA: Esta pregunta no es sobre la concesión de licencias, en cambio, se trata de dónde almacenar la información Descarga. Después de que expire el juicio, el usuario debe solicitar una licencia (clave de CD / Producto-Key). Voy a utilizar firma RSA (ligado al hardware del usuario)

P.S .: Mi software no tenga que apuntan al mercado de China, cuyo mercado de software es diferente de los Estados Unidos. La mayoría de la gente en China, que sólo compra de hardware, por lo general no compran software como Micosoft / Windows Office (sólo tiene que utilizar copias piratas). Sin embargo, algunos software profesional que apunta a un campo específico, la gente de investigación todavía están dispuestos a comprarlo si no hay una versión grieta o fisura de la versión es muy difícil de instalar.

¿Fue útil?

Solución

De cualquier opción 1 (clave de registro normal) o 2 (archivo plano) está muy bien. Aquí está mi razonamiento:

  • Los usuarios estándar no-privilegiados han leído permisos para el registro. Si no pueden leer su clave, algo está mal. Los usuarios estándar privilegiados no tienen permisos de escritura para el registro, pero esto no importa ya que también no tienen permisos para instalar el software en el primer lugar. En otras palabras, ya sea que el usuario tendrá permiso para crear su clave de registro en el momento de la instalación, o que van a necesitar ayuda con la instalación de todos modos. Por lo tanto las cuestiones técnicas básicas que ha planteado para la clave de registro no son realmente un factor.
  • Eso sí, no se preocupe por aquellos usuarios que hacen cosas como el conjunto de nuevo su reloj del sistema o piratear manualmente el registro de romper su clave. Permítanme decirlo de nuevo: Eso sí, no se preocupe por los usuarios que tomar una decisión consciente para alterar su sistema de una manera significativa para conseguir más allá de sus limitaciones de prueba - y no se equivoque, retrasando el reloj del sistema o la modificación del registro son modificaciones significativas. La razón por la que no debe preocuparse por estos usuarios es que que representan exactamente $ 0 en ingresos potenciales . Un usuario dispuesto a hacer para tomar este tipo de elección consciente sobre la piratería de su software no va a darse por vencido y decide pagar por su producto si no lo hace el trabajo. Si no pueden obtener su software de forma gratuita, ya sea que van a ir con un competidor o prescindir. Estás en esto para ganar dinero - usted no quiere gastar tiempo y recursos tratando de agarrar las ventas no se puede ganar o el envío de los usuarios a un competidor. Por lo tanto, las cuestiones básicas de seguridad que ha planteado para cualquiera de las opciones no son un factor.

Otros consejos

Usted no encontrará una única solución perfecta. Los esfuerzos que usted pone en esto debe ser proporcional al precio del producto que realice. Si es mucho la pena, y luego comprar una solución profesional. Si no, entonces utilizar cualquier combinación de los métodos que se encuentran. Utilizar el registro, solicitar una clave de prueba en línea, comprobar si los usuarios manipula la hora del sistema, y ??así sucesivamente.

Yo sugeriría tomar un tacto ligeramente diferente.

Da una versión "lite" de su software de distancia. Ningún ensayo, sólo funcionalidad muy limitada.

Si quieren a juicio una versión "profesional" y luego pedirles que obtener una clave de prueba. Esto debe ser cifrada en algún formato, guardado en lugares donde cada vez que desee. Cuando se inicia la aplicación, prueba de la existencia de esta clave de prueba. Si está ahí descífralo. Dentro de la clave debe ser la fecha de caducidad del software.

Prueba de la fecha y actuar en consecuencia. Si no existe, entonces simplemente ejecuta como la versión lite.

Para obtener una clave de prueba, puede hacer que entren en una dirección de correo electrónico y cualquier otra información que desee en una caja en su aplicación. No es razonable pedir que la máquina se conecta a Internet para esta parte limitada. Incluso MS Office requiere que se conecten a la Internet para validar brevemente las teclas. Tener el contacto de su servidor de aplicaciones con la solicitud de clave. Enviarlas por correo electrónico copia de la llave.

Para obtener puntos de bonificación atar la clave de prueba a alguna métrica de la propia máquina. Incluso si es sólo el nombre de la caja. Los cambios en raras ocasiones y es una prueba de todos modos.

Si realmente no puede obligarlos a estar conectado a internet para adquirir una clave, entonces usted puede ir a una ruta ligeramente diferente. Tiene la aplicación generar una solicitud (que incluye el nombre de la máquina o algo por el estilo). Deje que el usuario ya sea que llame a esa petición identificador generado o hacer que lo conectan en una página web. A continuación, enviarlas por correo electrónico la clave para esa máquina.

Todo esto impide que comparten teclas. Tiene una parte posterior caída en caso de que la ubicación clave es secuestrada y evita con la llave de ser trasladado a otras máquinas. También le da una forma de hacer esto de una manera completamente desconectado. Incluso si se rasgan la clave de cifrado pública de su aplicación para descifrar la clave de licencia de software, no van a tener su clave privada de cifrado con el fin de construir un nuevo archivo de clave de licencia.

Ahora, la gestión de claves es sólo un aspecto del mal que están luchando.

El siguiente paso es que se necesita para ofuscar su aplicación de tal manera que no se puede simplemente descompilar y derivación de los cheques clave. Esto es mucho más común de lo que pasa alrededor de los archivos clave.

Incluso podría tener múltiples métodos en la aplicación de esa prueba para la clave de diferentes maneras .. pero esto es una cuestión diferente.


Como prima final para aquellos lo suficientemente reivindicativo para hacer esto: Sembrar las distintas juntas de piratas con los principales programas generación que hace cosas interesantes para las máquinas de las personas que están tratando de robarte. Puede ser realmente creativo aquí.

O, como dijo Joel, usted podría simplemente no preocuparse por ellos. Después de todo, si van a salir de su camino para encontrar una versión agrietada de su software que no iban a pagar por él de todos modos y que realmente no se ha perdido nada.

Se puede requerir que los usuarios utilizando el ensayo de estar conectados a la Internet? Si lo que sólo tienen la versión de prueba de contactos de un servidor durante el arranque y se puede comprobar todo tipo de cosas. usted no tiene que preocuparse de almacenar cosas en el ordenador del usuario o ellas la manipulación de los datos o la hora del sistema.

Sé que esto es un hilo viejo, pero yo sólo tropezó con ella y otra podría resultar útil.

Una opción válida en estos días podría ser que su aplicación consulta un servicio de descanso durante la instalación para generar una licencia de prueba o pagado. Cada vez que el usuario abre la aplicación de la aplicación consulta el servicio de descanso para la información de licencia que está vinculado a dicha copia uno específico de software.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top