Foros del Web » Programación para mayores de 30 ;) » Java »

Orientación general Java Derby encriptar contraseñas

Estas en el tema de Orientación general Java Derby encriptar contraseñas en el foro de Java en Foros del Web. Hola a todos, sigo aprendiendo y estoy agradecida por la ayuda de este foro. Necesito generar el típico módulo de usuario, es decir, dar de ...
  #1 (permalink)  
Antiguo 23/08/2014, 09:10
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 14 años, 10 meses
Puntos: 15
Orientación general Java Derby encriptar contraseñas

Hola a todos, sigo aprendiendo y estoy agradecida por la ayuda de este foro.

Necesito generar el típico módulo de usuario, es decir, dar de alta un usuario y luego volver a acceder, con los campos ID, Alias y Password.

Trabajo en Netbeans 8 y con Derby como base de datos.

Vi que se puede encriptar la base de datos directamente, o sea, no solo el campo Password.

Necesito orientación general acerca de bibliotecas para encriptar los datos, si hay tutoriales que me guíen un poco o alguna otra herramienta. Supongo que al ser algo tan general para los programas debe de haber muchas opciones para implementar.

O si directamente ataco por este lado:
http://docs.oracle.com/javadb/10.4.2...cure97760.html
  #2 (permalink)  
Antiguo 24/08/2014, 22:03
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 1 mes
Puntos: 260
Sonrisa Respuesta: Orientación general Java Derby encriptar contraseñas

Hola,

Esas son tres cosas diferentes, una es encriptación de los datos (con el fin de que nadie pueda ver la información, aunque tenga acceso físico pero no autorizado a dichos datos), otra es la autenticación del los usuarios (con el fin de indicar quien es quien) y la otra son los permisos (saber quien puede accesar qué cosa).

Eso se divide en varios niveles, de los cuales, dependiendo del nivel de seguridad que quieras implementar tendrás que llevar a cabo; entre los cuales existen:
  • Encriptar físicamente los datos de la base de datos (como el vínculo que mostraste).
  • Crear los usuarios lógicos de la base de datos, (en este caso la autenticación la hace la base de datos, pero tendrías que darle permiso a cada objeto de la base de datos por usuario o grupos de trabajo).
  • Crear tu tabla de usuario con permisos, encriptando la contraseña, independientemente de la encriptación de la base de datos. En este caso, posiblemente, solamente tendrías que crear un usuario lógico de la base de datos para autenticar ante Derby, y usar este en todas la conexiones.
O implementar una mezcla que mejor se adapte a tus necesidades. En el caso de las bases de datos embebidas y que posiblemente van a estar los datos físicos al alcance de los usuarios del sistema operativo, posiblemente también tendrás que ver los permisos de los usuarios del sistema operativo hacia la ubicación física de los archivos de Derby.

Un detalle a tomar en cuenta es que la complejidad de la seguridad es inversamente proporcional a la facilidad de instalación y mantenimiento de un sistema.

Todo lo que necesitas para implementar cualquiera de las opciones lo encuentras en las librerías de Java y Apache Derby, no necesitas ninguna librería adicional. Aunque podrías investigar sobre Apache Codec, Spring Framework, y otras librerías que te van a facilitar el desarrollo, aunque de nuevo, la curva de aprendizaje de nuevas librerías va a ser proporcional a la complejidad de lo que quieras realizar.

Saludos,
  #3 (permalink)  
Antiguo 25/08/2014, 06:56
Avatar de lufe  
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 14 años, 10 meses
Puntos: 15
Respuesta: Orientación general Java Derby encriptar contraseñas

Excelente HackmanC!!

Lo que necesito no es nada superseguro, solo que como bien dices, alguien con acceso físico al lugar donde está guardada la base de datos no pueda leer los datos.

Cita:
Encriptar físicamente los datos de la base de datos (como el vínculo que mostraste).
Comprendido!

Cita:
Crear los usuarios lógicos de la base de datos, (en este caso la autenticación la hace la base de datos, pero tendrías que darle permiso a cada objeto de la base de datos por usuario o grupos de trabajo)
En mi proyecto no creo que sea tan complicado, cada usuario una vez que se identifica puede ingresar, modificar y consultar registros, pero solo "sus registros". Es como si fuera una especie de agenda, el usuario se identifica y puede ingresar registros que en si son citas, ya sabes, el asunto, la fecha del evento, fecha de un recordatorio, un campo de texto, etc...
Cada usuario tiene acceso solo a sus registros, supongo que lo solucionaré agregando a cada registro de cada cita el ID del usuario propietario, así luego el usuario Pedro que internamente es el ID 6 sólo accede a los registros que tengan esa ID.

Cita:
En el caso de las bases de datos embebidas y que posiblemente van a estar los datos físicos al alcance de los usuarios del sistema operativo, posiblemente también tendrás que ver los permisos de los usuarios del sistema operativo hacia la ubicación física de los archivos de Derby.
Sólo va a funcionar en Windows y supongo que si empaqueto todo en un mismo directorio no habría problemas. El programa se instala en Mis Documentos y allí no hay problema de permisos.

Cita:
Un detalle a tomar en cuenta es que la complejidad de la seguridad es inversamente proporcional a la facilidad de instalación y mantenimiento de un sistema.
OK entiendo.

Cita:
Todo lo que necesitas para implementar cualquiera de las opciones lo encuentras en las librerías de Java y Apache Derby, no necesitas ninguna librería adicional.
Mil gracias, tu respuesta me enfoca mejor en dónde debo estudiar.


Tengo muchas cosas que aprender pero tu orientación general me facilita por dónde buscar.

Estuve probando ver el contenido de una base de datos Derby que no está encriptada y aún así es complicado porque cada tabla se guarda en un archivo diferente y tienes que estar abriendo cada archivo con un editor de texto hexadecimal. Para los efectos que yo preciso esa "seguridad" ya estaría bien pero igual voy a encriptar la base de datos.


Etiquetas: contraseñas, encriptar, general, netbeans, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.