2009-03-12 17 views
8

Estamos tratando de ofrecer un mecanismo de licencia para cada característica que nuestra aplicación de Linux se está ejecutando, y estamos pensando en lo controla de forma centralizada mediante un servidor de licencias C++:características Administrar en base a una licencia para una aplicación

Nuestro objetivo para la concesión de licencias es:

  1. Denegar funciones que el operador no ha comprado.
  2. Pruebas de oferta (características que caducan si no se compran).
  3. Active las funciones por períodos de tiempo y haga que estén disponibles solo durante un período de tiempo.

¿Existe alguna licencia de servidor que nos permita hacer esto (básicamente, usaríamos conectores para comunicarnos con nuestra aplicación)? ¿Qué más podemos hacer (por ejemplo, usar algún software de código abierto, leer, etc.) para comenzar?

+1

¿Por qué alguien debería marcar esta pregunta? Es una pregunta perfectamente válida que requiere una solución de programación. No lo marque solo porque no está de acuerdo con la licencia de un software –

+1

Buena pregunta. Me divertiría saber acerca de cualquier herramienta de código abierto DRM :) – rkb

Respuesta

0

Después de haber utilizado varios paquetes que hacen uso de servidores de licencias como este, puedo decir que es una forma segura de hacer que su software sea odiado universalmente por sus usuarios.

+0

Hola Neil, ¿Puedes darnos un ejemplo de tales paquetes? –

1

Esta es una forma de hacer las cosas Dilbert-esque. Solo di no.

Aunque es odiado, esta es una característica estándar en el software especializado de alta gama que cuesta decenas de miles de dólares. Piense en escáneres 3D y cosas de CNC.

4

Si realmente desea utilizar un servidor de licencias, asegúrese de que su aplicación no tenga que contactarlo todo el tiempo para autorizar su uso; esto provocará un sinfín de problemas cuando las personas pierdan su conexión a Internet o su servidor se vaya abajo o se bloquea.

Sugeriría tener algo en donde una clave se descargue y almacene localmente, reduciendo así los viajes redondos al servidor todo el tiempo. La clave se puede cifrar según los detalles de la máquina del usuario para que las claves no se puedan compartir.

Hemos utilizado la llave de hardware HASP en el pasado y aunque definitivamente funcionan y proporcionan una solución, no creo que sean lo que usted desea ya que están programados una vez y eso es todo. Por ejemplo, no podría actualizar la clave HASP para cerrar un período de prueba.

+0

Puede programar una llave HASP para morir después de un período de prueba de 30 días. Esto se hace comúnmente para el software que tiene licencia para cualquier período de tiempo. Lo he hecho con una cantidad de claves de hardware diferentes, incluida la gama de llaves HASP. Sin embargo, usar una llave HASP durante un período de prueba es una forma costosa de hacerlo. Además, cualquier información almacenada en una clave de hardware se puede cambiar fácilmente en el campo usando un programa de software. Solo es cuestión de recompilar las rutinas que controlan su clave y reempaquetar en un nuevo programa de actualización. – jay

2

Hay ocasiones en las que el software necesita protección; echa un vistazo a estos muchachos here - brindan soluciones de hardware y software.

4

¿Realmente necesita "llamar a casa"?

He visto un sistema de licencia relativamente sencillo, a través del cual se proporcionó al usuario un archivo XML que describía el período de validez de la licencia, una dirección IP opcional y la lista de funciones "desbloqueadas". Se generó una firma digital utilizando la clave privada del vendedor, que se reinsertó en el archivo de licencia. En el inicio, la aplicación estaba leyendo la licencia, validándola, verificando la IP y desbloqueando las funciones en consecuencia.

El proveedor puede proporcionar licencias más nuevas al cliente cuando sea necesario.

Aunque en teoría podría engañar a la licencia cambiando la hora local de la máquina y manipulando con la dirección IP, en ese caso esto habría dificultado el uso de la aplicación, así que esto no fue un problema.

0

Un software de licencia común es flexlm. Sin embargo, lo pensaría dos veces si impondría estas restricciones a mis usuarios. A muchos usuarios no les gustan; especialmente desde el entorno FOSS/Linux.

0

Si planea programar algo usted mismo, un mecanismo común que he visto es vincular la licencia a un MAC address.

1

FLEXnet (anteriormente conocido como FLEXlm) es un paquete de licencias que comúnmente se utiliza en paquetes de software especializados o de alta gama, por ejemplo, en el mercado de la automatización del diseño electrónico. Puede bloquear una licencia en una sola máquina (por hostid, generalmente una dirección MAC Ethernet) o en un dongle de hardware portátil, o tener un servidor de red manejando compartir un conjunto limitado de licencias simultáneas para clientes que ejecutan su software. Las licencias pueden otorgarse por tiempo limitado o de manera permanente, y también pueden estar limitadas por un número de versión. Un archivo de licencia describe las funciones que tienen licencia.

FLEXnet incluye varias API para la integración con su aplicación, incluida una para C++. Me imagino que usa criptografía de clave pública de algún tipo. Generalmente, una aplicación que usa FLEXnet solo "llama a casa" cuando se lo solicita mediante el uso de la API. Muchas aplicaciones verifican la licencia una vez, al inicio, o reservan una licencia del grupo durante el tiempo de ejecución de la aplicación.

Usted paga una tarifa de licencia anual, por supuesto, para usar FLEXnet en sus productos, comenzando por encima de USD 1k. La tarifa varía según los ingresos de su empresa y según el número de plataformas (combinación de SO/CPU) en las que desea que se ejecute su esquema de licencias.

Diría que no vale la pena utilizar algo como FLEXnet si su producto se vende por menos de varios miles de USD por asiento. Es oneroso de usar (la fuente de un buen porcentaje de llamadas de soporte para nuestra empresa), pero los clientes corporativos ya pueden estar familiarizados con su uso, dependiendo del mercado.

FLEXnet, como todos los esquemas de DRM de los que he oído hablar, se descifra fácilmente. Al menos supongo que sí, ya que las versiones desbloqueadas de nuestros productos se encuentran regularmente en los sitios warez.

Cuestiones relacionadas