Una de las obsesiones más grande que tenemos los que hacemos software a baja escala y lo ponemos en la calle es el miedo a que empiecen a circular copias "ilegales" y que la gente se "aproveche" de tu trabajo. Más o menos ese es el sentimiento generalizado de los programadores que conozco, aunque hay otros que tiran de forma radical hacia el lado opuesto y opina que todo el software, incluido código fuente, deberia circular sin restricciones de ningún tipo.
El tema de este artículo es otro, más bien relacionado con la protección de nuestro software para evitar que circule "de forma descontrolada" por ahí.
Hasta ahora la gran mayoría de las protecciones que vamos poniendo a nuestros programas son del tipo "vinculada a la maquina", es decir, instalas el programa en un PC y ahí se quedó de por vida.
Yo he usado tambien estas técnicas de "casar" los programas a la máquina y al final creo que es una mala práctica ya que el usuario mañana se compra máquina nueva y tiene que volver a solicitar el registro de la aplicación, con las molestias que se le ocasiona.
Hoy por hoy existen unos aparatitos llamados "pen drive" que ya estan alcanzando capacidades bastante razonables y velocidades de acceso muy aceptables.... ¿puede darse el caso de que un usuario decida instalar el programa en el "pen drive" para poder llevarlo donde quiera? ¡¡¡SIIII!!! Pero claro, si al instalar el programa este queda vinculado a la maquina el invento no funciona y este usuario no puede ejecutar la aplicación en otra máquina (la de casa, por ejemplo).
¿Y que solución se me puede ocurrir para que el programa quede registrado para ese usuario y que no lo pueda dar a otra persona manteniendo movilidad?
Pensando en esto se me ocurrio que podía hacer que el programa recogiese los datos de registro y los enviase (via web, correo electronico o como se desee) a un centro de registro y que este le facilitase una clave de acceso al programa y otra de activación encriptada con cualquier algoritmo. Cada vez que el usuario ejecutase el programa (o las funciones que creamos necesarias) comprobariamos los datos de registro con la clave encriptada (que podría guardarse dentro del mismo EXE) y así permitir el funcionamiento del programa o no. Está claro que en todos los documentos que genere el programa aparecerán los datos de la persona que lo registró (hablo para caso de programas de gestión), evitando así el uso por otro usuario que no sea de la misma empresa (por ejemplo). No se si me habré explicado bien, pero espero vuestros comentarios al respecto.
Por otro lado, si tienes un programa realmente bueno (todos lo tenemos XXXDDD, por supuesto) y lo vinculas a la máquina (y para colmo no sacas demos por que te da pánico te lo clonen) va a ser muy difícil que encuentres clientes ya que estas impidiendo su circulación. Una de las mejores formas de divulgación que existe de un software es que se pueda copiar libremente (con algunas restricciones de funcionalidad) para que después, el usuario interesado decida comprarlo.
Con el sistema de protección por usuario (datos de la empresa, el comercio, etc. que aparecerán en documentos administrativos - tickets, facturas, albaranes, etc.-) permites que otra persona pueda copiar el programa y usarlo, sin poder gestionar ni un sólo documento (salen con los datos del otro), y evaluarlo para una posible compra.
En cuanto al miedo a la clonación de los programas..... ¿Que vamos a decir? El único programa no clonable es el que no circula....
Tema delicado donde los haya.
¿Que pasa en instalaciones en red local? ¿En cada ordenador un PenDrive? ¿O todos ejecutan el mismo EXE y al tener embebida la info ya está?
La verdad es que no es mala idea, así el usuario puede "mover" el programa a donde quiera. Se estudiará ;)
Comentado por Jose Alberto a Jueves, 09 de Febrero de 2006Nosotros actualmente tenemos un esquema de clave/contraclave, pero eso tiene el inconveniente de que muchos clientes cada 2x3 "formatean" el equipo y nos piden mas claves, que no sabes si es verdad o no. Además que con temas internacionales se complica el facilitar dichas claves.
Comentado por Jose Alberto a Jueves, 09 de Febrero de 2006Jose Alberto,
Lo de los "pen drive" es un caso que se me ha dado en un cliente que quiere llevarse el "trabajo a casa". No me he planteado la cuestion de la red local, pero es totalmente factible ya que la unidad del "pen drive" se puede compartir igual que cualquier otra. Tambien existe la posibilidad de disponer de una base de datos accesible por internet y que los ususarios tengan tantos "pen drive" como necesiten o bien el programa instalado en la maquina y en casa.
Lo cierto es que desvinculando el programa de la maquina se pueden ofrecer nuevos servicios a los clientes evitando molestias causadas por reformateos, cambio de maquinas, movilidad, etc.
Por otro lado está la cuestión del licenciamiento de los programas.
Hasta ahora se licenciaban los programas por maquina en la que se ejecute, yo hace un tiempo que deje de hacer eso para pasar a licenciar los programas por oficina del cliente, es decir, un cliente con una oficina y tres puestos paga solo una licencia; un cliente con dos oficinas pagará una licencia por oficina. De esta forma he evitado que cuando un cliente montaba un equipo nuevo buscase al "cuñado/primo/vecino/sobrino de turno" que "entiende" de ordenadores para que por 30 € y un desayuno se coma la cabeza para saltar la proteccion (ya sabemos que todas las protecciones son vulnerables) y que en ese proceso el "listo" de turno destripe algo que deje al cliente parado.
¿Por qué licenciar por oficina? Los programas se registran con los datos administrativos de la oficina en cuestión, que serán los que aparezcan en los documentos que ya comente en el artículo, así, aunque copie el programa de una oficina a otra, necesitará registrar los nuevos datos.
Comentado por Jose A. Suárez a Jueves, 09 de Febrero de 2006No se si lo comentas, pero hay una solución muy vieja que es la de un disquete con un numero de licencias determinado y que se puedan instalar en el disco duro y logicamente tambien desinstalarlas de este, con esto tendras funcionando simultaneamente el numero de licencias que tu quieras...
Comentado por Manu Exposito a Domingo, 12 de Febrero de 2006Manu,
La solucion del diskette tambien vincula el soft a la maquina.
Si instalas en un "pen drive" USB y te lo llevas a otra maquina no funciona.
Vuelve a leer el artículo que no me has entendido.
Comentado por Jose A. Suárez a Domingo, 12 de Febrero de 2006