FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Aporte: Protecci贸n de Aplicaciones con USB PenDrive
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 06:26 PM
Hola amigos:

Aqu铆 les paso unas pruebas que estoy haciendo para proteger nuestras aplicaciones contra la pirater铆a.

http://mastersoft3000.com/publico/protect.zip

Parto de algunos premisas:

1.- La aplicaci贸n debe controlar constantemente la existencia de la llave USB correcta.
Se me ocurren dos formas: Usando un Timer (demasiado pesado), 贸 controlando en puntos cr铆ticos de la aplicaci贸n. Prefiero esta segunda forma.

En el ejemplo, al inicio de cada funci贸n invocada en el men煤 principal del progama se pone la rutina que controla la existencia de la llave y su correcta identificaci贸n.

Con esto evitamos que inicien la apliaci贸n en un PC, desconecten la llave, la pasen a otro PC y nos piratien

2.- Las rutinas de control no deben ralentizar de ninguna manera a la aplicaci贸n. Por esto creo que la la informaci贸n correspondiente a la WMI se debe obtener una sola vez y al inicio, y guardar sus respuestas en variables a ser utilzadas posteriormente sin necesidad de volver a efectuar llamadas a la WMI. Esto incluye la indentificaci贸n de la unidad que tiene el control, ya que en un equipo puede estar conectado m谩s de un USB a la vez, entonces, el control debe identificar cu谩l es la unidad a la que est谩 conectado nuestra USB de seguridad.

Para guardar en variables utilic茅 la clase TPublic de Daniel Andrade (Alguien sabe qu茅 es de 茅l ?). Cada cual utilice el m茅todo que mejor le parezca.

3.- El control deber铆a dar respuesta negativa en tres casos:
a.- NO hay USB conectado al equipo
b.- Hay USB conectado pero no est谩 serializado (protegido)
c.- Hay USB y est谩 serializado, pero el password no corresponde

Si se les ocurren m谩s casos, por favor, aportenlos......

Falta encontrar la forma de controlar aplicacione en red: Por ejemplo, si un cliente adquire una apliacion para uso en un servidor y tres terminales, el programa deber铆a ejecutarse en 4 equipos simult谩neamente, c贸mo controlar que no haya un quinto equipo en ejecuci贸n ?

As铆 que amigos, aporto lo que tengo hasta ahora. Si les parece 煤til, por favor ay煤denme a completarla, de forma que fortalezcamos a煤n m谩s a FIVEWIN y protejamos nuestras apliaciones sin encarecerlas con los altos costos que tienen las Llaves SENTINEL o HASP o cualquier otra (por hardware o software), y lo m谩s importante, tenemos el c贸digo y el control a nuestra conveniencia.

Para probar adecuadamente el ejemplo que adjunto, primero por el men煤 "Set" seteen su llave. El password que elijan por favor escr铆banlo al inicio de la Function Main() en Protect.prg:

oWMI:cElPassw := SuPassword

Recuerden que oWMI:cElPassw es generada con la clase TPublic. Pueden utilizar otro m茅todo. Sin embargo, para facilitar las pruebas, adjunto tambi茅n la clase para quienes no la tengan. Tambi茅n adjunto el codigo con funciones de Marson de Paula a las que he hecho algunas modificaciones.

El ejemplo es un modelo b谩sico. A partir de ah铆, se puede sofisticar al gusto y necesidades de cada uno, tal como: Nombre de la aplicaci贸n, del cliente, prestaciones habilitadas o deshabilitadas, n煤mero m谩ximo de terminales, fechas de vencimiento de Demos, etc. Todos estos datos se incorporan encriptados en el archivo "info.bin" (del ejemplo de Antonio). Sugiero que cada uno le ponga un nombre menos obvio a "info.bin". Creo que con imaginaci贸n las posibilidades son extensas. He hecho diferentes pruebas incluyendo fechas de vencimiento para Demos, y todo va OK. S贸lo me falta lo del control de RED. Las pruebas las he realizado sobre Windows XP y Windows Vista y funcionan perfecto. Para Windows'98, creo que hay que instalar un parche de Microsoft que habilite el servicio WMI. No le he probado pues no tengo Windows'98 ni tampoco mis clientes.

