Claves de cifrado
34.1 Claves de cifrado
Las claves de cifrado son los componentes fundamentales que permiten la operación de todos los algoritmos criptográficos. Una clave es una cadena de caracteres (o bits) que, combinada con un algoritmo específico, transforma información legible en información cifrada incomprensible, y viceversa. En el contexto de certificados digitales (tema del módulo 34), las claves de cifrado son generadas como pares matemáticamente relacionados: una clave privada (que debe mantenerse en secreto absoluto) y una clave pública (que puede ser distribuida libremente).
Este apartado introductorio del módulo de Certificados Digitales examina la naturaleza, generación, almacenamiento y gestión de claves de cifrado, particularmente en el contexto de infraestructuras de clave pública. Una comprensión profunda de cómo funcionan las claves, cómo se generan de forma segura, y cómo se protegen, es esencial para cualquier profesional de gestión comercial que trabaje con firma digital y certificados.
Pares de claves pública y privada
En criptografía asimétrica, cada usuario genera un par de claves: una clave privada y una clave pública. La relación matemática entre ellas es la siguiente: existe una función matemática (como la multiplicación de números primos grandes en RSA) que es fácil de ejecutar en una dirección pero prácticamente imposible en la dirección inversa con conocimiento solo de la clave pública.
La clave privada es utilizada por su propietario para operaciones criptográficas que requieren demostrar su identidad o autorizar una acción: firmar digitalmente documentos. La clave pública, matemáticamente relacionada, es utilizada por otros para operaciones que el propietario de la clave privada debe permitir: verificar firmas digitales o cifrar mensajes dirigidos al propietario.
La premisa fundamental es que es computacionalmente imposible derivar la clave privada conociendo la clave pública. Si esto fuera posible, la seguridad de toda la arquitectura se colapsaría. Por lo tanto, la longitud y complejidad de las claves debe ser suficientemente grande para resistir ataques de fuerza bruta (intentar todas las combinaciones posibles) con tecnología actual y previsiblemente durante los próximos 10-20 años.
Longitud de clave y seguridad equivalente
La seguridad de una clave está directamente relacionada con su longitud en bits. Para RSA, se considera actualmente seguro un mínimo de 2048 bits, aunque se recomiendan 3072 o 4096 bits para documentos que requieren protección de muy largo plazo. Un ataque de fuerza bruta contra una clave RSA 2048 requeriría realizar aproximadamente 2^2048 operaciones matemáticas, un número tan grande que es prácticamente imposible incluso con recursos computacionales masivos.
Para algoritmos basados en curvas elípticas (ECDSA), las claves pueden ser significativamente más cortas para proporcionar seguridad equivalente. Una clave ECDSA de 256 bits proporciona seguridad aproximadamente equivalente a una clave RSA de 3072 bits. Una clave ECDSA de 384 bits proporciona seguridad comparable a RSA 7680 bits. Esta eficiencia hace que los algoritmos de curva elíptica sean preferidos para nuevas implementaciones, especialmente en dispositivos móviles con capacidad computacional limitada.
La siguiente tabla proporciona equivalencias aproximadas de seguridad:
| Nivel de seguridad | Bits RSA equivalentes | Bits ECDSA equivalentes | Uso recomendado |
|---|---|---|---|
| Bajo | 1024 | 160 | Obsoleto, no utilizar |
| Moderado | 2048 | 256 | Mínimo actual recomendado |
| Alto | 3072 | 384 | Documentos críticos de mediano plazo |
| Muy alto | 4096 | 521 | Documentos críticos de largo plazo |
Generación segura de claves
La generación de claves es un proceso crítico que debe realizarse utilizando generadores de números aleatorios criptográficamente seguros. Un generador de números aleatorios ordinario (como los utilizados en programación general) es predecible y no es seguro criptográficamente: un atacante con conocimiento del estado interno del generador podría predecir números futuros.
Los generadores de números aleatorios criptográficos utilizan fuentes de entropía (fuentes de verdadera aleatoriedad), como características del hardware (variaciones de voltaje, duración de operaciones de disco), eventos del sistema operativo, o fuentes externas de aleatoriedad. En dispositivos dedicados para generación de claves, se utilizan generadores basados en fenómenos físicos como ruido térmico en transistores.
Para certificados digitales de firma avanzada, la generación debe realizarse en dispositivos dedicados bajo supervisión de personal autorizado, frecuentemente con procedimientos de ceremonias criptográficas donde múltiples personas presencian la generación para prevenir fraude interno. Para certificados de uso ordinario, los generadores de números aleatorios del sistema operativo (como /dev/urandom en Linux o CryptGenRandom en Windows) son generalmente seguros.
Almacenamiento seguro de claves privadas
La protección de la clave privada es absolutamente crítica. Una clave privada comprometida invalida toda la seguridad de la arquitectura: cualquiera que posea la clave privada puede crear firmas que parecerían autorizadas por el propietario original, descifrar mensajes dirigidos al propietario, o usurpar la identidad del propietario en transacciones.
Las mejores prácticas para almacenamiento incluyen:
Tokens criptográficos: pequeños dispositivos USB que contienen la clave privada en hardware protegido. El dispositivo requiere un PIN para utilizar la clave, pero la clave nunca deja el dispositivo. Incluso si alguien obtiene acceso físico al token, no puede extraer la clave.
Tarjetas inteligentes: similares a tokens pero diseñadas como tarjetas (formato ISO/IEC 7816) que pueden ser insertadas en lectores. Comúnmente utilizadas para DNI electrónicos y certificados profesionales.
Hardware Security Modules (HSM): dispositivos más grandes, frecuentemente del tamaño de una caja de telecomunicaciones, diseñados para almacenar múltiples claves con acceso controlado por autenticación fuerte (biometría, múltiples PINs). Utilizados por organizaciones que necesitan almacenar muchas claves con acceso compartido controlado.
Cifrado en almacenamiento local: si la clave debe ser almacenada en un ordenador, debe ser cifrada utilizando un algoritmo simétrico fuerte con una contraseña derivada de un PBKDF (Password-Based Key Derivation Function). Esto proporciona protección si el ordenador es robado, aunque es menos seguro que almacenamiento en hardware dedicado.
Ciclo de vida de claves
Una clave no es generada una única vez y utilizada indefinidamente. Las claves tienen un ciclo de vida: generación, distribución, utilización, rotación y destrucción. La rotación (generación de nuevas claves antes de que las antiguas se vuelvan vulnerables) es particularmente importante.
Para certificados de firma digital, los certificados tienen validez limitada (típicamente 1-3 años). Después de la expiración, la clave privada antigua debe ser destruida de forma segura y una nueva clave debe ser generada. Esto asegura que si un certificado antiguo fue comprometido, el daño está limitado a una ventana temporal específica.
Para organizaciones con múltiples claves (como autoridades de certificación), la rotación de claves raíz es particularmente crítica. Una clave raíz comprometida afectaría a todos los certificados emitidos por esa autoridad, potencialmente impactando a millones de usuarios. Por lo tanto, las claves raíz son generadas en ceremonias altamente formales y almacenadas en bóvedas de seguridad física con acceso múltiple.
Caso práctico: implementación de claves en empresa mediana
Una empresa mediana española está implementando firma digital para autorizar órdenes de compra y contratos de venta. Necesita generar certificados para 15 ejecutivos y 5 administradores de sistemas.
Para los ejecutivos, los certificados se generan con claves ECDSA de 384 bits (equivalentes a RSA 3072 bits) almacenadas en tokens criptográficos. Cada token requiere un PIN de 6 dígitos. Los tokens son entregados en sobre cerrado, con PIN separado, a cada ejecutivo.
Para los administradores de sistemas, se genera una clave de mayor seguridad (RSA 4096 bits) almacenada en un Hardware Security Module compartido ubicado en la sala de servidores bajo vigilancia. El acceso requiere autenticación biométrica de dos de los cinco administradores simultáneamente, garantizando que ningún administrador único puede actuar maliciosamente.
Se establece una política de rotación: los certificados de ejecutivos vencerán anualmente, requiriendo generación de nuevos certificados antes de la expiración. Si algún token es perdido, el certificado correspondiente es revocado inmediatamente y un nuevo certificado es emitido.
Ideas clave
- Las claves criptográficas son pares matemáticamente relacionados (clave privada y pública) donde es computacionalmente imposible derivar la privada a partir de la pública.
- La longitud de clave debe ser suficientemente grande para resistir ataques de fuerza bruta: mínimo 2048 bits para RSA, 256 bits para ECDSA en implementaciones actuales.
- La generación de claves debe utilizar generadores de números aleatorios criptográficamente seguros basados en fuentes de entropía reales, no generadores ordinarios predecibles.
- Las claves privadas deben ser almacenadas en dispositivos dedicados (tokens, tarjetas inteligentes, HSM) con acceso controlado por PIN o biometría, nunca en almacenamiento ordinario sin cifrado.
- Las claves tienen ciclos de vida: generación, distribución, utilización, rotación y destrucción segura, con rotación periódica antes de que la clave se vuelva vulnerable.
- Para organizaciones con múltiples claves, la gestión de acceso compartido mediante múltiples autenticaciones previene que un único empleado pueda actuar maliciosamente.