Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Base de Datos LOCAL / ENCRIPTADA (https://www.clubdelphi.com/foros/showthread.php?t=68580)

yapt 22-06-2010 09:24:23

Base de Datos LOCAL / ENCRIPTADA
 
Hola...

esta es una necesidad que, aunque todavía no me ha tocado implementar, estoy seguro que tarde o temprano me tocará. Me explico:

Una base de datos que tenga:
(Obligatorio)
- Acompañe a la propia aplicación y no ocupe mucho espacio ni sea engorrosa de instalar.
- Que sus datos estén encriptados con estandares (DES, 3DES, AES, etc..).
- Que su comunicación esté encriptada también.
- Open Source
- Free.

(opcionales)
- Que sea ACID

(mucho mas opcional)
- Que pueda ejecutar procedimientos almacenados.

He usado alguna vez SQLite. Pero adolece de la encriptación (solo está para usarla con C y, además, es de pago). He tratado de buscar información sobre Firebird embebbed y parece algo "antiguo" o sin mucha información (o yo no la he encontrado).

Se admiten sugerencias. :)

Gracias.

Casimiro Notevi 22-06-2010 10:01:26

Si es local te sirve firebird "embebed" o como se escriba. Sólo has de añadir unos ficheritos junto a tu programa.
Zebedee comprime y encripta las conexiones, pero... eso, las conexiones... y si es local... :confused:
Supongo que esos requerimientos ¿son de algún paranóico con sus datos, le vayan a robar los precios de sus artículos o el nombre de sus proveedores?.
Es que si va a usarse en un sólo ordenador, en local, sin red ni nada, el único problema es que hagan una copia de la base de datos y se la lleven. Pues que quite el grabador de cds y desactive los puertos usb :)

yapt 22-06-2010 11:08:23

Cita:

Empezado por Casimiro Notevi (Mensaje 367971)
Si es local te sirve firebird "embebed" o como se escriba. Sólo has de añadir unos ficheritos junto a tu programa.
Zebedee comprime y encripta las conexiones, pero... eso, las conexiones... y si es local... :confused:

Me falta la encriptación... ;)

Cita:

Empezado por Casimiro Notevi (Mensaje 367971)
Supongo que esos requerimientos ¿son de algún paranóico con sus datos, le vayan a robar los precios de sus artículos o el nombre de sus proveedores?.

O las formulas químicas de su propiedad, registradas con patente internacional, que permanecen encerradas (junto con este software) en una caja fuerte (conectada a la policia), dentro de un cuarto de máxima seguridad, grabado y vigilado día y noche. Formulas que, puestas en producción, representan el total de sus ingresos y que dan de comer a más de 3000 familias en todo el mundo.

Hay de todo en la viña del señor... :o Y hay empresas que hacen cosas importantes que todavía confian en Delphi (o en los técnicos que les aconsejan).

Salu2

Ñuño Martínez 22-06-2010 11:14:25

Sobre la encriptación, tal vez no sea necesario encriptar la conexión si no los datos. Es decir, codificas los datos antes de enviarlos a la base de datos y los decodificas una vez obtenidos. En pseudocódigo:
Código Delphi [-]
VAR
  Dato: STRING
BEGIN
  Dato := 'Este es el dato'
  TablaDatos.Campo := FuncionCodificadora (Dato, ClaveCodificacion)

{ ... }

  Dato := FuncionDecodificadora (TablaDatos.Campo, ClaveDecodificacion)
END

Incluso el nombre de las tablas y los campos puede estar codificado de alguna forma:
Código Delphi [-]
  SQLQuery.SQL := 'SELECT '+FuncionCodificadora ('NombreCampo', ClaveCodificacion).' FROM '+FuncionCodificadora ('NombreTabla', ClaveCodificacion)

Claro que el problema aquí está en que el nombre de los campos y tablas seguiría existiendo de forma legible en el ejecutable, pero hay formas de codificar dichos nombres "estáticamente" antes de compilar.

Se me entiende la idea, ¿no?

yapt 22-06-2010 11:21:41

Si, si... la idea está clara. De una forma muy básica, es como está hecho ahora.

El gran problema de esto es que pierdo todas las funcionalidades de la base de datos (indices, consultas SQL, etc...) y, aunque para el tema que reflejaba arriba, esto no es importante, si que lo es para otros proyectos con requerimientos "medios" de seguridad.

Saludos

Casimiro Notevi 22-06-2010 11:56:26

Cita:

Empezado por yapt (Mensaje 367981)
Me falta la encriptación... ;)

Cita:

Empezado por casimiro
Zebedee comprime y encripta ;)[..]

También puede encerrar el ordenador en un bunker de alta seguridad, así se ahorra el resto :)

