Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
seguridad en bases de datos

Hola amigos,

Estaba buscando información a cerca de la seguridad en las bases de datos y su encriptación, pero veo algunas diferencias.

Sqlite: En sí misma no tiene seguridad ni encriptación, salvo que cambies la sqlite3.dll por otra del sistema net.
Firebird: La base de datos no está encriptada pero sí se guardan las contraseñas en el archivo securty.gbd (creo que era este).
Postgrestql: ALgo vi al respecto de esta base de datos, pero sí puede encriptar la base de datos con unos script o dll.
Mysql: No encontré la forma en que codifica.

El por qué saco esta cuestión viene porque para bases de datos locales decís en otros post que es un tanto absurdo salvo que estes protegiendo datos de la NASA .

Bueno os comento un detalle que he visto.

Algunas aplicaciones locales como programas de pacientes de medicina en la que los datos son bastante sensibles de proteger y a la que se accede a través del programa con un usuario y contraseña, que chiste tiene que no puedas acceder sino estás autorizado pero sí puedas acceder a la base de datos por fuera y ver los datos o incluso te la puedas llevar a otro sitio.

Quizá los datos no sean de extrema importancia para muchos, pero para las empresas que no quieran que sus empleados con conocimientos puedan alterar directamente esos datos desde la propia base de datos en beneficio propio.

Es por estos casos, que os causan gracia (a algunos) que se necesitan proteger en un sistema local dichas bases de datos y que por desgracia, para mis pocos conocimientos, no hay por eso se ha preguntado en el foro la manera de encriptar dichas bases de datos.

Está claro que, al encriptar la base de datos, requiere de más esfuerzo por la CPU (pienso yo), pero por lo menos, si se copian la base de datos, les lleve trabajo averiguar la forma de "romper" la encriptación.

como añadidura, hay un programa que se llama Lita (usa sqlite), programado con adobe air, que si permite encriptación(te da la cadena de la password), pero parece que no se puede implementar en delphi, con lo que estamos en las mismas.

Y si he visto que si quiero abrir una base de datos(no me acuerdo cual era) con un manager, me pide una contraseña, que eso seria lo ideal.

Ustedes perdonen por abrir este post.

Un saludo.

Última edición por anubis fecha: 12-07-2012 a las 17:35:35.
Responder Con Cita
  #2  
Antiguo 12-07-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Cuando el caso es tan puntual sobre un único cliente, la mejor opción para mi, es usar Firebird embebido, lo único que debes hacer es cifrar el archivo como tal y al abrir el programa lo descifras, al cerrarlo, lo vuelves a cifrar y ya, es mas efectivo que cifrar los datos, ya que si cada registro de las tablas es cifrado, las consultas pierden su eficiencia.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #3  
Antiguo 12-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es algo que hemos hablado muchas veces

Veamos, lo que no es "normal" es que llegue alguien, copie la base de datos y se la lleve. Eso sí que no es normal.
Si hay alguien con "conocimientos" para usar programas externos y conseguir los datos de la BD... entonces ¿están robando?, porque si es la enfermera quien hace eso... ¿qué hay que hacer entonces?, ¿ponerle un guardián a cada trabajador?. Aquí llegaríamos al mismo problema que al de la protección anticopia del software, que por mucha protección que se ponga... se termina copiando.

Entonces, ¿qué puedes hacer?, algo intermedio, por ejemplo, puedes cifrar el nombre del paciente y sus datos personales y si roban la BD entonces verán que "alguien" se rompió la nariz haciendo el salto del tigre, pero no podrán leer de quién se trata porque está cifrado.

Para hacer eso sólamente es necesario cifra el dato al guardar y descifrar al leer, algo muy simple que prácticamente no consume recurso y no afecta en nada más.
Todo lo demás, la verdad, no sirve para nada, salvo poner varios vigilantes junto al servidor, pero incluso así pueden sobornar a los vigilantes.
Responder Con Cita
  #4  
Antiguo 12-07-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias a los dos por contestar,

Efectivamente, sí está complicado como decís. No se puede poner un vigilante para controlar que hace el usuario con el sistema .
También tenéis razón, no se puede encriptar los datos por los problemas posteriores en las consultas, pero quizá sí se pueda encriptar el archivo y desencriptarlo al usarlo que, si es una aplicación de un doctor, se la pase desencriptada todo el tiempo y hay un archivo temporal abierto desencriptado por alguna parte.

Y sí, no es normal que alguien llegue y se copie la base de datos, pero si pasa, como pasan otras muchas cosas.

Principalmente no es que uno sea paranoico con esto, simplemente, son los comentarios de algunos clientes, puesto que la base de datos está en la misma máquina que el programa, todo sería más fácil si fuera por red, pero en este caso, por fuerza, tiene que ser de forma local.

Creo recordar que sql server encriptaba toda la base de datos, pero evidentemente, es un sistema que no es open source como firebird por ejemplo, aunque creo que la versión alpha de firebird 3 tiene en consideración la encriptación de la base de datos.

Como ya sabeis, hay bastante clientes paranoicos y sólo le ponen "peros" pero no dejan más opciones.
Responder Con Cita
  #5  
Antiguo 12-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Para esos casos de clientes demasiado paranóicos, les cuento lo que le pasó a otro cliente que quería todo cifrado, claves por todos lados, tenía el servidor en una habitación bajo llave, le había quitado cdrom, disquetera, etc. a todos los equipos para que no copiaran los datos y se lo llevaran.
Cada trabajador tenía su login, clave, clave especial para según qué cosas, permisos, privilegios, etc. Además quedaba registrado todo lo que hacía todo el mundo, en qué opción entraba, qué había hecho, a qué hora, qué datos había cambiado, qué había copiado, borrado, creado, etc.

Un fin de semana entraron al almacen por el tejado, se llevaron todos los ordenadores, impresoras, etc. y el servidor también.
Compró nuevos equipos y un nuevo servidor (luego se lo pagó el seguro) y fuimos a recuperar un backup que tenía de hacía unos meses, ¡¡¡pero no recordaba la clave que le puso!!!, ya que cada vez que hacía un backup, él mismo se encargaba de poner una clave, para que nadie la supiera.
Y no hace falta que cuente nada más.
Responder Con Cita
  #6  
Antiguo 12-07-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por anubis Ver Mensaje
[...] hay bastante clientes paranoicos [...]
Si son tan "paranoicos", seguramente pueden invertir en una buena cerradura para la habitación donde sea más seguro colocar un servidor económico de medianas características (en la oficina del gerente o director por ejemplo). Con eso y un buen asesor jurídico tienen más que suficiente para hacer frente a cualquier contingencia de robo de datos personales.

El informático suele pensar que todo es responsabilidad de él y que la tecnología debe ser capaz de cubrir cualquier necesidad. Ni una cosa, ni la otra.
Responder Con Cita
  #7  
Antiguo 12-07-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
JAJAJAJAJAJAJAJA
Realmente hay personas demasiado paranoicas. xD
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #8  
Antiguo 12-07-2012
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Entiendo tu problema y a tus clientes, sin embargo tiene que haber un punto intermedio, simplemente quisiera saber que medico me daría total privacidad para cuando vaya a verlo no me vea nadie mas, ni otro paciente, seria posible? tal vez si, practico y barato? no lo creo simplemente, cuantos doctores ofrecen esto yo no conozco a alguno que lo haga..., yo creo que la solución es, password para inicio de sesión a la computadora (claro alguien puede llegar y arrancar con un cd, pero si el doctor deja la puerta sin llave, no es culpa del sistema) y utilizar el cifrado de windows, que si alguien copia el archivo en otra computadora no se podrá ver, volvemos al punto anterior de que si alguien copia el archivo, quien lo dejo entrar? el doctor por no poner la llave? la enfermera porque le dio dinero? esos ya no son problemas del sistema, ahora que pasa si se daña el windows, simplemente la base de datos ya no podrá ser leída porque requiere la cuenta en especifico para desencriptar, entonces requerimos los respaldos, pero los respaldos tienen que estar en un lugar físico, una caja fuerte que alguien puede abrir en el mejor de los casos, entonces caemos creo yo, en el factor humano, porque lo mas probable es que si un doctor deja la puerta abierta, se expone a que le roben el equipo, aunque no le puedan sacar la información, o se expone a que le abran la caja fuerte, muy probablemente no por obtener los respaldos, si no por dinero u otras cosas que pudiera guardar, que ellos primero asuman su responsabilidad y con base en eso se puede trabajar pero no puedes hacer todo desde un sistema...
Responder Con Cita
  #9  
