Integração via KMIP
O HSM suporta o protocolo KMIP (Key Management Interoperability Protocol) na versão 1.4 com os seguintes perfis:
- Baseline Server
- Symmetric Key Lifecycle Server
- Symmetric Key Foundry Server
- Asymmetric Key Lifecycle Server
- Basic Cryptographic Server
- Advanced Cryptographic Server
A porta utilizada é a TCP 5696.
O encoding das mensagens deve usar o esquema TTLV (Tag, Type, Length, Value). Conforme descrito na especificação este esquema é projetado para minimizar o uso de ciclos de CPU e memória nos clients que fazem encode e decode das mensagens KMIP, alem de gerar um alinhamento otimizado para processadores de 32-bit e 64-bit. Minimizar o uso de banda sobre o mecanismo de transporte é uma preocupação secundária.
Para estabelecer uma sessão KMIP sobre TLS o usuário dono da partição no HSM deverá estar configurado para autenticação com segundo fator (TFA: Two Factor Authentication) usando certificados x.509.
Info
Os detalhes de configuração do client KMIP com definições de endereço e porta do HSM, paths dos arquivos de certificados e chave, credenciais do usuário do HSM entre outras deve ser feita conforme a documentação fornecida pelo fabricante ou desenvolvedor do software client KMIP.
Alguns requisitos são necessários:
- arquivo com a chave privada do usuário (ex:
rsa2k.pem
), para uso pelo client KMIP. - arquivo com o certificado X.509 do usuário (ex:
rsa2k_cert.pem
), para uso pelo client KMIP e pelo HSM. - arquivo com o certificado de TLS do HSM (ex:
hsm_cert.pem
), para uso pelo client KMIP.
A geração dos arquivos de chave privada e do certificado X.509 do usuário está fora deste escopo.
O certificado de TLS do HSM (server KMIP) pode ser obtido usando o utilitário hsmcon
:
hsmcon 127.0.0.1 -g hsm_cert.pem
Info
O HSM gera um novo certificado de TLS auto-assinado a cada reboot quando não está configurado com um par chave-certificado específico.
O HSM não trabalha com respostas assíncronas (do ponto de vista do protocolo e da sessão). A mesma conexão é mantida durante todo o processo.
Para preparar o usuário do HSM para ser utilizado pelo software KMIP siga os passos abaixo.
-
Edite os atributos do usuário para usar TFA.
Menu de atributos de usuárioDinamo - Remote Management Console v. 4.7.33.52 2018 (c) Dinamo Networks HSM 127.0.0.1 e - Engine 5.0.28.0 (DCD) - TCA0000000 - ID master Users - Attributes User ID: ukmip Type - Operator Blocked - no Partition MxN auth - no Two Factor Auth - no Change: 1 - Type 2 - Block 3 - Two Factor Authentication 0 - Main Menu Option : 3_
-
Indique o arquivo x.509 que será usado.
O client KMIP deverá ter acesso também à chave privada correspondente ao certificado x.509 informado.
Set de atributos de usuário com TFA X.509Dinamo - Remote Management Console v. 4.7.33.52 2018 (c) Dinamo Networks HSM 127.0.0.1 e - Engine 5.0.28.0 (DCD) - TCA0000000 - ID master Users - Attributes User ID: ukmip Set Two Factor Authentication (y/[n]): y Type: 1 - OATH OTP Event 2 - OATH OTP Time 3 - X.509 Option : 3 X.509 input file (local) : rsa2k_cert.pem Two Factor Authentication for user 'ukmip' successfully set. Press ENTER key to continue...
-
Testar o acesso do usuário ao HSM usando TFA com o certificado.
O arquivo de chave privada do usuário deve estar disponível.
Acesso ao HSM de usuário com TFA X.509hsmcon 127.0.0.1 ukmip -pri rsa2k.pem -pri_cer rsa2k_cert.pem -hsm_cer hsm_cert.pem
Operação em lote (batch)
Na seção 6.4 do documento KMIP o campo Unique Batch Item ID
é definido como OPCIONAL e na seção 7.2, Tabela 283 - Request Batch Item Structure este item é definido como REQUIRED quando Batch Count > 1.
Caso o cliente KMIP comunicando com o HSM não esteja aderente a este requisito da norma irá receber o código de erro MISSING-DATA
na resposta.
Atenção
Obs: algumas versões da implementação cliente PyKMIP reconhecidamente tem esta falha.