Durante mi vida profesional he tenido la oportunidad de trabajar con distintas Autoridades de Certificación, así como a hacer consultoría de seguridad respecto al uso, gestión y generación de certificados digitales; como primera aportación a este blog, me gustaría poder aportaros algo de mi experiencia en este campo, así como poder introduciros en la materia.
En el mundo actual, en el que el mercado a través de Internet está en pleno apogeo, se vuelve tremendamente complicado mantener la seguridad de las transferencias de datos por la red. Dado que Internet es una red abierta y completamente heterogénea, es complicado mantener la confidencialidad e integridad de las comunicaciones, así como asegurar que el remitente o destinatario de cualquier comunicación en la red es quien dice ser.
Para tratar de resolver estos problemas aparece el certificado o firma digital. Un certificado o firma digital es un mecanismo que se emplea para proveer:
- Autenticidad: Calidad y carácter de verdadero o autorizado. Se puede asegurar de forma inequívoca la procedencia de la comunicación.
- Integridad: Inalterable, seguridad de que cuando se realiza una comunicación de datos el mensaje se mantiene inalterado durante la comunicación.
- No repudio: Cualidad de poder verificar el origen y la integridad de los datos.
- Confidencialidad: Propiedad que asegura que la información solo sea accesible por el destinatario del mensaje.
Como se puede observar, en general, el objetivo de una firma o certificado digital es muy similar que el de la firma manuscrita tradicional, sin embargo la tecnología que lo sustenta es completamente diferente, por lo que lo siguiente que deberíamos preguntarnos es: ¿cómo se implementa?
Para ello, se emplean algoritmos de cifrado de clave asimétrica (o pública); estos algoritmos funcionan mediante el uso de dos claves, una pública y una privada, que pertenecen a un mismo sujeto. Dichas claves se obtienen mediante un algoritmo, y tienen la particularidad de que, empleando un algoritmo concreto, un mensaje cifrado con una de las claves solo se podrá descifrar con la otra y viceversa; de este modo, un mensaje cifrado con la clave pública de un sujeto sólo podrá ser descifrado con la clave privada del mismo (y nunca con la pública). En general, la clave pública (como su nombre indica) debe estar al alcance de cualquiera, mientras que la clave privada debe ser custodiada únicamente por el propietario del par de claves (este punto es determinante para asegurar la funcionalidad de este sistema). Pero, ¿como permite asegurar la autenticidad, integridad, no repudio y confidencialidad este mecanismo?
Para hacer entender estos conceptos se van a plantear los siguientes ejemplos:
Ejemplo 1: Un sujeto A quiere enviar un correo electrónico firmado digitalmente a un sujeto B; para ello el sujeto A dispone de un par de claves en base a un algoritmo de clave asimétrica. Para el envío del correo firmado, el sujeto A, para firmar el correo calculará un nuevo hash del mismo (un hash consiste en una función matemática que ajusta cualquier texto a un conjunto definido de datos, en el caso que nos ocupa, se convierten al hash la cabecera y el cuerpo del correo). A continuación, el remitente procesará con el algoritmo de clave asimétrica y su clave privada dicho hash; esto constituye su firma digital. Por último se enviará el mensaje completo con cabecera, cuerpo del mensaje y firma al destinatario del mismo.
Ahora bien, ¿cómo asegura esto la autenticidad, la integridad y el no repudio de este mensaje? Cuando el destinatario recibe el mensaje, lo primero que debe hacer es verificar la firma digital del correo. Para ello, en base al funcionamiento del algoritmo de clave asimétrica, deberá emplear la clave pública del remitente para descifrar el hash del correo. Si el hash se descifra correctamente y corresponde con el resto del correo recibido se puede concluir que, en primer lugar, dicho correo ha sido enviado por quien dice ser (autenticidad), ya que en caso de que la firma no hubiera sido cifrada con la clave privada del remitente, no se podría haber descifrado con su clave pública. En segundo lugar su integridad, ya que en caso de que el mensaje hubiera sido manipulado el hash del correo no coincidiría tras descifrar el mismo; y por último el no repudio que no deja de ser la consecuencia de las dos anteriores, si la firma es correcta el destinatario emisor no podrá negar el contenido de dicho correo ni que haya sido redactado o enviado por nadie que no fuese él mismo.
Veamos a continuación un pequeño diagrama que describe las actividades detalladas en este punto.
Ejemplo 2: Pongámonos ahora en una situación diferente: el sujeto B quiere enviar un mensaje cifrado al sujeto A y quiere que éste sea leído única y exclusivamente por el sujeto A. En este caso, “B” deberá cifrar el mensaje completo empleando la clave pública de “A”, de modo que así “A” sea el único capaz de descifrar el mensaje, ya que esto lo puede hacer únicamente quien dispone de la clave privada asociada a la clave pública con la que se cifró. De este modo se asegura la confidencialidad en la transmisión.
Con estos dos ejemplos hemos ilustrado de forma básica cual es el funcionamiento más simple de la arquitectura de clave pública.
Una vez realizada esta explicación, en la próxima entrada nos centraremos en uno de los abundantes ejemplos prácticos disponibles, concretamente el protocolo SSL, empleado en transferencias de información digital segura como por ejemplo en las páginas web que emplean Secure Hyper Text Transfer Protocol (HTTPS).
Cualquier duda, comentario o petición no tenéis más que dejarla en los comentarios.
Interesante artículo.
Adjunto un enlace que trata los “problemas” que ofrecen hoy por hoy los certificados TLS, quizá os interese.
http://www.mejor-antivirus.es/noticias/confia-pero-asegurate-certificados-tls.html
Saludos.
Hola David,
Enhorabuena por conseguir explicarlo con un lenguage tan sencillo :)
Quería aprovechar para indicarte que 2 párrafos antes del primer diagrama creo que se te ha escapado un “destinatario” donde debería ir “emisor” :-)
<>
¡Un saludo!
¡Ups! Se ve que tenéis protegida la entrada de comentarios contra XSS. He intentado poner la línea a la que hacía referencia entre dobles “” y la ha eliminado, jeje.
Aquí va de nuevo:
Último intento, perdón por las múltiples entradas:
“si la firma es correcta el DESTINATARIO no podrá negar el contenido de dicho correo”
Hola José Luís,
efectivamente es una errata en la redacción, se modifica el post. Muchas gracias a todos por vuestra atención y valoración.
Saludos.
excelente explicacion
Muy pedagógica la explicación.Os agradezco y os aporto un enlace donde uno aprecia todos los sectores que se benefician de los certificados digitales,como el sector financiero,servicios,industrial.