Antiguo 12-07-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Código Delphi [-]
for i := 1 to Infinito do
  writeln('Nunca más voy a decir (des)encriptar. Debo aprender a golpes que es (des)cifrar');
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 13-07-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
El tema del acceso a los datos es un asunto bastante sensible y en España está regulado por la ley de protección de datos. En particular los datos médicos son especialmente sensibles y hay ciertas obligaciones que hay que cumplir como el que haya claves de acceso por usuario, que se queden grabados los accesos, etc. así que no es capricho de los usuarios, simplemente hay que cumplir la ley para prevenir sanciones.

Otra cosa es llevar esto a los extremos que se están comentando, lo que tampoco tiene mucho sentido porque, como se ha dicho, en caso de querer al final acabarán sacando la información.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo 28-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Mira en eso tienes razon, hay qu ecumplir ciertas obligaciones, pero tampoco creo que hay aque ser paranoico.
Solo preguntaba en el caso de que quieran abrir la base de datos fuera del programa general nada mas.
De hecho, como digo, hay varias bases de datos que si encriptan la propia base de datos en forma local por ejemplo.

Como pregunta interesante hecha en voz alta, nose si en la parte tecnica seria comprimir la base de datos completa y luego se usa alguna dll que desencripta, no creo que en memoria si la base de datos es enorme.

Lo que intento es por lo menos saber como podria funcionar a nivel teorico.

Hay otras partes que hablan de encriptar el filesystem.

Si veo que tiene el tema mucha complejidad.... sorry

Última edición por anubis fecha: 28-08-2012 a las 03:33:26.
Responder Con Cita
  #12  
Antiguo 28-08-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Bueno, imagino que lo adecuado para el caso que comentas es que la base de datos tenga la posibilidad de funcionar encriptada, que no sé si es el caso, o en su defecto que tenga un password para poder abrirla.
__________________
Be water my friend.
Responder Con Cita
  #13  
Antiguo 28-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También puedes cifrar los datos que más te interese ocultar y descifrarlos cuando los leas, pero en ese caso no podrás hacer búsquedas "normales" por ese campo, ni ordenarlo ni cosas habituales.
Tendrías que pensar/planificar bien exactamente lo que necesitas y buscar la solución adecuada.
Responder Con Cita
  #14  
Antiguo 28-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En MySQL, instalado en un servidor unix, la base de datos como tal, o sea, los archivos, se guardan en un directorio al que sólo puede acceder el usuario mysql y root, y todo el acceso a los datos se hace através del usuario mysql, es decir, el demonio de mysql correo bajo este usuario.

La implicación de esto es que, si bien puedo tener acceso al servidor, no hay manera, como usuario regular, que pueda extraer los archivos de una base de datos.

En Windows, por lo general no nos fijamos en estas cosas, pero sospecho fuertemente que se puede hacer algo similar. Con ello se logra que los usuarios del sistemas no puedan llevarse la información a sus casas. A menos, claro está, que se lleven el disco duro, pero para eso hay otro tipo de medidas de seguridad.

// Saludos
Responder Con Cita
  #15  
Antiguo 28-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro, posibilidades hay muchas, como bien dices, en linux dejas el directorio de la base de datos para que sólo tenga acceso firebird y ya nadie podrá entrar a hacer nada en él. Salvo que vayan escribiendo la clave en un papelito junto al servidor