El proceso de protecci贸n podr铆a estar embebido en la aplicaci贸n a proteger, o mejor a煤n, en una DLL que se invoca desde el programa protegido.

La idea es que entre todos, si les parece, lo hagamos, y por supuesto, GRATIS Y CON CODIGO FUENTE INCLUIDO como aporte a todos los FIVEWINEROS (y por lo universal del c贸digo para todo el mundo), sin
ego铆smos.

Ojal谩 regres谩ramos a aquellas maravillosas 茅pocas del maestro Manuel Mercado, de Daniel Andrade, Ricardo Ram铆rez, Arturo Tamayo Daza, Hernan Ceccarelli, The Full, Ram贸n Avenda帽o, ufffff, la lista es laaaarga, quienes con una calidad humana extraordinaria y verdadero sentido de
compa帽erismo donaron su formidable c贸digo a la comunidad.

Espero sus comentarios, aunque sea para decirme que esto no sirve para nada. Todos son bienvenidos.

Un abrazo,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 07:17 PM

Estimado Carlos Gallego:

Esta es una excelente aportaci贸n muchas feleicidades, estoy seguro que muchos colegas han pensado alguna vez en poder tener un control anti-pirateria para nuestros sistemas que hemos realizado y que nos han costado su tiempo y esfuerzo para poderlas realizar... y que mejor, que sea gratuito, con codigo fuente entendible a nosotros..

Mucho exito con esta peque帽a aportaci贸n que estoy seguro, poco a poco empezar谩 a ser m谩s grandiosa..

Solo tengo una duda. He bajado los fuentes y los he compilado pero faltan 2 funiones:

GetDriveType() y GetLocalDrives(), lo he compilado con XMate, ser谩 problema del gestor de aplicaciones..

Si fuera posible publicar estas dos funciones para que quede completo.

Saludos..

Soluciones y Dise帽o de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Dise帽ador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 09:00 PM
Hola Cuatecatl82:

Gracias por tus palabras.

Las funciones GetDriveType() y GetLocalDrives() son de FWH. De pronto tenga que ver con la versi贸n. Yo uso FWH 8.02. Qu茅 versi贸n usas ?

Sin embargo, buscando por el foro, encontre lo siguiente:

Post de Antonio Linares del 02-Abr-2006
<<Dos muy buenas funciones utilizando las API's de Windows. GetLocalDrives() devuelve un arreglo con los drives presentes, y GetDriveType() no retorna el tipo de drive consultado. >>

http://hyperupload.com/download/016e521c60/getdrive.zip.html


Post de Antonio Linares del 12-Nov-2007
#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

HB_FUNC( GETLOGICALDRIVES )
{
hb_retnl( GetLogicalDrives() );
}

HB_FUNC( GETDRIVETYPE )
{
hb_retnl( GetDriveType( hb_parc( 1 ) ) );
}

#pragma ENDDUMP


Prueba y me comentas si te funcion贸

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 09:14 PM

Hola Cuatecatl82

En complemento al post anterior, lo correcto es GetLogicalDrives() en vez de GetLocalDrives().

En la respuesta te puse un c贸digo que est谩 en un link, y un c贸digo en C. Mejor usa este y olv铆date del link

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 09:46 PM
Hola amigos,

Una versi贸n mejorada poco a poco:

http://mastersoft3000.com/publico/protect.zip

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 10:58 PM

Excelente: :D Ahora ya funciona, con las modificaciones que me mencionas he podido hechar a volar el candado con un Disco USB de 2Gb.

El problema es de xHarbour ya que estoy un poco resagado todavia, pero espero ponerme al corriente muy pronto..

