Utilizar su OVHcloud Key Management Service (KMS)
Cifre o firme sus datos con la API REST regional del Key Management Service (KMS) de OVHcloud
Objetivo
El objetivo de esta guía es presentar las diferentes etapas para interactuar con el KMS de OVHcloud con el fin de cifrar o firmar sus datos.
Requisitos
- Disponer de una cuenta de cliente de OVHcloud.
- Haber contratado un KMS de OVHcloud.
- Haber configurado un método de autenticación para el plano de datos OKMS (token de acceso personal, cuenta de servicio o certificado de acceso).
Procedimiento
Comunicar con el KMS
La comunicación con el KMS para las acciones de cifrado y de firma se realiza a través de las API.
Como el KMS está regionalizado, el acceso a la API se realiza directamente en su región: https://my-region.okms.ovh.net.
Por ejemplo, para un KMS creado en la región eu-west-rbx: https://eu-west-rbx.okms.ovh.net
Es posible comunicarse con el KMS utilizando:
- La interfaz de usuario Swagger
- La CLI OKMS: https://github.com/ovh/okms-cli
- El SDK Golang: https://pkg.go.dev/github.com/ovh/okms-sdk-go
Autentíquese mediante un token de acceso personal, una cuenta de servicio o un certificado de acceso. Para el uso de la API REST, se recomienda un token de acceso personal (PAT) o una cuenta de servicio. Los certificados de acceso son obligatorios para las integraciones KMIP.
Para probar las llamadas a la API de forma interactiva, utilice la interfaz Swagger de OKMS en la dirección https://<region>.okms.ovh.net/swagger/.
Crear una clave de cifrado mediante API
La creación de una clave puede realizarse a través de la o de las API específicas del KMS de OVHcloud. No hay ninguna diferencia en el resultado según el método de creación.
En el caso de las API específicas del KMS de OVHcloud, la creación de una clave se realiza mediante la siguiente API:
La API espera los siguientes valores:
Ejemplo de creación de una clave simétrica:
Ejemplo de creación de una clave asimétrica:
Ejemplo de creación de una clave EC:
Los tamaños y las operaciones posibles en función del tipo de clave son los siguientes:
- oct:
- tamaño: 128, 192, 256
- operaciones:
- encrypt, decrypt
- wrapKey, unwrapKey
- RSA:
- tamaño: 2048, 3072, 4096
- operaciones: sign, verify
- EC:
- tamaño: no especificar
- curve: P-256, P-384, P-521
- operaciones: sign, verify
Importar una clave de cifrado
Al crear una clave, es posible importar una clave existente.
Para ello, puede añadir un campo complementario keys en el cuerpo de la solicitud:
La clave debe estar en formato JSON Web Key (JWK). El valor de los campos contenidos en la tabla sigue la documentación de la RFC 7518.
Gestionar las claves de cifrado
Para gestionar las claves de cifrado, hay varias API disponibles:
La desactivación de una clave de cifrado implica que esta ya no podrá utilizarse, aunque la clave permanezca presente en el KMS.
La eliminación de una clave de cifrado solo es posible en una clave previamente desactivada.
La eliminación de una clave de cifrado es definitiva. Todos los datos cifrados con ella quedarán definitivamente inaccesibles.
Cifrar un dato con el KMS
Cifrado en el KMS
El KMS de OVHcloud dispone de una API de cifrado dedicada para el cifrado de pequeños volúmenes de datos (menos de 4 kB).
Se trata del método más sencillo, pero que no ofrece el mejor rendimiento.
La API espera los siguientes valores:
Ejemplo de cifrado
La API devuelve a continuación el dato cifrado en un campo ciphertext:
El descifrado del dato se realiza a la inversa mediante la API:
La API espera los siguientes valores:
El campo context debe tener el mismo valor que el indicado durante el cifrado.
Cifrado con una Data Key (DK)
Para obtener un mejor rendimiento, es posible generar una Data Key (DK) a partir de una clave simétrica (AES) para utilizarla desde su aplicación. La clave AES utilizada debe haberse generado con las operaciones "wrapKey, unwrapKey".
La generación de una DK se realiza mediante la siguiente API:
La API espera los siguientes valores:
Ejemplo de generación de una Data Key:
La API devolverá a continuación la Data Key:
- key: clave cifrada codificada en base64. Esta información debe almacenarse con el dato cifrado y se utilizará para el descifrado por parte del KMS.
- plaintext: clave en claro codificada en base64. Esta información debe eliminarse una vez realizado el cifrado y no debe guardarse.
El uso de la Data Key se realiza a continuación a través de algoritmos de cifrado como AES-GCM, que no se aborda en esta documentación.
A la inversa, es posible recuperar la versión descifrada de una Data Key mediante la siguiente API:
La API espera los siguientes valores:
Y devuelve la Data Key descifrada en un campo plaintext.
Firmar con el KMS
La firma de un archivo se realiza mediante la clave privada de un par de claves asimétricas.
Algoritmos compatibles
El KMS de OVHcloud admite la siguiente lista de algoritmos de firma:
- RSASSA-PKCS1 v1.5
Según la documentación de la RFC 7518.
- ECDSA
Según la documentación de la RFC 7518.
- RSASSA-PSS
Según la documentación de la RFC 7518.
Firma de un mensaje
Dado que la clave privada no puede extraerse del KMS, la firma solo puede realizarse directamente en el KMS.
La API espera los siguientes valores:
Ejemplo de firma:
La API devolverá a continuación la firma del archivo:
Verificación de un archivo
La verificación de un archivo puede realizarse directamente en el KMS o utilizando la clave pública.
En el KMS, es posible utilizar la siguiente API:
La API espera los siguientes valores:
Ejemplo de verificación
La API devolverá a continuación el resultado de la verificación:
Más información
Cómo conectar un producto compatible utilizando el protocolo KMIP
Interactúe con nuestra comunidad de usuarios.