Tipos de chave, algoritmos e operações

Este artigo descreve tipos de chaves, algoritmos, atributos e operações para o Azure Key Vault (vaults). Para a referência equivalente para HSM Geridos, veja Tipos de chaves, algoritmos e operações (HSM Geridos). Para um resumo dos tipos de chaves suportadas por recurso, veja Sobre chaves.

A tabela seguinte mostra um resumo dos tipos de chaves e algoritmos suportados no Key Vault. Para obter detalhes completos sobre algoritmos simétricos (oct-HSM / AES) e assinatura/verificação HMAC, consulte Algoritmos de chave simétrica.

Tipos/tamanhos/curvas de chave Encrypt/Decrypt
(Wrap/Unwrap)
Sign/Verify
CE-P256, CE-P256K, CE-P384, CE-P521 NA ES256
ES256K
ES384
ES512
RSA 2K, 3K, 4K RSA-OAEP-256
[Não recomendado] RSA1_5
[Não recomendado] RSA-OAEP
PS256
PS384
PS512
RS256
RS384
RS512
RSNULL
oct-HSM 128, 192, 256 (Premium; pré-visualização) AES-KW
AES-GCM
AES-CBC
HS256
HS384
HS512

Algoritmos EC

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

Tipos de curvas

SIGN/VERIFY

  • ES256 - ECDSA para digestos SHA-256 e chaves criadas com a curva P-256. Este algoritmo é descrito em RFC7518.
  • ES256K - ECDSA para digestos SHA-256 e chaves criadas com a curva P-256K. Este algoritmo está pendente de padronização.
  • ES384 - ECDSA para digests e chaves SHA-384 criadas com a curva P-384. Este algoritmo é descrito em RFC7518.
  • ES512 - ECDSA para digestos SHA-512 e chaves geradas com a 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

  • RSA-OAEP-256 - RSAES que utiliza Optimal Asymmetric Encryption Padding com uma função de hash SHA-256 e uma função de geração de máscara MGF1 com SHA-256.
  • [Não recomendado] RSA1_5 - RSAES-PKCS1-V1_5 [RFC3447] encriptação de chaves.
  • [Não recomendado] RSA-OAEP - RSAES usando Optimal Asymmetric Encryption Padding (OAEP) [RFC3447], com os parâmetros padrão especificados pelo RFC 3447 na Secçã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.

Warning

Microsoft recomenda o uso de algoritmos RSA_OAEP_256 ou mais fortes para maior segurança.

Microsoft não recomenda RSA_1_5 nem RSA_OAEP. Estes algoritmos são incluídos apenas para compatibilidade retroativa. Os padrões criptográficos deixaram de considerar seguro, para efeitos de cifragem, o RSA com o esquema de preenchimento PKCS#1 v1.5. RSA_OAEP usa SHA1, que tem problemas de colisão conhecidos.

SIGN/VERIFY

  • PS256 - RSASSA-PSS utilizando SHA-256 e MGF1 com SHA-256, conforme descrito em RFC7518.
  • PS384 - RSASSA-PSS utilizando o SHA-384 e o MGF1 com o SHA-384, conforme descrito em RFC7518.
  • PS512 - RSASSA-PSS usando SHA-512 e MGF1 com SHA-512, conforme descrito em 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 certos cenários TLS.

Note

Para um melhor desempenho, use o modo de padding RSA-PSS. O servidor constrói o DigestInfo para operações Sign que os algoritmos RS256, RS384 e RS512 geram.

Algoritmos de chave simétrica

Importante

O suporte a chaves simétricas (oct-HSM / AES) no Azure Key Vault Premium está atualmente em pré-visualização pública. Os tamanhos de chave suportados são 128 bits, 192 bits e 256 bits. As funcionalidades de pré-visualização são fornecidas as-is, sem acordo de nível de serviço, e não são recomendadas para cargas de trabalho em produção. Para mais informações, consulte Termos Suplementares de Utilização para Microsoft Azure Previews.

Os seguintes identificadores de algoritmo são suportados com chaves oct-HSM (simétricas/AES) no Azure Key Vault Premium.

WRAPKEY/UNWRAPKEY, ENCRIPTAR/DESENCRIPTAR

  • AES-KW - envolvimento de chave AES, conforme descrito em RFC3394.
  • AES-GCM - encriptação AES em Modo Contador de Galois (NIST SP 800-38d).
  • AES-CBC - Encriptação AES em Modo de Encadeamento de Blocos de Cifra (NIST SP 800-38a).

Quando usados com chaves de 256 bits, estes algoritmos são resistentes ao quântico, de acordo com o Commercial National Security Algorithm Suite 2.0 e o Quantum Computing FAQ.

ASSINAR/VERIFICAR (HMAC)

  • HS256 - HMAC usando SHA-256, conforme descrito em RFC7518.
  • HS384 - HMAC usando SHA-384, conforme descrito em RFC7518.
  • HS512 - HMAC usando SHA-512, conforme descrito em RFC7518.

Note

O algoritmo sign and verify deve corresponder ao tipo e tamanho da chave. Caso contrário, o serviço devolve um erro de tamanho de chave incorreto.

Para suporte a algoritmos de chave simétricos (oct-HSM) em HSM Geridos, veja Tipos de chaves, algoritmos e operações (HSM Gerido).

Operações-chave

As seguintes operações são suportadas em objetos-chave:

  • Criar: Um cliente cria uma chave no serviço. O serviço gera e armazena o valor da chave e não o liberta ao cliente.
  • Importação: Um cliente importa uma chave existente do serviço. Chaves assimétricas podem ser importadas usando vários métodos diferentes de empacotamento dentro de uma construção JWK.
  • Atualização: Um cliente com permissões suficientes modifica os metadados (atributos da chave) associados a uma chave previamente armazenada.
  • Eliminar: Um cliente com permissões suficientes apaga uma chave.
  • Lista: Um cliente lista todas as chaves do serviço.
  • Listar versões: Um cliente lista todas as versões de uma determinada chave.
  • Obter: Um cliente recupera as partes públicas de uma determinada chave. A operação get não devolve a parte privada de uma chave assimétrica, nem o material da chave de uma chave simétrica.
  • Backup: Exporta uma chave numa forma protegida.
  • Restaurar: Importa uma chave previamente guardada.
  • Release: Liberta de forma segura uma chave para código autorizado a correr num ambiente de computação confidencial. Requer uma atestação de que o Ambiente de Execução Confiável (TEE) cumpre os requisitos da release_policy da chave.

Depois de uma chave ser criada, pode realizar as seguintes operações criptográficas com ela:

  • Assinar e Verificar: Em rigor, esta operação é "assinar hash" ou "verificar hash", uma vez que o serviço não calcula o hash do conteúdo no âmbito da criação da assinatura. As aplicações devem fazer o hash dos dados a serem assinados localmente e depois solicitar que o serviço assine o hash. A verificação de hashes assinados é suportada como conveniência para aplicações que possam não ter acesso a material de chave pública; Para obter o melhor desempenho, as operações de verificação devem ser realizadas localmente.
  • Encriptação / Envolvimento de Chaves: Uma chave armazenada no serviço pode proteger outra chave, tipicamente uma chave de encriptação de conteúdo simétrica (CEK). Quando a chave no serviço é assimétrica, utilize-se encriptação de chaves (por exemplo, RSA-OAEP; WRAPKEY/UNWRAPKEY são equivalentes a ENCRYPT/DECRYPT). Quando a chave no serviço for simétrica, utilize o encapsulamento de chaves (por exemplo, AES-KW). O WRAPKEY é suportado por conveniência para aplicações que possam não ter acesso a material da chave pública; para obter o melhor desempenho, as operações de encapsulamento devem ser realizadas localmente.
  • Encriptar e Decifrar: Uma chave armazenada no serviço pode encriptar ou desencriptar um único bloco de dados. O tamanho do bloco é determinado pelo tipo de chave e pelo algoritmo de encriptação selecionado. A encriptação é fornecida para conveniência; Para melhor desempenho, as operações de encriptação devem ser realizadas localmente.

A utilização de operações distintas WRAPKEY/UNWRAPKEY (em vez de usar sempre ENCRYPT/DECRYPT) proporciona separação semântica e de autorização, e consistência entre os tipos de chave.

O serviço não suporta operações de EXPORTAÇÃO. Uma vez provisionada uma chave, não é possível extraí-la nem modificar o seu material criptográfico. Para mover uma chave, use as operações BACKUP e RESTORE para exportar ou importar a chave numa forma protegida. As chaves produzidas pelo BACKUP não podem ser usadas fora do serviço.

Pode restringir qualquer uma das operações criptográficas por chave usando a key_ops propriedade do objeto JWK.

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

Além das operações listadas acima, o Key Vault (cofres) suporta:

  • Rodar: Roda uma chave existente gerando uma nova versão da chave. Esta operação está disponível apenas nos recursos do Key Vault (não no HSM Gerido).

Para mais informações, consulte Operações de chave na referência da API Key Vault REST.

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

Defina a rotação automática da chave configurando a política de rotação automática da chave. Esta funcionalidade está disponível apenas nos recursos do Key Vault.

  • Obtenha a Política de Rotação: Recupere a configuração da política de rotação.
  • Definir política de rotação: Definir a configuração da política de rotação.

Atributos principais

Para além do material chave, pode especificar os seguintes atributos. Num pedido JSON, deve incluir a attributes palavra-chave e os colchetes ({}) mesmo que não especifique quaisquer atributos.

  • Ativado: booleano, opcional, o padrão é verdadeiro. Especifica se a chave está ativada e utilizável para operações criptográficas. Usa o atributo ativado com nbf e exp. Quando ocorre uma operação entre nbf e exp, a operação só é permitida se ativado estiver definido como verdadeiro. As operações fora da janela nbf / exp não são automaticamente permitidas, exceto para decrypt, release, unwrap e verify.
  • 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 desencriptação, libertação, desdobramento e verificação. O processamento do atributo nbf requer que a data/hora atual DEVERÁ ser posterior ou igual à data/hora não anterior indicada no atributo nbf . Pode ser fornecida alguma pequena margem de manobra (normalmente não mais do que alguns minutos) para compensar o desvio 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 em ou após o qual a chave NÃO DEVE ser usada para operações criptográficas, exceto para desencriptação, libertação, desdobramento e verificação. O processamento do atributo exp exige que a data/hora atual DEVE ser anterior à data/hora de expiração listada no atributo exp . Pode ser fornecida alguma margem de manobra (normalmente não mais do que alguns minutos) para compensar o desvio do relógio. Seu valor DEVE ser um número contendo um valor IntDate.

