Cómo proteger Password y Salt en una aplicación implementada

0

Tengo una pregunta con respecto a un paso de protección más que sal / hash. Trabajo en una aplicación que se distribuye a muchos clientes y luego se implementa en sus redes. Si configuro una contraseña en una instancia de la aplicación y luego busco el sal y el hash generados en la base de datos, ¿qué mecanismo me impide copiar el sal y el hash de una contraseña conocida en otra instancia de mi aplicación?

    
pregunta nehpets 24.06.2014 - 15:50
fuente

3 respuestas

2

También puede agregar una sal por instancia. Esto se almacenaría en la configuración de la aplicación y daría como resultado diferentes hashes para cada instancia, incluso para la misma combinación de sal / contraseña.

Ahora surge la pregunta de por qué querrías hacer eso. Si alguien ha obtenido acceso de lectura a una base de datos y acceso de escritura a otra, parece que ya tiene bastante acceso. ¿Por qué copiarían una sal & contraseña en lugar de (digamos) simplemente insertar una nueva cuenta?

    
respondido por el David 24.06.2014 - 16:30
fuente
0

Si tiene una aplicación del lado del cliente, que puede conectarse directamente a su base de datos y ver todos los nombres de usuario y contraseñas, entonces nada lo detendrá.

Esto simplemente significa que ha implementado controles de acceso deficientes, lo que también significa que tiene un modelo de seguridad defectuoso.

    
respondido por el Lucas Kauffman 24.06.2014 - 16:23
fuente
0

Hay muchas formas de evitar que esto suceda.

Nivel de base de datos:

Restricción Podría hacer una restricción en la tabla haciendo que el salt y la contraseña sean únicos y si intenta insertar un duplicado, se generará una excepción.

Procedimiento almacenado o sus consultas Haga una comprobación si existe, como IF EXISTS( SELECT ... si existe, devuelva un error.

Deberá ingresar una identificación única dentro de su aplicación si desea una contraseña por instancia y no un usuario. Si las instancias son todas iguales, ¿por qué no usa un nombre de usuario y contraseña? Si las instancias son diferentes, simplemente sume la instancia de la aplicación y tírela contra la verificación de contraseña y sal.

Por su seguridad, espero que utilice el servicio para acceder a la base de datos y no directamente de los clientes, de lo contrario, tiene un problema más grave en su diseño.

    
respondido por el Paul 24.06.2014 - 17:17
fuente

Lea otras preguntas en las etiquetas