Articulo de referencia

Protocolo de interoperabilidad de gestión de claves

Participantes en la interoperabilidad OASIS 2017 en la Conferencia RSA 2017. El Protocolo de Interoperabilidad para la Gestión de Claves ( KMIP ) es un protocolo de comunicación...

Participantes en la interoperabilidad OASIS 2017 en la Conferencia RSA 2017.

El Protocolo de Interoperabilidad para la Gestión de Claves ( KMIP ) es un protocolo de comunicación extensible que define formatos de mensajes para la manipulación de claves criptográficas en un servidor de gestión de claves . Esto facilita el cifrado de datos al simplificar la gestión de claves de cifrado. Las claves se pueden crear en un servidor y luego recuperar, posiblemente encapsuladas en otras claves. Se admiten claves simétricas y asimétricas , incluyendo la capacidad de firmar certificados. KMIP también permite que los clientes soliciten a un servidor que cifre o descifre datos, sin necesidad de acceso directo a la clave.

El estándar KMIP se publicó por primera vez en 2010. Existen clientes y servidores disponibles comercialmente de diversos proveedores. [ 1 ] El desarrollo del estándar KMIP está a cargo del organismo de estándares OASIS . Los detalles técnicos también se pueden encontrar en la página oficial de KMIP [ 2 ] y en la wiki de KMIP . [ 3 ]

Descripción

Un servidor KMIP almacena y controla objetos gestionados como claves simétricas y asimétricas, certificados y objetos definidos por el usuario. Los clientes utilizan el protocolo para acceder a estos objetos, sujetos a un modelo de seguridad implementado por los servidores. Se proporcionan operaciones para crear, localizar, usar, recuperar y actualizar objetos gestionados.

Cada objeto gestionado consta de un valor inmutable , como un bloque de clave que contiene una clave criptográfica. Estos objetos también poseen atributos mutables que se utilizan para almacenar metadatos sobre sus claves. Algunos atributos se derivan directamente del valor, como el algoritmo criptográfico y la longitud de la clave. Otros atributos se definen en la especificación para la gestión de objetos, como el identificador específico de la aplicación, que generalmente se deriva de los datos de identificación de la cinta. El servidor o el cliente pueden definir identificadores adicionales según las necesidades de la aplicación.

Cada objeto se identifica mediante un identificador único e inmutable generado por el servidor, que se utiliza para obtener sus valores. A los objetos gestionados también se les puede asignar un atributo de nombre , mutable pero globalmente único , que permite localizarlos.

objetos

Los tipos de objetos gestionados que gestiona KMIP incluyen:

  • Claves simétricas utilizadas en algoritmos como AES.
  • Las claves públicas y privadas se utilizan para algoritmos asimétricos como RSA , DSA y ECDH. Se utilizan objetos separados para almacenar la clave pública y la privada, por lo que un usuario puede tener permiso para acceder a una pero no a la otra. Los objetos relacionados suelen contener atributos de enlace que incluyen el identificador único del otro objeto.
  • Certificados y claves PGP.
  • Claves divididas, donde cada división es un objeto distinto que puede gestionarse independientemente de las demás divisiones.
  • Datos secretos, como contraseñas.
  • Datos opacos para extensiones definidas por el cliente y el servidor.
  • Solicitudes de firma de certificados.

Operaciones

Las operaciones que ofrece KMIP incluyen:

  • Crear: crea un nuevo objeto administrado, como una clave simétrica, y devuelve el identificador.
  • Crear par de claves: creación de dos objetos que representan claves asimétricas.
  • Obtener: recupera el valor de un objeto a partir de su identificador único. El valor devuelto puede estar encriptado (cifrado) con otra clave almacenada en el servidor para mayor seguridad.
  • Registro: almacenamiento de un valor de clave generado externamente.
  • Agregar atributos, Obtener atributos, Modificar atributos y Establecer atributo: Estas opciones se pueden usar para manipular atributos mutables de un objeto administrado.
  • Localizar: recuperar una lista de objetos basándose en un predicado.
  • Re-Key, Re-Key-Key-Pair: crea una nueva clave que puede reemplazar una existente. También existen atributos que permiten que el servidor rote automáticamente las claves tras un periodo o número de usos determinado. El nombre se transfiere a la nueva clave y se utiliza normalmente para recuperarla en operaciones de protección como el cifrado y la firma. La clave antigua también se puede recuperar mediante el identificador único para operaciones de procesamiento como el descifrado y la verificación de firmas.
  • (Re)certificar - certifica un certificado.
  • Dividir y unir N de M claves.
  • Cifrado, descifrado, MAC, etc.: Operaciones criptográficas realizadas en el servidor de gestión de claves. Una clave puede marcarse como no extraíble, en cuyo caso su valor nunca sale del servidor.
  • Exportar, Importar: Transfiera claves desde y hacia otros servidores KMIP.
  • Activar, desactivar, etc.: Operaciones para implementar el ciclo de vida de las claves NIST .
  • Encapsular, desencapsular: soporte para algoritmos post-cuánticos .

