Recomendación para Almacenar clave privada

18/02/2008 - 18:58 por jcpc91 | Informe spam
Hola grupo
Alguien que me pudierá dar una recomendación sobre las llaves públicas
y privadas y en particular sobre su almacenaminento lo que sucede es
que estoy desarrollando una aplicación que utiliza el algoritmo RSA y
está se encargade crear la llave pública y privada y toda va bien ya
obtengo la llave pública y privada pero ahora la duda que tengo es
donde almacenar las llaves para cada usuario e estado pensando
almacenarlo en un archivo de texto, en el registro de windows, darcelo
al usuario, almacenarlo como una variable en la aplicación pero como
no soy experto en seguridad me suena que todas estás formas no son
seguras por más que utilices algoritmos a prueba de hackers alguna
recomendación de los que ya hayan enfrentado este dilema

Preguntas similare

Leer las respuestas

#1 Jesús López
18/02/2008 - 20:52 | Informe spam
Almacenar secretos siempre es muy problemático, la única manera de asegurar
un sercreto es no almacenarlo en absoluto. Pero en tu caso, ya que no te
queda otra que almacenalo y ya que las claves están asociadas a un usuario
en cuestión, yo lo almacenaría en el registro de Windows en la clave
CURRENT_USER\SOFTWARE\. y además lo almacenaría crifrado por medio de
DPAPI a nivel de usuario utilizando ProtectedData.Protect( userData,
optionalEntropy, DataProctectionScope.CurrentUser ). De esta manera sólo el
usuario en cuestión puede obtener la clave almacenada, sin embargo,
cualquier proceso que se ejecute con las credenciales del usuario podría
obtener la clave si conoce optionalEntropy. Así que si de verdad quieres
protección, tendrías que cifrar la clave basándote en una contraseña que
sólo supiera el usuario y que proporcionara cuando tu programa necesitara
acceder a la clave RSA.



Saludos:

Jesús López
www.solidq.com



escribió en el mensaje
news:
Hola grupo
Alguien que me pudierá dar una recomendación sobre las llaves públicas
y privadas y en particular sobre su almacenaminento lo que sucede es
que estoy desarrollando una aplicación que utiliza el algoritmo RSA y
está se encargade crear la llave pública y privada y toda va bien ya
obtengo la llave pública y privada pero ahora la duda que tengo es
donde almacenar las llaves para cada usuario e estado pensando
almacenarlo en un archivo de texto, en el registro de windows, darcelo
al usuario, almacenarlo como una variable en la aplicación pero como
no soy experto en seguridad me suena que todas estás formas no son
seguras por más que utilices algoritmos a prueba de hackers alguna
recomendación de los que ya hayan enfrentado este dilema
Respuesta Responder a este mensaje
#2 Alejandro Mezcua
19/02/2008 - 10:46 | Informe spam
No se los detalles de tu aplicación, pero muchas veces lo que se hace es
generar las claves cuando se vayan a usar y deshecharlas después.

Una aproximación similar es la que usa SSL por ejemplo, donde el servidor
dispone de un certificado (las claves asimétricas están firmadas por un
tercero). El cliente inicia la conexión, el servidor le envía la clave
pública firmada, el cliente verifica la firma y crea un par de claves
simétricas (que son más rápidas). El cliente codifica la clave simétrica con
la clave pública, le envía la clave simétrica cifrada al servidor que la
descifra con su clave privada (el único que puede descifrarla) y a partir de
ahí se usa la clave simétrica en el cifrado, que se deshecha cuando se
termina la sesión.

Si necesitas almacenarlas por lo que sea, puedes usar la aproximación de
Jesús.

Un saludo,

Alejandro Mezcua
MVP Device Application Development
http://www.byteabyte.net/

wrote in message
news:
Hola grupo
Alguien que me pudierá dar una recomendación sobre las llaves públicas
y privadas y en particular sobre su almacenaminento lo que sucede es
que estoy desarrollando una aplicación que utiliza el algoritmo RSA y
está se encargade crear la llave pública y privada y toda va bien ya
obtengo la llave pública y privada pero ahora la duda que tengo es
donde almacenar las llaves para cada usuario e estado pensando
almacenarlo en un archivo de texto, en el registro de windows, darcelo
al usuario, almacenarlo como una variable en la aplicación pero como
no soy experto en seguridad me suena que todas estás formas no son
seguras por más que utilices algoritmos a prueba de hackers alguna
recomendación de los que ya hayan enfrentado este dilema
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida