Buenas,
necesito poder firmar un token con una clave privada pero luego comprobarlo con otra clave.
Pensé en clave privada y publica, pero es la publica que cifra y la privada que descifra, y con la privada se puede obtener la publica así que no me sirve.
Un saludo
Cita de: patilanz en 12 Febrero 2018, 02:33 AM
Buenas,
necesito poder firmar un token con una clave privada pero luego comprobarlo con otra clave.
Pensé en clave privada y publica, pero es la publica que cifra y la privada que descifra, y con la privada se puede obtener la publica así que no me sirve.
Un saludo
esa es la teoría de la firma digital y es segura... si quieres firmarlo para eso sirve... cifrarlo es un lio diferente
Tengo 3 programas A,B y C
A genera el token y se lo pasa al B
B se lo pasa a C sin comprobar nada
C comprueba si el token ha sido emitido por A
A puede crear y comprobar tokens
C solo puede comprobarlos
El token no hace falta cifrarlo pero si validarlo
Se puede hacer mediante un certificado digital autofirmado que no esté conectado con ninguna organización?
Un saludo
si, de eso va todo el asunto, C debe conocer la clave publica de A y listo... tambien puedes hacer tipo rsa y con la clave publica de ambos y la clave privada tuya
Cita de: engel lex en 12 Febrero 2018, 19:01 PM
si, de eso va todo el asunto, C debe conocer la clave publica de A y listo... tambien puedes hacer tipo rsa y con la clave publica de ambos y la clave privada tuya
Me lo puedes aclarar un poco mas ?
Usando esto:
Citar# Create the CA Key and Certificate for signing Client Certs
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
# Create the Server Key, CSR, and Certificate
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
# We're self signing our own server cert here. This is a no-no in production.
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
# Create the Client Key and CSR
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr
# Sign the client certificate with our CA cert. Unlike signing our own server cert, this is what we want to do.
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
http://blog.nategood.com/client-side-certificate-authentication-in-ngi
Que parte a que programa(A,B o C) se corresponde? Que certificado sirve como token y como compruebo su origen? No lo tengo muy claro
Muchas gracias
https://raymii.org/s/tutorials/Sign_and_verify_text_files_to_public_keys_via_the_OpenSSL_Command_Line.html (https://raymii.org/s/tutorials/Sign_and_verify_text_files_to_public_keys_via_the_OpenSSL_Command_Line.html)
si es por comandos allí la info...
Cita de: engel lex en 13 Febrero 2018, 00:53 AM
https://raymii.org/s/tutorials/Sign_and_verify_text_files_to_public_keys_via_the_OpenSSL_Command_Line.html (https://raymii.org/s/tutorials/Sign_and_verify_text_files_to_public_keys_via_the_OpenSSL_Command_Line.html)
si es por comandos allí la info...
Ya funciona, firmo un archivo con clave privada y la compruebo con la publica, el archivo contiene los datos del token. Me puedes dar consejos de seguridad como por ejemplo en los hash el uso del salt y el hmac.
Un saludo
hmac ya es un sistema de "autofirmado" simetrico con un clave y contraseña, ya con el firmado que tienes, debe ser bastante, aunque si quieres asegurar, puedes usarlo, pero sería mejor transferir sobre ssl