Tipos de chave, algoritmos e operações

O Key Vault suporta dois tipos de recursos: vaults e HSMs gerenciados. Ambos os tipos de recursos suportam várias chaves de criptografia. Para ver um resumo dos tipos de chave suportados, tipos de proteção por cada tipo de recurso, consulte Sobre chaves.

A tabela a seguir mostra um resumo dos tipos de chaves e algoritmos suportados.

Principais tipos/tamanhos/curvas Encriptar/Desencriptar
(Embrulhar/Desembrulhar)
Assinar/Verificar
CE-P256, CE-P256K, CE-P384, CE-P521 ND ES256
ES256K
ES384
ES512
RSA 2K, 3K, 4K RSA1_5
RSA-OAEP
RSA-OAEP-256
PS256
PS384
PS512
RS256
RS384
RS512
RSNULL
AES de 128 bits, 256 bits
(Somente HSM gerenciado)
AES-KW
AES-GCM
AES-CBC
ND

Algoritmos EC

Os seguintes identificadores de algoritmo são suportados com chaves EC-HSM

Tipos de curva

ASSINAR/VERIFICAR

  • ES256 - ECDSA para SHA-256 digests e chaves criadas com curva P-256. Este algoritmo é descrito em RFC7518.
  • ES256K - ECDSA para SHA-256 digests e chaves criadas com curva P-256K. Este algoritmo está pendente de padronização.
  • ES384 - ECDSA para SHA-384 digests e chaves criadas com curva P-384. Este algoritmo é descrito em RFC7518.
  • ES512 - ECDSA para SHA-512 digests e chaves criadas com curva P-521. Este algoritmo é descrito em RFC7518.

Algoritmos RSA

Os seguintes identificadores de algoritmo são suportados com chaves RSA e RSA-HSM

WRAPKEY/UNWRAPKEY, ENCRIPTAR/DESENCRIPTAR

  • RSA1_5 - Encriptação de chave RSAES-PKCS1-V1_5 [RFC3447]
  • RSA-OAEP - RSAES usando o Optimal Asymmetric Encryption Padding (OAEP) [RFC3447], com os parâmetros padrão especificados pela RFC 3447 na Seção A.2.1. Estes parâmetros predefinidos estão a utilizar uma função hash de SHA-1 e uma função de geração de máscara de MGF1 com SHA-1.
  • RSA-OAEP-256 – o RSAES a utilizar o Preenchimento de Encriptação Assimétrica Ideal com uma função de hash de SHA-256 e uma função de geração de máscara de MGF1 com SHA-256

ASSINAR/VERIFICAR

  • PS256 - RSASSA-PSS usando SHA-256 e MGF1 com SHA-256, conforme descrito no RFC7518.
  • PS384 - RSASSA-PSS usando SHA-384 e MGF1 com SHA-384, conforme descrito em RFC7518.
  • PS512 - RSASSA-PSS usando SHA-512 e MGF1 com SHA-512, conforme descrito no RFC7518.
  • RS256 - RSASSA-PKCS-v1_5 usando SHA-256. O valor digest fornecido pelo aplicativo deve ser calculado usando SHA-256 e deve ter 32 bytes de comprimento.
  • RS384 - RSASSA-PKCS-v1_5 usando SHA-384. O valor digest fornecido pelo aplicativo deve ser calculado usando SHA-384 e deve ter 48 bytes de comprimento.
  • RS512 - RSASSA-PKCS-v1_5 usando SHA-512. O valor digest fornecido pelo aplicativo deve ser calculado usando SHA-512 e deve ter 64 bytes de comprimento.
  • RSNULL - Consulte RFC2437, um caso de uso especializado para habilitar determinados cenários TLS.

Nota

O DigestInfo é construído no lado do servidor para operações de sinal que os algoritmos RS256, RS384 e RS512 geram.

Algoritmos de chave simétrica (somente HSM gerenciado)

  • AES-KW - AES Key Wrap (RFC3394).
  • AES-GCM - Encriptação AES no modo de contador Galois (NIST SP 800-38d)
  • AES-CBC - Encriptação AES no Modo de Encadeamento de Blocos de Cifra (NIST SP 800-38a)

Nota

Assinar e verificar os algoritmos de operações devem corresponder ao tipo de chave, caso contrário, o serviço retornará o tamanho da chave está erro incorreto.

Operações-chave

O Key Vault, incluindo o HSM gerenciado, suporta as seguintes operações em objetos chave:

  • Criar: Permite que um cliente crie uma chave no Cofre da Chave. O valor da chave é gerado pelo Cofre da Chave e armazenado, e não é liberado para o cliente. Chaves assimétricas podem ser criadas no Cofre de Chaves.
  • Importar: Permite que um cliente importe uma chave existente para o Cofre de Chaves. Chaves assimétricas podem ser importadas para o Cofre de Chaves usando vários métodos de empacotamento diferentes dentro de uma construção JWK.
  • Atualização: Permite que um cliente com permissões suficientes modifique os metadados (atributos de chave) associados a uma chave armazenada anteriormente no Cofre de Chaves.
  • Excluir: Permite que um cliente com permissões suficientes exclua uma chave do Cofre de Chaves.
  • List: Permite que um cliente liste todas as chaves em um determinado Cofre de Chaves.
  • Listar versões: Permite que um cliente liste todas as versões de uma determinada chave em um determinado Cofre de Chaves.
  • Get: Permite que um cliente recupere as partes públicas de uma determinada chave em um Cofre de Chaves.
  • Backup: exporta uma chave em um formulário protegido.
  • Restaurar: importa uma chave de backup anterior.
  • Lançamento: Ele libera com segurança uma chave para código autorizado executado em um ambiente de computação confidencial. Ele requer um atestado de que o Ambiente de Execução Confiável (TEE) atende aos requisitos do release_policy da chave.
  • Rodar: Rode uma chave existente gerando uma nova versão da chave (apenas no Cofre da Chave).

Para obter mais informações, consulte Principais operações na referência da API REST do Cofre de Chaves.

Uma vez que uma chave tenha sido criada no Cofre da Chave, as seguintes operações criptográficas podem ser executadas usando a chave:

  • Assinar e Verificar: estritamente, esta operação é “assinar hash” ou “verificar hash”, uma vez que o Key Vault não suporta o hashing de conteúdos como parte da criação de assinaturas. As aplicações devem realizar o hash aos dados a serem assinados localmente e, em seguida, pedir que o Key Vault assine o hash. A verificação dos hash assinados é suportada como uma operação de conveniência para aplicações que podem não ter acesso a material chave [público]. Para obter o melhor desempenho do aplicativo, as operações VERIFY devem ser executadas localmente.
  • Criptografia / encapsulamento de chave: uma chave armazenada no Cofre de chaves pode ser usada para proteger outra chave, normalmente uma chave de criptografia de conteúdo simétrica (CEK). Quando a chave no Cofre da Chave é assimétrica, a criptografia de chave é usada. Por exemplo, RSA-OAEP e as operações WRAPKEY/UNWRAPKEY são equivalentes a ENCRYPT/DECRYPT. Quando a chave no Cofre da Chave é simétrica, o encapsulamento de chaves é usado. Por exemplo, AES-KW. A operação WRAPKEY é suportada como uma conveniência para aplicativos que podem não ter acesso ao material de chave [pública]. Para obter o melhor desempenho do aplicativo, as operações WRAPKEY devem ser executadas localmente.
  • Criptografar e descriptografar: uma chave armazenada no Cofre da Chave pode ser usada para criptografar ou descriptografar um único bloco de dados. O tamanho do bloco é determinado pelo tipo de chave e pelo algoritmo de encriptação selecionado. A operação Encrypt é fornecida por conveniência, para aplicativos que podem não ter acesso ao material de chave [pública]. Para obter o melhor desempenho do aplicativo, as operações ENCRYPT devem ser executadas localmente.

Embora WRAPKEY/UNWRAPKEY usando chaves assimétricas possa parecer supérfluo (como a operação é equivalente a ENCRYPT/DECRYPT), o uso de operações distintas é importante. A distinção fornece separação semântica e de autorização dessas operações e consistência quando outros tipos de chave são suportados pelo serviço.

