Integrating with KMIP-Based Applications
This section specifies:
- KMIP Conformance - lists KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server server functionality, profile, and features provided by CORE.
- Preparation on KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server client and CORE server required to provide KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server functionality.
Developing with KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server can be found in the CORE KMIP Guide.
KMIP Conformance
CORE server accepts standard KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server messages using HTTPS profile with either TTLV or JSON encoding. In particular, it accepts KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server client requests at the TCP/IP port 5696 supporting the following payload formats:
- TTLV over TLS - KMIP Profiles v1.4
- TTLV over HTTPS - KMIP Profiles v1.4
- JSON over HTTPS - KMIP Profiles v1.4. See JSON Encoding.
The OASIS Key Management Interoperability Protocol (KMIP) is a network protocol. It defines the content, structure, and semantics of the messages transferred between the KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server client and server.
CORE supports KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server version V1.4. detailed in the following documents:
KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server profile defines the minimum set of objects, attributes, and messages that the server should support.
Supported KMIP Objects
CORE Server supports the following KMIP Objects:
- Certificate ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 2.2.1)
- Symmetric key ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 2.2.2)
- Public key ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 2.2.3)
- Private key ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 2.2.4)
- Secret data ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 2.2.7)
- Opaque object ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 2.2.8)
Supported KMIP Attributes
CORE Server supports the following KMIP Attributes:
Attribute | KMIP Spec | Get | Add | Modify | Delete | Notes |
---|---|---|---|---|---|---|
Unique Identifier | 3.1 | ✓ | ||||
Name | 3.2 | ✓ | ✓ | ✓ | ✓ | 1 |
Object Type | 3.3 | ✓ | ||||
Cryptographic Algorithm | 3.4 | ✓ | ||||
Cryptographic Length | 3.5 | ✓ | ||||
Cryptographic Parameters | 3.6 | ✓ | 2 | |||
State | 3.22 | ✓ | ||||
Activation Date | 3.24 | ✓ | ||||
Deactivation Date | 3.27 | ✓ | ||||
Link | 3.35 | ✓ | ✓ | ✓ | ✓ | 3 |
Application Specific Information | 3.36 | ✓ | ✓ | ✓ | ✓ | |
Contact Information | 3.37 | ✓ | ✓ | ✓ | ✓ |
Notes:
-
Uninterpreted Text String only.
- Scope: XTS cipher mode of AES only.
- The following link types: Private Key Link, Certificate Link, Replacement Object Link, Replaced Object Link. Cannot change Private Key Link and Certificate Link.
Supported KMIP Operations
CORE Server supports the following KMIP Client to Server Operations :
- Create ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.1)
- Create key pair ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.2)
- Register (import) ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.3)
- Re-key ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.4)
- Re-key Key Pair ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.5)
- Derive Key ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.6)
- Locate ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.9)
- Check ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.10)
- Get ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.11)
Note
Applicable if the Export
property is enabled in the materials' Cryptographic Usage Mask
- see [KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 3.19.
- Get Attributes ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.12)
- Get Attribute List ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.13)
- Add Attribute ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.14)
- Modify Attribute ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.15)
- Delete Attribute ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.16)
- Activate ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.19)
- Revoke ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.20)
- Destroy ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.21)
- Query ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.25)
- Discover Versions ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.26)
- Encrypt ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.29)
- Decrypt ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.30)
- Sign ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.31)
- MAC
Message Authentication Code - for example, CMAC, GMAC, HMAC. ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.33)
- MAC
Message Authentication Code - for example, CMAC, GMAC, HMAC. Verify ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.34)
- RNG Retrieve ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.35)
- RNG Seed ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4.36)
CORE Server supports the following additional KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server features:
- ID Placeholder ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 4)
- Message Format ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 7)
- Authentication
Process used to achieve sufficient confidence in the binding between the Entity and the presented Identity. ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 8) (using client certificate and credentials)
- TTLV encoding ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 9.1)
Note
AES keys may be used with the following Format Types (see [KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 9.1.3.2.3): Raw or TransparentSymmetric. When the request omits the Format Type, the chosen format is Raw. Any other format type results in an error.
- JSON Encoding
- Transport Requirements ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 10)
- Error Handling ([KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-SPEC] 11) for any supported object, attribute, or operation
Supported KMIP Curves
See Recommended Curve Enumeration.
P-256, P-384, P-521, SECP256K1, CURVE25519, CURVE448
Supported Cryptographic Algorithm
See Cryptographic Algorithm Enumeration.
- DES
- 3DES
- AES
- RSA
- DSA
- ECDSA
Elliptic Curve Digital Signature Algorithm - A variant of the Digital Signature Algorithm (DSA) which uses elliptic curve cryptography.
- HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA1, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA224, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA256, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA384, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA512
- ECDH
Diffie–Hellman (ECDH) is a key agreement protocol used to establish shared secret by deriving it from EC keys.
- EC
- ChaCha20Poly1305
- SHA3-224, SHA3-256, SHA3-384, SHA3-512
- HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA3-224, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA3-256, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA3-384, HMAC
Hash-based Message Authentication Code - A MAC involving a cryptographic hash function and a secret cryptographic key.-SHA3-512
- Ed25519
- Ed448
Supported Block Cipher Mode
See Block Cipher Mode Enumeration.
- CBC
- ECB
- CFB
- OFB
- CTR
- CMAC
- GCM
- CCM
- AESKeyWrapPadding
- NISTKeyWrap
- AEAD
Preparation
To use CORE as the KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server server, perform the following steps in both the CORE server and the KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server client.
KMIP Server and Client Certificates
- By default, the CORE EP server identifies itself on the KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server/TLS
Transport Layer Security - a cryptographic protocol that provides communications security over a computer network connection using the certificate created during its bootstrap. This certificate is signed by the CORE Root CA certificate using the
SHA256withECDSA
method. - The CORE Root SO
Security officer - UKC partition administrator role. creates a partition (hereon "
kmip-partition
") designated to hold KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server client material. This step creates:
- Certificate for use by the KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server-client machine. See Enroll KMIP Client Using the FULL Method.
- A KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server USER with the default credentials. All KMIP
Key Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server operations are performed on behalf of this user. To customize its credentials, see the next topic.
- Certificate for use by the KMIP
Note
To import your own KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server server certificate for SSL
Secure Sockets Layer - a cryptographic protocol that provides communications security over a computer network. over port 5696, signed by your CA, use the ekm_obfuscate_pfx script.
KMIP User Credentials
Once a secure HTTPS connection has been established, the KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server connection between the client machine and the server is enabled. Based on client implementation, its messages may carry user authentication data.
CORE server evaluates KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server client credentials based on the presence of the
Credential
object in the message and, if present, on the Data presented as evidence of the right to use an identity.
Credential
value. The latter must be set to Data presented as evidence of the right to use an identity..Type
Username and Password
. See 2.1.2 CredentialData presented as evidence of the right to use an identity. in KMIP Specification V1.4.
Without Credentials
If a KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server message does not contain the
Credential
object or the Data presented as evidence of the right to use an identity.
Credential
is NOT "Data presented as evidence of the right to use an identity..Type
Username and Password
", then CORE will act on behalf of the following user:
- username = "USER"
- password = ""
By default, each CORE partition has USER with the void password among its allowed users.
Unless you changed USER's password, messages of the specified type are accepted by the CORE server. However, if for some reason you changed the USER's password, you must use messages with the explicit Username and Password
fields as described in the next topic.
Username-Password Credentials
If a KMIPKey Management Interoperability Protocol - an extensible communication protocol that defines message formats for the manipulation of cryptographic keys on a key management server message contains the
Credential
object and the Data presented as evidence of the right to use an identity.
Credential
is "Data presented as evidence of the right to use an identity..Type
Username and Password
", then CORE will check that the username and its password are enrolled in the kmip-partition
.
If you haven't added new users to the kmip-partition
, use the following credentials:
- username = "USER"
- password = ""
If you added a new user, use its credentials in the Credential
and Data presented as evidence of the right to use an identity..username
Credential
.Data presented as evidence of the right to use an identity..password