Ir al contenido


Foto

Cifrar una base de datos


  • Por favor identifícate para responder
16 respuestas en este tema

#1 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 04 julio 2012 - 03:18

Saludos.

Existe alguna forma de cifrar una base de datos hecha en firebird que permita que la información solo pueda ser leida por mi aplicación.

Gracias por sus respuestas
  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 04 julio 2012 - 03:38

Ha decir verdad no conozco, quizá si lo exista aunque debería pensarse bien si es lo más conveniente.
Sugiero la lectura del manual Firebird File and Metadata securitity que puedes encontrar aquí.

Justamente en dicha documentación se discute este tema.
No es del todo aconsejable cifrar una base de datos, ya que esto requiere de un proceso más lento ya que se requiere Cifrar y Descifrar constantemente la base de datos. Otro de los motivos de porqué no es del todo aconsejable es que en caso de que el algoritmo de descifrado fallara en algún momento la información original podría ser irrecuperable.
Además Firebird nunca va a contemplar incorporar cifrado en el motor, es una base de datos Open Source.

Existe una posibilidad, que se da a conocer en dicho artículo, que es hacer que el contenido del disco se cifre/descifre cuando el server se apaga/inicia. De este modo desde los clientes pueden recuperar la información.

La seguridad de las bases de datos de Firebird, por el momento (se esperan nuevas mejoras e implementaciones para la versión 3), fue pensada para un servidor dedicado y depende del acceso al archivo.

Lo que puedes hacer es que tu propio sistema cuente con un algoritmo de cifrado/descifrado y que guardes UNICAMENTE la información sensible cifrada. La desventaja de esta técnica es que ahora todo el proceso pasa por tu cliente y si para dicha información sensible estabas pensando implementar operaciones a nivel server (como triggers, sp, vistas, o hasta una simple consulta) pierdes esta capacidad ya que no es capaz de obtener el contenido original.

Sinceramente no vale mucho la pena cifrarla, trae por lo general más desventajas. Ahora si existe una estricta necesidad de ello, pues...

Saludos,
PD: Ha... ¡Por favor! Hagan un esfuerzo para no seguir "vendiendo" el término encriptar/desencriptar... ¡NO ES CORRECTO!
  • 0

#3 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 04 julio 2012 - 03:52

gracias Delphius.
La información me sirve mucho espero poder cifrar los datos y ojala no tenga problemas con el rendimiento.
(y)
  • 0

#4 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 04 julio 2012 - 05:20

Además Firebird nunca va a contemplar incorporar cifrado en el motor, es una base de datos Open Source.

^o| ¿y que tiene que ver que sea Open Source para que cifre o no los datos?
  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 04 julio 2012 - 06:53

^o| ¿y que tiene que ver que sea Open Source para que cifre o no los datos?

Hola Domingo,
NO recuerdo bien como lo expresa el artículo pero los principales motivos de porqué no incluye cifrado, relacionado con el concepto de Open Source, es que:
1) Consideran que el producto es abierto, y fomentan el pensamiento abierto. ¿Para que ocultar y cifrar si la intención es que compartir? Se considera al cifrado como una situación contraria a su pensamiento, cuando lo que buscan es que el conocimiento esté al alcance.
2) Además, debido a que es Open Source, de implementar el cifrado éste también sería Open Source, y consideran que esto podría ser una puerta más de inseguridad, o de más interés para ataques. De que serviría cifrar si alguien más puede saber como está implementado y con el tiempo romperlo.
3) Haría más difícil su desarrollo y podría afectar al rendimiento, ya que requeriría de técnicas más elaboradas.
4) Los objetivos de Firebird es ser simple pero poderoso.

Directamente, consideran que no está en la mesa de discusión la posibilidad de cifrado. Si alguien quiere, que haga un fork (que lo hubo) o lo implemente por otra vía.

Saludos,
  • 0

#6 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 05 julio 2012 - 12:55

No entiendo muy bien esos argumentos, ya que los algoritmos de cifrado mas fuertes y seguros son precisamente de código abierto (AES, Blowfish, Serpent, etc ...) y en eso precisamente reside su fortaleza, porque son revisados por cientos de personas todos los días buscando sus puntos débiles.

Otra cosa es que no lo implementen porque haría mucho mas lento el sistema y no tiene mucho sentido en un ambiente cliente-servidor,  donde se supone que solo el administrador tiene acceso físico al servidor, y por lo tanto a los ficheros en disco de la base de datos. Con un esquema así, la propia seguridad de firebird (usuarios, contraseñas) llegaría para mantener la información segura.

Saludos
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 05 julio 2012 - 08:00

No entiendo muy bien esos argumentos, ya que los algoritmos de cifrado mas fuertes y seguros son precisamente de código abierto (AES, Blowfish, Serpent, etc ...) y en eso precisamente reside su fortaleza, porque son revisados por cientos de personas todos los días buscando sus puntos débiles.


Sabemos que los algoritmos de cifrados son abiertos, yo también me pregunto de esas cuestiones. Yo más que nada intenté expresar de manera burda, lo que más o menos recuerdo de lo que leí en dicho documento.

Saludos,
  • 0

#8 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 05 julio 2012 - 01:58

Este tema es muy importante y también solicitado al equipo de Firebird desde hace mucho, no lo tengo claro pero al parecer será en su versión 3 que esta característica sea implementada, desconozco los alcances que se le dé en la base de datos.

Verifiquen la fecha de creación, tipo, estatus y resolución.

Info http://tracker.fireb...omment-tabpanel

Saludos.
  • 0

#9 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 05 julio 2012 - 04:21