Os seguintes atributos de somente leitura estão incluídos em qualquer resposta que inclua atributos-chave:

  • criado: IntDate, opcional. O atributo criado indica quando esta versão da chave foi criada. O valor é nulo para chaves criadas antes da adição deste atributo. Seu valor DEVE ser um número contendo um valor IntDate.
  • atualizado: IntDate, opcional. O atributo atualizado indica quando esta versão da chave foi atualizada. O valor é nulo para chaves que foram atualizadas pela última vez antes da adição deste atributo. Seu valor DEVE ser um número contendo um valor IntDate.

Operações controladas com data e hora

Chaves ainda não válidas e expiradas, fora da janela nbf / exp, funcionam para operações de desencriptação, release, desencapsulamento e verificação (não devolvem 403, Forbidden). 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. Também podes desativar o acesso a uma chave atualizando o atributo ativado para false.

Para mais informações sobre outros atributos possíveis, consulte a especificação JSON Web Key (JWK ).

Para além dos atributos listados acima, as chaves do Key Vault expõem:

  • hsmPlatform: string, opcional. A plataforma HSM subjacente que protege uma chave.
    • Um valor de hsmPlatform significa que 2 a chave está protegida pela mais recente plataforma HSM validada pelo FIPS 140-3 Nível 3.
    • Um valor de hsmPlatform significa que a chave 1 está protegida pela plataforma HSM anterior validada pelo FIPS 140-2 Nível 2.
    • Um hsmPlatform valor de 0 significa que a chave está protegida por um módulo criptográfico de software FIPS 140-2 de Nível 1.

As chaves estão associadas ao HSM no qual as criou. O Azure Key Vault cria automaticamente novas chaves e versões de chaves na mais recente plataforma HSM. Não podes migrar ou transferir chaves existentes entre plataformas. Para orientações sobre como mover cargas de trabalho para uma nova chave, veja Como migrar cargas de trabalho chave.

Para mais informações sobre IntDate e outros tipos de dados, consulte Tipos de dados.

Etiquetas de chave

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

Note

Se um chamador tiver a permissão de list ou get para uma chave, pode ler os tags.

Controlo de acesso a chaves

O Key Vault fornece controlo de acesso para chaves ao nível do Key Vault, que funciona como o contentor para as chaves. Pode controlar o acesso às chaves usando o controlo de acesso baseado em funções do Azure Key Vault (recomendado) ou o modelo legado de permissões política de acesso do Vault. O Azure RBAC é o modelo de autorização padrão e recomendado. Tem três funções pré-definidas para gerir chaves: Key Vault Oficial de Criptografia, Key Vault Utilizador de Cripto e Key Vault Utilizador de Encriptação de Serviços. Pode definir estes papéis ao nível da subscrição, grupo de recursos ou cofre. Para mais informações, consulte Azure RBAC vs. políticas de acesso.

Modelo de permissão da política de acesso ao cofre (legado):

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

    • obter: Lê a parte pública de uma chave, bem como as suas características
    • lista: Lista as chaves ou versões de uma chave armazenada num cofre de chaves
    • atualização: Atualizar os atributos de uma chave
    • criar: Criar novas chaves
    • importar: Importar uma chave para um cofre de chaves
    • eliminar: Eliminar o objeto-chave
    • recuperar: Recuperar uma chave apagada
    • Backup: Fazer backup de uma chave num cofre de chaves
    • restaurar: Restaurar uma chave armazenada para um cofre de chaves
  • Permissões para operações criptográficas

    • Decifrar: Usar a chave para desproteger uma sequência de bytes
    • encriptar: Usar a chave para proteger uma sequência arbitrária de bytes
    • unwrapKey: Usar a chave para desproteger chaves simétricas envolvidas
    • wrapKey: Use a chave para proteger uma chave simétrica
    • verificar: Usar a chave para verificar os resumos
    • Assinar: Usar a chave para assinar resumos
  • Permissões para operações privilegiadas

    • purgar: Purgar (eliminar permanentemente) uma chave eliminada
    • release: Desbloquear uma chave para um ambiente de computação seguro e confidencial, que corresponde ao release_policy da chave
  • Permissões para operações de política de rotação

    • rotate: Rodar uma chave existente gerando uma nova versão da chave (apenas Key Vault)
    • obter política de rotação: obter configuração da política de rotação
    • definir política de rotação: definir configuração de política de rotação

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

Próximos passos