¿Como funciona la firma digital y el certificado digital?

Mantenimiento informático de calidad Horas ilimitadas Visitas mensuales Sin permanencia Siempre el mismo técnico Puesta a punto inicial

¿Como funciona la firma digital y el certificado digital?

Alan Turing

La firma digital propiamente dicha es un conjunto de datos que permiten identificar de una forma segura la procedencia del documento firmado. Los datos que forman una firma son son el nombre, dni en el caso de personas física, cif en el caso de personas jurídicas, fechas de creación, correo electrónico y datos de este tipo. La firma digital esta incluida en un fichero llamado certificado digital, el cual tiene unos elementos que la darán las garantías de seguridad.

Pero, y aquí es donde viene el follón, ¿como sabemos que los datos que aparecen en la firma son realmente de quien dice que es?, o dicho de otra forma como sabemos que no se han cambiado datos en la firma.

Pues bien esto se realiza con un mecanismo de encriptación a través de un algoritmo basado en clave publica y clave privada.

Firma digital

El secreto de esta mecánica se basa en que cualquiera puede conocer una de las claves pero no puede obtener la otra, y una de esas clave en principio la publica permite solo desencriptar los datos, y la privada permite encriptarlos. De esta forma se puede enviar un mensaje junto con su clave publica por un canal inseguro porque lo único que puede hacer es desencriptarle pero no puede usarla que crear

Esto se basa en la «magia» de los números primos, una clave publica se basa en multiplicar 2 números primos, este tipo de numero es un numero enorme, mínimo 2^512 aunque ahora mismo se recomiendan 2^2048 de esta forma para conseguir ese numero se necesita una gran capacidad de cálculo.

Si consideramos que el número de átomos del universo es de 10^80, lo que estamos obteniendo son 2 número primos (es decir números que no son producto de ningún otro) de un tamaño de de 2^300 (mas o menos).

Para saber el número de dígitos en base 10, de una cifra solo hay que multiplicar el exponente por el logaritmo de la base en este caso 1024 * log 2 = 620 es decir 10^200

Al obtener 2 números primos, estamos obteniendo la base de nuestra clave privada, y al multiplicarlos, obtenemos la clave publica. Que no es un número primo, pero tampoco es un numero «vulgar», es un número que sus únicos múltiplos, son los de la clave privada. Y esta característica le hace extremadamente potente, porque para obtener estos números originales (clave privada) debemos de factorizar un número con mas de 600 dígitos, y esos a dia de hoy es prácticamente imposible (se puede obtener pero se requieren años para conseguirlo), otra cosa serán los ordenadores cuánticos, que según parece es las pocas cosas que ha dia de hoy saben hacer, pero estará por ver.

Aquí podeís descargar un ejemplo muy sencillo funcionamiento del algoritmo RSA, y os dejo este video explicativo mucho mas técnico.

¿Que es la clave privada?

La clave privada, son un par de número primos de una tamaño enorme 2^2048. Esta clave estará siempre en posesión emisor y la base de la seguridad del sistema de encriptación y que permite garantizar la fiabilidad de la firma digital. Es la que permite encriptar el documento, esta clave privada, permite que los datos identificativos viajen seguros sin posibilidad de ser modificados.

¿Que es la clave publica?

La clave publica esta formada por los partes conseguidos en la clave privada. Cuando la firma llega al destinatario, esta se le incluye una clave publica, llamada así porque la puede ver cualquiera y permite desencriptar la firma, El poder de esta clave es que permite desencriptar la clave ( o cualquier otro dato), pero no puede obtener con que números se encriptaron, es decir la clave privada. Y como no puede obtener sus valores originales no podrá tampoco encriptar con ellos ni firmar.

¿Que es un codigo hash?

El código hash, llamada huella o resumen, no es propiamente la firma, pero si es un elemento necesario ya que permite saber si el fichero transmitido ha sufrido algun cambio.

Este código identifica el contenido del fichero original, de tal forma que si se cambiase algún dato de este el código cambiaria, pongamos un ejemplo para entender este concepto.

Supongamos que nuestro hash, se basa en saber cuantas letras tiene un texto.

Esto es un texto a calcular -> en este caso seria 27

Si se cambia el texto esto cambiará

Esto no es un texto a calcular -> en este caso el hash tendria 30

Conclusión, únicamente viendo el código hash sabríamos que el texto primero (27) es distinto al segundo (30), por lo tanto si nos envían el texto y no coincide con su hash, ya sabemos que el texto no es el original, y esto es muy importante, digamos que existe una transacción donde nos ingresan una nomina con 1000€ su hash seria 5, pero hacemos un cambio y ponemos 10.000€ esto generaría un hash de 7, lo que ver solamente el resumen evitaría el cambio del dígito.

Pero este hash es muy fácil de de romper, porque existe muchos valores que serian validos, por ejemplo 1000€ tendría el mismo hash que 9999€, lo que nos daría un mensaje por bueno cuando seria una transacción claramente errónea.

Así que el calculo del hash es mucho mas complejo pero el concepto es el mismo, y de hecho tienen los mismo problemas, a fin de cuantas queremos obtener un numero que identifique de forma única un fichero que puede ser enorme, y que sea distinto a cualquier otro imaginable. Y esto es lo que invalida los métodos para calcularlo.

Los métodos hash conocidos son:

  • Snefru
  • MD2 (128-bit)[1]
  • MD4
  • MD5 [2]
  • RIPEMD [2]
  • HAVAL-128[1] [2]
  • SHA-0
  • SHA-1 [3]
  • RIPEMD-160
  • SHA-2 family [4]
  • SHA-3 (Keccak)

Todos estos a excepción del ultimo el SHA-3 han se les ha encontrado alguna colisión, cuando esto ocurre el algoritmo ya no es valido. Una colisión es cuando se encuentran 2 documento que tienen el mismo hash. Por lo tanto el algoritmo se desecha por inseguro.

El MD5, es quizás el algoritmo mas utilizado, y sin embargo se descubrió su vulnerabilidad en 2004. Informe sobre ciclos de vida de algoritmos hash

¿Como funciona la firma digital y el certificado digital? 1

¿Que ocurre cuando se firmamos un documento?

Enviar un documento firmado, consiste en un fichero que une:

  • Obtiene huella del documento original y se cifra esta huella con la clave privada
  • Se envía la clave publica, la huella cifrada con la clave privada y el documento original.

Cuando alguien recibe el documento firmado, lo primero que hace el sistema el localizar el código hash,

¿Que ocurre cuando recibimos un documento firmado digitalmente?

El procedimiento al recibir el documento es el inverso, cuando el receptor recibe el mensaje realiza los sientes pasos.

  • Se descifra la huella cifrada con la clave publuca
  • Se calcula la huella del docummento y se compara con el original, Si esta comparacion es correcta la firma es valida

Ver también

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: