AWS KMS fundamentos da criptografia - AWS Key Management Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS KMS fundamentos da criptografia

AWS KMS usa algoritmos criptográficos configuráveis para que o sistema possa migrar rapidamente de um algoritmo ou modo aprovado para outro. O conjunto padrão inicial de algoritmos criptográficos foi selecionado dos algoritmos do Federal Information Processing Standard (FIPSaprovados) por suas propriedades de segurança e desempenho.

Entropia e geração de números aleatórios

AWS KMS a geração de chaves é realizada no AWS KMS HSMs. Eles HSMs implementam um gerador híbrido de números aleatórios que usa o NIST SP800-90A Deterministic Random Bit Generator (DRBG) CTR_DRBG using AES-256. Ele é preparado com um gerador de bits aleatórios não determinísticos com 384 bits de entropia e atualizado com entropia adicional para fornecer resistência de previsão em cada chamada de material criptográfico.

Operações de chave simétrica (somente criptografia)

Todos os comandos de criptografia de chave simétrica usados HSMs usam os Advanced Encryption Standards (AES), no Galois Counter Mode (GCM) usando chaves de 256 bits. As chamadas análogas para descriptografar usam a função inversa.

AES- GCM é um esquema de criptografia autenticado. Além de criptografar texto simples para produzir texto cifrado, ele computa uma tag de autenticação sobre o texto cifrado e quaisquer dados adicionais para os quais a autenticação seja necessária (dados autenticados adicionais ou). AAD A tag de autenticação ajuda a garantir que os dados sejam da fonte pretendida e que o texto cifrado não AAD tenham sido modificados.

Freqüentemente, AWS omite a inclusão do AAD em nossas descrições, especialmente quando se refere à criptografia de chaves de dados. Nesses casos, está implícito no texto circundante que a estrutura a ser criptografada é particionada entre o texto simples a ser criptografado e o texto não criptografado a ser protegido. AAD

AWS KMS fornece uma opção para você importar o material chave para um, em AWS KMS key vez de AWS KMS depender da geração do material chave. Esse material de chave importado pode ser criptografado usando RSAES- OAEP para proteger a chave durante o transporte para AWS KMS HSM o. Os pares de RSA chaves são gerados em AWS KMS HSMs. O material da chave importada é descriptografado em um AWS KMS HSM e recriptografado em AES - GCM antes de ser armazenado pelo serviço.

Operações de chave assimétrica (criptografia, assinatura digital e verificação de assinatura)

AWS KMS suporta o uso de operações de chave assimétrica para operações de criptografia, assinatura digital e contrato de chaves. Operações de chave assimétrica contam com um par de chave pública e chave privada relacionadas matematicamente que pode ser usado para criptografia e descriptografia, assinatura e verificação de assinatura ou derivação de segredos compartilhados. A chave privada nunca sai AWS KMS sem criptografia. Você pode usar a chave pública interna AWS KMS chamando as AWS KMS API operações ou fazer o download da chave pública e usá-la fora dela AWS KMS.

AWS KMS suporta as seguintes cifras assimétricas.

  • RSA- OAEP (para criptografia) & RSA - PSS e - RSA PKCS - #1 -v1_5 (para assinatura e verificação) — Suporta tamanhos de RSA chave (em bits): 2048, 3072 e 4096 para diferentes requisitos de segurança.

  • Curva elíptica (ECC) — Usada para assinar e verificar ou derivar segredos compartilhados, mas não para ambos. Suporta ECC curvas: NIST P256, P384, P521, 256k1. SECP

  • SM2(Somente regiões da China) — Usado para criptografia e descriptografia, assinatura e verificação ou derivação de segredos compartilhados, mas você deve escolher um uso de chave. Suporta SM2PKE criptografia e SM2DSA assinatura.

Funções de derivação de chave

Uma função de derivação de chave é usada para derivar chaves adicionais de um segredo ou chave inicial. AWS KMS usa uma função de derivação de chave (KDF) para derivar chaves por chamada para cada criptografia sob um. AWS KMS key Todas as KDF operações usam o KDFmodo de contador usando HMAC [FIPS197] com SHA256 [FIPS180]. A chave derivada de 256 bits é usada com AES - GCM para criptografar ou descriptografar dados e chaves do cliente.

AWS KMS uso interno de assinaturas digitais

Assinaturas digitais também são usadas para autenticar comandos e comunicações entre entidades do AWS KMS . Todas as entidades de serviço têm um par de chaves de algoritmo de assinatura digital (ECDSA) de curva elíptica. Eles funcionam ECDSA conforme definido em Uso de algoritmos de criptografia de curva elíptica (ECC) na sintaxe de mensagens criptográficas (CMS) e X9.62-2005: Criptografia de chave pública para o setor de serviços financeiros: o algoritmo de assinatura digital de curva elíptica (). ECDSA As entidades usam o algoritmo de hash seguro definido nas Publicações de Normas Federais de Processamento de Informações, FIPS PUB 180-4, conhecido como. SHA384 As chaves são geradas na curva secp384r1 (-P384). NIST

Criptografia de envelope

Quando você criptografa seus dados, os dados são protegidos, mas é necessário proteger a chave de criptografia. Uma estratégia é para criptografá-la. Criptografia de envelope é a prática de criptografar dados de texto simples com uma chave de dados e criptografar a chave de dados em outra chave.