Pero todas estas cosas, por muy protegidas que estén, no sirven de nada si (por ejemplo) el programa tiene una opción que dice: "Hacer backup de la base de datos" y se la lleva a su casa
Responder Con Cita
  #16  
Antiguo 28-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Claro. Pero creo que la situación original que plantea el usuario no es un caso de paranoia extrema. Se tiene una base y un sistema al que sólo puede acceder un grupo de usuarios. Si uno de estos usuarios o, peor, cualquier otro usuario de la pc, puede llevarse a casa el archivo, esto es, acceder físicamente a la base de datos, entonces no estamos ante un caso de paranoia extrema sino de mala seguridad.

// Saludos
Responder Con Cita
  #17  
Antiguo 28-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
... esto es, acceder físicamente a la base de datos, entonces no estamos ante un caso de paranoia extrema sino de mala seguridad.
Cierto, grave fallo de seguridad.
Responder Con Cita
  #18  
Antiguo 22-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
A los que insisten en que encriptar, o cifrar da alguna proteccion de gran nivel, se les olvida que la seguridad se debe de basar en el acceso a la data.

Una persona maligna que tenga acceso a los archivos, y no los pueda leer por estar cifrados, QUE hay que le impida que los DAÑE?

Ahora, si los datos van a estar cifrados, cuantos cifrados tendria que haber para poder prescindir de la restriccion de accesos mediante "roles"?

Que el cifrado de la data no brinda realmente gran seguridad, lo demuestra el hecho de que el cifrado o encriptado no es de uso comun, aun cuando la data es critica. La seguridad se basa en el control de accesos, no en cifrar.

Esto tambien se puede razonar en el hecho de que las principales base de datos, las mas potentes, no tienen la funcion de cifrar como opcion basica.

Lo que SI se cifra son los passwords, y gran parte de la proteccion viene del sistema operativo y los servicios usados.

Si alguien se puede meter a los archivos a "ver" si estan o no cifrados, entonces SI HAY un GRAN problema de SEGURIDAD, mas no tiene que ver con que los archivos esten o no cifrados.
Responder Con Cita
  #19  
Antiguo 22-09-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por ElMug Ver Mensaje
Lo que SI se cifra son los passwords
MAL. MUY MAL. Allí hay otro problema más de seguridad.

Una password no se debe cifrar. Porque si se ha de cifrar entonces quiere decir que existe la posibilidad de descifrar... ya sea en un segundo o dentro de 50 años.
En todo caso lo que se almacena no es la contraseña sino una representación de la misma que no sea capaz de lograr el paso inverso. Esto se consigue con algoritmos de reducción, como MD5 por ejemplo. Ahora bien esto no quiere decir que tampoco sea infalible... después de todo es posible que incluso los algoritmos de reducción no funcionen como deben.

El asunto pasa por dificultar lo más posible las cosas al atacante de modo que para cuando logre pasar la seguridad la información que contenga no le sea relevante y ya tengas una aplicación más robusta.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #20  
Antiguo 22-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro, no deben guardarse los passwords cifrados, ya que entonces existe la posibilidad de descifrarlos.
También hay que aclarar que depende para qué se va usar, como siempre, no es lo mismo una tiendecita de barrio que los datos de una entidad bancaria.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar datos entre bases de datos diferentes franjero Firebird e Interbase 1 19-06-2012 08:32:42
seguridad en bases de datos firebird anubis Firebird e Interbase 10 26-02-2008 20:40:07
Como pasar datos de una hoja de Excel a Bases de Datos de Paradox Goyo OOP 1 06-02-2007 01:57:20
Seguridad para bases de datos Interbase BuenaOnda Conexión con bases de datos 6 03-01-2007 22:43:12
Seguridad de las bases de datos Osorio Firebird e Interbase 1 03-08-2003 13:45:09


La franja horaria es GMT +2. Ahora son las 12:47:56.


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
Copyright 1996-2007 Club Delphi