Traducir

lunes, 30 de septiembre de 2013

FIRMAS DIGITALES

Firma digital



Una firma digital es un mecanismo criptográfico que permite al receptor de un mensaje firmado digitalmente determinar la entidad originadora de dicho mensaje (autenticación de origen y no repudio), y confirmar que el mensaje no ha sido alterado desde que fue firmado por el originador (integridad)





La firma digital se aplica en aquellas áreas donde es importante poder verificar la autenticidad y la integridad de ciertos datos, por ejemplo documentos electrónicos o software, ya que proporciona una herramienta para detectar la falsificación y la manipulación del contenido




Se han establecido una serie de propiedades necesarias que tiene que cumplir un esquema de firma para que pueda ser utilizado. La validez de una firma se ampara en la imposibilidad de falsificar cualquier tipo de firma radica en el secreto del firmante. En el caso de las firmas escritas el secreto está constituido características de tipo grafológico inherentes al signatario y por ello difíciles de falsificar. Por su parte, en el caso de las firmas digitales, el secreto del firmante es el conocimiento exclusivo de una clave (secreta) utilizada para generar la firma. Para garantizar la seguridad de las firmas digitales es necesario a su vez que estas sean:
Únicas: Las firmas deben poder ser generadas solamente por el firmante y por lo tanto infalsificable. Por tanto la firma debe depender del firmante
Infalsificables: Para falsificar una firma digital el atacante tiene que resolver problemas matemáticos de una complejidad muy elevada, es decir, las firmas han de ser computacionalmente seguras. Por tanto la firma debe depender del mensaje en sí.
Verificables: Las firmas deben ser fácilmente verificables por los receptores de las mismas y, si ello es necesario, también por los jueces o autoridades competentes.
Innegables: El firmante no debe ser capaz de negar su propia firma.
Viables: Las firmas han de ser fáciles de generar por parte del firmante.




Clasificación

Podemos construir esquemas de firma digital basándonos en distintos tipos de técnicas:


  • Basándonos en criptografía de clave simétrica.
  • Basándonos en criptografía de clave asimétrica.


Basándonos en criptografía de clave simétrica

Se han propuesto distintos protocolos de firma basados en la criptografía de clave secreta. Sin embargo, a partir de la aparición de la criptografía asimétrica están en recesión debido a su superioridad tanto conceptual como operacional en la mayoría de los contextos de uso.

Los esquemas de firma digital de clave simétrica son los siguientes:

  1. Firma de Desmedt
  2. Firma de Lamport-Diffie
  3. Firma de clave simétrica de Rabin
  4. Firma de Matyas-Meyer

Estos esquemas están basados en el uso una función de un solo sentido (en inglés one-way function). La gran desventaja de este tipo de esquemas es el tamaño de las claves y de las firmas y del hecho de que sólo pueden ser usadas un número fijo de veces (frecuentemente una sola vez). Merkle ha propuesto optimizaciones para este tipo de algoritmos. Bleichenbacher y Maurer han proporcionado una generalización de estos métodos. Estos esquemas han servido como primitivas usadas en construcciones más complejas
Basándonos en criptografía de clave asimétrica


Se han propuesto distintos protocolos de firma basados en la criptografía de clave asimétrica. Los más importantes son los siguientes:



  1. Firma RSA
  2. Firma DSS
  3. Firma ESING
  4. Firma de clave asimétrica de Rabin
  5. Firma ElGamal
  6. Firma con curvas elípticas
  7. Firma de Guillou-Quisquater
  8. Firma de Ohta-Okamoto
  9. Firma de Schnorr
  10. Firma de Okamoto
  11. Firma de Feige-Fiat-Shamir



El uso de criptografía asimétrica para firma digital se basa en el concepto de funciones de un solo sentido con trampa (en inglés trapdoor one-way functions). Son funciones fáciles de computar en una sola dirección y difíciles de computar en otra dirección, excepto para alguien que conozca la información 'trampa'. La información puede entonces ser firmada digitalmente si el signatario transforma la información con su clave secreta (la información trampa). El verificador puede verificar la firma digital aplicando la transformación en el sentido fácil usando la clave pública.



PROTOCOLOS

PROTOCOLOS DE AUTENTIFICACION

Claves secretas compartidas

Supondremos que A y B ya comparten una clave secreta KAB (acordada o bien telefónicamente o en persona pero, en cualquier caso, no a través de la red).

Este protocolo se basa en reto-respuesta:
  • Una parte envía un número aleatorio a la otra.
  • La otra parte "lo transforma" de una manera especial y devuelve el resultado a la parte primera

Notación a utilizar:

Ri son los retos, donde el subíndice identifica el retador: A o B Ki son las claves, donde i indica el dueño; Ks es la clave de la sesión. 
A y B tienen que acordar dos números primos grandes (ng), que deben cumplir ciertas condiciones [RFC 2631]. Estos números pueden ser públicos Cualquiera puede escoger (n, g) y decírselo al otro abiertamente A escoge un número grande x, y lo mantiene en secreto, de la misma manera, B escoge un número secreto grande y 

1.- A inicia el protocolo enviando a B un mensaje que contiene (n, g, gx mod n

2.- B responde con gy mod n

A y B comparten una clave secreta: gxy mod n

Intrusos: C conoce (n, g), pero le falta (x, ygxy mod n: no se conoce un algoritmo práctico para calcular esto cuando n es un número primo muy grande.

Centros de distribución de claves


Validación de identificación usando un centro de distribución de claves (KDC)

En Diffie-Hellman no hay garantías por el ataque de alguien en medio, efectuado por un extraño o intruso. Otro inconveniente, es que para hablarle a n personas de esta manera se requerían n claves (una verdadera carga).

Un enfoque diferente es introducir un centro de distribución de claves fiables (KDC- Key Distribution Center) Cada usuario tiene una sola clave compartida con el KDC La validación de identificación y la administración de claves de sesión ahora pasan a través del KDC. El protocolo de validación e identificación más simple conocido es "la rana de boca amplia". 

KDC o Key Distribution Center es un servicio que solo debe correr en un controlador de dominio o DC y es el responsable de autenticar a los usuarios. KDC se compone de:

  • Authentication Server (AS), que verifica la identidad y proporciona el ticket (TGT) correspondiente si efectivamente la autenticación fue exitosa.
  • Ticket Granting Server (TGS), que emite el ticket cuando se realiza una petición de conexión.