Chaves e Objetos

Cada tipo de chave ou objeto terá uma série de atributos que definem completamente aquele tipo, mas alguns são comuns à todos:

  1. Nome: identifica unicamente o objeto dentro da partição; pode ter até 32 caracteres e podem ser usados caracteres alfanuméricos e mais o underline _. No HSM os nomes dos objetos são sensíveis ao caso, ou seja, há diferenciação entre letras maiúsculas e minúsculas. Objetos em outras partições podem ser referenciados indicando o nome da partição e o nome do objeto com a regra de formação: partição/objeto

  2. Exportável: propriedade que permite que o objeto seja exportado para fora do HSM para uso em outras aplicações.

  3. Temporário: objetos não persistentes entre sessões, ou seja, existem apenas durante a sessão na qual foi criado, sendo removidos pelo HSM ao fim desta.

Atenção: no Dinamo todos os objetos são mantidos cifrados, independe do modo de operação.

As operações de importação e exportação de chaves criptográficas, assim como as instalações de novos algoritmos e mecanismos, não interferem nas demais chaves existentes no HSM.

No modo RM1 somente as funções aprovadas pela norma estarão disponíveis para criação de chaves:

  1. DES, nos modos ECB e CBC

  2. 3DES, 112 e 168 bits, nos modos ECB e CBC

  3. AES, com chaves de 128, 192 e 256 bits, nos modos EBC, CBC e CTR

  4. RSA, acima de 2048 bits

  5. ECDSA, com chaves acima de 224 bits

  6. EdDSA (ECX com Ed25519 e Ed448)

  7. XECDH

  8. SHA1, SHA2 e SHA3

  9. HMAC, baseado em SHA1, SHA2 e SHA3

  10. CMAC, baseado em 3DES e AES

No modo RM2 estão disponíveis os mesmos algorítimos de RM1, com exceção de DES e 3DES de 112 bits, EdDSA e SHA1. A chave privada RSA pode ter tamanho de 2048 ou 3072.

Quando operando em modo não restrito (NRM) todos os algoritmos e tamanhos de chaves estão habilitados.

DES

Chave criptográfica simétrica de bloco para algoritmo de criptografia tipo Data Encryption Standard. Tem um tamanho fixo de 56 bits. A chave na verdade tem um tamanho de 64 bits, mas a cada 8 bits um deles é usado como bit de verificação, levando a um tamanho útil de 56 bits.

As operações de criptografia podem ser feitas nos modos ECB (Electronic Codebook) e CBC (Cipher Block Chaining), sendo recomendado usar o modo CBC quando possível. Para o padding nas operações de criptografia podem ser usadas três opções: sem padding, padding com zeros e padding segundo o padrão PKCS#5.

3DES

Chave de criptografia simétrica de bloco para algoritmo de criptografia tipo Triple Data Encryption Standard, faz um sequência de três operações DES usando duas ou três chaves diferentes. O tamanho pode ser 112 ou 168 bits. A implementação trabalha usando esquema EDE (Encrypt - Decrypt - Encrypt).

As operações de criptografia podem ser feitas nos modos ECB (Electronic Codebook) e CBC (Cipher Block Chaining), sendo recomendado usar o modo CBC quando possível. Para o padding nas operações de criptografia podem ser usadas três opções: sem padding, padding com zeros e padding segundo o padrão PKCS#5.

DESX

Chave de criptografia simétrica de bloco para algoritmo de criptografia tipo Data Encryption Standard - X (DESX ou DES-X), é uma variação do DES usando técnica conhecida como key whitening, com o objetivo de dificultar ataques de força bruta. O tamanho é de 184 bits.

As operações de criptografia podem ser feitas nos modos ECB (Electronic Codebook) e CBC (Cipher Block Chaining), sendo recomendado usar o modo CBC quando possível. Para o padding nas operações de criptografia podem ser usadas três opções: sem padding, padding com zeros e padding segundo o padrão PKCS#5.

AES

Chave criptográfica simétrica de bloco para algoritmo de criptografia tipo Advanced Encryption Standard ou Rijndael, criado para ser o sucessor do DES. O tamanho pode ser de 128, 192 ou 256 bits.

As operações de criptografia podem ser feitas nos modos ECB (Electronic Codebook) e CBC (Cipher Block Chaining), sendo recomendado usar o modo CBC quando possível. Para o padding nas operações de criptografia podem ser usadas três opções: sem padding, padding com zeros e padding segundo o padrão PKCS#5.

