INTECO

Firma PGP

Firma de páginas mediante PGP

Nota: la información de esta sección ha sido obtenida de RedIRIS/Red.es.

¿Para qué firmar las páginas HTML?

Muchas veces es conveniente estar seguros de que la información reflejada en un documento está tal y como fue publicada y que por lo tanto tenemos acceso a la información original.

Este es el fin de la firma mediante PGP de algunas de las páginas HTML del servidor de INTECO, que cualquier usuario pueda comprobar que la información no ha sido modificada. Para realizar esto se pueden emplear diversas técnicas matemáticas, entre ellas la criptografía de clave pública y el programa PGP.

Criptografía de clave pública.

La criptografía de clave pública se basa en la existencia de dos claves o funciones matemáticas con caracteristica fundamental de que lo que solamente es posible decodificar un mensaje empleando la clave complementaria. Se llama de clave pública porque una de ellas se mantiene en secreto, mientras que la otra se hace pública y cualquier persona puede acceder a ella.

A la hora de firmar un documento este se firma con la clave privada y cualquiera puede, empleando la clave pública, comprobar que el documento no ha sido modificado, ya que cualquier modificación en el texto haría que la comprobación del mensaje no fuera correcta.

¿Qué es PGP?

Existen diversos programas que nos permiten firmar digitalmente los documentos. Para la firma de las páginas HTML del servidor se ha optado por emplear el programa PGP. Este programa fue uno de los primeros aparecidos que permitian a los usuarios firmar y codificar documentos. Tiene una larga e interesante historia y existen versiones de dominio público para casi todas las plataformas y sistemas operativos lo que permite comprobar que las páginas no han sido modificadas en cualquier sistema operativo.

¿Por qué no emplear SSL/TLS?

Existe otro mecanismo denominado SSL/TLS que permite mantener conexiones seguras y autenticadas desde navegadores WWW como Mozilla Firefox o Internet Explorer, de una forma hasta más transparente y directa que el mecanismo empleado por INTECO. El problema que tiene este sistema es que requiere que todas las operaciones criptográficas se realizen para cada conexión que se establezca, lo que enlentece la conexión. El sistema empleado en el servidor de INTECO, aunque no tan transparente al navegador solamente firma las páginas una vez (cuando se modifican desde INTECO), y las páginas firmadas se cargan a la misma velocidad que las páginas que no están firmadas.

Validar los contenidos de una página utilizando GPG.

GPG es una implementación libre y gratuita del estándar OpenPGP. Existen versiones descargables para Microsoft Windows y Linux, entre otros. A continuación se muestra un ejemplo de validación utilizando GPG.

  • En primer lugar, debemos guardar el código fuente de la página en un archivo. En Internet Explorer 6 debemos ir a Archivo -> Guardar como y seleccionar la opción Página Web, sólo HTML. En Internet Explorer 7, debemos pulsar en Página -> Guardar como y seleccionar la opción Página Web, sólo HTML. En Mozilla Firefox la operación es idéntica a la utilizada en la versión 6 de Internet Explorer.
  • A continuación debemos importar la clave pública de INTECO, para lo cual ejecutaremos el siguiente comando:

    gpg --keyserver pgp.rediris.es --recv-key 84970D98

  • Por último, ejecutaremos el siguiente comando para validar la página descargada anteriormente, sustituyendo nombre_archivo por la ruta a dicha página:

    gpg --verify nombre_archivo

Si la verificación es correcta, veremos un mensaje parecido al siguiente:

gpg --verify home_inteco.html gpg: Signature made Wed Feb 21 13:56:46 2007 using RSA key ID 84970D98 gpg: Good signature from "Inteco, S. A. <info@inteco.es>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: F78B 4796 75DE 5EF3 5C77 196B 64CC 15DA 8497 0D98

En caso contrario, obtendremos un mensaje de error:

gpg --verify home_inteco_modificada.html gpg: Signature made Wed Feb 21 13:57:48 2007 using RSA key ID 84970D98 gpg: BAD signature from "Inteco, S. A. <info@inteco.es>"