miércoles, 18 de abril de 2012

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