Imagen ornamentalMuchas personas obtienen un certificado digital de la Fábrica Nacional de Moneda y Timbre porque permite identificarte, y por lo tanto acceder, en un montón de sitios relacionados con la Administración Pública Española. Lo que muchas de estas personas no saben es que además sirve para firmar documentos y contratos con total validez legal en España.

El reconocimiento legal data de al menos el año 1999, y desde 2014, además, se ha adoptado la Regulación eIDAS (Regulación de la EU Nº 910/2014). En esta regulación se permite la Firma Electrónica Calificada (QES), es decir, aquella que se produce con un dispositivo de creación de firma electrónica calificada y que está respaldada por un certificado emitido por proveedor de servicios de confianza calificado (que en este caso sería la FNMT 🤫). Ojo, yo no soy abogado, así que no me traslades preguntas de índole legal sobre esto, sólo técnicas ¿de acuerdo?

Como verás, firmar un documento con tu certificado digital es un proceso muy sencillo, y te vale para firmar todo tipo de contratos y documentos privados: acuerdos comerciales, contratos de colaboración, acuerdos entre partes... De hecho, si tienes un certificado digital de representante de una entidad (muy parecido a obtener el de una persona física, pero con un coste anual y algo más de papeleo), puedes firmar contratos y otros documentos como representante de tu empresa con poderes, y con toda la validez.

IMPORTANTE: existen ciertos tipos de documentos que no se pueden firmar privadamente de manera legal, como por ejemplo herencias, poderes notariales, acuerdos matrimoniales... En realidad sí deberían ser legales si se presentan ante un notario para elevarlos a públicos o para que dé fe de los mismos, pero muchos notarios y registradores de la propiedad son reacios a aceptarlos (supongo que porque no tienen ni idea de cómo funciona todo esto o simplemente porque atenta contra su actividad tan privilegiada atada a mecanismos del pasado). Todos los detalles aquí.

 En primer lugar te voy a contar técnicamente lo básico sobre cómo funciona una firma digital, y luego te explicaré paso a paso cómo usar un certificado para  firmar un documento o archivo, de dos formas diferentes.

Si no te interesa la parte "técnica" (pero debería, por que es muy interesante), puedes saltar directamente a los vídeos prácticos yendo al final del artículo.

Cómo funciona la firma digital

La firma digital se basa en el uso de de dos técnicas criptográficas muy poderosas: la criptografía de clave pública y los resúmenes digitales o hashes.

Hash o resumen digital

Empecemos por los últimos. Un hash o resumen digital es una cadena de texto de longitud constante que se obtiene a partir de un determinado contenido y que tenemos garantizado que es única para este. Además no es posible averiguar cuál es el contenido del que proviene (tienen otras muchas propiedades, pero a efectos prácticos y para lo que nos interesa, es suficiente con saber esto).

Es decir, una función de hash toma una determinada entrada (por ejemplo: "En un lugar de La Mancha") y devuelve una cadena de una determinada longitud (por ejemplo "7IbBkQI0VsubPlQT0QDiYCXKr8sNH1bo3+26VbjSinU=").

A partir de esta cadena resultante es imposible averiguar cuál es el contenido que la ha generado. Pero además, variando la más mínima cosa de ese contenido de origen, se obtiene un resumen digital totalmente distinto, que no tiene nada que ver con el anterior.

En nuestro ejemplo, si cambiamos la última letra de la frase por "En un lugar de La Manche", el nuevo hash obtenido es "2sen5kmEgGBerBUUJRB2ErVrgeRpBXCeWoyEmEQaDuA=" que, como puedes observar, no tiene nada en común con el anterior, y tampoco hay manera de relacionarlos.

Es fácil darse cuenta de que esto tiene unas aplicaciones prácticas tremendas, y enseguida las veremos para el caso concreto de la firma digital de documentos.

Existen multitud de algoritmos de hashing: CRC-xx, MD5, SHA1, SHA256, SHA512, SWIFTT, Whirlpool... Aquí tienes una buena lista. En la actualidad se suelen utilizar sobre todo SHA256 o SHA512.

Criptografía de clave pública o asimétrica

La criptografía tradicional, para ocultar secretos, se basaba en la existencia de una única clave que nos permitía cifrar un determinado contenido de modo que solamente los que conociesen dicha clave podrían descifrarlo. Este concepto presenta muchos problemas, siendo el más importante de ellos la dificultad que tiene intercambiar esas claves, sobre todo cuando hay mucha gente involucrada.

Piensa, por ejemplo, en la segunda guerra mundial. Los alemanes tenían la famosa máquina Enigma que mediante un libro de claves, que cambiaban cada día, les permitía comunicarse de manera segura sin que el enemigo pudiese saber de qué hablaban. Sin embargo tenía un único punto de fallo: el libro de códigos. Si caía en manos enemigas las comunicaciones de ese mes se cortaban. Además, distribuirlos de manera segura era todo un reto.

La criptografía de clave pública cambió todo esto. Aunque sus fundamentos teóricos datan ya del siglo 19, no fue hasta los años '70 del siglo XX cuando se empezó a desarrollar seriamente, y no fue hasta los años '90 y el surgimiento de Internet cuando empezó a utilizarse de manera masiva.

Sin entrar tampoco en profundidad alguna, la criptografía de clave pública se basa en la existencia de dos claves: una privada que solo conoces tú, y otra pública que conoce todo el mundo. Ambas claves están relacionadas de manera que lo que se cifra con una se descifra con la otra y viceversa.

Sin entrar en ningún detalle, ambas claves están relacionadas mediante unas operaciones matemáticas (basada en lo que se denomina aritmética de módulo) y, si son suficientemente largas, es computacionalmente imposible averiguar la una a partir de la otra por la dificultad inherente que tiene la operación de obtener factores comunes.

