How to connect a compatible product using KMIP protocol

Objective

The purpose of this guide is to show you the usage of the KMIP protocol and the different operations and types supported by the OVHcloud KMS.

Requirements

Instructions

Description

KMIP (Key Management Interoperability Protocol) is a protocol designed to standardise the communications with a KMS.

So any products supporting KMIP (such as VMware vSphere, Veeam, Nutanix, etc.) can natively be interfaced with a KMIP compatible KMS such as the OVHcloud KMS, hosted by OVHcloud or not.

It brings an easy connection, and a reversible configuration.

Connection of a KMIP compatible product with the OVHcloud KMS

The configuration depends on the product to integrate, but does not need any specific configuration on the OVHcloud KMS other than generating an access certificate. Softwares editors usually offer dedicated guides for this purpose.

As an example, the following products were validated with the OVHcloud KMS :

Direct use

It's also possible to use the KMIP API directly.

Authentication on this protocol is done with a client certificate, in the same way as for the REST API. It needs to open a TLS channel with a valid access certificate.

Then it's possible to exchange KMIP messages such as defined in the standard. Depending on the technology stack, we recommend the following libraries:

You can use as well our SDK for Go: https://github.com/ovh/kmip-go

IAM Rights

KMIP operations with IAM users need specific authorisations as described below:

KMIP OperationDescriptionAction
CreateCreate managed objectokms:kmip:create
GetGet managed objectokms:kmip:get
RegisterRegister managed objectokms:kmip:register
ActivateActivate managed objectokms:kmip:activate
RevokeRevoke managed objectokms:kmip:revoke
DestroyDestroy managed objectokms:kmip:destroy
CreateKeyPairCreate key pairokms:kmip:createKeyPair
AddAttributeAdd managed object attributeokms:kmip:addAttribute
GetAttributesGet one or more of managed object attributesokms:kmip:getAttributes
GetAttributeListGet list of the attribute namesokms:kmip:getAttributeList
ModifyAttributeModify managed object attributeokms:kmip:modifyAttribute
DeleteAttributeDelete managed object attributeokms:kmip:deleteAttribute
LocateLocate managed objectokms:kmip:locate
ArchiveArchive managed objectokms:kmip:archive
RecoverRecover managed objectokms:kmip:recover
Re-keyRe-key a Keyokms:kmip:rekey
Re-key Key PairRe-key a Key Pairokms:kmip:rekeyKeyPair
ObtainLeaseObtain lease on managed objectokms:kmip:obtainLease
GetUsageAllocationGet Usage Allocation of managed objectokms:kmip:getUsageAllocation
EncryptEncrypt with managed objectokms:kmip:encrypt
DecryptDecrypt with managed objectokms:kmip:decrypt
SignSign with managed objectokms:kmip:sign
Signature VerifyVerify with managed objectokms:kmip:signatureVerify

KMIP coverage

The OVHcloud KMS covers a part of 1.0 to 1.4 versions of the KMIP standard.

Details of the coverage are available here:

Legend:

  • N/A : Not Applicable
  • โœ… : Fully compatible
  • ๐Ÿšง : Partially compatible
  • โŒ : Not implemented
  • ๐Ÿšซ : Deprecated

Messages

v1.0v1.1v1.2v1.3v1.4
Request Messageโœ…โœ…โœ…โœ…โœ…
Response Messageโœ…โœ…โœ…โœ…โœ…

Operations

Operationv1.0v1.1v1.2v1.3v1.4
Createโœ…โœ…โœ…โœ…โœ…
Create Key Pairโœ…โœ…โœ…โœ…โœ…
Registerโœ…โœ…โœ…โœ…โœ…
Re-keyโœ…โœ…โœ…โœ…โœ…
DeriveKeyโŒโŒโŒโŒโŒ
CertifyโŒโŒโŒโŒโŒ
Re-certifyโŒโŒโŒโŒโŒ
Locateโœ…โœ…โœ…โœ…โœ…
CheckโŒโŒโŒโŒโŒ
Getโœ…โœ…โœ…โœ…โœ…
Get Attributesโœ…โœ…โœ…โœ…โœ…
Get Attribute Listโœ…โœ…โœ…โœ…โœ…
Add Attributeโœ…โœ…โœ…โœ…โœ…
Modify Attributeโœ…โœ…โœ…โœ…โœ…
Delete Attributeโœ…โœ…โœ…โœ…โœ…
Obtain Leaseโœ…โœ…โœ…โœ…โœ…
Get Usage Allocationโœ…โœ…โœ…โœ…โœ…
Activateโœ…โœ…โœ…โœ…โœ…
Revokeโœ…โœ…โœ…โœ…โœ…
Destroyโœ…โœ…โœ…โœ…โœ…
Archiveโœ…โœ…โœ…โœ…โœ…
Recoverโœ…โœ…โœ…โœ…โœ…
ValidateโŒโŒโŒโŒโŒ
Queryโœ…โœ…โœ…โœ…โœ…
CancelโŒโŒโŒโŒโŒ
PollโŒโŒโŒโŒโŒ
NotifyโŒโŒโŒโŒโŒ
PutโŒโŒโŒโŒโŒ
DiscoverN/Aโœ…โœ…โœ…โœ…
Re-key Key PairN/Aโœ…โœ…โœ…โœ…
EncryptN/AN/Aโœ…โœ…โœ…
DecryptN/AN/Aโœ…โœ…โœ…
SignN/AN/Aโœ…โœ…โœ…
Signature VerifyN/AN/Aโœ…โœ…โœ…
MACN/AN/AโŒโŒโŒ
MAC VerifyN/AN/AโŒโŒโŒ
RNG RetrieveN/AN/AโŒโŒโŒ
RNG SeedN/AN/AโŒโŒโŒ
HashN/AN/AโŒโŒโŒ
Create Split KeyN/AN/AโŒโŒโŒ
Join Split KeyN/AN/AโŒโŒโŒ
ExportN/AN/AN/AN/AโŒ
ImportN/AN/AN/AN/AโŒ

Managed Objects

Objectv1.0v1.1v1.2v1.3v1.4
Certificateโœ…โœ…โœ…โœ…โœ…
Symmetric Keyโœ…โœ…โœ…โœ…โœ…
Public Keyโœ…โœ…โœ…โœ…โœ…
Private Keyโœ…โœ…โœ…โœ…โœ…
Split Keyโœ…โœ…โœ…โœ…โœ…
Templateโœ…โœ…โœ…๐Ÿšซ๐Ÿšซ
Secret Dataโœ…โœ…โœ…โœ…โœ…
Opaque Objectโœ…โœ…โœ…โœ…โœ…
PGP KeyN/AN/Aโœ…โœ…โœ…

Base Objects

Objectv1.0v1.1v1.2v1.3v1.4
Attributeโœ…โœ…โœ…โœ…โœ…
Credentialโœ…โœ…โœ…โœ…โœ…
Key Blockโœ…โœ…โœ…โœ…โœ…
Key Valueโœ…โœ…โœ…โœ…โœ…
Key Wrapping Dataโœ…โœ…โœ…โœ…โœ…
Key Wrapping Specificationโœ…โœ…โœ…โœ…โœ…
Transparent Key Structures๐Ÿšง๐Ÿšง๐Ÿšง๐Ÿšง๐Ÿšง
Template-Attribute Structuresโœ…โœ…โœ…โœ…โœ…
Extension InformationN/Aโœ…โœ…โœ…โœ…
DataN/AN/AโŒโŒโŒ
Data LengthN/AN/AโŒโŒโŒ
Signature DataN/AN/AโŒโŒโŒ
MAC DataN/AN/AโŒโŒโŒ
NonceN/AN/Aโœ…โœ…โœ…
Correlation ValueN/AN/AN/AโŒโŒ
Init IndicatorN/AN/AN/AโŒโŒ
Final IndicatorN/AN/AN/AโŒโŒ
RNG ParameterN/AN/AN/Aโœ…โœ…
Profile InformationN/AN/AN/Aโœ…โœ…
Validation InformationN/AN/AN/Aโœ…โœ…
Capability InformationN/AN/AN/Aโœ…โœ…
Authenticated Encryption Additional DataN/AN/AN/AN/AโŒ
Authenticated Encryption TagN/AN/AN/AN/AโŒ
Transparent Key Structures
Objectv1.0v1.1v1.2v1.3v1.4
Symmetric Keyโœ…โœ…โœ…โœ…โœ…
DSA Private/Public KeyโŒโŒโŒโŒโŒ
RSA Private/Public Keyโœ…โœ…โœ…โœ…โœ…
DH Private/Public KeyโŒโŒโŒโŒโŒ
ECDSA Private/Public Keyโœ…โœ…โœ…๐Ÿšซ๐Ÿšซ
ECDH Private/Public KeyโŒโŒโŒ๐Ÿšซ๐Ÿšซ
ECMQV Private/PublicโŒโŒโŒ๐Ÿšซ๐Ÿšซ
EC Private/PublicN/AN/AN/Aโœ…โœ…

Attributes

Attributev1.0v1.1v1.2v1.3v1.4
Unique Identifierโœ…โœ…โœ…โœ…โœ…
Nameโœ…โœ…โœ…โœ…โœ…
Object Typeโœ…โœ…โœ…โœ…โœ…
Cryptographic Algorithmโœ…โœ…โœ…โœ…โœ…
Cryptographic Lengthโœ…โœ…โœ…โœ…โœ…
Cryptographic Parametersโœ…โœ…โœ…โœ…โœ…
Cryptographic Domain Parametersโœ…โœ…โœ…โœ…โœ…
Certificate Typeโœ…โœ…โœ…โœ…โœ…
Certificate Identifierโœ…๐Ÿšซ๐Ÿšซ๐Ÿšซ๐Ÿšซ
Certificate Subjectโœ…๐Ÿšซ๐Ÿšซ๐Ÿšซ๐Ÿšซ
Certificate Issuerโœ…๐Ÿšซ๐Ÿšซ๐Ÿšซ๐Ÿšซ
Digestโœ…โœ…โœ…โœ…โœ…
Operation Policy Nameโœ…โœ…โœ…๐Ÿšซ๐Ÿšซ
Cryptographic Usage Maskโœ…โœ…โœ…โœ…โœ…
Lease Timeโœ…โœ…โœ…โœ…โœ…
Usage Limitsโœ…โœ…โœ…โœ…โœ…
Stateโœ…โœ…โœ…โœ…โœ…
Initial Dateโœ…โœ…โœ…โœ…โœ…
Activation Dateโœ…โœ…โœ…โœ…โœ…
Process Start Dateโœ…โœ…โœ…โœ…โœ…
Protect Stop Dateโœ…โœ…โœ…โœ…โœ…
Deactivation Dateโœ…โœ…โœ…โœ…โœ…
Destroy Dateโœ…โœ…โœ…โœ…โœ…
Compromise Occurence Dateโœ…โœ…โœ…โœ…โœ…
Compromise Dateโœ…โœ…โœ…โœ…โœ…
Revocation Reasonโœ…โœ…โœ…โœ…โœ…
Archive Dateโœ…โœ…โœ…โœ…โœ…
Object Groupโœ…โœ…โœ…โœ…โœ…
Linkโœ…โœ…โœ…โœ…โœ…
Application Specific Informationโœ…โœ…โœ…โœ…โœ…
Contact Informationโœ…โœ…โœ…โœ…โœ…
Last Change Dateโœ…โœ…โœ…โœ…โœ…
Custom Attributeโœ…โœ…โœ…โœ…โœ…
Certificate LengthN/Aโœ…โœ…โœ…โœ…
X.509 Certificate IdentifierN/Aโœ…โœ…โœ…โœ…
X.509 Certificate SubjectN/Aโœ…โœ…โœ…โœ…
X.509 Certificate IssuerN/Aโœ…โœ…โœ…โœ…
Digital Signature AlgorithmN/Aโœ…โœ…โœ…โœ…
FreshN/Aโœ…โœ…โœ…โœ…
Alternative NameN/AN/Aโœ…โœ…โœ…
Key Value PresentN/AN/Aโœ…โœ…โœ…
Key Value LocationN/AN/Aโœ…โœ…โœ…
Original Creation DateN/AN/Aโœ…โœ…โœ…
Random Number GeneratorN/AN/AN/Aโœ…โœ…
PKCS#12 Friendly NameN/AN/AN/AN/Aโœ…
DescriptionN/AN/AN/AN/Aโœ…
CommentN/AN/AN/AN/Aโœ…
SensitiveN/AN/AN/AN/Aโœ…
Always SensitiveN/AN/AN/AN/Aโœ…
ExtractableN/AN/AN/AN/Aโœ…
Never ExtractableN/AN/AN/AN/Aโœ…

Go further

The OASIS website.

Join our community of users.

Questa pagina ti รจ stata utile?