Encriptar clave de Usuario

01/03/2004 - 13:51 por José G. Díaz U. | Informe spam
Saludos.

Estoy creando el módulo de administración de usuarios de un sistema que
tiene como manejador SQL Server 2000.

He estado investigando acerca de encriptación pero me parece que debería
haber una forma más fácil de hacer esto:

Quisiera que las contraseñas que se almacenan en la tabla USUARIOS sea
incomprensibles para el Administrador de la Base de Datos, es decir, que la
persona que tiene el control sobre el SQL Server 2000 no pueda conocer
realmente el password del usuario y en caso de tener que recordarlo el
Administrador solo pueda decirle: "Lo siento, no se su clave. Lo máximo que
puedo hacer es sobreescribirla y luego usted la cambia."

Cómo sería el proceso de comparación desde la aplicación ASP.net hacia el
SQL Server?

Gracias!

José

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
01/03/2004 - 14:52 | Informe spam
Mira, para empezar yo usaria o autentificacionWindows o Sql en su defecto
pero no armaria una tabla con claves y usuarios, lo que yo hago es esto por
ej si no uso la autentificacion Windows.

Los usuarios de mi aplicacion los creo via un Store (Que esta encriptado),
tambien a esto le agrego un user_g_id que basicamente lo que hace es esto:

Con el User_id como entrada, con algun algoritmo genero esto numerito y al
abrir mi aplicacion hago la inversa, o sea ese numerito es un algoritmo del
user_id, con esto trato de evitar (jamas en un 100%) que me generen usuarios
via Sql y los puedan usar en mi aplicacion.

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"José G. Díaz U." escribió en el mensaje
news:egnM5v4$
Saludos.

Estoy creando el módulo de administración de usuarios de un sistema que
tiene como manejador SQL Server 2000.

He estado investigando acerca de encriptación pero me parece que debería
haber una forma más fácil de hacer esto:

Quisiera que las contraseñas que se almacenan en la tabla USUARIOS sea
incomprensibles para el Administrador de la Base de Datos, es decir, que


la
persona que tiene el control sobre el SQL Server 2000 no pueda conocer
realmente el password del usuario y en caso de tener que recordarlo el
Administrador solo pueda decirle: "Lo siento, no se su clave. Lo máximo


que
puedo hacer es sobreescribirla y luego usted la cambia."

Cómo sería el proceso de comparación desde la aplicación ASP.net hacia el
SQL Server?

Gracias!

José







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 23/02/2004
Respuesta Responder a este mensaje
#2 ulises
01/03/2004 - 15:33 | Informe spam
Hay varias situaciones en las cuales es necesaria una
tabla que contenga información usuario/password y no
necesariamente sirven para efectos de autenticación,
tenemos por ejemplo las típicas páginas Web que te
permiten crear usuarios o perfiles de acceso, no se crean
cuentas de acceso ya que no es necesario pero si se debe
almacenar la clave creada en forma encriptada. Como
indicas que estás usando ASP .Net puedes revisar la clase
Cryptography la cual te permitirá encriptar y desencriptar.

Saludos,
Ulises

Mira, para empezar yo usaria o autentificacionWindows o


Sql en su defecto
pero no armaria una tabla con claves y usuarios, lo que


yo hago es esto por
ej si no uso la autentificacion Windows.

Los usuarios de mi aplicacion los creo via un Store (Que


esta encriptado),
tambien a esto le agrego un user_g_id que basicamente lo


que hace es esto:

Con el User_id como entrada, con algun algoritmo genero


esto numerito y al
abrir mi aplicacion hago la inversa, o sea ese numerito


es un algoritmo del
user_id, con esto trato de evitar (jamas en un 100%) que


me generen usuarios
via Sql y los puedan usar en mi aplicacion.

Bye


Salu2
-


-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
-


-


"José G. Díaz U." escribió en el


mensaje
news:egnM5v4$
Saludos.

Estoy creando el módulo de administración de usuarios




de un sistema que
tiene como manejador SQL Server 2000.

He estado investigando acerca de encriptación pero me




parece que debería
haber una forma más fácil de hacer esto:

Quisiera que las contraseñas que se almacenan en la




tabla USUARIOS sea
incomprensibles para el Administrador de la Base de




Datos, es decir, que
la
persona que tiene el control sobre el SQL Server 2000




no pueda conocer
realmente el password del usuario y en caso de tener




que recordarlo el
Administrador solo pueda decirle: "Lo siento, no se su




clave. Lo máximo
que
puedo hacer es sobreescribirla y luego usted la cambia."

Cómo sería el proceso de comparación desde la




aplicación ASP.net hacia el
SQL Server?

Gracias!

José







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date:


23/02/2004


.

Respuesta Responder a este mensaje
#3 Javier Loria
01/03/2004 - 15:37 | Informe spam
Hola Jose:
En principio a parte de recomendarte usas la seguridad de Windows (para
que quieres inventar algo que Microsoft ya hizo), tendras otros problemas
mas adelante, como se fijaran las politicas de cambio de password, como se
fijaran el largo minimo de las claves, como garantizar que los cambios de
las claves sean "reales" y no el usuario cambiando de vuelta la clave a la
que tenia hace solo 5 segundos, etc
Si deseas siempre hacerlo no lo hagas en SQL ya que quedaras muy
expuesto a decodificacion, hazlo desde la aplicacion. En ASP.NET podras usar
el namespace System.Security.Crypography que tiene varias clases con
diferentes algoritmos de encriptamiento.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

José G. Díaz U. escribio:
Saludos.

Estoy creando el módulo de administración de usuarios de un sistema
que tiene como manejador SQL Server 2000.

He estado investigando acerca de encriptación pero me parece que
debería haber una forma más fácil de hacer esto:

Quisiera que las contraseñas que se almacenan en la tabla USUARIOS sea
incomprensibles para el Administrador de la Base de Datos, es decir,
que la persona que tiene el control sobre el SQL Server 2000 no pueda
conocer realmente el password del usuario y en caso de tener que
recordarlo el Administrador solo pueda decirle: "Lo siento, no se su
clave. Lo máximo que puedo hacer es sobreescribirla y luego usted la
cambia."

Cómo sería el proceso de comparación desde la aplicación ASP.net
hacia el SQL Server?

Gracias!

José
Respuesta Responder a este mensaje
#4 José G. Díaz U.
01/03/2004 - 16:36 | Informe spam
Muchas gracias compañeros!

Esto ha sido de mucha ayuda...sobretodo para ver otras opciones.

Voy a revisar esta clase Cryptography a ver qué me ofrece.

Suerte!

José

"ulises" escribió en el mensaje
news:49ba01c3ff9a$2c58cf10$
Hay varias situaciones en las cuales es necesaria una
tabla que contenga información usuario/password y no
necesariamente sirven para efectos de autenticación,
tenemos por ejemplo las típicas páginas Web que te
permiten crear usuarios o perfiles de acceso, no se crean
cuentas de acceso ya que no es necesario pero si se debe
almacenar la clave creada en forma encriptada. Como
indicas que estás usando ASP .Net puedes revisar la clase
Cryptography la cual te permitirá encriptar y desencriptar.

Saludos,
Ulises

Mira, para empezar yo usaria o autentificacionWindows o


Sql en su defecto
pero no armaria una tabla con claves y usuarios, lo que


yo hago es esto por
ej si no uso la autentificacion Windows.

Los usuarios de mi aplicacion los creo via un Store (Que


esta encriptado),
tambien a esto le agrego un user_g_id que basicamente lo


que hace es esto:

Con el User_id como entrada, con algun algoritmo genero


esto numerito y al
abrir mi aplicacion hago la inversa, o sea ese numerito


es un algoritmo del
user_id, con esto trato de evitar (jamas en un 100%) que


me generen usuarios
via Sql y los puedan usar en mi aplicacion.

Bye


Salu2
-


-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
-


-


"José G. Díaz U." escribió en el


mensaje
news:egnM5v4$
Saludos.

Estoy creando el módulo de administración de usuarios




de un sistema que
tiene como manejador SQL Server 2000.

He estado investigando acerca de encriptación pero me




parece que debería
haber una forma más fácil de hacer esto:

Quisiera que las contraseñas que se almacenan en la




tabla USUARIOS sea
incomprensibles para el Administrador de la Base de




Datos, es decir, que
la
persona que tiene el control sobre el SQL Server 2000




no pueda conocer
realmente el password del usuario y en caso de tener




que recordarlo el
Administrador solo pueda decirle: "Lo siento, no se su




clave. Lo máximo
que
puedo hacer es sobreescribirla y luego usted la cambia."

Cómo sería el proceso de comparación desde la




aplicación ASP.net hacia el
SQL Server?

Gracias!

José







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date:


23/02/2004


.

Respuesta Responder a este mensaje
#5 Rodrigo Corral González [MVP]
01/03/2004 - 17:52 | Informe spam
Lo que debes guardar es un Hash de la Password y no la password en sí.
Puedes usar la función HashPasswordForStoringInConfigFile para obtener este
hash. Cuando el usuario te proporciona la contraseña simplemente obten su
hash y comparale con el hash almacenado en la base de datos. Para alguien
que vea el hash en la base de datos sera imposible deducir la password.

Puedes saber mas sobre este tema en los ariculos siguiente:

Security Briefs: Hashing Passwords, The AllowPartiallyTrustedCallers
Attribute -- MSDN Magazine, August 2003
http://msdn.microsoft.com/msdnmag/i...rityBriefs

Protect It: Safeguard Database Connection Strings and Other Sensitive
Settings in Your Code -- MSDN Magazine, November 2003
http://msdn.microsoft.com/msdnmag/i...ctYourData

Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida