Pular para conteúdo

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:

Download do certificado do HSM
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.

  1. Edite os atributos do usuário para usar TFA.

    Menu de atributos de usuário
    Dinamo - 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_
    
  2. 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.509
    Dinamo - 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...
    
  3. 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.509
    hsmcon 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.