ProtecciA?n de cA?digo: llaves HASP SRM
Hasp SRM es la A?nica soluciA?n todo en uno, basada en hardware y software. La tecnologA�a para la protecciA?n y distribuciA?n del software mA?s avanzada del sector que le permitirA? incrementar sus beneficios al protegerlo contra las perdidas resultantes de la piraterA�a, ya que al mismo tiempo hace posible implementar nuevos modelos comerciales que aumentarA?n el valor de sus productos. Hasp SRM protege la propiedad intelectual para reforzar su ventaja competitiva y, al mismo tiempo, se integra en su organizaciA?n y en el ciclo de vida de sus productos para incrementar el margen.
El diseA�o de Hasp SRM se basa en el conceptoa�?Protect Once- Delivery Manya�? (proteja una vez y distribuya). La exclusiva e innovadora tecnologA�a Cross-Locking de Aladdin permite a los responsables de la toma de decisiones de las empresas elegir y aplicar modelos de licencias y llaves de protecciA?n de Hasp SRM despuA�s de que el software haya sido protegido por los ingenieros.
HASP SRM emplea el algoritmo de cifrado AES de 128 bits. Este algoritmo crea un resistente vA�nculo entre la aplicaciA?n de software y la llave de protecciA?n de HASP SRM (que evita la piraterA�a del software y garantiza el uso autorizado del software). Durante el tiempo de ejecuciA?n, el software protegido envA�a cadenas cifradas a la llave de protecciA?n (HASP HL o HASP SL), que descifra las cadenas y produce una respuesta que no se puede imitar. Si la respuesta de la llave de protecciA?n es correcta, la aplicaciA?n se ejecutarA?, y si la llave de protecciA?n no se encuentra presente o la respuesta de la llave es incorrecta, la aplicaciA?n no se ejecutarA?. (Figura 1).
En el kit Hasp SRM, encontramos una pequeA�a guA�a o tutorial, la cual nos va a permitir asimilar rA?pidamente el concepto y variantes del producto; esto incluye una llave Hasp SRM de demostraciA?n, la cual estA? diseA�ada para que podamos realizar cualquier proceso con todas y cada una de las aplicaciones que incluye la soluciA?n Hasp SRM.
Observaremos que instalando el software, nos incorpora un motor de Base de datos SQL 2005 Express, que serA? de gran ayuda a la hora de organizar clientes, productos, pedidos distribuidos, pendientes, etca�� TambiA�n incluye un paquete de aplicaciones, denominado a�?Vendor Suitea�? (Figura 2), que incluye:
a�� Hasp SRM Envelope: Protege automA?ticamente la aplicaciA?n con un escudo de protecciA?n que incorpora medidas contra la ingenierA�a inversa y la depuraciA?n a nivel de sistema, asA� como para el cifrado de archivos y ofuscaciA?n de cA?digos posibilitando la distribuciA?n automA?tica de licencias sin necesidad de acceder al cA?digo fuente.
a�� Hasp SRM Business Studio: permite preparar el software para el mercado. Incluye todas las herramientas necesarias para distribuir adecuadamente las licencias e implementarlas en su aplicaciA?n.
a�� Hasp SRM ToolBox: Utilidad basada en interfaz grA?fica del usuario, que le permitirA? familiarizarse con la API de tiempo de ejecuciA?n de Hasp SRM y generar cA?digo para incluirlo en el cA?digo fuente directamente.
a�� API: LibrerA�as personalizadas para cada cA?digo de cliente, que nos permitirA?n hacer mA?s versA?til nuestra protecciA?n, puede ser combinada con la protecciA?n automA?tica Envelope (recomendado).
Ahora vamos a entrar mA?s en profundidad a analizar la soluciA?n que nos propone Aladdin.
Primeramente nos vamos a centrar en la configuraciA?n de la llave internamente, es decir, indicarle a la llave (hardware o Software) el tipo de producto, o licencia que vamos a introducir en la misma, los distintos tipos de licencia se podrA�an clasificar en:
a�� Alquiler
a�� Temporales
a�� Perpetuas
a�� Tiempo
a�� Red
a�� Ejecuciones
Nos dirigimos a la suite de aplicaciones (vendor suite) de Hasp SRM, y seleccionamos la utilidad Business Studio, que nos solicitarA? una serie de parA?metros como usuario, password, direcciA?n del servidor, y puerto por el cual va a existir la comunicaciA?n. Me parece adecuado comentar que el Servidor Business Studio, puede estar alojado en cualquier equipo de la red y la utilidad Business Studio en las estaciones de trabajo que deseemos, indicA?ndole lA?gicamente a la hora de realizar el login, la direcciA?n de la mA?quina que va a contener el servidor de licencias. (Figura 3).
Una vez que hemos accedido a la aplicaciA?n, observamos que en la parte izquierda existe una clasificaciA?n de las diferentes etapas o secciones por las que debe de pasar un producto, desde su fase de diseA�o hasta su fase de producciA?n. (Figura 4).
Primeramente vamos a crear una nueva a�?Featurea�?, en la secciA?n de a�?Manage Features a�? New Featurea�?, esta feature que vamos a crear, serA? la referencia para nuestra protecciA?n; le indicamos el nombre que va a llevar, en nuestro ejemplo a�?ISV_Testa�? que tendrA? el nA?mero 4, tambiA�n nos permite indicarle una breve descripciA?n sobre la referencia interna que le queramos asignar, en nuestro ejemplo a�?esto es una prueba de ISVa�? (Figura 5).
Aceptamos, y vemos que nos ha creado la caracterA�stica con los parA?metros indicados. Una vez que tenemos creada la referencia para nuestra protecciA?n, nos dirigimos a la secciA?n de a�?Manage Productsa�? y le indicamos que queremos crear un nuevo producto base (New Base Product). Le indicamos el nombre que deseamos darle, en nuestro caso a�?Producto_ISVa�? . Al igual que en el paso anterior, nos permite indicarle una descripciA?n acerca del producto que vamos a crear.
En la secciA?n de Features & Memory, podemos observar que aparecen listadas, las features que trae por defecto el sistema y lA?gicamente la que hemos creado en el proceso anterior (ISV_Test), tambiA�n observamos en la misma secciA?n que existe una pestaA�a, con el nombre a�?Define Memory Dataa�?, esta opciA?n nos permite escribir, cualquier dato que deseemos directamente en la memoria de la llave, estos datos pueden ser utilizados desde cA?digo fuente o bien incluir por ejemplo el nombre de la empresa a la que va ir destinada nuestro software.
Continuando sobre nuestra prueba, en la pestaA�a a�?Select Featuresa�?, movemos la nuestra a la parte derecha, para incluirla en el producto que estamos creando. Una vez que la tenemos posicionada, definimos los tA�rminos de la licencia, mediante el botA?n a�?definea�? y accedemos a determinar los tA�rminos de licencia, donde podemos observar que existe un desplegable donde nos ofrece varias opciones de licencia (Figura 6):
a�� Ejecuciones. Licencia limitada a un nA?mero de ejecuciones.
a�� Fecha de ExpiraciA?n. Licencia limitada respecto a una fecha determinada.
a�� PerpetA?a. Licencia que va a poder ser ejecutada permanentemente.
a�� Periodo de Tiempo. Licencia limitada a un nA?mero determinado de dA�as.
Justo en la parte inferior, podemos observar que existe otra secciA?n denominada a�?Concurrencya�?, esta serie de opciones estA?n dedicadas a definir, como se va a comportar nuestra aplicaciA?n en un entorno de red (A?nicamente para llaves de red), es decir, aquA� podemos indicarle valores como el nA?mero de puestos que van a poder acceder simultA?neamente a nuestra aplicaciA?n, como se va a contabilizar esta concurrencia, bien por Login, proceso o por estaciA?n de trabajo; por A?ltimo existe otra secciA?n denominada a�?Accessibilitya�?, la cual nos va a permitir configurar si nuestra aplicaciA?n va a poder ser ejecutada en un entorno de escritorio remoto. TambiA�n para las licencias de red podemos indicarle que A?nicamente se ejecute a travA�s de la red, sA?lo mediante escritorio remoto, o ambas combinaciones.
Para nuestro test, le vamos a configurar un tipo de licencia perpetua, aceptamos, y regresaremos a secciA?n anterior, donde estA?bamos creando nuestro producto, donde habiendo configurado los tA�rminos de licencia, aceptamos y vemos que nos ha creado nuestro producto.
Hemos finalizado, la fase del plan de licenciamiento; ahora nos falta plasmar, todo lo que hemos creado, fA�sicamente en la llave; esto lo realizaremos en la fase de producciA?n, donde A?nicamente tendrA�amos que seleccionar dentro del apartado a�?Manage Ordersa�? new Production order, donde existe la posibilidad de asignar la llave que vamos a grabar a un determinado cliente. Esta vinculaciA?n nos permitirA? tener una fuente adicional de informaciA?n, en cuanto a las aplicaciones o mA?dulos que nos ha adquirido y/o en el caso de que el cliente necesitara una actualizaciA?n, A?nicamente tendrA�amos que crearla y enviA?rsela directamente.
Continuando con nuestro ejemplo, en la parte principal, aA�adimos nuestro producto mediante la opciA?n a�?adda�? , y es agregado a la lista de producciA?n, en la parte inferior observamos que existe la posibilidad, de indicarle al sistema el nA?mero de llaves a producir, para nuestro ejemplo una; y ya sA?lo nos queda ejecutar mediante el botA?n a�?produce nowa�?, donde nos aparece en una nueva ventana, los diferentes tipos de llave que son compatibles con la licencia que deseamos grabar en la llave, le indicamos que grabe la orden, y tras unos segundos finaliza el proceso de producciA?n. (Figura 7).
Una vez que tenemos configuradas las caracterA�sticas de la licencia, y habiendo terminado la fase de licenciamiento y producciA?n, nos restarA�a realizar la protecciA?n de nuestra aplicaciA?n, para este proceso podemos optar, por una protecciA?n automA?tica, con la utilidad a�?Envelopea�? o bien mediante API, librerA�as que son utilizadas desde nuestro cA?digo fuente.
Para nuestra prueba, vamos a utilizar la protecciA?n automA?tica; ejecutamos dentro del vendor suite, la utilidad a�?Envelopea�?; en la ventana que nos aparece, nos posiciona en la secciA?n a�?Programsa�?, y en la parte derecha vemos habilitada la opciA?n de agregar Programas (Add Programs), donde vamos a agregar nuestra aplicaciA?n, para nuestro test, la aplicaciA?n Bounce.exe. (Figura 8).
Cabe destacar que esta utilidad puede proteger, ejecutables (exe, jar) o bien dll`s. Continuando con nuestra protecciA?n, vemos que la aplicaciA?n Bounce.exe ha sido agregada, y podemos indicarle donde deseamos guardar y con quA� nombre el ejecutable protegido, justo debajo, mediante la opcion a�?Feature IDa�?, le indicamos a la protecciA?n que el ejecutable va a estar protegido respecto a la caracterA�stica nA?mero 4 (ISV_Test) que hemos grabado anteriormente en la llave. En esta misma ventana, vemos que existen mA?s opciones, como el modo de bA?squeda, local y remoto, local y sA?lo remoto, si deseamos que aparezca un mensaje de espera, cuando nuestros clientes ejecuten la aplicaciA?n, la opciA?n a�?overlay supporta�?, que tiene gran utilidad, en el caso de que nuestra aplicaciA?n necesitara, para su ejecuciA?n, un objeto externo a nuestro entorno de programaciA?n, y la A?ltima casilla de verificaciA?n (Datahasp), nos permite encriptar datos, respecto al ejecutable que estamos protegiendo, por ejemplo si tenemos un aplicaciA?n que mueve registros de un base de datos, podemos incluir como encriptaciA?n la propia BD.
En el A?rbol de direcciones podemos localizar, una secciA?n llamada a�?protection template settingsa�? que nos da la posibilidad de configurar parA?metros, tanto para una protecciA?n win32 como para .Net, entre las que podemos destacar, detectar el modo debugger, configurar la frecuencia (segundos) con la que la aplicaciA?n va a comprobar la presencia de la llave; medidas antidebugger y medidas para evitar la ingenierA�a inversa, encriptaciA?n de cadenas, ofuscaciA?n de sA�mbolos y otras medidas para aumentar la seguridad de nuestra protecciA?n. TambiA�n existe la posibilidad de personalizar los mensajes de error, que mostrarA? nuestra aplicaciA?n, por ejemplo si no encuentra la llave conectada.
Una vez que hemos visto que existen diversas medidas para aumentar la seguridad de nuestra protecciA?n, nos posicionamos de nuevo en la secciA?n a�?programsa�? en la aplicaciA?n agregada Bounce. En la parte principal de la ventana seleccionamos la opciA?n a�?Protecta�?, que nos informa que la aplicaciA?n ha sido protegida correctamente. Si ejecutamos la aplicaciA?n observaremos que funciona correctamente con la llave conectada, y si la desconectamos y volvemos a ejecutar la aplicaciA?n nos muestra un mensaje que nos indica que la llave no se encuentra conectada. La siguiente verificaciA?n es conectar otra llave del mismo cA?digo, pero que no tiene grabado nuestro producto con el Id nA?mero , y en este caso nos indicarA�a que esa feature no se encuentra en la llave. (Figura 9 & 10).
Ahora vamos a ver el otro modo de protecciA?n que nos ofrece Hasp SRM, la protecciA?n API; para ello nos vamos a apoyar en la utilidad a�?Hasp SRM Tool-Boxa�?; que nos permite generar cA?digo fuente para incluir directamente en nuestro entorno de programaciA?n. Al iniciar esta aplicaciA?n nos encontramos, que en la parte izquierda aparece un listado, con todas las funciones que podemos utilizar para proteger nuestra aplicaciA?n. AllA� veremos que estA?n seccionadas, dependiendo de la finalidad de cada una de ellas, las principales acciones que nos ofrece el API de Hasp SRM. Como son: realizar un login respecto a un feature o un id_number (identificador A?nico de cada llave), logout, encriptar desencriptar datos, realizar actualizaciones, leer /escribir en la memoria de la llave, configurar parA?metros de tiempo (llaves Hasp Time), configuraciA?n del timeout para entornos de red (llaves Hasp Net), extraer informaciA?n acerca de las caracterA�sticas de la mA?quina donde se ejecuta la aplicaciA?n; comprobar estado de las licencia/s,a��.
Continuando con el funcionamiento la aplicaciA?n Tool-Box, lo primero que debemos realizar es un Login a la llave (Figura 11), para poder acceder a las restantes funciones.
Conectamos nuestra llave y nos posicionamos en la funciA?n Hasp.Login, y le indicamos en la opciA?n featureId el nA?mero 4 que es con el que seguimos trabajando en esta prueba, al ejecutar esta instrucciA?n, vemos que nos ha generado el cA?digo fuente y que en el Status nos indicada que ha sido realizado con A�xito. Como hemos dicho anteriormente, este cA?digo generado lo podemos incluir directamente en nuestro proyecto.
Una vez que hemos realizado el Login con A�xito, vamos a realizar una encriptaciA?n y posterior escritura en la memoria de nuestra llave. Para ello nos posicionamos dentro de la secciA?n de Encrypt/Decrypt en la funciA?n Hasp.Encrypt, nos aparece la imagen de la memoria y en la parte derecha un campo donde nos permite escribir los datos que queremos encriptar, para nuestra prueba a�?Esto es una prueba de ISVa�?, al ejecutar esta instrucciA?n vemos que lo ha realizado con A�xito, nos ha generado el cA?digo fuente y que los datos escritos ya no son legibles (Figura 12), ahora guardamos estos datos en un archivo Xml, que vamos a utilizar para grabar el contenido en la memoria, mediante la funciA?n Hasp.write dentro de la secciA?n Memory, del A?rbol de funciones.
AquA� le indicamos que nos cargue nuestro Xml, una vez cargado, ejecutamos la instrucciA?n y nos indica que la operaciA?n ha sido realizada con A�xito, para comprobarlo nos posicionamos en la funciA?n Hasp.Read y al ejecutarla, efectivamente aparece nuestra informaciA?n encriptada. Tras esto nos restarA�a obtener esos datos de una forma legible, para ello utilizamos la funciA?n Hasp.Decrypt , ejecutamos la instrucciA?n y nos muestra nuestros datos (Esto es una prueba de ISV).
Llaves virtuales
Con lo anterior hemos visto y testeado las principales herramientas y modos de protecciA?n de la soluciA?n SRM. Ahora nos vamos a centrar en la protecciA?n software, denominada dentro de la soluciA?n, como Hasp SL. Estas llaves estA?n diseA�adas tomando como modelo las llaves HASP HL, y proporcionan la misma funcionalidad. En vez de estar basadas en hardware, las llaves HASP SL son llaves virtuales, ubicadas en el almacenaje seguro del equipo donde va a estar instalada la llave.
Dentro de la protecciA?n software, el sistema Hasp SRM, dispone de una potente herramienta de Marketing, denominada Trialware; este mA?dulo nos permite generar versiones de demostraciA?n o de prueba, concebido para la superdistribuciA?n; mientras el acceso al software de prueba se limita a cada usuario, A�ste puede compartir la versiA?n de prueba con tantos amigos o contactos como desee, y exponer sus funciones a muchos otros, que podrA?n probar el software durante el mismo perA�odo de prueba limitado (1-90 dA�as). De este modo, el uso compartido ocasional de software pasa a ser una fuente de ingresos y un canal de distribuciA?n eficaz; y todo ello manteniendo segura la propiedad intelectual.
Vamos a ver mA?s en detalle como funciona, por medio de un ejemplo, volviendo de nuevo a la utilidad Business Studio. El procedimiento a seguir es muy similar al seguido anteriormente cuando grabamos el a�?Producto_ISVa�? a una llave HL (hardware). Creamos una nueva feature llamada a�?SL_ISVa�? con el nA?mero 2; seguidamente en la secciA?n de Manage Products creamos un nuevo producto base, y le damos un nombre a nuestro nuevo producto a�?Producto_SL_ISV_a�?; en el desplegable a�?locking typea�? seleccionamos Hasp SL y observamos que la casilla de verificaciA?n a�?Clone Protectiona�? se habilita y aparece marcada por defecto, con esta opciA?n en el sistema SRM puede detectar si la licencia de nuestra aplicaciA?n se estA? ejecutando en una mA?quina clonada; en la parte izquierda donde aparecen las features seleccionamos la nA?mero 2 (a�?SL_ISVa�?) y la llevamos a la parte derecha, los tA�rminos de licencia lo dejamos segA?n aparece en a�?Perpetuala�?, aceptamos y nos crea nuestro producto, seguidamente creamos un nuevo producto provisional basado en el creado anteriormente, mediante la opciA?n a�?New Provisional Producta�?, y vemos que nuestra feature nA?mero 2 ya se encuentra en la parte derecha, le damos un nombre al producto a�?Provisional_ISVa�? ; en los tA�rminos de licencia nos indica que el producto provisional va a expirar a los 30 dA�as. Podemos configurar este parA?metro entre 1 y 90 dA�as, para nuestro ejemplo le vamos a indicar 15 dA�as, y aceptamos.
De esta forma tenemos creado un producto Base (Producto_SL_ISV) que serA? utilizado para generar la licencia perpetua, una vez que nuestro cliente haya testeado nuestra aplicaciA?n y nos solicite nuestra versiA?n definitiva. Por otro lado hemos creado un producto Provisional (Provisional_ISV) que serA? utilizado para generar la versiA?n Trialware o Demo de nuestra aplicaciA?n. Ahora nos centraremos en la generaciA?n de esta A?ltima, para ello, dentro de la secciA?n de ProducciA?n seleccionamos a�?Development Taska�? y ahA� a�?Bundle Provisional Producta�?. Agregamos nuestro producto (Provisional_ISV ), los producimos y nos solicitarA? una ruta donde guardar la informaciA?n. Los aA�adimos a la carpeta creada para esta prueba y aceptamos. En la misma secciA?n, vamos a generar nuestra llave virtual, mediante un mediante la opciA?n a�?Generate RTE Installera�?, donde nos solicita el archivo v2c creado en el paso anterior y una ruta donde guardar nuestro RTE.
Una vez que tenemos creada nuestra licencia Provisional, nos falta proteger nuestra aplicaciA?n con los tA�rminos indicados en la creaciA?n de nuestros productos. En la aplicaciA?n Hasp SRm Envelope aA�adimos nuestro ejecutable, le indicamos que guarde el ejecutable protegido en nuestra carpeta, le indicamos en Feature_ID el nA?mero 2 (SL_ISV), y lo protegemos. Con lo cual ya tenemos nuestra herramienta de marketing lista para distribuir y ejecutar. Para ello lo primero que hacemos es ejecutar el RTE en la mA?quina donde se va instalar la licencia provisional. Una vez instalado, ejecutamos la aplicaciA?n que hemos protegido y veremos que se ejecuta sin problemas. Para comprobar que todo ha sido instalado bajo las condiciones que le hemos indicado, abrimos nuestro navegador y escribimos \\localhost:1947 y accedemos la pA?gina a�?Admin Control Centera�?, que es una utilidad de gestiA?n de licencias de usuario final basada en Web, que puede personalizarse y que permite el seguimiento centralizado de aplicaciones con licencia de HASP SRM y la administraciA?n de HASP License Manager y de las llaves de protecciA?n de HASP SRM. La utilidad Admin Control Center proporciona una vista de consola A?nica de todas las licencias y servidores de licencias de la empresa. Lo cual permite que un solo administrador del sistema gestione y mantenga las licencias de aplicaciA?n protegidas y otorgadas por HASP SRM de forma eficaz. Admin Control Center permite a los administradores ver, en tiempo real, quA� licencias estA?n en uso y quiA�n las utiliza. Esto facilita la determinaciA?n y soluciA?n de los problemas de disponibilidad y cumplimiento de las licencias.
Dentro de esta aplicaciA?n seleccionamos Hasp Keys y vemos que nos ha creado una llave SL con un ID que es A?nico. Esto nos serA? de utilidad para futuras actualizaciones de los tA�rminos de licencia, en ese equipo. En Features dentro de nuestra llave vemos que aparece nuestra feature nA?mero 2 activa y con 15 dA�as de licencia.
Nos falta convertir nuestra licencia Provisional en perpetua. AsA� que dentro de la secciA?n de producciA?n y en Manage Orders, le indicamos crear una nueva orden de producciA?n, seleccionamos nuestro producto (Producto_SL_ISV), y lo producimos. Entonces nos solicitarA? una ruta donde guardar la clave del producto (Product_Key), que es la clave que le debemos enviar a nuestro cliente para que active su licencia perpetua, mediante una pequeA�a aplicaciA?n de activaciA?n. Realizado este proceso volvemos a la utilidad Admin Control Center y vemos que nuestra licencia nA?mero 2 ha cambiado su estado a perpetua, con lo cual ya disponemos de la versiA?n final de nuestra aplicaciA?n.
Como se ve, contando con las herramientas adecuadas, lo que podrA�a ser un complejo sistema se reduce a conocer unos pocos pasos para usar un potente sistema de protecciA?n adecuado para virtualmente todo tipo de necesidades, tanto comerciales como de demostraciA?n. Y asA� preservar la propiedad intelectual de los programas con gran eficacia. i??
Julio CA�sar DomA�nguez, Ingeniero de Preventas y Soporte TA�cnico de Software DRM en Aladdin. www.aladdin.es
Aladdin Knowledge Systems Ltd. (NASDAQ: ALDN) es una multinacional lA�der en la gestiA?n de derechos digitales (DRM), La autentificaciA?n de usuarios mediante dispositivos USB y la seguridad de contenidos web.
Con mA?s de 30.000 clientes en todo el mundo, los productos de Aladdin incluyen: eTokena�?, el mejor dispositivo USB para la autentificaciA?n de usuarios; la lA�nea de productos eSafeA�, que garantiza la protecciA?n mA?s avanzada contra ataques y amenazas de Internet; y HASPA�, la mejor forma que tienen los programadores y distribuidores para proteger la propiedad intelectual, mejorar las ventas y reducir las pA�rdidas por piraterA�a. Aladdin dispone de 14 oficinas repartidas por todo el mundo y una amplia red de empresas colaboradoras. AdemA?s, ha recibido numerosos premios por su innovaciA?n.
Noticias relacionadas
SAP revela que la mayoría de las empresas de retail están dando prioridad a la innovación en la nube
El 93% de las empresas del sector retail apuesta por la nube híbrida como su modelo ideal de TI
Barbara IoT lanza su nuevo programa para partners
Microsoft premia a sus mejores partners
Deja un comentario
Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *
Debes haber iniciado sesión para comentar una noticia.
Comentarios
Vicente Zarate 11 abril, 2013
Saludos felicitado por su excelente articulo, solamente una duda tengo una llave hasp la cual trabaja con un programa que tiene licencia mono usuario, lo que me lleva ha estar cambiando la llave de maquina cada vez que necesito utilizar el programa aunque este es en red. se puede configurar el License Manager para que la aplicación lea la llave hasp desde el servidor, entendiendo que solo podre utilizar el sistema 1 a la vez.
Gabriel Torres V. CEO. GT y Cia. ltda 8 octubre, 2013
SOMOS USUARIOS DE LAS LLAVES ALADIN POR MAS DE 17 AÑOS NECESITAMOS SABER SI SE PUEDE PROTEGER SOFTWARE DESARROLLO PARA WEB, UTILIZAMOS C## CON PLATAFORMA .NET CON MOTOR BASE DE DATOS SQL.