Estoy trabajando en un pequeño producto de plataforma cruzada para Windows y Mac escrito en C++/Obj-C. Me han pedido que implemente un módulo de licencia para el mismo. Esta tarea es parte de un proyecto muy ambicioso para introducir licencias para todos nuestros productos. Al final, tendremos un esquema de licencia completo en el que podremos vender licencias a nuestros clientes que respalden renovaciones anuales, niveles de licencia, etc. Mi problema es que no sé lo primero sobre la implementación de inspectores de licencia. ¿Puede alguien señalarme algunos cómo hacer para lo mismo? ¿Hay algún módulo de licencia de código abierto que pueda estudiar?Implementación de la biblioteca de comprobación de licencias
Respuesta
Uso un sistema de Verificación de clave parcial (PKV), y lo he implementado en C# con un generador de PHP. Google presentará varios éxitos, explicaciones e implementaciones; pero Brandon Staggs escribió una buena visión general (aunque en Delphi!), aquí:
PKV funciona mediante la codificación de cierta información (tipo de licencia, el producto número de serie, fecha, etc) en la clave junto con un hash del nombre de usuario y hash de la información codificada. Gran parte de la clave en realidad consiste en múltiples hashes de char. La idea es que solo revises un subconjunto de estos hashes. El subconjunto exacto que se emite se puede cambiar con el tiempo para cierta seguridad y para proteger contra ciertos tipos de ingeniería inversa.
También encriptaría la clave para ayudar a ofuscar lo que significa cada carácter en la licencia. De lo contrario, alguien con varias claves puede determinar ciertas posiciones de char significan ciertas cosas ("oh, los caracteres 3-4 son el número de serie"). ¡Esto podría ser una grieta en tu armadura!
Cualquier sistema de licencia que desarrolle va a ser imperfecto. Será crackable, y si sus productos son populares, serán descifrados. Sin embargo, hay un fuerte argumento de que existe un sistema de licencia para mantener honestas a las personas honestas, y producir suficientes obstáculos para las personas un poco deshonestas, pero no tantos obstáculos que se convierta en un inconveniente (por ejemplo, estoy generalmente en contra del bloqueo de hardware) Quienes piratean tu sistema probablemente no lo pagarán de todos modos.
- 1. Biblioteca de administración de licencias
- 2. Biblioteca de comprobación de la intensidad de la contraseña
- 3. android con licencias de ant dependencia de biblioteca
- 4. Licencias de aplicaciones web
- 5. API de licencias de Java
- 6. Implementación de VoIP usando la biblioteca SIP de Java
- 7. Implementación de la biblioteca de tarea paralela en mono?
- 8. Comprobación de la implementación de la interfaz en tiempo de compilación en C++
- 9. Encontrar las licencias de las bibliotecas jar
- 10. cada implementación en la biblioteca underscore.js
- 11. ¿cuál es la situación de las regalías actuales mp3/licencias
- 12. ¿Hay una implementación de matriz dispersa en la biblioteca .NET?
- 13. Licencias (atribución)
- 14. Android: la concesión de licencias de aplicaciones, protección de copia
- 15. ¿Hay una biblioteca de JavaScript (u otra) para leer las licencias de conducir?
- 16. Visión general de licencias de software libre (para dummies)
- 17. Licencias de aplicaciones y pensamientos de activación
- 18. Costes de licencias comerciales de MySQL
- 19. ¿Por qué la proliferación de licencias de código abierto?
- 20. ¿Licencias múltiples y compatibilidad de licencias para proyectos de código abierto?
- 21. Implementación de biblioteca de código abierto: cómo manejar el registro?
- 22. Comprobación de la existencia de una función en una biblioteca en Linux
- 23. Encontrar licencias de terceros con Nuget
- 24. API de licencias de mercado en emuladores de Android emite
- 25. Licencias de Linux incrustadas LGPL/GPL/etc
- 26. ¿Hay implementación de estructura de datos de cola de prioridad en la biblioteca estándar de Ruby?
- 27. IKVM y licencias
- 28. Desarrollo de licencias en C#: ¿dónde empiezo?
- 29. Cuál es la diferencia entre las licencias de código abierto
- 30. Licencias y sesiones de la forma en REST
+1 para el último párrafo, nunca será perfecto, pero si ya es bastante difícil, todo estará bien. –
Me encanta tu explicación y especialmente el último párrafo. ¡Lo resume todo! –