Firma digital

Jose Miguel Betoret Cortés
Curso 2002 / 2003
  1. Introducción
  2. La firma manuscrita
  3. La firma electrónica
  4. Conceptos de Criptografía
  5. Autenticación vs Encriptación
  6. Proceso de la Firma Digital
  7. Certificados y Autoridades Certificadoras
  8. Bibliografía

 
 
  1. Introducción


  2. Durante los últimos años, Internet se ha convertido en el canal de comunicación por excelencia. Los usuarios utilizan este medio cada vez con más asiduidad, soltura y descuido. Cierto es que más de la mitad de la información que circula por internet puede considerarse como "no profesional", pero de la misma manera que se puede manipular un correo electrónico entre dos amigos sobre el partido de fútbol del domingo, se pueden manipular unos datos bancarios introducidos en la web de cualquier banco. Además, la privacidad de los mensajes debe mantenerse tanto en las transacciones comerciales, las operaciones profesionales como en los correos personales. 

    El anonimato que provoca la red puede dar lugar a que, cualquier usuario, conociendo algún dato nuestro personal, pueda suplir nuestra identidad y actuar en internet como si realmente fueramos nosotros mismos los que estamos accediendo a la red. 

    Además de esto, cada vez más los usuarios de Internet piden que se puedan realizar cuantos más servicios desde nuestra propia casa a través del ordenador: pedir un certificado de residencia, un duplicado de carnet de conducir, el crédito bancario del que disponemos... 

    Todos estos servicios han propiciado la necesidad de dotar de seguridad un medio inseguro como es Internet. En este artículo nos centraremos en la seguridad del correo electrónico, pudiéndose aplicar muchos de los conceptos utilizados aquí al tráfico de información en general en la red. 

  3. La firma manuscrita. 


  4. La firma es definida como el signo personal distintivo que permite informar acerca de la identidad del autor de un documento y manifestar su acuerdo sobre el contenido del acto. 

    La firma manuscrita tiene las siguientes características: 

    · identificativa: Sirve para identificar quién es el autor del documento. 

    · declarativa: Significa la aceptación del contenido del documento por el autor de la firma. 

    · probatoria: Permite identificar si el autor de la firma es efectivamente aquél que ha sido identificado como tal en el acto de la propia firma. 

    La firma es identificadora, en tanto que asegura la relación jurídica entre el acto firmado y la persona que lo ha firmado, y autenticadora, puesto que el autor del acto expresa su consentimiento y hace propio el mensaje. 

  5. La firma electrónica.


  6. La firma electrónica tiene los mismos cometidos que la firma manuscrita, pero además debe expresar la identidad y la autoría, la autentificación, la integridad, la fecha, la hora y la recepción... 

    Características de la firma electrónica: 

      Debe permitir la identificación del signatario. Es lo que se conoce con el concepto de "autoría electrónica" como la forma de determinar que una persona es quien dice ser. 

      No puede ser generada más que por el emisor del documento, es infalsificable e inimitable. 

      Las informaciones que se generen a partir de la signatura electrónica deben ser suficientes para poder validarla, pero insuficientes para falsificarla. 

      La posible intervención del Notario Electrónico mejora la seguridad del sistema. 

      La aposición de una signatura debe ser significativa y va unida indisociablemente al documento a que se refiere. 

      No debe existir dilación de tiempo ni de lugar entre aceptación por el signatario y la aposición de la signatura. 

    Con la firma electrónica logramos obtener la seguridad de la que carece Internet en sí. Los documentos firmados electrónicamente ya tienen un autor fácilmente identificable, con lo que podemos asegurar la autoría de los mensajes. 

    Recordar que aún así, al igual que con la firma tradicional, puede ocurrir que la firma electrónica haya sido robada por un tercero y las consecuencias que esto conlleva... 

  7. Conceptos de criptografía


  8. La criptografía se ha utilizado desde siempre para impedir a terceros interceptar o manipular mensajes enviados de un individuo a otro. Julio César, por ejemplo, utilizaba un método sencillo para cifrar sus mensajes estratégicos: desplazaba cada caracter de su mensaje un número predefinido de posiciones según el orden natural de las letras en el abecedario. 

    Existen dos tipos de criptografía según la llave utilizada: 

      Criptografía de Llave Simétrica 

      Criptografía de Llave Asimétrica

    La llave es la herramienta que permite cifrar y descifrar un mensaje. Esta llave puede ser la misma para ambas operaciones (llave simétrica) o puede ser diferente (llave asimétrica). 

    En la criptografía de llave simétrica el proceso de cifrado y descifrado se realiza con una misma llave. Esta clave debe ser secreta para evitar el acceso no autorizado a datos confidenciales. Este método es adecuado para dar confidencialidad a la información, y para proporcionar autenticación, pero no es firma pues no soluciona la cuestión del no rechazo de origen. También tiene el problema de la distribución de la clave entre emisor y receptor. 

    La criptografía de llave asimétrica está basada en el uso de un par de claves asociadas, donde una de ellas es pública (y por tanto, conocida por todo el mundo) y la otra es privada (por lo tanto, sólo conocida por el propietario). En este tipo de sistema se cumplen las siguientes condiciones: 

      El mensaje cifrado por una de las llaves solamente se puede descifrar con la otra, y al revés, pero nunca con ninguna otra llave, ni siquiera con la misma llave con la que se codificó el mensaje. 

      El conocimiento de una de las llaves no implica de ningún modo la posibilidad de poder averiguar la otra llave.

    Las dos claves están matemáticamente relacionadas entre sí, pero el diseño y la ejecución en forma segura de un criptosistema asimétrico hace prácticamente imposible que las personas que conocen la clave pública puedan derivar de ella la clave privada. 

    Se define un Criptosistema como la quíntupla:(M,C,K,E,D) donde: 

    • M es el conjunto de todos los posibles mensajes sin cifrar, también llamado texto plano
    • C es el conjunto de todos los mensajes ya cifrados o criptogramas
    • K es el conjunto de todas las claves que se pueden utilizar
    • E es el conjunto de todas las transformaciones de cifrado que se aplican sobre M y dan C. Tiene que haber una transformación diferente para cada una de las claves.
    • D es el conjunto de todas las transformaciones de descifrado.
    Con todos estos elementos, un criptosistema de clave privada se identifica porque se utiliza la misma clave para encriptar y desencriptar. 

    Los criptosistemas de llave pública o criptosistemas asimétricos tienen dos llaves: k y p. Una es la llave privada y la otra la llave pública: 

    En los sitemas asimétricos tenemos las siguientes posibilidades de encriptación: 

    En la firma digital sólo se cumple la primera de las ecuaciones. Lo que nosotros firmamos con nuestra clave privada, cualquiera puede corroborar nuestra firma con nuestra clave privada. 

    Por otra parte, existe por ejemplo el método RSA, donde cualquier documento encriptado con nuestra llave pública puede, además, desencriptarse con nuestra clave privada. 

    En los sistemas de clave pública, como hemos dicho ya, se cumple la propiedad de que, a partir de la llave pública, P, no sea posible obtener la llave privada K: 

    El método de encriptación es público, lo que es privado es la clave (y sólo la privada) 

  9. Autenticación vs Encriptación


  10. Mediante la criptografía de clave privada se consiguen los dos principios básicos de seguridad en la comunicación a través de Internet: la confidencialidad (mediante la encriptación) y la autenticación (autoría del mensaje) 

    Por una parte, podemos garantizar la confidencialidad si encriptamos el mensaje que vamos a enviar mediante la clave pública (que es conocida por todos) del destinatario. Como lo codificado por esta llave sólo se puede descifrar con la llave privada, y como es privada, nos aseguramos que sólo el receptor al que va dirigido el mensaje podrá interpretarlo. 

    Por otra parte, se consigue la autenticación del mensaje al firmar el mensaje que se quiere enviar mediante nuestra clave privada. El receptor, que conoce nuestra clave pública, podrá comprobar que, efectivamente, la clave pública que él conoce como nuestra verifica nuestra firma y, como no se puede verificar con ninguna otra clave, podrá asegurar que nosotros hemos firmado el mensaje. 

  11. Proceso de la Firma digital


  12. El proceso de firmado es una tarea muy compleja computacionalmente como para aplicarlo a todo el mensaje, así que el emisor escoje un "resumen" del mensaje (que será lo que realmente firmará). Este resumen se obtiene mediante una función HASH, que lo que hace es convertir ese texto en otro mucho menor, de forma que sea prácticamente único el resumen correspondiente al mensaje en concreto (cada mensaje un resumen que sólo corresponde a éste). 

    Una función Hash es una función inyectiva que, dado un mensaje cualquiera, el resultado es una cadena de longitud fija. 

    El objetivo básico es evitar la falsificación. La función Hash debe tener las siguientas propiedades: 

    1ª propiedad: el más mínimo cambio en la entrada produce un resultado de la función hash completamente distinto. 

    2ª propiedad: dado un resultado de la función, es imposible construir un mensaje de entrada de esta función hash.

    En la práctica, las funciones hash son de 128 bits o más. Dos ejemplos de funciones hash son: 
    m.d.5: de 128 bits, un algoritmo muy rápido 

    sha.1: de 256 bits, no tan rápido como el anterior.

    Sabemos que un mensaje m puede ser autentificado codificando con la llave privada Kb el resultado de aplicarle una función resumen, EKb(r(m)). Esa información adicional (denominada firma o signatura del mensaje m) sólo puede ser generada por el poseedor de la clave privada Kp

    Cualquiera que tenga la llave pública correspondiente estará en condiciones de decodificar y verificar la firma. Para que sea segura, la función resumen r(x) debe cumplir además ciertas características: 

    1. r(m) es de longitud fija, independientemente de la longitud de m.
    2. Dado m, es fácil calcular r(m).
    3. Dado r(m), es computacionalmente intratable recuperar m.
    4. Dado m, es computacionalmente intratable obtener un m' tal que r(m) = r(m').
    El proceso de firmado de un mensaje es el siguiente: 
      El emisor resume el mensaje a enviar mediante la función Hash. 

      Una vez obtenido el resumen del mensaje completo, lo firma con su llave privada. 

      Después, añade la firma al mensaje en sí

    De forma gráfica lo podemos representar del siguiente modo: 

    Este método tiene dos ventajas: 

    1ª propiedad: es más rápido firmar la función hash que el mensaje entero. 

    2ª propiedad: Quien lo recibe ve el mensaje sin ningún problema, pero si además tiene criptografía, puede comprobar que el mensaje es realmente mío.

    Al llegar al destinatario, éste comprueba que no ha sufrido modificación por el camino de la siguiente forma: 

    A partir de la llave pública del firmante puede extraer, de la firma, la función hash original que el emisor obtuvo a partir del mensaje original. Después, el receptor puede comprobar, a partir del mensaje obtenido, que la función hash de éste sea igual que la obtenida a partir de la llave pública. 

    El problema reside ahora en comprobar que lo firmado por la llave pública de A es realmente de A. Esto se soluciona de dos formas diferentes: 

      Soluciones horizontales: donde los intermediarios aseguran que la llave es válida firmándola ellos. La persona que reconoce la firma, decide si fiarse de la llave firmada por el intermediario. 

      Soluciones verticales: donde se incluye un tercero de confianza (que está en un plano superior, algo similar a un notario). Se acepta todo lo que venga firmado por este notario (Autoridad de Certificación - CA).

  13. Certificados y Autoridades Certificadoras


  14. Un certificado es esencialmente una clave pública y un identificador, firmados digitalmente por una autoridad de certificación, y su utilidad es demostrar que una clave pública pertenece a un usuario concreto. 

    El formato de certificados X.509 (Recomendación X.509 de CCITT:"The Directory - Autentication Framework". 1988) es el más común y extendido en la actualidad. El estándar X.509 sólo define la sintaxis de los certificados, por lo que no está atado a ningún un algoritmo en particular, y contempla los siguientes campos:. 
     
    • Versión.
    • Número de serie.
    • Identificador del algoritmo empleado para la firma digital.
    • Nombre del certificador.
    • Periodo de validez.
    • Nombre del sujeto.
  15. Clave pública del sujeto.
  16. Identificador único de certificador.
  17. Identificador único de sujeto.
  18. Extensiones.
  19. Firma digital de todo lo anterior generada por el certificador.
  20. El mecanismo que debe emplearse para conseguir un certificado X.509 es enviar nuestra clave pública (nunca la privada) a la autoridad de certificación(CA), después de habernos identificado positivamente frente a ella. Existen autoridades de certificación que, frente a una solicitud, generan un par llave pública-privada y lo envían al usuario. Hemos de hacer notar que en este caso, si bien tendremos un certificado válido, nuestro certificador podrá descifrar todos nuestros mensajes. 

    El receptor, una vez que establezca la CA como fiable, reconocerá la firma de cualquier documento nuestro, puesto que tenemos un certificado firmado digitalmente por esta CA (recordemos que cualquier documento firmado, en este caso nuestra firma, indica de una manera fiable su procedencia o autor, por tanto, nuestra firma está reconocida por la CA). 

    ¿Cómo se adquiere un certificado?

    Para adquirir un certificado estándard P10 es bastante fácil, pues las llaves las genera el propio usuario: 
    1. El usuario genera un par de llaves: la privada la guarda y manda la pública a la CA en una petición de certificado.
    2. La autoridad, a partir del nombre del usuario y la llave pública, emite el certificado.
    3. Una vez hecho el certificado, se envia de cualquier manera puesto que es público.
    Para adquirir un certificado P12 es un poco más delicado, pues las llaves las genera la Autoridad de Certificación: 
    • Se nos envia el certificado mediante un paquete (el P12), pero este paquete es delicado, pues contiene tanto la llave pública como la privada. Este paquete se protege mediante una passwd.
    El paquete P12 está cifrado, a diferencia de los otros, que están en binario en formato BER. Para poder visualizarse los certificados en formato BER se utiliza otro formato denominado PEM (apto para ser visualizado por pantalla). Consiste en codificar en Base64 el DER(subconjunto del BER) 
     
  21. Bibliografía


    • Comercio electrónico, Firma digital y autoridades de certificación. / Apol·lonia Martinez Nadal 

      Criptografía y Seguridad en Computadores (3a edición) / Manuel José Lucena López