Y nada de red local ni internet, evidentemente.

Ñuño Martínez 22-06-2010 11:58:33

No estaba buscando, pero he encontrado por casualidad este gestor de bases de datos escrito en (Object) Pascal. Ni lo he probado, así que no sé si será fácil ni si se podrá modificar o algo para que haga lo que quieres hacer.

Otro es este: http://sourceforge.net/projects/tpflashfiler/ , pero te digo lo mismo que con el anterior: ni idea de si te servirá.

Casimiro Notevi 22-06-2010 12:47:50

También se puede encriptar el disco, supongo que en windows existirá también, pero en linux es una posibilidad que se pregunta en la instalación, el que la partición esté encriptada, así si te lo roban... no pueden ver qué tiene.
En principio se pensó para los ordenadores portátiles, que son más fáciles de "perder"

fjcg02 22-06-2010 12:55:37

Lo normal en estos casos es encriptar el disco con alguna herramienta que utilizan certificados instalados en dispositivos usb ocon dispositivos tipo token http://es.wikipedia.org/wiki/Token_de_seguridad. Si no los guardas juntos, te podrán robar el portátil, pero tendrán que formatearlo para poder usarlo.
Así al menos la informacion queda asegurada.

A mandar.

Saludos

yapt 22-06-2010 22:53:47

Cita:

Empezado por Ñuño Martínez (Mensaje 367991)
No estaba buscando, pero he encontrado por casualidad este gestor de bases de datos escrito en (Object) Pascal. Ni lo he probado, así que no sé si será fácil ni si se podrá modificar o algo para que haga lo que quieres hacer.

Otro es este: http://sourceforge.net/projects/tpflashfiler/ , pero te digo lo mismo que con el anterior: ni idea de si te servirá.

Gracias Nuño, les echo un vistazo.

Perdon por el retraso en contestar, pero siguen sin llegarme las notificaciones vía mail.... sic...

yapt 22-06-2010 22:56:05

Cita:

Empezado por Casimiro Notevi (Mensaje 367971)
Zebedee comprime y encripta las conexiones, pero... eso, las conexiones...

Las conexiones.... :o


Cita:

Empezado por Casimiro Notevi (Mensaje 367989)
También puede encerrar el ordenador en un bunker de alta seguridad, así se ahorra el resto :)

Y nada de red local ni internet, evidentemente.

Todo eso ya lo tienen...... (y no es broma).... :-)

Casimiro Notevi 22-06-2010 23:16:23

Cita:

Empezado por yapt (Mensaje 368107)
Las conexiones.... :o

Sí, las conexiones.

Jucho69 24-06-2010 23:06:20

Hola a todos

A mi tambien me piden iguales caractweristicas con los programas que hago, ¿Y es posible que a Access se le pueda agregar esas caracteristicad de seguridad?.........sin matar a un gato.

Saludos

Ñuño Martínez 25-06-2010 12:11:41

Sin matar a un gato... Difícil lo pones. ;)

Ahora bien, no uso Access desde el siglo pasado, más o menos (me encanta poder decir algo así :D), pero no recuerdo que el Access tenga una opción de codificar. Al menos no la versión "doméstica".

Casimiro Notevi 25-06-2010 12:23:20

Cita:

Empezado por Ñuño Martínez (Mensaje 368304)
Sin matar a un gato... Difícil lo pones. ;)

Ahora bien, no uso Access desde el siglo pasado, más o menos (me encanta poder decir algo así :D), pero no recuerdo que el Access tenga una opción de codificar.
Al menos no la versión "doméstica".

¿Acaso existe alguna versión "salvaje"? :D

Ñuño Martínez 28-06-2010 11:26:43

Ya sabes que Microsoft es muy dada a publicar sopocientasmil versiones con nombres como "home", "enterprise", y tal, capando las "home". A estas últimas no las llamaría yo "hogareñas", ¿o sí? :p

rrf 07-07-2010 20:32:46

Hola.

Aunque no es gratuita, creo que la/s ultima/s version/es de Interbase incluyen la posibilidad de encriptar columnas en las tablas.

No lo he probado y solo lo menciono por un vago recuerdo de algunas caracteristicas que lei de publicidad de Interbase.

Por si te podria servir (aunque creo que indicaste que deberia ser gratuita).

Saludos.

yapt 10-07-2010 12:59:11

Finalmente encriptaré las columnas críticas y manejaré la encriptación desde mi propia aplicación.

El único inconveniente a esto es que si encripto una columna de una tabla, ya no puedo hacer consultas SQL a esta columna, ni integrarla en indices, etc.. etc...

No es una óptima solución, pero es la que hay.

Gracias..


La franja horaria es GMT +2. Ahora son las 06:05:09.

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