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 factorización de grandes números primos |
| 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.
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".
La firma digital avanzada añade, sobre la 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.
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