Esto es una propiedad alucinante, que lo cambia todo. Con este tipo de criptografía intercambiar mensajes entre dos partes es muy sencillo: si quiero comunicarme contigo de manera segura, cifro el mensaje con tu clave pública y solo tú, que conoces la clave privada complementaria, podrás descifrarlo. Y viceversa: para enviarme un mensaje cifrado lo encriptas con mi clave pública y solo yo podré leerlo gracias a mi clave privada. ¡Te cargas de un plumazo la necesidad de distribuir claves!

De hecho, la cosa va más allá aún, ya que aparte de la comunicación segura, esta propiedad nos permite conseguir también la autenticación y el no repudio, es decir, saber que nos comunicamos con quién creemos que nos estamos comunicando y que esta persona no pueda negar que ha sido quién creó la comunicación (no repudio).

¡Es la base del funcionamiento seguro de Internet y, por ende, de la sociedad, la economía y el mundo entero!

Para verificar que las claves públicas son las adecuadas existe una serie de entidades certificadoras (como puede ser la FNMT) que son confiables y se organizan en jerarquías y que se consultan a la hora de verificar una pareja de claves pública/privada. Esto requería una explicación algo más detallada pero para el tema que nos ocupa no es relevante y no voy profundizar más. Si te interesa, la Wikipedia en español tiene un artículo bastante sencillo de seguir que lo explica muy bien.

Lo importante para lo que nos ocupa es que , cuando obtienes un certificado digital, por ejemplo el de la FNMT, básicamente lo que lleva dentro es una pareja de claves, una pública y una privada, para poder cifrar información con ellas (lleva muchas otras cosas, como tus datos básicos, para qué sirve el certificado, quién lo emitió, hasta cuándo es válido... pero lo importante es la clave privada). La clave pública la conoce todo el mundo porque la entrega la FNMT a cualquier programa que la pida (por ejemplo, cuando se va a verificar una firma). Y la clave privada solamente la conoces tú.

Combinando ambas técnicas

La firma digital consiste en el uso combinado de los resúmenes digitales y de la criptografía de clave pública.

Cuando firmas un documento el proceso básico es el siguiente:

  1. Se calcula un resumen digital del contenido. O sea, se toma todo el contenido que haya, incluyendo texto, imágenes, archivos embebidos... y se usa un algoritmo de hash para generar un código único que es el resumen digital del contenido. En realidad, se calcula el resumen general del contenido sumado a algunos metadatos más, como por ejemplo la fecha y hora exactas en la que se va a hacer la firma.
  2. Se cifra con tu clave privada este resumen digital del contenido. Es decir, se obtiene un nuevo dato que es el que se almacena con el contenido que estás firmando. En el caso de un PDF se introduce en un nuevo PDF firmado, que contiene el contenido original más la firma. En otros sistemas se puede generar un archivo aparte con la firma.

Listo. A partir de ese momento cualquiera que quiera verificar la firma solo tiene que: calcular el resumen digital con el mismo método y descifrar con tu clave pública el que va con el archivo. Si coinciden es que la firma es válida.

Y esto ¿cómo garantiza nada? Pues muy sencillo. A partir del momento en el que un documento está firmado, tiene garantizadas las siguientes propiedades gracias a las maravillosas propiedades de los hashes y de la criptografía asimétrica:

  • Integridad: si alguien modifica en lo más mínimo el contenido (por ejemplo, edita el PDF y le cambia el precio a un producto que has vendido), el resumen digital que se obtendría sería totalmente diferente, como hemos visto. Alguien que compruebe el hash obtenido en el nuevo contenido no le coincidirá con el que va en la firma. Por lo tanto, a partir del momento en que se firma un documento, archivo o dato, este es invariable y si alguien intenta modificarlo, se detecta de inmediato porque el hash no coincide. El documento es infalsificable.
  • Autenticidad y no repudio: dado que se firma con tu clave privada, nadie más que tú ha podido firmarlo, por lo que es fácil verificar que has sido tú: simplemente se intenta descifrar la firma con tu clave pública. Si no está creada con tu clave privada dará un error. Si funciona, es que lo has firmado tú.

O sea, que la firma electrónica es mucho más segura que la firma tradicional, porque es infalsificable, identifica al firmante de manera inequívoca y éste no puede negar que ha sido él el que lo ha firmado. Lo extraño e inexplicable es que siga siendo la excepción y no la norma a la hora de firmar cualquier documento.

Cómo firmar un PDF (en el ordenador)

Vale, este sistema solamente vale para PDFs y solamente en un ordenador de sobremesa con Windows, macOS o Linux, ya que no existen versiones móviles para iOS o Android que hagan esto (Adobe tiene un producto de firma manuscrita digitalizada para móviles, pero no tiene nada que ver).

Tienes que tener instalado Adobe Acrobat Reader, que es un programa gratuito. Se pueden firmar PDFs con muchos otros programas, pero cada uno tiene su forma de hacerlo y me voy a ceñir al oficial por ser, eso, el del fabricante, y porque es el más extendido del mundo.

Te lo explico con detalle en este vídeo:

Cómo firmar otros contenidos con Autofirma

Además puedes firmar tanto PDFs como otros contenidos directamente con el programa Autofirma del Gobierno. Ya sabes que no soy un gran fan del mismo por todos los problemas que suele dar, pero dado que si tienes un certificado digital de la FNMT es muy probable que lo tengas instalado ya que te hará falta para muchos trámites, vamos a sacarle partido 😉

En este vídeo te enseño cómo firmar cualquier tipo de archivo incluso también PDFs, con Autofirma:

¡Espero que te resulte útil!

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor