Introducción a la Criptografía: Conceptos y Protocolos Esenciales
Clasificado en Informática
Escrito el en español con un tamaño de 4,4 KB
Definiciones Previas
Criptografía
La criptografía es la ciencia y el estudio de la escritura secreta, ocultando la información para preservar su confidencialidad.
Cifrado
El cifrado es el proceso donde el texto en claro (mensaje M) se transforma en un texto cifrado (criptograma C) mediante un método E (función) usando una o varias claves N, haciéndolo ininteligible para terceros.
Criptoanálisis
El criptoanálisis es el arte de quebrantar los sistemas de cifrado.
Integridad: Funciones Hash
Las funciones hash en criptografía se usan junto con una clave, no solo con el mensaje. Existen muchos algoritmos que implementan funciones hash, como:
- Algoritmo de Hash Seguro (SHA, Secure Hash Algorithm)
- Algoritmo de Resumen del Mensaje 5 (MD5, Message-Digest Algorithm)
Se usan como parte del proceso del uso de certificados digitales. Para que esto funcione, el destinatario tiene que tener la misma función hash que el emisor.
Criptografía Asimétrica
Cuatro protocolos que usan criptografía asimétrica:
- Internet Key Exchange (IKE): Un componente fundamental de las VPN IPsec.
- Secure Sockets Layer (SSL): Ahora implementado como el estándar IETF TLS.
- Secure Shell (SSH): Proporciona una conexión segura de acceso remoto a dispositivos de red.
- Pretty Good Privacy (PGP): Un programa informático que proporciona privacidad y autenticación criptográficas.
Criptografía Simétrica
Es un método criptográfico en el cual se usa una misma clave para cifrar y descifrar mensajes en el emisor y el receptor. Las dos partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar. Una vez que ambas partes tienen acceso a esta clave, el remitente cifra un mensaje usando la clave, lo envía al destinatario, y éste lo descifra con la misma clave.
Algoritmo Diffie-Hellman (DH)
- Da autenticidad en origen.
- Algoritmo asimétrico. Se usa en varios protocolos, como IPSec, SSL/TLS o SSH.
- No suele usarse para cifrar, sino para intercambiar claves de manera segura (por ejemplo, para usar un cifrado simétrico, ya que el cifrado asimétrico es muy lento).
- Se necesita: un número primo p y un generador, que serán conocidos por todas las personas implicadas en la comunicación.
Protocolo TLS (Transport Layer Security)
- Encima de la capa de transporte.
- Permitirá la seguridad a la capa de Aplicación.
- TLS permitirá autenticar quién es el servidor y, opcionalmente, el cliente.
- Integridad/autenticación de mensajes: Utiliza un código de autentificación de mensajes en clave-hash (HMAC, Keyed-Hash Message Authentication Code), con lo que usa una función hash criptográfica. La función hash del cual obtendremos un resumen se calculará teniendo en cuenta una clave secreta k generada (clave compartida que emisor y receptor deben conocer, que garantiza que el resumen llegado no ha sido alterado) junto con el mensaje.
Handshaking Protocols
- Negocia versiones, algoritmos de cifrado, autenticación/integridad, transmisión de certificados, información compartida para generar claves que permitan la confidencialidad, autenticación, etc.
Change Cipher Spec
- Solo existe un mensaje (ChangeCipherSpec). Indica que a partir de ese momento, todo lo acordado en el protocolo Handshake será usado, por tanto, todo viajará con confidencialidad, autenticación, integridad y no repudio.
Aplicación
- Mensajes de datos. Viajarán de forma cifrada, autenticada, con integridad, porque así lo hará la capa Record Protocol.
IPSec Framework
Es un protocolo que utiliza VPN, que puede dar incluso confidencialidad a la capa de red tanto de origen como destino. IKE es un protocolo que tiene IPSec que es como SSL. IPSec es entre pares igual que SSL y TLS, la integridad la hace con los algoritmos de hash, tiene que saber tanto la clave para descifrar el hash como el algoritmo.
Con SSL/TLS, la MAC se calcula sobre el mensaje enviado en texto plano, primero descifra, luego con la MAC utiliza un algoritmo para sacar el hash.
Ventajas de IPSec:
- La MAC se obtiene mucho más rápido porque solo hace una autenticación.
- Se utiliza Diffie-Hellman que nos permite establecer una clave secreta.