AUTENTICACIÓN CON RSA
El RSA es un sistema criptográfico con clave
pública tanto para encriptado como para autenticación que fue desarrollado por Ron
Rivest, Adi Shamir y Leonard Adleman en 1977.
Se basa en algoritmos matemáticos, en donde el
encriptado y la autenticación se producen sin compartir ninguna clave secreta: cada
persona utiliza sólo las claves públicas de otros usuarios y su propia clave
privada.
Cualquier persona puede enviar un mensaje encriptado o verificar un
documento firmado por otra utilizando sólo claves públicas, pero solamente alguien que
posee la clave privada correcta puede desencriptar o firmar el mensaje.
Cualquier sistema que utilice firmas digitales necesita del RSA o de algún
otro sistema con clave pública.
Supongamos que Alicia quiere enviar un mensaje
firmado a Juan:
- Utiliza una función de "hashing" en el mensaje para crear un resumen del mensaje (message digest) que sirve como huella digital del mensaje.
- Luego, encripta el "message digest" con su clave privada RSA. Esta es la firma digital que envía a Juan junto con el mensaje.
- Juan recibe el mensaje y la firma, desencripta la firma con la clave pública de Alicia para recuperar el "message digest".
- Ejecuta el "hash" del mensaje con la misma función de "hash" que utilizó Alicia y compara el resultado con el "message digest'" desencriptado de la firma.
- Si son iguales, la firma queda verificada y se puede comprobar que el mensaje proviene de Alicia. Si no son iguales el mensaje no fue enviado por Alicia, es falso.
Se debe tener en cuenta que para la
autenticación o firma digital, los roles de las claves pública y privada son los
opuestos que en el encriptado, donde la clave pública se utiliza para encriptar y la
privada para desencriptar.
No es probable que alguien encuentre un mensaje
cuyo "hash" arroje un valor predeterminado o dos mensajes cuyos "hash"
arrojen el mismo valor. Si alguna de estas alternativas fuera posible, un intruso
podría adjuntar un mensaje falso a la firma de Alicia. Las funciones de
"hash" como MD4 y MD5 se han diseñado específicamente para demostrar que
encontrar un número duplicado es casi imposible y se las considera apropiadas para
utilizarlas en criptografía.
La firma digital puede estar acompañada por
uno o más certificados. Un certificado es un documento firmado que atestigua la identidad
del firmante y su clave pública. Su propósito es evitar que una persona se haga pasar
por otra utilizando una clave pública fraudulentamente registrada por ésta en nombre de
otro. Si se incluye un certificado, el receptor del mensaje (o un tercero) puede comprobar
la autenticidad de la clave pública del mensaje, presuponiendo que la clave pública es
confiable.
No hay comentarios:
Publicar un comentario