Ciclo de vida clave

Cada clave posee un estado criptográfico definido por el Instituto Nacional de Estándares y Tecnología (NIST). Las claves se crean en un estado inicial y deben activarse antes de poder utilizarse. Posteriormente, pueden desactivarse y, finalmente, destruirse. Una clave también puede marcarse como comprometida.

Se proporcionan operaciones para manipular el estado de la clave de acuerdo con las directrices del ciclo de vida del NIST. El estado de una clave se puede consultar mediante el atributo Estado o los atributos que registran las fechas de cada transformación, como la Fecha de activación. Se pueden especificar fechas futuras, de modo que las claves dejan de estar disponibles automáticamente para las operaciones especificadas cuando expiran.

Estructura del mensaje

KMIP es un protocolo sin estado en el que los mensajes se envían de un cliente a un servidor y, posteriormente, el cliente espera una respuesta. Cada solicitud puede contener múltiples operaciones, lo que permite al protocolo gestionar eficientemente un gran número de claves. Además, cuenta con funciones avanzadas para el procesamiento asíncrono de solicitudes.

El protocolo KMIP especifica varios tipos de codificación. La principal es una codificación de mensajes tipo-longitud-valor , denominada TTLV (Etiqueta, Tipo, Longitud, Valor). Las estructuras TTLV anidadas permiten codificar mensajes complejos con múltiples operaciones en un único mensaje binario .

También existen codificaciones XML y JSON bien definidas del protocolo para entornos donde el formato binario no es apropiado.

Se espera que todos estos protocolos se transmitan mediante el protocolo TLS para garantizar la integridad y la seguridad. Sin embargo, también es posible registrar y recuperar claves encriptadas (cifradas) utilizando otra clave en el servidor, lo que proporciona un nivel adicional de seguridad.

Gestión del sistema

KMIP proporciona mecanismos estandarizados para administrar un servidor KMIP mediante clientes administrativos debidamente autorizados que utilizan objetos del sistema.

Se pueden crear objetos de usuario y autorizarlos para realizar operaciones específicas en objetos gestionados concretos. Tanto los objetos gestionados como los usuarios pueden asignarse a grupos, y estos grupos pueden formar una jerarquía que facilita la gestión eficiente de entornos operativos complejos.

KMIP también proporciona un sistema de aprovisionamiento que facilita el suministro de credenciales a los puntos finales mediante contraseñas sencillas de un solo uso.

Se pueden proporcionar valores predeterminados para los atributos, de modo que los clientes sencillos no necesiten especificar parámetros criptográficos ni de otro tipo. Por ejemplo, un usuario administrador podría especificar que todas las claves "SecretAgent" sean claves AES de 192 bits con encadenamiento de bloques CBC . En ese caso, el cliente solo tendría que indicar que desea crear una clave "SecretAgent" para que se apliquen esos valores predeterminados. También es posible imponer restricciones a los parámetros de clave que implementen políticas de seguridad.

Perfiles KMIP

KMIP también define un conjunto de perfiles , que son subconjuntos de la especificación KMIP que muestran el uso común para un contexto particular. Se dice que una implementación KMIP particular cumple con un perfil cuando satisface todos los requisitos establecidos en un documento de especificación de perfil. OASIS ha propuesto varios perfiles que describen los requisitos de cumplimiento para matrices de almacenamiento [ 4 ] y bibliotecas de cintas [ 5 ] , pero cualquier organización puede crear un perfil.

Relación con PKCS#11

PKCS#11 es una API en C que se utiliza para controlar un módulo de seguridad de hardware . PKCS#11 proporciona operaciones criptográficas para cifrar y descifrar, así como operaciones para la gestión básica de claves. Existe una considerable superposición entre la API PKCS#11 y el protocolo KMIP.

Los dos estándares se desarrollaron originalmente de forma independiente. PKCS#11 fue creado por RSA Security , pero ahora también está regido por un comité técnico de OASIS . El objetivo declarado de los comités de PKCS#11 y KMIP es armonizar los estándares siempre que sea posible. Por ejemplo, los atributos Sensitive y Extractable de PKCS#11 se han añadido a la versión 1.4 de KMIP. Numerosos profesionales forman parte de los comités técnicos de KMIP y PKCS#11.