Saludos

bueno buscando, buscando hay un código que envía la información ya cifrada a  la bd.

Pagina: http://delphi.jmrds.com/?q=node/44

Al hacer la prueba funciona bien; pero haciendo algunas pruebas al cifrar se usa una variable de tipo string llamada clave, que se usa en las function Cifrar y Descifrar; a esta le doy un valor, en el caso del ejemplo se le da el valor de '1234567890'. Guardo unos datos con esta clave, al cambiarla (prueba); el aplicativo me muestra los datos cifrados y al volverla a dejar como estaba ('1234567890') se pierden unos datos, caracteres. No se si me explique bien......

dejo este dato para los que les interesa cifrar información, no se si sera la mejor forma de hacerlo.

Estaré mirando el inconveniente que les comente para publicarlo si es que alguno de ustedes no lo ha publicado primero. Gracias a todos por sus respuestas y sus comentarios me ayudan a interpretar muchas cosas.

  • 0

#10 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 05 julio 2012 - 04:49

Al hacer la prueba funciona bien; pero haciendo algunas pruebas al cifrar se usa una variable de tipo string llamada clave, que se usa en las function Cifrar y Descifrar; a esta le doy un valor, en el caso del ejemplo se le da el valor de '1234567890'. Guardo unos datos con esta clave, al cambiarla (prueba); el aplicativo me muestra los datos cifrados y al volverla a dejar como estaba ('1234567890') se pierden unos datos, caracteres. No se si me explique bien......


¿Y como lo haces? ¿que código usas?
  • 0

#11 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 05 julio 2012 - 04:58

En la ruta que http://delphi.jmrds.com/?q=node/44 esta explicado como hacerlo, tome el código de ahí. No se si sea conveniente mostrarlo aquí. Si no hay algún problema por favor díganmelo y copio el código para que lo observen.
  • 0

#12 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 05 julio 2012 - 09:27

FELIX no creo que al autor de dicho sitio le moleste eso  ;)

fredycc me dejas perplejo. Sabía que para la versión 3 se hablaba de un cambio en la seguridad pero no que entre sus mejoras tuviera algo de cifrado. Hasta donde yo sabía en lo referente a la seguridad de la DB ya no pase simplemente por el SO, sino también a nivel usuario y roles.
El tema del cifrado si que fue pedido y hasta hace unos años era totalmente descartado. Fíjate en el histórico de los comentarios en el traker que pusiste que ya se estaban expresando en como esto podría afectar al server. Creo, y me parece, que si se incorpora cifrado no será total sino a través de UDFs como lo he visto en uno de los comentarios, y no de una forma natural y por defecto.

Saludos,
  • 0

#13 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 06 julio 2012 - 12:18

S

FELIX no creo que al autor de dicho sitio le moleste eso  ;)

Se ve que "seoane" y "la web de seoane" no tienen nada que ver  :D :D :D ... en fin seguiré sin ver el código que utiliza, me quedare con las ganas  :(
  • 0

#14 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 06 julio 2012 - 01:09

...... ... en fin seguiré sin ver el código que utiliza, me quedare con las ganas  :(


qué penita tan grande que me das :(

:D :D :D
  • 0

#15 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 06 julio 2012 - 03:37

FireBird 3 llevará encriptacion a nivel de base de datos y tambien entre el cliente y el motor (over the wire supongo que se refiere a eso), lo leí precisamente ayer en unas diapositivas del programador principal Yemanov sobre los avances del 2011/2012, y la encriptacion de bases de datos aparece como YA termnada:

http://www.slideshar...nt-in-2011-2012 (ver hoja 8)

  • 0

#16 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 06 julio 2012 - 08:08

FireBird 3 llevará encriptacion a nivel de base de datos y tambien entre el cliente y el motor (over the wire supongo que se refiere a eso), lo leí precisamente ayer en unas diapositivas del programador principal Yemanov sobre los avances del 2011/2012, y la encriptacion de bases de datos aparece como YA termnada:

http://www.slideshar...nt-in-2011-2012 (ver hoja 8)

Vaya, voy a tener que volver a empezar a actualizarme y leer las noticias de firebird de nuevo. Lo que es estar atrás y acostumbrado a la 1.5.6 :s Al menos cuando trabaje bajo el entorno Linux con mis otros proyectos podré darme más gustito de pasarme a la 2.5

Saludos,
  • 0

#17 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 08 julio 2012 - 02:53

Hola.

Firebird no lleva encriptación de datos, porqué no lo necesitas para asegurar tu base de datos, para eso ya tienes al sistema operativo. Solo tienes que cifrar en Windows la base de datos y darle permiso de acceso al archivo únicamente a la cuenta de usuario que ejecuta el servicio de Firebird (ni siquiera el Administrador del Sistema debe tener acceso al archivo de datos). Por supuesto la contraseña de la cuenta de usuario que ejecuta Firebird solo la deberías conocer tú.

Con eso tu base de datos está totalmente asegurada y es imposible que ningún usuario te robe tu información, incluso aunque sean Administradores y tengan acceso físico al Servidor (tendrían que romper el cifrado del mismo sistema de seguridad de tu Windows).

NOTA: Naturalmente tienes que cambiar la contraseña de la cuenta SYSDBA de Firebird y no olvides también asignar los permisos de acceso de la carpeta del mismo Firebird con acceso solo para la cuenta de usuario de Firebird que únicamente tu conoces. De esta forma no te podrán sustituir el archivo de seguridad de Firebird security2.fdb por un archivo de seguridad estándar con el que podrían acceder simplemente mediante SYSDBA-masterkey.

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.