Hare unas cuantas modificaciones si me lo permites :wink: , y en cuanto tenga un tiempesito cuento que modifique, para poderlo hacer mucho m谩s funcional y potente todav铆a..

Saludos desde Chiapas, M茅xico... Y gracias por esta valiosa Aportaci贸n...

I.S.C. V铆ctor Daniel Cuatecatl Le贸n.

www.soldisoft.unlugar.com

www.sisa.unlugar.com

Soluciones y Dise帽o de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Dise帽ador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Thu Feb 21, 2008 11:02 PM

Victor,

Me alegro que te funcionara. Bajaste la 煤litma versi贸n. ?

La idea es que entre todos la desarrollemos y as铆 nos liberemos de las llaves pagas.

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 12:15 AM

Estimado Carlos: 8)

En efecto he bajado la actualizaci贸n, pero no me queda claro a煤n cual es el proposito, ya que ahora puedes ingresar cuantas terminales y el nombre de la aplicaci贸n a proteger..

Ser铆a posible que nos proporcionaras una idea mas completa de este candado..

Saludos...

Soluciones y Dise帽o de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Dise帽ador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 03:25 AM

Hola Victor,

Supongamos que tienes dos aplicaciones, una que vendes en US $ 5,000 y otra en US $ 1000. El cliente te compra la de 1,000 para tres terminales, por lo cual me imagino cobrar谩s un recargo por cada terminal. Se me ocurre que el cliente podr铆a tener tambi茅n instalada en su computador la aplicaci贸n de 5,000, y hecho el vivo, el muy p铆caro decide utilizar la USB que le diste. Dentro de la aplicaci贸n deber铆a haber una variable que contenga el nombre del programa.

En uno d铆r铆a cLaAplica:="MiApliacionde5000" y en el otro programa deber铆a decir cLaAplica:="MiAplicacionde1000". (Los nombres con que tu quieras identificar tus programas)

Entonces, mi querido Victor, cuando haces el chequeo de la USB, obtienes de la misma el dato de a cu谩l aplicaci贸n est谩 protegiendo, y este dato, lo comparas con la varible que tiene tu programa. Ejemplo

Flag en tu programa: cLaAplica:="MiAplicacionde5000" y la llave te devuelve cUSBAplica:="MiAplicade1000", luego comparas:

if cLaAplica == cUSBAplica
MsgInfo("Todo bien")
else
MsgInfo("No se pase de listo. Si quiere usar esta aplicaci贸n, paque por ella")
__Quit() // Chaoooo tramposo
endif

En general esa es la idea: que en la USB podemos tener la informaci贸n que queramos, encriptada, con atributos de archivo "Escondido" y "Solo de lectura", y con control de CRC, etc., cuanta seguridad se te ocurra para que no te toquen el archivo en donde guardas tu informaci贸n crucial, el cual estar谩 indefectiblementado atado a la USB en donde lo pones. De esta manera, si te borran el archivo, o te lo cambian, o te lo alteran, o te lo copian a otra USB, en tu aplicaci贸n controlaras que nada de esto ocurra y evitar谩s que te piratien tu programa.

En cuanto a redes, en la llave guardas el n煤mero m谩ximo de terminales que el cliente podr谩 usar. Recuerda que le vendiste para tres terminales, por lo tanto guardar谩s "3". En tu aplicaci贸n deber谩s ir controlando (en una base de datos super protegida, en un archivo binario, etc.) las terminales que van entrando. En esto estoy trabajando al momento para encontrar, si es que puedo y alquien nos ayuda, cu谩l es el mecanismo m谩s seguro. Pero para el ejemplo supongamos que usamos una base de datos.

BaseControl.dbf (Usa un nombre bien complicado para despistar al enemigo)

Al inicio de tu aplicaci贸n, si los datos de control obtenidos de la USB est谩n bien y el usuario puede continuar usando el programa, lo primero que debes hacer es agregar a la base la informaci贸n de la terminal que ingresa (puedes usar NetName() o GetMacAddress() - eso est谩 por determinarse) y cuentas cu谩ntos registron tienes (Terminales que la est谩n usando). Ese dato lo comparas con lo que guardaste en la USB y que cuando lo recuperas lo guardas en una variable nNumMaxTerm:=Val(de lo que tienes en la USB, 3 en el ejemplo)

If BaseControl->(OrdKeyCount()) < NumMaxenUSB
__dbAppend()
_Field->Terminal := NetName()
else
MsgInfo("Lo sentimos, ya complet贸 su cupo de uso. Si desea usar una terminal m谩s por favor cierre la aplicaci贸n en alguna terminal donde la est茅 usando, 贸, no sea mala gente, compre la adicional")
__Quit() // Chaoooo
endif

Deber谩s tener en cuenta que en EXIT PROCEDURE siempre debes borrar de la base la terminal que salga de manera que siempre est茅 acutualizada. Me falta encontrar la forma de c贸mo hacerlo si la aplicaci贸n se cae intempestivamente (por ejemplo, por corte de luz).

En resumen: No se si has usado llaves como SENTINEL. La idea es que trabajen lo m谩s cerca posible a como ellas lo hacen. Yo las uso, pero tiene un costo alto, a veces no hay buen soporte, a veces no tienen en stock y, lo m谩s importante para m铆, es que dependo de terceros para la seguridad de mis programas, y eso, no me gusta.

Puedes parametrizar tu llave para monousuario (un solito computador), redes, etc, y parametrizarla y acomodarla a tu gusto y necesidades dependiendo 煤nicamente de t铆.

Volviendo al tema de redes, env铆o un SOS a los expertos en SOCKETS, de pronto por ah铆 se puede hacer en control. No he encontrado hasta el momento la forma de poder saber en tiempo real, v铆a hardware, y n贸 solo por lo que guardo en la base de control, qu茅 terminales est谩n accediendo a la aplicaci贸n en un momento determinado.

En todo caso, yo ya lo estoy probando en aplicaciones peque帽as para clientes de un s贸lo equipo y hemos hecho todas las pruebas posibles para violar la la seguridad y seguimos v铆rgenes (de pronto ha faltado malicia). Entonces ahora, esas apliaciones ya no las entregamos en CD, sino en USB (ahi inclu铆mos el instalador) y cuando las instalan, el sistema genera un serial, el cliente me lo env铆a por Internet, le genero la Clave de acceso, y a partir de ah铆 la llave queda SETEADA y asegurada. Me est谩 funcionando bien. Las USB las compro a US $ 8.oo y quedo como un rey.

Repito, estoy en fase de prueba, por lo que las estoy comenzando a usar en aplicaciones de bajo costo (US$ 80 a US$200), en donde si alguien me da en la cabeza, no me afecte mucho. En aplicaciones de costo importante, US$ 1,000 para arriba, me esperar茅 un poco m谩s hasta estar seguro de lo que hago y de que no hay riesgo. Si todo sale bien, controlar茅 mis aplicaciones con s贸lo US$ 8.oo, si n贸, pues seguir茅 pagando el alto costo que me cuestan las SENTINEL y dependiendo de lo que ellos hagan.

Respecto a la opci贸n "SET" en el men煤, es una simple idea de c贸mo ser铆a una interfas para que t煤 setees la USB. Esta opci贸n la deber谩s poner en un programa aparte que s贸lo t煤 controlar谩s, NUNCA inclu铆rla en las aplicaciones que env铆es a tus clientes. Por comodidad en el programita de prueba la puse como una opci贸n m谩s para, por aquello de la pereza, desde ah铆 mismo jugar con diferentes configuraciones a la USB, pero, repito, esa ser谩 tu arma secreta.

No s茅 si toda esta perorata te ha despejado en algo tus dudas, ojal谩 que s铆.

Un abrazo,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 11:26 AM

FWH 8.02 proporciona un ejemplo completo en samples\protect.prg de protecci贸n de aplicaciones usando un pendrive (llave usb)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 04:02 PM

Estimado Carlos:

Me qued贸 m谩s que clara tu idea y cuenta conmigo para poder mejorarla, si gustas podemos entre los dos optimizarla al maximo compartiendo ideas, de hecho realize unas modificaciones a la primera vers铆on, tanto esteticos como de programaci贸n, ahora que tengo la idea de lo que necesitas plasmar en esta aportaci贸n me dar茅 a la tarea de agregar lo que mejoraste en tu segunda actualizaci贸n. Si gustas te doy mi correo personal para que compartamos ideas y por su puesto nuestros codigos fuente.. danyleon82@hotmail.com

Estos son los cambios que realize, checalos y me dices..

http://rapidshare.com/files/94259399/Pruebas.zip.html

Saludos Maestro Linares:

Gusto en saber de usted, en efecto, sabemos que a partir de la versi贸n 2008 de Fivewin ya cuenta con esta valiosa herramienta, pero para aqullos como yo que todav铆a no nos actualizamos por motivos economicos necesitamos de esta valiosa herramienta, y nos vemos en la necesidad de buscar alternativas a nuestro alcanze como esta...

Esperando seguir con su apoyo.. :lol:

I.S.C. V铆ctor Daniel Cuat茅catl Le贸n.

www.sisa.unlugar.com

www.soldisoft.unlugar.com

Soluciones y Dise帽o de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Dise帽ador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 06:23 PM

Hola Antonio:

Por supuesto que part铆 desde tu ejemplo samples\protect.prg. Disc煤lpame si no lo mencion茅 antes.

Lo que pasa es que en tu ejemplo est谩 s贸lo como parametrizar la USB. De ah铆, a controlar EFICIENTEMENTE una aplicaci贸n (Sin riesgos de seguridad y sin afectar perfomance), hay un largo trecho. Lo que quise hacer es c贸mo aplicarla al software que se va a proteger, y lo m谩s importante, c贸mo controlar una aplicaci贸n en RED.

Soy un usuario intensivo de Llaves SENTINEL SUPERPRO y SENTINEL NET y pienso que con la base que t煤 nos diste, podemos constru铆r nuestro propio sistema de llaves, los m谩s cercano posible a c贸mo funcionan las SENTINEL, logrando con esto abaratar costos y sobre todo, tener 100% control de lo que hacemos, lo que me parece lo m谩s interesante. Y claro, poner el c贸digo resultante a disposici贸n de todos los usuarios de FIVEWIN.
Este a帽o inici茅 con el prop贸sito de que las cosas nuevas que fuera logrando y que pensara que fueran de inter茅s p煤blico, las voy a donar, con todo su c贸digo fuente, a la comunidad Fiwenera con un 煤nico inter茅s: Aportar un granito de arena para su fortalecimiento y de esta manera, retribu铆r por todo lo que he recibido de ella.

Pero, por la poca participaci贸n que ha habido en este hilo, me da la impresi贸n de que, o me embarqu茅 en una quijotada, o que no llama la atenci贸n el uso de USBs para controlar la antipirater铆a, o que los compa帽eros ya est谩n asegurando sus aplicaciones con USB y yo ando despistado queriendo enteder porqu茅 el agua tibia es tibia. Si es esto 煤litmo, pues hombre, compartan la informaci贸n, y ojal谩 el c贸digo, y si esto no nace del coraz贸n, pues p贸ngalo a la venta, que de pronto habemos algunos interesados. Sigo pensando que ser铆a regio que lograramos una adecuada sustituci贸n de las mochilas comerciales existentes a trav茅s de nuestro propio c贸digo, con FiveWin. T煤 que opinas ?

Un abrazo,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 07:01 PM

Carlos,

Tu iniciativa me parece muy buena, y de hecho eso es lo que buscamos muchas veces desde FiveTech: el "abrir puertas", el ofrecer posibilidades de hacer cosas nuevas.

El que exista m谩s 贸 menos inter茅s, es algo que ya no depende de nosotros :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 07:28 PM

Antonio,

Entendido Maestro. Con tu palmadita en el hombre me basta para continuar. :lol:

Ahora, la pregunta del mill贸n: C贸mo controlar en RED. A trav茅s de Sockets, o qu茅 recomiendas ?

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM

Aporte: Protecci贸n de Aplicaciones con USB PenDrive

Posted: Sat Feb 23, 2008 08:10 PM
Hola Victor,

Me alegro de que ya tomaras la idea. Vi tu ejemplo y est谩 perfecto. Sin embargo, si te parece, sigamos trabajando sobre la segunda versi贸n. Recuerda que lo ideal es que podamos parametrizar en la llave (mochila como la llaman por esos lares) la mayor cantidad de informaci贸n posible para hacerla SUPER VERSATIL. Has trabaja con llaves Sentinel o alg煤n tipo parecido ?

En otras palabras, que la llave pueda controlar:

- Que es la correcta y UNICA autorizada para el software que se controla.
- Que en TODO el tiempo en que la apliaci贸n est茅 en uso, la llave est茅 conectada y sea la UNICA autorizada.
- Que si se presenta alguna irregularidad al inicio de la aplicaci贸n impida su ejecuci贸n.
- Que si se presenta alg煤n tipo de irregularidad estando en uso la aplicaci贸n, se avise al usuario e impida que se siga ejecutando.
- Que permita definir Fechas de vencimiento para Demos. en d铆as, horas, etc.
- Que permita definir N煤mero de veces en uso para Demos.
- Que permita definir N煤mero MAXIMO DE TERMINALES a acceder simult谩neamente (RED) a la aplicaci贸n.
- Que permita definir cu谩les partes o prestaciones de la aplicaci贸n y cu谩les no, se puedan usar
- Que permita definir proteger a trav茅s de la MISMA llave a m谩s de una aplicaci贸n.
- Que permita parametrizar n煤mero de cuotas y fechas de vencimientos para venta de nuestras aplicaciones a cr茅dito.
- Que se pueda parametrizar v铆a internet. Ejemplo: El usuario adquiri贸 el derecho de uso para 3 terminales, y como el condenado es pr贸spero y en crecimiento, nos compra una cuarta terminal, entonces, que v铆a internet podamos hacerle el ajuste a la llave para que use sus 4 terminales.
- Que lave y planche la ropa y cocine el almuerzo........... :-)

Esa es la idea: Super versatilidad, recontra seguridad, que no afecte para nada la velocidad y estabilidad de ejecuci贸n de las aplicaciones protegidas, y que sea muy f谩cil de implementar. Con muy pocos ajustes en nuestro c贸digo tenemos un blindaje, a un 铆nfimo costo y controlado 100% por nosotros mismos, contra los piratas o clientes vivos que nos quieren aprovechar.

En consecuencia, el proyecto debe tener tres partes importantes:

1.- Todo el proceso de seguridad y control de las llaves.
2.- La Interfase de Parametrizaci贸n, mediante la cual setearemos las llaves a enviarle a los clientes.
3.- Gu铆as para implementaci贸n de la seguridad en nuestras apliacaciones. Sugerencias de c贸mo y en qu茅 partes implementarla. Por supuesto, esto estar谩 a criterio de cada uno. Simplemente sugeriremos guias de uso.

Creo que todo este proceso, m谩s que en c贸digo procedural, deber铆a orientarse hacia Objetos, por lo que, de pronto, valga la pena crear una Clase TProtect y seguir en esa v铆a. Acepto sugerencias pues el desarrollo de Clases no es mi fuerte. :-)

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***