KMIP 2.0 también proporciona un mecanismo estandarizado para transportar mensajes PKCS#11 de clientes a servidores. Esto permite utilizarlo para distintas implementaciones de PKCS#11 sin necesidad de recompilar los programas que lo utilizan.

Implementaciones de KMIP

El Comité Técnico de OASIS KMIP mantiene una lista de implementaciones conocidas de KMIP, que se puede consultar en OASIS Known Implementations . A diciembre de 2024, esta lista incluye 35 implementaciones y 91 productos KMIP.

Interoperabilidad entre implementaciones

El Comité Técnico OASIS KMIP mantiene una lista de resultados de las pruebas de interoperabilidad del KMIP TC, que se puede consultar en OASIS Interoperability Tested . A diciembre de 2024, esta lista incluye 30 implementaciones de 16 proveedores.

El estándar KMIP se define mediante un documento de especificación formal , casos de prueba y perfiles elaborados por el comité técnico OASIS KMIP. Estos documentos están disponibles públicamente en el sitio web de OASIS.

Stands de Interop en la conferencia RSA 2015. Cada proveedor interactúa con los demás.

Los proveedores demuestran la interoperabilidad durante un proceso organizado por el comité técnico OASIS KMIP en los meses previos a cada conferencia de seguridad RSA. Estas demostraciones se conocen informalmente como interops . Las interops KMIP se han celebrado casi todos los años desde 2010. El siguiente gráfico muestra el número normalizado de casos de prueba generales y pruebas de perfil de todos los participantes en las interops que han participado en dos o más desde 2014. [ 6 ]

Pruebas completas del servidor de interoperabilidad KMIP
Pruebas de clientes de interoperabilidad KMIP totales

La prueba de interoperabilidad de 2025 abarcó algoritmos de criptografía postcuántica (PCQ) que serán necesarios a medida que las computadoras cuánticas se vuelvan más potentes. [ 7 ]

Ejemplo

A continuación se muestra la codificación XML de una solicitud para localizar una clave llamada "MyKeyName" y devolver su valor envuelto en otra clave con el ID "c6d14516-4d38-0644-b810-1913b9aef4da". (TTLV es un protocolo de comunicación más común , pero XML es más legible para los humanos).

<RequestMessage> <RequestHeader> <ProtocolVersion> <ProtocolVersionMajor type= "Integer" value= "3" /> <ProtocolVersionMinor type= "Integer" value= "0" /> </ProtocolVersion> </RequestHeader> <BatchItem> <Operation type= "Enumeration" value= "Locate" /> <RequestPayload> <Attributes> <Name type= "TextString" value= "MyKeyName" /> </Attributes> </RequestPayload> </BatchItem> <BatchItem> <Operation type= "Enumeration" value= "Get" /> <UniqueIdentifier type= "Enumeration" value= "IDPlaceholder" /> <RequestPayload> <KeyWrappingSpecification> <WrappingMethod type= "Enumeration" value= "Encrypt" /> <EncryptionKeyInformation> <UniqueIdentifier type= "Reference" value= "c6d14516-4d38-0644-b810-1913b9aef4da" /> </EncryptionKeyInformation> </KeyWrappingSpecification> </RequestPayload> </BatchItem> </RequestMessage>

Documentación

La documentación está disponible gratuitamente en el sitio web de OASIS. [ 8 ] Esto incluye la especificación técnica formal y una guía de uso para ayudar a quienes no estén familiarizados con la especificación. También se proporciona una amplia biblioteca de casos de prueba. Estos se utilizan para probar la interoperabilidad de clientes y servidores, y además ofrecen ejemplos concretos del uso de cada función estándar de KMIP.

Historial de versiones

Véase también

Referencias

  1. "Implementaciones de KMIP conocidas por el KMIP TC" .
  2. "Comité técnico del Protocolo de interoperabilidad de gestión de claves de OASIS (KMIP) | OASIS" .
  3. https://github.com/oasis-tcs/kmip/wiki
  4. "KMIP Storage Array with Self-Encrypting Drives Profile Version 1.0" .
  5. "Perfil de biblioteca de cintas KMIP Versión 1.0" .
  6. "OASIS: Grupos de interoperabilidad actualizados" .
  7. "Interoperabilidad PQC 2025" .
  8. "Comité técnico del Protocolo de interoperabilidad de gestión de claves de OASIS (KMIP) | OASIS" .
  9. "Especificación KMIP v2.1 WD07" .
  10. "Especificación KMIP v3.0 WD19" (PDF) .
  • "Comité Técnico OASIS KMIP" .
  • "Implementaciones de KMIP conocidas por el Comité Técnico de KMIP" .
  • "Implementaciones de KMIP: Interoperabilidad probada" .