O Key Vault não suporta operações de EXPORTAÇÃO. Uma vez que uma chave é provisionada no sistema, ela não pode ser extraída ou seu material de chave modificado. No entanto, os usuários do Cofre da Chave podem exigir sua chave para outros casos de uso, como depois que ela for excluída. Nesse caso, eles podem usar as operações BACKUP e RESTORE para exportar/importar a chave em um formulário protegido. As chaves criadas pela operação BACKUP não são utilizáveis fora do Cofre de Chaves. Como alternativa, a operação IMPORT pode ser usada em várias instâncias do Cofre de Chaves.

Os usuários podem restringir qualquer uma das operações criptográficas que o Key Vault suporta por chave usando a propriedade key_ops do objeto JWK.

Para obter mais informações sobre objetos JWK, consulte JSON Web Key (JWK).

Operações da política de rotação de chaves

A rotação automática de chaves do cofre de chaves pode ser definida configurando a política de rotação automática de chaves. Ele só está disponível no recurso Key Vault.

  • Obter política de rotação: recupere a configuração da política de rotação.
  • Definir política de rotação: defina a configuração da política de rotação.

Atributos principais

Para além do material de chave, é possível especificar os seguintes atributos. Em uma solicitação JSON, a palavra-chave attributes e as chaves, '{' '}', são necessárias mesmo que não haja atributos especificados.

  • Habilitado: Booleano, opcional, o padrão é verdadeiro. Especifica se a chave está habilitada e pode ser usada para operações criptográficas. O atributo enabled é usado com nbf e exp. Quando uma operação ocorre entre nbf e exp, ela só será permitida se enabled estiver definido como true. As operações fora da janela nbf / exp são automaticamente desautorizadas, exceto para desencriptar, libertar, desembrulhar e verificar.
  • nbf: IntDate, opcional, o padrão é agora. O atributo nbf (não antes) identifica o tempo antes do qual a chave NÃO DEVE ser usada para operações criptográficas, exceto para desencriptar, libertar, desembrulhar e verificar. O processamento do atributo nbf requer que a data/hora atual DEVE ser posterior ou igual à data/hora não antes listada no atributo nbf . O Key Vault PODE fornecer uma pequena margem de manobra, normalmente não mais do que alguns minutos, para dar conta da distorção do relógio. Seu valor DEVE ser um número contendo um valor IntDate.
  • exp: IntDate, opcional, o padrão é "para sempre". O atributo exp (tempo de expiração) identifica o tempo de expiração no qual ou após o qual a chave NÃO DEVE ser usada para operação criptográfica, exceto para desencriptar, libertar, desembrulhar e verificar. O processamento do atributo exp requer que a data/hora atual DEVE ser anterior à data/hora de expiração listada no atributo exp . O Key Vault PODE fornecer alguma pequena margem de manobra, normalmente não mais do que alguns minutos, para dar conta da distorção do relógio. Seu valor DEVE ser um número contendo um valor IntDate.

Há mais atributos somente leitura incluídos em qualquer resposta que inclua atributos de chave:

  • criado: IntDate, opcional. O atributo created indica quando esta versão da chave foi criada. O valor é null para chaves criadas antes da adição desse atributo. Seu valor DEVE ser um número contendo um valor IntDate.
  • atualizado: IntDate, opcional. O atributo updated indica quando esta versão da chave foi atualizada. O valor é null para chaves que foram atualizadas pela última vez antes da adição desse atributo. Seu valor DEVE ser um número contendo um valor IntDate.
  • hsmPlatform: string, opcional. A plataforma HSM subjacente que está protegendo uma chave.
    • Um valor hsmPlatform de 2 significa que a chave está protegida pela nossa mais recente plataforma HSM validada FIPS 140 Nível 3.
    • Um valor hsmPlatform de 1 significa que a chave está protegida pela nossa plataforma HSM certificada FIPS 140 Nível 2 anterior.
    • Um valor hsmPlatform de 0 significa que a chave está protegida por um módulo criptográfico de software HSM FIPS 140 Nível 1.
    • se isso não for definido por um pool de HSM gerenciado, ele será protegido por nossa plataforma de HSM validada pelo FIPS 140 Nível 3 mais recente.

