Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   a vueltas con los servidores de datos (https://www.clubdelphi.com/foros/showthread.php?t=65654)

anubis 04-01-2010 00:18:05

a vueltas con los servidores de datos
 
Pido disculpas por el tipo de pregunta, ya se que quiza sea un tema basico para algunos y para otros imagino que esten como yo.

Ya habia colocado algun post sobre el tema de la seguridad en las bases de datos, pero necesito un poco de luz sobre los servidores.
Parece que es muy complicado hacer una aplicacion con firebird, sqlite, etc, para un solo sistema (embebido) y que a su vez no se pueda acceder a esa base de datos por fuera.
Para sistemas embebidos complicado encriptar una base de datos.
Se supone que si instalar un servidor del tipo microsoft sql server ahi ya no hay problema, es de pago y se esta usando bastante por lo poco que he visto.

La cuestion, por si algun alma caritativa quiere iluminar el camino es a cerca de los servidores sql gratuitos, como postgres, mysql*, firebird.

Para ser mas exactos, si instalo un servidor en la misma maquina tambien bloquea el acceso a la base de datos evitando copiarla por ejemplo?.

gracias

Casimiro Notevi 04-01-2010 00:33:27

Creo que no se entiende bien lo que preguntas:

Cita:

Empezado por anubis (Mensaje 349942)
[..]Parece que es muy complicado hacer una aplicacion con firebird, sqlite, etc, para un solo sistema (embebido) y que a su vez no se pueda acceder a esa base de datos por fuera.

Se supone que si es "embebido", no se puede acceder desde fuera.


Cita:

Empezado por anubis (Mensaje 349942)
Para sistemas embebidos complicado encriptar una base de datos.

El que sea "embebido" no tiene nada que ver con la encriptación, algunas bases de datos tienen utilidades para encriptar y otras no. Existe una utilidad para usar con Firebird que encripta los datos entre los clientes y el servidor.

Cita:

Empezado por anubis (Mensaje 349942)
Se supone que si instalar un servidor del tipo microsoft sql server ahi ya no hay problema, es de pago y se esta usando bastante por lo poco que he visto.

¿que no hay problema en qué?, ¿en copiarla?, ¿en encriptarla?...


Cita:

Empezado por anubis (Mensaje 349942)
La cuestion, por si algun alma caritativa quiere iluminar el camino es a cerca de los servidores sql gratuitos, como postgres, mysql*, firebird.
Para ser mas exactos, si instalo un servidor en la misma maquina tambien bloquea el acceso a la base de datos evitando copiarla por ejemplo?.
gracias

Si tienes acceso a una máquina donde está alojada la base de datos, ¿qué puede impedirte el no copiarla?, salvo que no tengas permisos para acceder a ese directorio... lo veo complicado.

Seguramente estás preguntando otra cosa y no lo he entendido.

anubis 04-01-2010 00:53:34

gracias por contestar tan rapido ;).

Me explicare mejor.
Tengo una aplicacion que usa, a falta de otra cosa, sqlite.
La aplicacion tiene acceso de usuarios, en funcion de que privilegios tenga el usuario accedera a unas u otras cosas.

Pero como la base de datos esta, de momento , en el mismo directorio que la aplicacion y como no esta protegida con contraseña, se podria acceder a los datos desde el exterior o bien con un adminsitrador.

Lo que necesitaba era que no se pudiera acceder a esos datos encriptando la base de datos.

Creo que hay otras alternativas a esas, como es instalando un servidor en la misma maquina pero no se que tan seguro es, si se puede copiar la base de datos y si, por ejemplo, mysql o postgres (firebird no) encriptan la base de datos.

Un saludo y gracias nuevamente

p.d.: tiene que haber alguna alternativa para encriptar datos, para maquinas monousuario

Casimiro Notevi 04-01-2010 01:12:18

Si la base de datos va a estar en el mismo ordenador, la única solución es usar los permisos como en linux, supongo que con windows se podrá hacer algo parecido, aunque copiar, lo que se dice copiar, seguro que la podrán copiar.
Tan sólo te quedaría entonces el método de encriptarla, que también la pueden copiar y luego "con más calma" intentar desencriptarla.
De todas formas, si le instalas a un cliente tuyo el programa y la base de datos, en esa base de datos estarán los propios datos de ese cliente, son suyos, ¿para qué va a querer encriptarla?.

anubis 04-01-2010 14:35:57

Muy cierto lo que dices. Si bien es cierto que si el programa es del cliente y la va a usar el cliente no hay problema, pero la va a usar el cliente y empleados que no tienen porque tener acceso a otros elementos del programa.

Si, ya me imagino que para estas cosas se usan los servidores, dejando a cada empleado un terminal y su contraseña pero en este caso solo hay un ordenador y varios empleados, solo quedaría encryptarla o ponerla en el directorio de windows camuflada.

