Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Como impedir crackeo de BD y Aplicacion?? (https://www.clubdelphi.com/foros/showthread.php?t=18184)

T-man 04-02-2005 09:56:58

Como impedir crackeo de BD y Aplicacion??
 
Hola. tengo una duda..quisiera saber como uds manejan éste tema.
Yo hice mi aplicacion en delphi, lo cual tengo Proyecto.exe y tengo mi archivo datos.gdb. Éste archivo lo almaceno en un subdirectorio de mi aplicación.
Ahora bien, cuando genero el instalador, debo permitir al usuario que vea ese archivo??? Y si lo hago, como hago para que nadie pueda tocar ese archivo???
Pienso que con la contraseña y nombre de usuario de Interbase no alcanza, cualquiera puede eliminar la base de datos y la aplicacion dejaria de funcionar.


No solo eso, sino que cualquiera puede copiar el .exe de mi aplicacion y la base de datos y lo puede instalar en otra compu y funcionaria. Como hago para que el instalador me genere archivos que impidan hacer eso?????

Bueno espero sus respuestas, sus técnicas y a ver que se puede hacer con éste tema.
Muchas gracias.

Neftali [Germán.Estévez] 04-02-2005 10:46:36

Cita:

Empezado por T-man
...Pienso que con la contraseña y nombre de usuario de Interbase no alcanza, cualquiera puede eliminar la base de datos y la aplicacion dejaria de funcionar.
...
No solo eso, sino que cualquiera puede copiar el .exe de mi aplicacion y la base de datos y lo puede instalar en otra compu y funcionaria. Como hago para que el instalador me genere archivos que impidan hacer eso?????

Bueno en cuanto a lo primero yo no me preocuparia... porque no puedes hacer nada; A alguien (un poco tonto o un poco torpe...;)) que se le ocurra borrar el fichero de GDB, si se lo llegaras a proteger, se le ppodría ocurrir borrar el EXE, o formatear el disco, o ... Se trata de que no accedan a la Base de Datos y eso con usuario y cointraseña debería estar resuelto, contra otros contratiempos (como el que comentas) poca solución...
Ya en serio, si la seguridad debe ser muy alta (en tu sistema), lo primero sería modificar la estructura física y pasar la BD a un servidor diferente al que nadie tuviera acceso físico y gestionar correctamente los permisos en la aplicación para que nadie no autorizado editara/modificara/borrada datos a los que no tuviera acceso.

En cuanto a lo segundo, puedes implementar tu propio sistema de seguridad o utilizar algunos de los componentes que existen para ello; Date una vuelta por internet busca componentes para proteger programa (shareware/trial) y si sigues teniendo dudas lo comentas.

Échale un vistazo a éste Link; Son componentes para proteger aplicaciones.

T-man 04-02-2005 12:04:28

Gracias por responder. Ahora le echare un vistazo a eso que me pasaste.
Un poco lo pude solucionar. Al crear el instalador con Inno Setup puse el directorio de la base de datos como oculta.
Que tiene de positivo?? que un usuario en windows no tiene ni idea que existe ese directorio.
Que tiene de negativo?? que si la base de datos llegara a fallar, como hago para que se ponga visible para realizar alguna restauracion?? es decir, si esta visible, puedo acceder a ella de todas maneras mediando algun programa visual como IBConsole o IBAdmin???

Bueno muchas gracias.
Adios

Neftali [Germán.Estévez] 04-02-2005 12:49:07

Si necesitas ver o volver a restaurar el directorio oculto (cosa que también puede hacer otro usuario) puedes hacerlo desde el menú de Herramientas del propio Explorador de Windows (Herramientas/Opciones de Carpeta/ver/Mostrar todos los archivos y carpetas ocultos); Pero bueno está bien, porque ésto te elimina a muchos usuarios que no sepan de ésta opción.

T-man 04-02-2005 12:59:31

Ok muchas gracias...ya vere que decision tomar, si hacer esa o alguna otra cosa..muchas gracias.

jzginez 04-02-2005 17:54:43

Lo que puedes hacer para que no copien tu aplicación a otra computadora es usar el registro de windows, en mi caso creo tres claves:
- Una para guardar el numero de identificación del disco duro
- Otra la ip del servidor
- La última el path de la base de datos

estas las optengo por una dll que llamos desde inno setup

En el arhivo principal de la aplicación vuelvo a generar el número del disco duro y lo comparo con el almacenado en el registro de windows, si es el mismo se ejecuta la aplicación sino cierro la aplicación. Antes de conectar la base de datos genero una cadena con la ip del servidor, el path la base de datos y el nombre de la base y esta la asigno a la propiedad databsename del componente ibdatabase, con esto tambien mis maquinas clientes saben en que maquina buscar la base de datos.

