Generar una contraseña de base de datos a partir de la clave de licencia: ¿una buena idea?

3

Hay una aplicación web que tiene una base de datos SQLServer y la cadena de conexión que usa para acceder a la base de datos no se almacena en ningún archivo de configuración. Más bien, los diseñadores decidieron que sería una buena idea escribir un algoritmo para generar la contraseña a partir de la clave de licencia del cliente.

¿Es esta una técnica común? ¿Es seguro?

    
pregunta GarethOwen 11.02.2013 - 20:22
fuente

4 respuestas

8

La incapacidad de cambiar la clave es el problema principal aquí. Si alguna vez se comprometiera, sería imposible para el cliente cambiar la contraseña de administrador de la base de datos. Yo diría que es una implicación negativa de seguridad bastante grande.

    
respondido por el AJ Henderson 11.02.2013 - 20:48
fuente
5

Si la cadena de conexión se puede generar a partir de la clave de licencia, supongo que cada cliente tendrá su propia clave de licencia, lo que dará como resultado una cadena de conexión distinta para cada cliente ... así que básicamente le está dando a cada cliente una < em> account en la base de datos SQLServer, y su clave de licencia es la "contraseña" para esta cuenta. Esto puede o no ser una buena idea, dependiendo de los detalles de su aplicación web.

Como comentario genérico, esto significa que está mezclando autenticación con autorización , lo cual no es una buena idea. La clave de licencia es autenticación : la utiliza el cliente para demostrar su identidad al servidor. Autorización se trata de decidir qué se le permitirá a un cliente determinado y debidamente autenticado. En la terminología de Active Directory, la diferencia entre la autenticación y la autorización es la diferencia entre verificar la contraseña de un usuario y hacer que el miembro de la cuenta de usuario del grupo "Admins. Del dominio". La autenticación y la autorización son cosas distintas que se mantienen mejor separadas. En su propuesta de licencia-clave-a-cadena de conexión, está utilizando la clave de licencia para ambos, que puede ser restrictiva.

(esta distinción a menudo se hace dolorosamente aguda cuando se trata de PKI : todas las personas que comienzan con PKI intentan en algunos puntos para administrar derechos de acceso con certificados , y luego comienza el sufrimiento.)

    
respondido por el Thomas Pornin 11.02.2013 - 21:03
fuente
2

Esta es una idea horrible por al menos dos razones.

Como ya mencionado por AJ Henderson , la clave de la licencia no se puede cambiar, al menos no sin un intercambio de tiempo con el autor de la aplicación. Entonces, si la contraseña de la base de datos está alguna vez comprometida, el atacante puede tener un día de campo. Un ex administrador descontento conservará el acceso a la base de datos.

Es probable que una clave de licencia no sea tratada como confidencial dentro de una organización. Es el tipo de cosa que normalmente se escribe en las guías de configuración internas. También es probable que encuentre su camino en las listas de activos por parte del departamento de contabilidad.

    
respondido por el Gilles 11.02.2013 - 22:08
fuente
1

Asegure hasta que se publique públicamente que lo están haciendo.

    
respondido por el sup 12.02.2013 - 16:53
fuente

Lea otras preguntas en las etiquetas