PKI – Public Key Infrastructure

PKI abarca una red de algoritmos, mecanismos, software, hardware y roles que colaboran para establecer una infraestructura segura para firmas digitales.

Por ejemplo, los siguientes servicios de seguridad usan PKI:

  • Comunicaciones: SSL, IPsec, https
  • Email: S/MIME y PGP
  • Intecambio de valor: SET
  • Otros: DNI electrónico, servicios de voto electrónico, pago electrónico, impuestos,..

Los 3 principios básicos de seguridad CIA:

  • Confidentiality: Confidencialidad: Información no accesible por entidades no autorizadas
  • Integrity: Integridad: El dato no pueda ser cambiado.
  • Availability: Disponibilidad: Asegurar acceso al dato cuando lo necesitamos. Cuando no es posible puede deberse a fallo físico de los servidores, fallo de comunicación o a un ataque DoS (Denial of Service attack).

Partes de un sistema de encriptación (Cryptosystem):

  • Generación de llaves
  • Encriptación: Convierte el texto del mensaje (Message Plaintext) a Ciphertext
  • Desencriptación: Convierte Ciphertext a texto plano.

Para facilitar la explicación, usaremos a Alice y Bob intercambiando mensajes.

Encriptación simétrica (Symmetric encryption)

Alice y Bob comparten previamente una llave secreta (secret key): Una llave secreta (key) es simplemente una cadena de texto con números y letras, necesarios para la encriptación y desencriptación.

Cuando Alice envía un mensaje a Bob, el flujo es el siguiente:

  • Alice encripta el mensaje con la llave secreta (que habían intercambiado previamente)
  • Alice envía el mensaje a Bob
  • Bob desencripta el mensaje de Alice (con la misma llave secreta que habían compartido)

Nadie que observe la comunicación o intercepte el mensaje puede descifrarlo sin la llave secreta.

Hash

Una función hash se aplica sobre un texto, y tiene las siguiente características:

  • Longitud fija independientemente de la longitud del texto.
  • Un pequeño cambio en el texto, produce un hash totalmente distinto.
  • Un mismo texto produce siempre un mismo hash.
  • Unidireccional: Conociendo el hash es imposible conocer el texto.
  • Muy rápido de calcular al aplicarlo sobre un texto, aunque tenga mucha extensión.

Dado un mensaje, y su hash, podemos ver si el mensaje ha cambiado o no, viendo si preserva el hash.

Digest: Aplicación de función hash a un texto plano del mensaje.

Encriptación asimétrica (Asymmetryc encription)

También se conoce como «Encriptación de clave pública» (public key encryption).

En esta caso, tenemos dos llaves (key pair), y con cada una de ellas podemos encriptar, pero para desencriptar necesitamos la otra llave del par:

  • Public Key: La conoce todo el mundo. Cualquiera puede encriptar mensajes con la llave pública, pero solo se podrán desencriptar con la llave privada.
  • Private Key: Solo la tiene el que ha generado el par de llaves.

Ejemplo de comunicación:

  • Alice encripta el mensaje con la llave publica de Bob
  • Alice envía el mensaje a Bob
  • Solo Bob puede desencriptar el mensaje con su llave privada.

Nadie que observe la comunicación o intercepte el mensaje puede descifrarlo sin la llave privada de Bob.

Certificados

También conocido como Certificado de Clave Pública (Public Key Certificate) o Certificado de Identidad (Identity Certificate).

Un certificado consta de:

  • Public Key: Llave pública
  • Identidad asociada a la llave pública (DNI, CIF)
  • Periodo de validez del certificado y de la llave pública
  • Otros metadatos: Método de encriptación (por ejemplo rsaEncryption), nº serie, versión, información del propietario (email, teléfono,…)
  • CA: Certificate Authority: Entidad certificadora emisora del certificado: La validez del sistema se basa en que la clave pública sea la que corresponda. Si un «man in the middle» intercepta los mensajes e interpone su propio par de claves puede leer todos los mensajes. Para evitarlo, se crea una «cadena de confianza» mediante certificados hasta llegar a un certificado raíz que permite verificar que efectivamente la llave pública es de quien dice ser. La CA debe ser aceptada por ambas partes de la comunicación.

Non-repudiation // No repudio

Propiedad de un proceso que permite que una entidad no niegue haber realizado una determinada acción.

Por ejemplo: Contratos, presentación de impuestos, transferencias,.. deben ser procesos que admitan una propiedad de «no repudio» una vez realizadas.

Digital Signature // Firma digital

Mecanismo para facilitar procesos de no repudio.

Una firma es el digest (hash) encriptado con llave privada.

Para ello:

  • El documento es firmado con la llave privada del firmante. Para ello se encripta el «digest» (hash) del mensaje, y se adjunta junto con el mensaje completo.
  • Se puede identificar al firmante, al usar su llave pública para verificar si el firmante es quien dice ser.

Llamemos mensaje a un texto plano (plaintext) a comunicar entre Alice y Bob:

  • Alice encripta un mensaje con la clave pública de Bob -> Obtiene el Ciphertext del mensaje.
  • Alice genera un digest (hash del texto plano) del mensaje y lo encripta con su llave privada (es decir, lo firma), incluyendo en el envío: Ciphertext, firma y certificado
  • Al recibir el mensaje, Bob puede desencriptar el Ciphertext con su clave privada, obteniendo el texto plano.
  • Para saber si es Alice realmente quien envió el mensaje, Bob consulta a la CA si el certificado que viene con el mensaje pertenece a Alice.
  • A continuación, desencripta la firma, usando la clave pública de Alice, obteniendo el digest del mensaje.
  • A continuación, aplica el algoritmo de hash al texto plano del mensaje, y lo compara con el digest
  • Si cuadran, Bob puede confirmar que el mensaje es de Alice y que no ha sido modificado, y Alice no puede negar haberlo enviado al estar firmado con su clave privada.

Aseguramiento CIA:

  • Confidencialidad: Alice y Bob solo comparten su clave pública. Solo con la privada desencriptamos.
  • Integridad: Mediante la forma digital y comparación de hash aseguramos la integridad del mensaje.
  • Disponibilidad: PKI no la asegura, pero evita accesos no deseados, ayudando a la disponibilidad.