Você pode até mesmo criptografar a chave de criptografia dos dados em outra chave de criptografia e criptografar essa chave de criptografia em outra chave de criptografia. Mas em algum momento deverá manter uma chave em texto simples para que possa descriptografar as chaves e seus dados. Essa chave de criptografia em texto simples de nível superior é chamada de chave raiz.

criptografia envelopada

AWS KMS ajuda você a proteger suas chaves de criptografia armazenando-as e gerenciando-as com segurança. A chave raiz armazenada AWS KMS, conhecida como AWS KMS keys, nunca deixa os módulos de segurança de hardware AWS KMS FIPS validados sem criptografia. Para usar uma KMS chave, você deve ligar AWS KMS.

Uma construção básica usada em muitos sistemas criptográficos é a criptografia de envelope. A criptografia de envelope usa duas ou mais chaves criptográficas para proteger uma mensagem. Normalmente, uma chave é derivada de uma chave estática k de longo prazo, e outra chave é uma chave por mensagem, msgKey, que é gerada para criptografar a mensagem. O envelope é formado pela criptografia da mensagem: texto cifrado = Criptografar (, mensagem). msgKey Em seguida, a chave da mensagem é criptografada com a chave estática de longo prazo: encKey = Encrypt (k,msgKey). Finalmente, os dois valores (encKey, texto cifrado) são empacotados em uma única estrutura ou mensagem criptografada em envelope.

O destinatário, com acesso a k, pode abrir a mensagem envolta primeiro descriptografando a chave criptografada e depois descriptografando a mensagem.

AWS KMS fornece a capacidade de gerenciar essas chaves estáticas de longo prazo e automatizar o processo de criptografia de envelopes de seus dados.

Além dos recursos de criptografia fornecidos no AWS KMS serviço, o AWS Encryption SDK fornece bibliotecas de criptografia de envelopes do lado do cliente. Você pode usar essas bibliotecas para proteger os seus dados e as chaves de criptografia usadas para criptografar esses dados.

Criptografia de envelope com várias chaves de criptografia de chave

A criptografia de envelope oferece vários benefícios:

  • Proteção de chaves de dados

    Quando você criptografa uma chave de dados, não precisa se preocupar em armazenar a chave de dados criptografada porque a chave de dados é inerentemente protegida pela criptografia. A chave de dados criptografada pode ser armazenada com segurança junto com os dados criptografados.

  • Criptografar os mesmos dados com várias chaves

    As operações de criptografia podem ser demoradas, especialmente quando os dados que estão sendo criptografados são objetos grandes. Em vez de recriptografar dados brutos várias vezes com diferentes chaves, você pode recriptografar somente as chaves de dados que protegem os dados brutos.

  • Combinação de pontos fortes de vários algoritmos

    Em geral, os algoritmos de chave simétrica são mais rápidos e geram textos cifrados menores do que os algoritmos de chave pública. No entanto, os algoritmos de chave pública fornecem separação inerente de funções e gerenciamento de chaves mais fácil. A criptografia de envelope permite associar os pontos fortes de cada estratégia.

Operações criptográficas

Em AWS KMS, operações criptográficas são API operações que usam KMS chaves para proteger dados. Como KMS as chaves permanecem dentro AWS KMS, você deve ligar AWS KMS para usar uma KMS chave em uma operação criptográfica.

Para realizar operações criptográficas com KMS chaves, use o AWS SDKs, AWS Command Line Interface (AWS CLI) ou o. AWS Tools for PowerShell Não é possível executar operações de criptografia no console do AWS KMS . Para obter exemplos de chamadas de operações de criptografia em várias linguagens de programação, consulte Exemplos de código para AWS KMS usar AWS SDKs.

A tabela a seguir lista as operações AWS KMS criptográficas. Também mostra o tipo de chave e os requisitos de uso KMS das chaves usadas na operação.

Operation Tipo de chave Uso da chave
Decrypt Simétrico ou assimétrico ENCRYPT_DECRYPT
DeriveSharedSecret Assimétrica KEY_AGREEMENT
Encrypt Simétrico ou assimétrico ENCRYPT_DECRYPT
GenerateDataKey Simétrica ENCRYPT_DECRYPT
GenerateDataKeyPair Simétrica [1]

Não é compatível com KMS chaves em armazenamentos de chaves personalizadas.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Simétrica [1]

Não é compatível com KMS chaves em armazenamentos de chaves personalizadas.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Simétrica ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom N/A. Esta operação não usa uma KMS chave. N/D
ReEncrypt Simétrico ou assimétrico ENCRYPT_DECRYPT
Sign Assimétrica SIGN_VERIFY
Verificar Assimétrica SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Gera um par de chaves de dados assimétrico que é protegido por uma chave de criptografia simétrica. KMS

Para obter informações sobre as permissões para operações de criptografia, consulte a AWS KMS permissões.

Para tornar AWS KMS responsivo e altamente funcional para todos os usuários, AWS KMS estabelece cotas no número de operações criptográficas chamadas em cada segundo. Para obter mais detalhes, consulte Cotas compartilhadas para operações de criptografia.