El Protocolo de interoperabilidad de administración de claves ( KMIP ) es un protocolo de comunicación extensible que define formatos de mensaje para la manipulación de claves criptográficas en un servidor de administración de claves . Esto facilita el cifrado de datos al simplificar la gestión de claves de cifrado. Las claves pueden crearse en un servidor y luego recuperarse, posiblemente envueltas por otras claves. Ambos simétricas y asimétricas claves son compatibles, incluyendo la capacidad para 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 lanzó por primera vez en 2010. Los clientes y servidores están disponibles comercialmente de varios proveedores. El esfuerzo estándar de KMIP se rige por el organismo de estándares OASIS . Los detalles técnicos también se pueden encontrar en la página oficial de KMIP y wiki .
Descripción
Un servidor KMIP almacena y controla objetos administrados como claves simétricas y asimétricas, certificados y objetos definidos por el usuario. Luego, 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, recuperar y actualizar objetos gestionados.
Cada objeto gestionado tiene un valor inmutable , como un bloque de claves que contiene una clave criptográfica. También contienen atributos mutables que se pueden usar para almacenar metadatos sobre las claves. Algunos atributos se derivan directamente del valor, como el algoritmo criptográfico y la longitud de una 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 normalmente 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 de objeto único e inmutable que genera el servidor y se utiliza para obtener valores de objeto. A los objetos gestionados también se les puede asignar una serie de atributos de nombre mutables pero únicos a nivel mundial que se pueden utilizar para localizar objetos.
Objetos
Los tipos de objetos gestionados que gestiona KMIP incluyen:
- Claves simétricas utilizadas para algoritmos como AES.
- Claves públicas y privadas utilizadas para algoritmos asimétricos como RSA y ECDH. Se utilizan objetos separados para almacenar la clave pública y privada, de modo que un usuario pueda tener permiso para acceder a una pero no a la otra. Los objetos relacionados suelen contener atributos de enlace que contienen el identificador único del otro objeto.
- Certificados y claves PGP.
- Claves divididas, siendo cada división un objeto distinto que se puede administrar de forma independiente de las otras divisiones.
- Datos secretos, como contraseñas.
- Datos opacos para extensiones definidas por el cliente y el servidor.
- Solicitudes de firma de certificado.
Operaciones
Las operaciones proporcionadas por KMIP incluyen:
- Create, que crea un nuevo objeto gestionado, como una clave simétrica, y devuelve el identificador.
- Create Key Pair, que crea dos objetos que representan claves asimétricas.
- Get, que recupera el valor de un objeto dado su identificador único. El valor devuelto puede estar envuelto (encriptado) con otra clave que esté en el servidor para mayor seguridad.
- Registro, que almacena un valor de clave generado externamente.
- Agregue atributos, obtenga atributos, modifique atributos y establezca atributos. Pueden utilizarse para manipular atributos mutables de un objeto gestionado.
- Localizar, que recupera una lista de objetos basada en predicados.
- Re-Key, que crea una nueva clave que puede reemplazar una clave existente. También hay atributos que se pueden usar para que el servidor gire automáticamente las claves después de un período o número de usos determinados. El nombre se mueve a la nueva clave y normalmente se usa para recuperar una clave para operaciones de protección como cifrar y firmar. La clave antigua también se puede recuperar utilizando el Identificador único para operaciones de proceso como el descifrado y la verificación de firmas.
- (Re-) Certificar que certifica un certificado.
- Dividir y unir n de m claves.
- Cifrar, descifrar, MAC, etc. Operaciones criptográficas realizadas en el servidor de gestión de claves. La clave en sí podría marcarse como no extraíble, en cuyo caso su valor nunca abandona el servidor.
- Exportar e importar claves a otros servidores KMIP.
- Operaciones para implementar el ciclo de vida de la clave NIST .
Ciclo de vida clave
Cada clave tiene un estado criptográfico según lo define el Instituto Nacional de Estándares y Tecnología (NIST). Las claves se crean en un estado inicial, pero deben activarse antes de que se puedan utilizar. Luego pueden desactivarse y eventualmente destruirse. La clave también puede estar marcada como comprometida.
Se proporcionan operaciones que manipulan el estado de conformidad con las pautas del ciclo de vida del NIST. El estado de una clave se puede interrogar utilizando el atributo Estado o los atributos que registran las fechas de cada transformación, como la Fecha de activación. Las fechas se pueden especificar en el futuro para que las claves dejen de estar disponibles automáticamente para operaciones específicas a medida que caducan.
Estructura del mensaje
KMIP es un protocolo sin estado en el que los mensajes se envían desde un cliente a un servidor y luego el cliente normalmente espera una respuesta. Cada solicitud puede contener muchas operaciones que permiten que el protocolo maneje de manera eficiente un gran número de claves. También hay funciones avanzadas para procesar solicitudes de forma asincrónica.
El protocolo KMIP especifica varios tipos diferentes de codificaciones. La principal es una codificación de mensajes tipo-longitud-valor , llamada TTLV (etiqueta, tipo, longitud, valor). Las estructuras TTLV anidadas permiten la codificación de mensajes complejos de múltiples operaciones en un solo mensaje binario .
También hay codificaciones XML y JSON bien definidas del protocolo para entornos donde el binario no es apropiado. También se proporciona una codificación CBOR muy compacta para aplicaciones que lo requieran.
Se espera que todos estos protocolos se transmitan utilizando el protocolo TLS para garantizar la integridad y la seguridad. Sin embargo, también es posible registrar y recuperar claves que están empaquetadas (encriptadas) usando 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 y autorizar objetos de usuario para realizar operaciones específicas en objetos gestionados específicos. Tanto los objetos administrados como los usuarios se pueden asignar a grupos, y esos grupos pueden formar una jerarquía que facilita la administració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 simples de un solo uso.
Se pueden proporcionar valores predeterminados de atributos, de modo que los clientes simples no necesiten especificar parámetros criptográficos ni de otro tipo. Por ejemplo, un usuario administrativo puede especificar que todas las claves "SecretAgent" deben ser claves AES de 192 bits con encadenamiento de bloques CBC . Entonces, un cliente solo necesita especificar que desea crear una clave "SecretAgent" para que se proporcionen esos valores predeterminados. También es posible imponer restricciones a los parámetros clave que implementan la política 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. Una implementación particular KMIP se dice que es conformes a un perfil cuando cumpla con todos los requisitos establecidos en un documento de especificación de perfil. OASIS ha presentado varios perfiles que describen los requisitos para el cumplimiento de las matrices de almacenamiento [1] y las bibliotecas de cintas [2], pero cualquier organización puede crear un perfil.
Relación con PKCS # 11
PKCS # 11 es una API de 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 una gestión de claves sencilla. Existe una superposición considerable 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 el estándar ahora también lo rige un comité técnico de OASIS . El objetivo declarado de los comités PKCS # 11 y KMIP es alinear los estándares donde sea práctico. Por ejemplo, los atributos PKCS # 11 Sensitive y Extractable se están agregando a la versión 1.4 de KMIP. Muchas de las mismas personas están en los comités técnicos de KMIP y PKCS # 11.
KMIP 2.0 proporciona un mecanismo estandarizado para transportar mensajes PKCS # 11 de clientes a servidores. Esto se puede usar para apuntar a diferentes implementaciones de PKCS # 11 sin la necesidad de volver a compilar los programas que lo usan.
Implementaciones de KMIP
El Comité Técnico de OASIS KMIP mantiene una lista de implementaciones conocidas de KMIP, que se puede encontrar en el sitio web de OASIS . A marzo de 2017, hay 28 implementaciones y 61 productos KMIP en esta lista.
Interoperabilidad entre implementaciones
El estándar KMIP se define mediante un documento de especificación formal, casos de prueba y perfiles presentados por el comité técnico de OASIS KMIP. Estos documentos están disponibles públicamente en el sitio web de OASIS.
Los proveedores demuestran interoperabilidad durante un proceso organizado por el comité técnico de OASIS KMIP en los meses previos a cada conferencia de seguridad de RSA. Estas demostraciones se conocen informalmente como interops . Las interoperaciones de KMIP se han realizado todos los años desde 2010. El siguiente cuadro muestra el número de pruebas individuales realizadas por cada combinación de cliente y proveedor de servidor desde 2012.
Pruebas de interoperabilidad individuales realizadas por cada combinación de proveedor de servidor / cliente desde 2012
Resultados de las pruebas de interoperabilidad OASIS KMIP 2017
Ejemplo
A continuación se muestra la codificación XML de una solicitud para localizar una clave denominada "MyKeyName" y devolver su valor envuelto en una clave diferente con el ID "c6d14516-4d38-0644-b810-1913b9aef4da". (TTLV es un protocolo de cable más común, pero XML es más legible por humanos).
type = "Integer" value = "3" /> type = "Integer" value = "0" /> type = "Enumeration" value = "Locate" /> type = "ByteString" value = "1" /> type = "TextString" value = "MyKeyName" /> type = "Enumeration" value = "Get" /> type = "ByteString" value = "2" /> type = " Enumeración " value = " Encrypt " /> type = " Integer " value = " c6d14516-4d38-0644-b810-1913b9aef4da " />
Documentación
La documentación está disponible gratuitamente en el sitio web de OASIS . Esto incluye la especificación técnica formal y una guía de uso para ayudar a las personas que no están familiarizadas con la especificación.
También se proporciona una biblioteca sustancial de casos de prueba. Se utilizan para probar la interoperabilidad de clientes y servidores, pero también proporcionan ejemplos concretos del uso de cada función KMIP estándar.
Historial de versiones
Versión | Borrador del Comité | Principales características |
---|---|---|
1.0 | Octubre de 2010 | Versión inicial |
1.1 | Ene. De 2013 | |
1.2 | Junio de 2014 | Operaciones criptográficas (cifrar, descifrar, firmar, etc.). Introducción de perfiles, incluidos identificadores de aplicaciones para bibliotecas de cintas. |
1.3 | 2015 | Streaming de operaciones criptográficas; Registro de clientes; Localizar compensación / límite; Plantillas obsoletas; Consultas RNG; |
1.4 | 2016 | Mejores operaciones asincrónicas; Importación / exportación de claves a otros servidores; Soporte de PKCS # 12; Envoltura de llaves estandarizada; Certificar atributos; Valores de correlación de cliente y servidor; Atributos descriptivos; Soporte AEAD; Soporte AES-XTS; Crear datos secretos; Soporte RSA PSS; Muchas extensiones de Query. |
2.0 | 2018 | Eliminación de artículos obsoletos; Representación eficiente de atributos; Reemplazo de la convención "x-" para atributos personalizados; Operación del registro del cliente; Resolución de fecha y hora 1 microsegundo; Localizar destruido; Mejor manejo de errores y razones de resultados; ; Aprovisionamiento de clientes mejorado; nuevo objeto CSR ; Eliminación del índice de atributos; Soporte para tokenización; Atributo de tipo de clave NIST; Identificadores únicos de longitud fija; Varios atributos nuevos y extensiones de consulta; Inicios de sesión delegados; Contraseñas hash; Múltiples marcadores de posición de ID únicos; Soporte de ReEncrypt usando referencias de datos; Establecer operación de atributo; Encapsulación PKCS # 11. |
2.1 | 2019 | Silbido; Procesar y consultar solicitudes asincrónicas; Estandarizar la rotación de claves del lado del servidor; Establecer y consultar valores predeterminados de atributos; Establecer y consultar restricciones sobre atributos; [3] |
3,0 | 2021 | Agregue un concepto explícito de usuarios de KMIP, modelado como Objetos del sistema; Mejoras en el ciclo de vida de las referencias a otros objetos mediante nombres e identificadores únicos; Formalizar grupos de objetos y jerarquías; Eliminar la operación administrativa; [4] |
Ver también
- Gestión de claves
- Clave (criptografía)
- Cifrado
- Grupo de trabajo de seguridad en almacenamiento IEEE P1619
Referencias
enlaces externos
- ^ "Matriz de almacenamiento KMIP con perfil de unidades de autocifrado versión 1.0" .
- ^ "Perfil de biblioteca de cintas KMIP versión 1.0" .
- ^ "Especificación KMIP v2.1 WD07" .
- ^ "Especificación KMIP v3.0 WD09" .