ARC4

Chave criptográfica simétrica de stream para algoritmo de criptografia tipo Rivest Code 4, também conhecido como ARC4. A implementação do HSM usa um tamanho de 128 bits.

RSA

Chave assimétrica para algoritmo de criptografia de chave pública RSA. O tamanho pode ser de 512, 1024, 1152, 1408, 1984, 2048, 3072, 4096 ou 8192 bits.

As chaves RSA no HSM são criadas com expoente público de valor fixo e definido (três bytes na sequência 01 00 01, valor decimal de 216+1=655372^{16} + 1 = 65537).

As assinaturas digitais gerados pelo HSM são compatíveis com os algoritmos definidos no documento Padrões e Algoritmos Criptográficos da ICP-Brasil - DOC ICP-01.01, com o padrão PKCS#1 RSA Cryptography Standard v.2.1 e com a RFC 3447 Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1.

ECC e ECX

Chave criptográfica assimétrica para algoritmos de chave pública tipo curvas elípticas (ECC - Ellipitc Curve Criptography) e curvas ECX (Montgomery/Edwards). A implementação do HSM adota as seguintes curvas e tamanhos de chaves:

  1. Security Group Random (112, 128, 160, 192, 224, 256, 384 e 521 bits)

  2. Security Group Koblitz (160, 192, 224 e 256 bits)

  3. NIST Random (384 e 521 bits)

  4. ISO X9.62 (192, 239 e 256 bits)

  5. Brainpool (160, 192, 224, 256, 320, 384 e 512)

  6. Ed25519 (256 bits)

  7. Ed448 (448 bits)

A criptografia de curvas elípticas no HSM implementa operações de assinatura digital (ECDSA e EdDSA) e troca de chaves (ECDH e XECDH).

As assinaturas digitais gerados pelo HSM são compatíveis com os algoritmos definidos no documento _Padrões e Algoritmos Criptográficos da ICP-Brasil - DOC ICP-01.01.

HOTP

Objeto contendo semente para autenticação conforme padrão OATH (Open Authentication) ou segundo RFC 4226 - An HMAC-Based One-Time Password Algorithm. Quando um objeto HOTP é criado, opcionalmente pode ser gerado e exportado um SoftToken, que é uma peça de software Java para ser instalado em dispositivos móveis. A semente pode ser gerada internamente ou pode ser importada.

Tokens físicos aderentes ao padrão OATH, vendidos por terceiros, também podem ser autenticados no HSM desde que disponibilizem a semente para importação no HSM.

MAP

O tipo MAP não é exatamente um objeto, é uma agregação de identificadores. Com o objeto MAP (mapeamento) é possível criar relações entre objetos para uso pelas aplicações. O objeto map tem dois slots que podem ser preenchidos com identificadores de outros objetos ou ainda podem ser preenchidos livremente. Fica a cargo de cada aplicação a interpretação de cada campo do MAP.

Um MAP pode ser usado por exemplo para relacionar um certificado X.509 com sua chave privada RSA em único identificador ou criar apontadores com nomes diferentes para um objeto (links simbólicos).

Certificado X.509

Certificado digital padrão X.509. Normalmente é importado como um objeto opaco e identificado pelo HSM com um certificado. Este objeto não está obrigatoriamente relacionado a uma chave privada ou chave pública no HSM. O certificado digital pode existir na partição do usuário como uma entidade independente. O HSM não gera certificados, portanto objetos deste tipo são sempre importados.

O HSM também trata nativamente objetos do tipo CRL (Certificate Revocation List).

O HSM Dinamo suporta certificados digitais no padrão ICP-Brasil.

CRL

Lista de certificado revogados (LCR ou CRL na sigla em inglês). O HSM não gera CRLs, portanto objetos deste tipo são sempre importados.

Cadeia PKCS#7

Cadeia de certificados no formato PKCS#7. Normalmente a cadeia envolve o certificado final, todas as autoridades certificadoras intermediárias e a autoridade certificadora raiz. O HSM não gera cadeias de certificados, portanto objetos deste tipo são sempre importados.

File

Objeto armazenado na partição do usuário do HSM, mas interpretado de forma opaca pelo HSM, ou seja, apenas uma sequência de bytes identificada por um nome. Este tipo pode ser usado pelas aplicações para armazenar informações de seu interesse no HSM, que é um repositório seguro. O tipo File está limitado a um tamanho de 65536 bytes.

Last updated