Algo como en el ms sql server pero en gratuito. Si bien intuyo, por eso pregunto, como funciona por ejemplo el sql server a nivel de seguridad. Me explico:
Cuando se instalan servidores de sql, en este caso, en la misma maquina donde se va a correr el programa tiene que tener algun sistema de seguridad que proteja esos datos fuera del acceso de la aplicacion.

De ahi que pregunto como funciona un servidor sql en la misma maquina, que beneficios de seguridad tiene.

Firebird como servidor no encrypta la base de datos.

Perdonadme tanta lata y gracias de nuevo

p.d.: al 100% seguro no hay nada, pero si instalando un servidor como por ejemplo postgres y de forma transparente para facilitar las cosas mejor.

Casimiro Notevi 04-01-2010 18:12:57

Pero si la BD está en el mismo ordenador, ¿cuál es el problema?, ¿qué se la copien y se la lleven?, porque acceso tienen cuando están conectados.

También, si el ordenador tiene windows, puedes montar una máquina virtual linux donde alojas la base de datos. Te explico:
Tienes el windows con el programa que has creado, instalas virtualbox y creas una máquina virtual con, por ejemplo, linux ubuntu server, en esa máquina virtual instalas la base de datos.
Ahora tienes 2 ordenadores, el "físico" y el otro que es "virtual", pero que funciona igual que si fuese otro ordenador "físico", cada uno tiene su propia IP y en el "ordenador linux" no hace falta que compartas nada, sólo instalar el servidor firebird y la base de datos tuya (firebird, postgresql, mysql, etc.)

Desde el programa cliente en el windows puedes usar la base de datos como si fuese una red local, p.e.: 192.168.1.100:/mnt/datos/misdatos.fdb (o usas un alias).

No sé si me he explicado bien, yo lo uso para probar distintos sistemas operativos o para montar una red local con varios ordenadores "virtuales".

anubis 12-01-2010 15:58:29

Te agradezco la información. Si bien es una solución, parece muy complicada para incluirla en una instalación.

Le sigo dando vueltas a todo esto, y estoy buscando en san google, pero no acabo de encontrar una solución interesante.
Sigo viendo que muchas aplicaciones monopuesto usan mysql y delphi, pero tiene que haber otras "ofertas" mas faciles de aplicar para que el usuario final no tenga tanto problema y no se puedan ver los datos.

Si, copiarla la pueden copiar como dices y luego con calma destriparla, cierto es que sistema seguro 100% no existe y menos cuando no usas un servidor, lo que quiero saber, si es posible:

El servidor firebird no encripta la base de datos sino restringe el acceso a traves del fichero de usuarios.
Del resto, mysql, postgres, sql server, estos hacen lo mismo o bien ya la encriptacion esta dentro de la base de datos?
La documentacion que lei no habla de eso.

Un saludo y gracias por ser pacientes

Casimiro Notevi 12-01-2010 16:55:56

Mysql, echa un vistazo a esto, puede que te sirva:
http://www.todoexpertos.com/categori...de-datos-mysql

anubis 12-01-2010 17:28:26

Hombre gracias, ya tengo una pista, con el comando crypt, pero en otro sitio no recomiendan usarlo porque te cargas el rendimiento de la base de datos.

Seguire investigando con esas pistas.

gracias de nuevo

Casimiro Notevi 12-01-2010 20:57:06

bueno, ten en cuenta que, por lógica, lo que hace, más o menos, es:

Leer de basedatos -> desencriptar -> presentar datos -->

datos -> encriptar -> guardar en basedatos

O sea, tiene que desencriptar al leer y encriptar al escribir TODOS los datos, tendrás que hilar fino, no puedes traerte por la red una tabla con diez mil clientes porque además tiene que desencriptar todo antes de presentarlo, es un ejemplo.

mcs 13-01-2010 09:06:50

Y no te sería más fácil usar un SQL Server Express? Esta versión es completa y gratuita, pero está limitada a usar sólo 1Gb de memoria RAM y admite un máximo de conexiones a la vez.

Neftali [Germán.Estévez] 13-01-2010 09:37:42

Cita:

Empezado por anubis (Mensaje 349959)
Algo como en el ms sql server pero en gratuito. Si bien intuyo, por eso pregunto, como funciona por ejemplo el sql server a nivel de seguridad. Me explico:
Cuando se instalan servidores de sql, en este caso, en la misma maquina donde se va a correr el programa tiene que tener algun sistema de seguridad que proteja esos datos fuera del acceso de la aplicacion.

Recuerda que hay una versión gratuíta de SQL Server; La versión Express.
Posee algunas limitaciones, pero creo que no afectarían a una aplicación como la que comentas.


La franja horaria es GMT +2. Ahora son las 02:29:16.

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