La gestión de claves se refiere a la gestión de claves criptográficas en un criptosistema . Esto incluye la generación, el intercambio, el almacenamiento, el uso, la destrucción y el reemplazo de claves. Incluye el diseño de protocolos criptográficos , servidores de claves , procedimientos de usuario y otros protocolos relevantes. [1] [2]
La gestión de claves se refiere a las claves a nivel de usuario, ya sea entre usuarios o entre sistemas. Esto contrasta con la programación de claves , que normalmente se refiere al manejo interno de claves dentro del funcionamiento de un sistema de cifrado.
La gestión eficaz de las claves es fundamental para la seguridad de un criptosistema. Es el aspecto más complicado de la criptografía , ya que implica aspectos de ingeniería social, como la política del sistema, la formación de los usuarios, las interacciones organizativas y departamentales y la coordinación entre todos estos elementos, a diferencia de las prácticas puramente matemáticas que se pueden automatizar.
Los sistemas criptográficos pueden utilizar distintos tipos de claves, y algunos utilizan más de una. Estas pueden incluir claves simétricas o asimétricas. En un algoritmo de clave simétrica, las claves implicadas son idénticas tanto para cifrar como para descifrar un mensaje. Las claves deben elegirse con cuidado y distribuirse y almacenarse de forma segura. Las claves asimétricas, también conocidas como claves públicas , por el contrario, son dos claves distintas que están vinculadas matemáticamente. Por lo general, se utilizan juntas para comunicarse. La infraestructura de clave pública (PKI), la implementación de la criptografía de clave pública, requiere que una organización establezca una infraestructura para crear y gestionar pares de claves públicas y privadas junto con certificados digitales. [3]
El punto de partida de cualquier estrategia de gestión de certificados y claves privadas es crear un inventario completo de todos los certificados, sus ubicaciones y las partes responsables. Esto no es una cuestión trivial porque los certificados de diversas fuentes se implementan en diversas ubicaciones por diferentes personas y equipos; simplemente no es posible confiar en una lista de una única autoridad de certificación . Los certificados que no se renuevan y reemplazan antes de que caduquen pueden causar tiempos de inactividad y cortes graves. Otras consideraciones:
Una vez inventariadas las claves, la gestión de claves normalmente consta de tres pasos: intercambio, almacenamiento y uso.
Antes de iniciar cualquier comunicación segura, los usuarios deben configurar los detalles de la criptografía. En algunos casos, esto puede requerir el intercambio de claves idénticas (en el caso de un sistema de clave simétrica). En otros, puede requerir la posesión de la clave pública de la otra parte. Si bien las claves públicas se pueden intercambiar abiertamente (su clave privada correspondiente se mantiene en secreto), las claves simétricas se deben intercambiar a través de un canal de comunicación seguro. Anteriormente, el intercambio de este tipo de claves era extremadamente problemático y se facilitaba en gran medida mediante el acceso a canales seguros, como una valija diplomática . El intercambio de claves simétricas en texto claro permitiría a cualquier interceptor conocer de inmediato la clave y cualquier dato cifrado.
El avance de la criptografía de clave pública en la década de 1970 ha hecho que el intercambio de claves sea menos problemático. Desde que se publicó el protocolo de intercambio de claves Diffie-Hellman en 1975, se ha hecho posible intercambiar una clave a través de un canal de comunicaciones inseguro, lo que ha reducido sustancialmente el riesgo de divulgación de la clave durante la distribución. Es posible, utilizando algo parecido a un código de libro , incluir indicadores de clave como texto claro adjunto a un mensaje cifrado. La técnica de cifrado utilizada por el empleado de código de Richard Sorge era de este tipo, haciendo referencia a una página de un manual estadístico, aunque en realidad era un código. La clave de cifrado simétrico Enigma del ejército alemán era de tipo mixto al principio de su uso; la clave era una combinación de programas de claves distribuidos en secreto y un componente de clave de sesión elegido por el usuario para cada mensaje.
En sistemas más modernos, como los compatibles con OpenPGP , una clave de sesión para un algoritmo de clave simétrica se distribuye cifrada mediante un algoritmo de clave asimétrica . Este enfoque evita incluso la necesidad de utilizar un protocolo de intercambio de claves como el intercambio de claves Diffie-Hellman.
Otro método de intercambio de claves consiste en encapsular una clave dentro de otra. Normalmente, se genera una clave maestra y se intercambia utilizando algún método seguro. Este método suele ser engorroso o costoso (dividir una clave maestra en varias partes y enviar cada una de ellas con un mensajero de confianza, por ejemplo) y no es adecuado para su uso a gran escala. Una vez que la clave maestra se ha intercambiado de forma segura, se puede utilizar para intercambiar de forma segura claves posteriores con facilidad. Esta técnica suele denominarse encapsulamiento de clave . Una técnica común utiliza cifrados de bloque y funciones hash criptográficas . [6]
Un método relacionado consiste en intercambiar una clave maestra (a veces denominada clave raíz) y derivar claves subsidiarias según sea necesario a partir de esa clave y otros datos (a menudo denominados datos de diversificación). El uso más común de este método es probablemente en criptosistemas basados en tarjetas inteligentes , como los que se encuentran en las tarjetas bancarias. El banco o la red de crédito incorpora su clave secreta en el almacenamiento seguro de claves de la tarjeta durante la producción de la tarjeta en una instalación de producción segura. Luego, en el punto de venta, tanto la tarjeta como el lector de tarjetas pueden derivar un conjunto común de claves de sesión basadas en la clave secreta compartida y los datos específicos de la tarjeta (como el número de serie de la tarjeta). Este método también se puede utilizar cuando las claves deben estar relacionadas entre sí (es decir, las claves departamentales están vinculadas a las claves divisionales y las claves individuales están vinculadas a las claves departamentales). Sin embargo, vincular las claves entre sí de esta manera aumenta el daño que puede resultar de una violación de seguridad, ya que los atacantes aprenderán algo sobre más de una clave. Esto reduce la entropía, con respecto a un atacante, para cada clave involucrada.
Un método reciente utiliza una función pseudoaleatoria inconsciente para emitir claves sin que el sistema de gestión de claves esté en condiciones de verlas. [7]
Independientemente de cómo se distribuyan, las claves deben almacenarse de forma segura para mantener la seguridad de las comunicaciones. La seguridad es una gran preocupación [8] [9] y, por lo tanto, existen varias técnicas en uso para lograrlo. Probablemente, la más común es que una aplicación de cifrado administre las claves para el usuario y dependa de una contraseña de acceso para controlar el uso de la clave. Del mismo modo, en el caso de las plataformas de acceso sin llave para teléfonos inteligentes, mantienen toda la información de identificación de la puerta fuera de los teléfonos móviles y servidores y cifran todos los datos, donde, al igual que las llaves de baja tecnología, los usuarios dan códigos solo a aquellos en quienes confían. [8]
En términos de regulación, hay pocas que aborden en profundidad el almacenamiento de claves. “Algunas contienen una guía mínima como ‘no almacenar claves con datos cifrados’ o sugieren que ‘las claves deben guardarse de forma segura’”. Las excepciones notables a esto son PCI DSS 3.2.1, NIST 800-53 y NIST 800–57. [9]
Para lograr una seguridad óptima, las claves se pueden almacenar en un módulo de seguridad de hardware (HSM) o protegerse mediante tecnologías como Trusted Execution Environment (TEE, por ejemplo, Intel SGX ) o Multi-Party Computation (MPC). Otras alternativas incluyen el uso de módulos de plataforma confiable (TPM), [10] HSM virtuales, también conocidos como "módulos de seguridad de hardware del pobre" (pmHSM), [11] o matrices de puertas programables en campo (FPGA) no volátiles con configuraciones de sistema en chip compatibles . [12] Para verificar la integridad de una clave almacenada sin comprometer su valor real, se puede utilizar un algoritmo KCV .
El problema principal es el tiempo durante el cual se utilizará una clave y, por lo tanto, la frecuencia de reemplazo. Dado que aumenta el esfuerzo requerido por cualquier atacante, las claves deben cambiarse con frecuencia. Esto también limita la pérdida de información, ya que la cantidad de mensajes cifrados almacenados que se volverán legibles cuando se encuentre una clave disminuirá a medida que aumenta la frecuencia de cambio de clave. Históricamente, las claves simétricas se han utilizado durante largos períodos en situaciones en las que el intercambio de claves era muy difícil o solo posible de manera intermitente. Idealmente, la clave simétrica debería cambiar con cada mensaje o interacción, de modo que solo ese mensaje se vuelva legible si se aprende la clave ( por ejemplo , si se roba, se criptoanaliza o se utiliza ingeniería social).
Algunos de los desafíos que enfrentan las organizaciones de TI cuando intentan controlar y administrar sus claves de cifrado son:
El cumplimiento de la gestión de claves se refiere a la supervisión, garantía y capacidad de demostrar que las claves se gestionan de forma segura. Esto incluye los siguientes dominios de cumplimiento individuales:
Se puede lograr el cumplimiento con respecto a las normas y regulaciones nacionales e internacionales de protección de datos , como la Norma de Seguridad de Datos de la Industria de Tarjetas de Pago , la Ley de Portabilidad y Responsabilidad del Seguro Médico , la Ley Sarbanes-Oxley o el Reglamento General de Protección de Datos . [15]
Un sistema de gestión de claves (KMS), también conocido como sistema de gestión de claves criptográficas (CKMS) o sistema de gestión de claves empresariales (EKMS), es un enfoque integrado para generar, distribuir y gestionar claves criptográficas para dispositivos y aplicaciones. Pueden cubrir todos los aspectos de la seguridad, desde la generación segura de claves, pasando por el intercambio seguro de claves, hasta el manejo y almacenamiento seguro de claves en el cliente. Por lo tanto, un KMS incluye la funcionalidad de backend para la generación, distribución y reemplazo de claves , así como la funcionalidad de cliente para inyectar claves, almacenarlas y gestionarlas en dispositivos.
Muchas aplicaciones específicas han desarrollado sus propios sistemas de gestión de claves con protocolos propios. Sin embargo, a medida que los sistemas se vuelven más interconectados, es necesario compartir claves entre esos diferentes sistemas. Para facilitar esto, han evolucionado los estándares de gestión de claves para definir los protocolos utilizados para gestionar e intercambiar claves criptográficas e información relacionada.
KMIP es un protocolo de gestión de claves extensible que ha sido desarrollado por muchas organizaciones que trabajan dentro del organismo de normalización OASIS . La primera versión se publicó en 2010 y ha sido desarrollada por un comité técnico activo.
El protocolo permite la creación de claves y su distribución entre distintos sistemas de software que necesitan utilizarlas. Abarca el ciclo de vida completo de las claves simétricas y asimétricas en una variedad de formatos, el encapsulado de claves, los esquemas de aprovisionamiento y las operaciones criptográficas, así como los metadatos asociados a las claves.
El protocolo está respaldado por una amplia serie de casos de prueba y cada año se realizan pruebas de interoperabilidad entre sistemas compatibles.
En el sitio web de OASIS se puede encontrar una lista de unos 80 productos que cumplen con el estándar KMIP.
La política de seguridad de un sistema de gestión de claves establece las reglas que se deben utilizar para proteger las claves y los metadatos que admite el sistema de gestión de claves. Según lo definido por el Instituto Nacional de Normas y Tecnología (NIST) , la política debe establecer y especificar reglas para esta información que protegerán: [14]
Esta protección cubre el ciclo de vida completo de la clave desde el momento en que ésta se vuelve operativa hasta su eliminación. [1]
Bring your own encrypted (BYOE), también llamado Bring your own key (BYOK), se refiere a un modelo de seguridad de computación en la nube que permite a los clientes de la nube pública utilizar su propio software de cifrado y administrar sus propias claves de cifrado. Este modelo de seguridad suele considerarse un truco de marketing, ya que las claves críticas se entregan a terceros (proveedores de la nube) y los propietarios de las claves siguen teniendo la carga operativa de generar, rotar y compartir sus claves.
Una infraestructura de clave pública es un tipo de sistema de gestión de claves que utiliza certificados digitales jerárquicos para proporcionar autenticación y claves públicas para proporcionar cifrado. Las PKI se utilizan en el tráfico de la World Wide Web, normalmente en forma de SSL y TLS .
La gestión de claves grupales significa gestionar las claves en una comunicación grupal. La mayoría de las comunicaciones grupales utilizan la comunicación multicast , de modo que si el remitente envía un mensaje una vez, todos los usuarios lo recibirán. El principal problema de la comunicación grupal multicast es su seguridad. Para mejorar la seguridad, se les dan varias claves a los usuarios. Con ellas, los usuarios pueden cifrar sus mensajes y enviarlos de forma secreta. IETF.org publicó la RFC 4046, titulada Arquitectura de gestión de claves grupales de seguridad multicast (MSEC), que analiza los desafíos de la gestión de claves grupales. [55]
45. NeoKeyManager - Hancom Intelligence Inc.
P* El Grupo de trabajo de seguridad en almacenamiento (SISWG) del IEEE que está creando el estándar P1619.3 para la gestión de claves