Pregunta

Tengo un archivo de licencia para mi aplicación. La única forma en que puede dividirse en este momento y el usuario puede tener acceso ilimitado es eliminando el archivo de licencia cada 30 días y volver a instalar el programa.

¿Cómo proteger mejor a este archivo? (O información)

Lo primero que pensé es ocultar el archivo de un par de carpetas de profundidad en algún lugar debajo de las ventanas% AllUsersProfile%. Y el uso de nombres oscuros para las carpetas que no se anuncie el lugar.

Otra idea era escribir en el registro, pero no siempre se puede escribir en el HKEY_Local_Machine como quería debido a que requieren privilegios de administrador.

¿Fue útil?

Solución

Casi cualquier método de esconder u ocultar el archivo de licencia es manipulable. Que realmente necesita para decidir entre algunos escenarios:

  1. Confío en mis clientes, pero podrían romper inadvertidamente mi términos de licencia
  2. Mi producto es altamente deseable y por lo tanto será el objetivo de galletas
  3. Mi producto no es interesante para galletas, pero mis clientes son slimebags y copiará el moco fuera de él.

En el caso 1, un archivo de licencia simple de ayudar a sus clientes con el cumplimiento está muy bien. Probablemente ocultarlo u ocultar no es necesario. Asumo que no es su caso, ya que envió a esta pregunta.

En los casos 2 y 3, no es poco lo que puede hacer que no puede ser derrotado fácilmente. Las herramientas disponibles para galletas son bastante potente y ampliamente disponible, junto con las técnicas para su uso. Nuestra empresa ( www.wibu.us ) tiene un criptógrafo de tiempo completo que acaba de relojes de cómo la gente se agrietan software de modo que podamos construir una protección más fuerte contra ella.

Probablemente el enfoque más "normal" para una solución de bricolaje es para cifrar el archivo de licencia utilizando algún algoritmo "estándar" como AES de 128 bits o triple DES. A continuación, hacer la llave de un hash de varios factores, como la dirección MAC, número de serie MB, fecha de instalación, y tal vez algunos datos de entrada del usuario ( "Nombre" "Teléfono", etc). Sin embargo, la criptografía puede complicarse por lo que desea asegurarse de que sabe lo que está haciendo con este enfoque.

Otros consejos

Crear un archivo de licencia durante la instalación. Y considerar la ausencia de un archivo de licencia como un archivo de licencia válido. La desinstalación, la eliminación del archivo y volver a instalar es mucho más molesto que acaba de borrar un archivo.

Y odio si los archivos con un nombre aleatorio oscura aparecen en algún lugar de mi sistema, ya que me pregunto si me infecte con un virus, o si es sólo un poco de mal comportamiento del software.

Y no se esfuerce demasiado. No sirve de nada para hacer más difícil que la descarga de una grieta o una herramienta de licencia para el restablecimiento del siguiente sitio de warez. Y una galleta encontrará el archivo de licencia muy rápidamente con herramientas como FileMon.

Una idea que podría funcionar (excepto contra grietas que parchear el binario):
Fijar la fecha de caducidad de descarga e incrustar el archivo de licencia en la configuración. De esa manera lo que realmente necesita para descargar una nueva versión cada vez que expira su licencia. Pero, por supuesto, los usuarios podrían encontrar que inaceptable o podrían no adaptarse a su modelo de distribución ...

Fuerza la aplicación para ir a un servidor remoto a través del puerto 80 para comprobar un valor hash que se fijó en la primera instalación, tal vez en contra de la dirección MAC (no es una garantía absoluta pero lo suficientemente bueno). Si se intenta instalar de nuevo que es por lo menos ligada a la dirección MAC y se puede parar la instalación.

EDIT:

Si su base de clientes es pequeña y tiene los recursos para apoyarlos puede realizar el mismo comportamiento que no tienen acceso a Internet, excepto que el cliente tiene que venir a usted para obtener un archivo de licencia. Generan una clave a través de su sistema, una vez más ligada a la dirección MAC, entonces enviar la clave que se genera el archivo de licencia. Esto depende por supuesto del número de descargas salientes al día.

Una de las soluciones es la de insertar una fecha de caducidad el archivo de licencia. Si su programa protegido no encuentra un archivo de licencia, es válido.

Así que incluso si el usuario borra, no va a ayudar mucho, todavía está caducado.

El único problema en este caso es: hay que fijar una fecha de caducidad cuando distribuya archivos de licencia. Puede resolver esto con otros trucos (Redistribuir regularmente nuevas licencias, etc.), pero eso no puede satisfacer todas las necesidades.

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