Criptografía y firma digital
La criptografía es la disciplina que transforma la información de un formato legible (texto en claro) a uno codificado (texto cifrado) para proteger su confidencialidad, integridad y autenticidad. El objetivo principal del cifrado en ciberseguridad es transformar los datos de un formato legible a uno codificado, de modo que solo quien posea la clave adecuada pueda recuperarlos. La seguridad de un cifrado depende, sobre todo, de la complejidad (longitud y aleatoriedad) de la clave criptográfica, no del secreto del algoritmo (principio de Kerckhoffs).
Cifrado simétrico y cifrado asimétrico
Existen dos grandes familias de algoritmos:
-
Criptografía simétrica: utiliza una única clave tanto para cifrar como para descifrar. Es rápida y eficiente, pero plantea el problema de la distribución segura de esa clave compartida.
-
Criptografía asimétrica (o de clave pública): utiliza dos claves distintas, una pública y otra privada, matemáticamente relacionadas. Lo cifrado con una solo se descifra con la otra. Su función principal es ejecutar el cifrado y el descifrado usando claves diferentes, lo que facilita la distribución segura de claves. Como contrapartida, requiere más recursos computacionales y es más lenta que la simétrica.
Para lograr confidencialidad, el emisor cifra con la clave pública del destinatario; así solo la clave privada del destinatario puede descifrar el mensaje, ya que es la única que este debería conocer. Es decir, la clave de cifrado es pública y la de descifrado es privada. La criptografía de clave pública permite que cualquiera cifre datos y solo el destinatario los descifre.
| Algoritmo | Tipo | Notas |
|---|
| DES / DEA | Simétrico (bloque) | Clave de 56 bits, obsoleto: la clave es demasiado corta para resistir ataques actuales |
| 3DES / TDEA | Simétrico | Aplica DES tres veces; más seguro que DES pero más lento |
| AES | Simétrico (bloque) | Advanced Encryption Standard; bloques de 128 bits; creado para reemplazar a DES |
| IDEA | Simétrico (bloque) | Opera con bloques de 64 bits |
| Twofish | Simétrico (bloque) | Red de Feistel modificada; uno de los cifrados más rápidos de su clase |
| RC4 | Simétrico (flujo) | Usado en WEP y WPA; vulnerable: genera un flujo de claves predecible tras cierto volumen de tráfico |
| RSA | Asimétrico | Primer algoritmo asimétrico accesible al público; se basa en la dificultad de factorizar el producto de dos números primos grandes |
| Diffie-Hellman | Asimétrico | Intercambio de claves; se basa en el problema del logaritmo discreto |
| DSA / ECDSA | Asimétrico | Algoritmos de firma digital |
| GOST | Simétrico | Cifrado de bloque ruso: NO es asimétrico |
Ejemplos exclusivamente asimétricos: RSA y Diffie-Hellman. Algoritmos que usan la misma clave para cifrar y descifrar (simétricos): AES, DES, 3DES, IDEA, RC4.
AES frente a DES
AES (Advanced Encryption Standard) fue diseñado para reemplazar al DES. Frente a este, ofrece mayor flexibilidad en la longitud de clave y un mayor nivel de seguridad. AES admite claves de 128, 192 y 256 bits (longitud mínima recomendada: 128 bits). DES se considera obsoleto porque la longitud de su clave (56 bits) es demasiado corta para resistir la potencia de cómputo actual.
Longitudes de clave recomendadas
-
RSA: longitud de clave mínima recomendada de 2048 bits (NIST SP 800-57).
-
AES: longitud de clave mínima recomendada de 128 bits.
-
Intercambio de claves (Key Exchange): la guía CCN-STIC 807 del Centro Criptológico Nacional, sobre la criptología de empleo en el Esquema Nacional de Seguridad, solo autoriza los métodos de Key Exchange que usen mecanismos de acuerdo de clave autorizados y que proporcionen una fortaleza de seguridad de, al menos, 112 bits. Coincide con el mínimo general de 112 bits de seguridad que exige el NIST para aplicar protección criptográfica.
Funciones hash
Una función hash genera una huella digital (resumen) de longitud fija a partir de un mensaje. Es de un solo sentido: NO es reversible (a partir de la huella no puede obtenerse el texto original). Se utiliza para garantizar la integridad de un mensaje: cualquier alteración del mensaje cambia el hash. Ejemplos: SHA-256, SHA-3.
Firma digital
La firma digital es un conjunto de datos criptográficos que garantiza la autenticidad e integridad de un documento electrónico, además de proporcionar no repudio (el emisor no puede negar haber enviado el mensaje). Se enmarca en la criptografía de clave pública.
Proceso: la persona firmante genera o aplica una función hash sobre el documento y cifra ese hash con su clave privada; el resultado es la firma. El receptor verifica la firma con la clave pública del firmante, comprobando así la autenticidad del origen y la integridad de la información. En resumen: se genera un par de claves, se firma con la clave privada y se verifica con la clave pública.
La firma digital NO garantiza la confidencialidad de los datos: firmar no equivale a cifrar el contenido. Por tanto, es falso que "la aplicación cifra el documento a firmar asegurando la confidencialidad".
Los formatos avanzados (longevos) de firma —por ejemplo, AdES-XL y AdES-A— añaden, sobre la firma básica, una estampa de tiempo (sello temporal) e información de validación que permiten determinar la fecha y hora en que la firma existía y el certificado era válido. El nivel AdES-T (ETSI B-T), por sí solo, añade únicamente el sello de tiempo; la información de validación se incorpora en los niveles AdES-XL (B-LT) y AdES-A (B-LTA). No deben confundirse con la firma electrónica avanzada del Reglamento eIDAS (art. 26): la que está vinculada al firmante de manera única, permite identificarlo, se crea con datos que el firmante utiliza bajo su control exclusivo y está vinculada a los datos firmados de modo que cualquier modificación ulterior sea detectable.
Algoritmos de firma: DSA, ECDSA, RSA.
Formatos de firma electrónica (AdES)
Los formatos avanzados normalizados por ETSI son:
-
CAdES (CMS Advanced Electronic Signatures): basado en CMS/PKCS#7. Es apropiado para firmar ficheros grandes, especialmente si la firma contiene el documento original.
-
XAdES: firma sobre estructuras XML.
-
PAdES: firma embebida en documentos PDF (es un estándar abierto ETSI, no un formato propietario de Microsoft Office).
Protocolos y tecnologías seguras
-
SSL (Secure Sockets Layer): protocolo previo reemplazado por TLS. No ofrece no repudio.
-
TLS (Transport Layer Security): sucesor de SSL. La suite de cifrado HMAC-SHA256 se introdujo en TLS 1.2 (RFC 5246). La última versión estable es TLS 1.3. TLS utiliza cifrado simétrico y asimétrico (asimétrico para el intercambio de claves y autenticación, simétrico para el cifrado masivo de datos) y, junto con HTTP (HTTPS), emplea de forma implícita el puerto 443. La autenticación del servidor se realiza mediante un certificado de servidor.
-
S/MIME: tecnología que permite cifrar y firmar digitalmente correos electrónicos, empleando criptografía asimétrica (clave pública para cifrar y clave privada para descifrar).
-
WS-SecureConversation: estándar OASIS que define los mecanismos para establecer y compartir contextos de seguridad, y para obtener (derivar) claves de dichos contextos, en el ámbito de los servicios web.
Cifrado según el estado del dato
-
Datos en tránsito: protección de datos transferidos entre dispositivos o a través de Internet (p. ej. mediante TLS).
-
Datos en reposo: el Cifrado de Datos Transparente (TDE) protege los datos en reposo cifrando las bases de datos en el disco, pero no protege los datos en tránsito.
Fuentes
-
IETF — RFC 5246, The Transport Layer Security (TLS) Protocol Version 1.2: https://datatracker.ietf.org/doc/html/rfc5246
-
IETF — RFC 8446, The Transport Layer Security (TLS) Protocol Version 1.3: https://datatracker.ietf.org/doc/html/rfc8446
-
OASIS — WS-SecureConversation 1.4: https://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/os/ws-secureconversation-1.4-spec-os.html
-
NIST — FIPS 197, Advanced Encryption Standard (AES): https://csrc.nist.gov/pubs/fips/197/final
-
NIST — FIPS 186-4/186-5, Digital Signature Standard (DSS): https://csrc.nist.gov/pubs/fips/186-5/final
-
NIST — SP 800-57 Part 1, Recommendation for Key Management: https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
-
NIST — SP 800-52 Rev. 2, Guidelines for the Selection, Configuration, and Use of TLS Implementations: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf
-
ETSI — EN 319 122 (CAdES), EN 319 132 (XAdES), EN 319 142 (PAdES): https://www.etsi.org/deliver/etsi_en/319100_319199/
-
IETF — RFC 8551, S/MIME Version 4.0 Message Specification: https://datatracker.ietf.org/doc/html/rfc8551