É importante observar que as chaves estão vinculadas ao HSM no qual foram criadas. Novas chaves são perfeitamente criadas e armazenadas nos novos HSMs. Embora não seja possível migrar ou transferir chaves, novas versões de chaves estão automaticamente nos novos HSMs. Para obter mais informações sobre como migrar para uma nova chave, consulte Como migrar cargas de trabalho de chave.

Para obter mais informações sobre o IntDate e outros tipos de dados, consulte [Sobre chaves, segredos e certificados: tipos de dados.

Operações controladas com data e hora

As chaves ainda não válidas e expiradas, fora da janela de exp do nbf / , funcionarão para operações de desencriptação, libertação, desembrulhamento e verificação (não devolverão 403, Proibido). A lógica para usar o estado ainda não válido é permitir que uma chave seja testada antes do uso em produção. A lógica para usar o estado expirado é permitir operações de recuperação em dados que foram criados quando a chave era válida. Além disso, você pode desabilitar o acesso a uma chave usando as políticas do Cofre da Chave ou atualizando o atributo de chave habilitado para false.

Para obter mais informações sobre tipos de dados, consulte Tipos de dados.

Para obter mais informações sobre outros atributos possíveis, consulte a chave da Web JSON (JWK).

Etiquetas-chave

Você pode especificar mais metadados específicos do aplicativo na forma de tags. O Key Vault suporta até 15 tags, cada uma das quais pode ter um nome de 256 caracteres e um valor de 256 caracteres.

Nota

As tags são legíveis por um chamador se ele tiver a lista ou obter permissão para essa chave.

Controlo de acesso a chaves

O controle de acesso para chaves gerenciadas pelo Cofre de Chaves é fornecido no nível de um Cofre de Chaves que atua como o contêiner de chaves. Você pode controlar o acesso às chaves usando o controle de acesso baseado em função do Cofre da Chave (recomendado) ou o modelo de permissão da política de acesso do Cofre antigo. O modelo de permissão baseado em função tem três funções predefinidas para gerenciar chaves: 'Key Vault Crypto Officer', 'Key Vault Crypto User', 'Key Vault Service Encryption User' e pode ter como escopo a assinatura, grupo de recursos ou nível de cofre.

Permissões do modelo de permissão da política de acesso ao Vault:

  • Permissões para operações de gerenciamento de chaves

    • get: Leia a parte pública de uma chave, além de seus atributos
    • list: listar as chaves ou versões de uma chave armazenadas em um cofre de chaves
    • update: atualize os atributos de uma chave
    • create: Criar novas chaves
    • importar: importar uma chave para um cofre de chaves
    • delete: Excluir o objeto de chave
    • recuperar: Recuperar uma chave excluída
    • backup: fazer backup de uma chave em um cofre de chaves
    • restaurar: restaure uma chave de backup para um cofre de chaves
  • Permissões para operações criptográficas

    • desencriptar: Use a chave para desproteger uma sequência de bytes
    • encriptar: utilize a chave para proteger uma sequência arbitrária de bytes
    • unwrapKey: Use a chave para desproteger chaves simétricas encapsuladas
    • wrapKey: Use a chave para proteger uma chave simétrica
    • verificar: Use a chave para verificar resumos
    • sign: Use a chave para assinar resumos
  • Permissões para operações privilegiadas

    • purgar: Limpar (excluir permanentemente) uma chave excluída
    • release: libere uma chave para um ambiente de computação confidencial, que corresponda ao release_policy da chave
  • Permissões para operações de política de rotação

    • girar: gire uma chave existente gerando uma nova versão da chave (somente Cofre da Chave)
    • obter política de rotação: recuperar a configuração da política de rotação
    • definir política de rotação: definir configuração de política de rotação

Para obter mais informações sobre como trabalhar com chaves, consulte Operações de chave na referência da API REST do Cofre de Chaves.

Próximos passos