mamcx 04-02-2005 20:45:04

Manejas trajetas de credito? Informacion bancaria, medica, genetica, trabajas para la CIA o ???? Si no es asi, que te preocupa?.

Esto es un deseo tipico... pero no muy realista. Un buen articulo (en ingles) sobre medidas mas practicas y menos costosas es este:

http://www.codeproject.com/gen/desig...tialWisdom.asp

Lo mejor es que si un CAMPO en especial debe estar protegido (como el nombre de quien lo compro) lo guardes encriptado dentro de la BD. Eso junto a la contraseña de la misma es mas que suficiente. Igual se debe hacer con los passwords y datos VERDADERAMENTE sensibles como numeros de trajeta de credito y cosas asi.

El punto es que en seguridad, si se tiene acceso al equipo/archivo ya DEJO DE EXISTIR LA SEGURIDAD. Punto.

NO pierdas tu tiempo haciendote la "seguridad". Las ideas que se te ocurran, no importa que tan geniales parezcan ya se las idearon hace años. Si estas fastidian a los clientes honestos peor. Te recomiendo mejor comprar algun software para esto, libreria o lo que sea, y gasta mas tiempo en proveer buen soporte, libera frequentemente y estudia sobre seguridad de software.

AGAG4 05-02-2005 02:59:05

Checa Esto....
 
Yo te recomendaría llevar un registro de las Series de los Discos Duros de las PC's que usarán los Sistemas, es decir, si tu cliente agrega otra PC más, solo Registra la Serie del Disco Duro y no podrán usar el Programa en otra PC que no sea el mismo numero de Serie.

Otra es de Generar una Clave Encriptada Cada Día de acuerdo a la Fecha y el Nombre de la Empresa con que esta registrada tu BD por lo que si alguien entra a la BD para ver que Clave tiene cierto Día de Trabajo no podrá descifrarlo porque tendría que desencriptar dicha clave, Consiguete en este caso un buen algoritmo de Encriptación.

Que tengas buen día.

T-man 07-02-2005 09:39:31

bueno, gracias a todos por responder. la verdad que tampoco quiero que mi sistema sea imposible de copiar, solamente preguntaba para ponerle algun obstaculo o dificultad y queria saber cuales usan ustedes.

adios.

sercornejov 07-02-2005 20:31:43

Oye T-man: ¿Tu aplicación se vende masivamente o tu la instalas en cada cliente?

Si la instalas en cada cliente y no deseas que sea copiada, pues una manera de hacerlo a la "Indigena" es:

Genera un archivo con extención "XXX", realmente no importa cual sea la extención y copialo en el WINDOWS o en el WINDOWS\SYSTEM32 o donde se te de... pero que siempre sea un directorio que use windows. Luego en tu aplicación, al iniciarce le dices que busque ese archivo, si no está, pues no arranca.

Solo sirve si tu aplicación no es de distribución masiva. y si tu o tu empresa dedican tiempo a cada cliente.

es muy simple pero efectiva...


Sergio

davezf 22-02-2005 13:41:06

Hola a todos,

Por lo que entiendo con poner el numero de serie del disco en el registro de windows, evitas que se copie la aplicacion y la BD a otro equipo.

Pero, en mi caso, preferia crear un cd de instalacion. Entonces como evito que desde el cd de instalacion se creen las copias del programa?

jzginez 23-02-2005 05:57:53

Hola, como tampoco supe como proteger que no copiaran el cd de instalación lo que hise fue crear un demo por 30 dias guardando en el registro de windows la fecha de instalación y un contador, los cuales estan alterados sumandole el numero que pensaste, multiplicandolo por si mismo, etc. jeje para que si alguien revisa el registro de windows no vea facilmente lo que es cada numero.
el cd de instalación que entrego es el del demo y una vez que el cliente decide que si quiere el sistema voy personalmente a instala la versión que no usa el contador y no le cambio el cd al cliente asi que si este lo presta o lo copia solo copiara el demo, para no tener problema de que si el cliente cambia de computadora pierda el sistema le doy el servicio de reinstalación gratis.
pero recuerda lo que dice mamcx

"El punto es que en seguridad, si se tiene acceso al equipo/archivo ya DEJO DE EXISTIR LA SEGURIDAD. Punto."

davezf 02-03-2005 17:08:32

Podriais indicarme como puedo almacenar el numero de serie del disco duro en una clave del registro con inno setup

Neftali [Germán.Estévez] 02-03-2005 18:04:34

Revisa éste post:
http://www.clubdelphi.com/foros/showthread.php?p=79738

Éstos días hemos estado hablando de eso mismo.


La franja horaria es GMT +2. Ahora son las 12:36:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi