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á.
Chaveiros ECDH brutos
Importante
O chaveiro Raw ECDH só está disponível na versão 3. x do AWS Encryption SDK for Java. O chaveiro ECDH bruto foi introduzido na versão 1.5.0 da Material Providers Library.
O chaveiro ECDH bruto usa os pares de chaves públicas-privadas de curva elíptica que você fornece para derivar uma chave de empacotamento compartilhada entre duas partes. Primeiro, o chaveiro obtém um segredo compartilhado usando a chave privada do remetente, a chave pública do destinatário e o algoritmo de acordo de chave Elliptic Curve Diffie-Hellman (ECDH). Em seguida, o chaveiro usa o segredo compartilhado para derivar a chave de empacotamento compartilhada que protege suas chaves de criptografia de dados. A função de derivação de chave que o AWS Encryption SDK usa (KDF_CTR_HMAC_SHA384
) para derivar a chave de empacotamento compartilhada está em conformidade com as recomendações do NIST
A função de derivação de chave retorna 64 bytes de material de chave. Para garantir que ambas as partes usem o material de chave correto, AWS Encryption SDK usam os primeiros 32 bytes como chave de compromisso e os últimos 32 bytes como chave de empacotamento compartilhada. Na descriptografia, se o chaveiro não puder reproduzir a mesma chave de compromisso e chave de encapsulamento compartilhada armazenadas no texto cifrado do cabeçalho da mensagem, a operação falhará. Por exemplo, se você criptografar dados com um chaveiro configurado com a chave privada de Alice e a chave pública de Bob, um chaveiro configurado com a chave privada de Bob e a chave pública de Alice reproduzirá a mesma chave de compromisso e chave de empacotamento compartilhada e poderá descriptografar os dados. Se a chave pública de Bob for de um AWS KMS key par, Bob poderá criar um chaveiro AWS KMS ECDH para descriptografar os dados.
O chaveiro ECDH bruto criptografa os dados com uma chave simétrica usando o AES-GCM. A chave de dados é então criptografada em envelope com a chave de empacotamento compartilhada derivada usando o AES-GCM. Cada chaveiro Raw ECDH pode ter apenas uma chave de embrulho compartilhada, mas você pode incluir vários chaveiros Raw ECDH, sozinhos ou com outros chaveiros, em um chaveiro múltiplo.
Você é responsável por gerar, armazenar e proteger suas chaves privadas, preferencialmente em um módulo de segurança de hardware (HSM) ou sistema de gerenciamento de chaves. Os pares de chaves do remetente e do destinatário devem estar na mesma curva elíptica. O AWS Encryption SDK suporta as seguintes especificações de curva elíptica:
-
ECC_NIST_P256
-
ECC_NIST_P384
-
ECC_NIST_P512
Criando um chaveiro ECDH bruto
O chaveiro Raw ECDH suporta três esquemas de contrato principais:RawPrivateKeyToStaticPublicKey
, e. EphemeralPrivateKeyToStaticPublicKey
PublicKeyDiscovery
O esquema de contrato de chave selecionado determina quais operações criptográficas você pode realizar e como os materiais de chaveamento são montados.
RawPrivateKeyToStaticPublicKey
Use o esquema de contrato de RawPrivateKeyToStaticPublicKey
chave para configurar estaticamente a chave privada do remetente e a chave pública do destinatário no chaveiro. Esse esquema de contrato chave pode criptografar e descriptografar dados.
Para inicializar um chaveiro ECDH bruto com o esquema de contrato de RawPrivateKeyToStaticPublicKey
chave, forneça os seguintes valores:
-
Chave privada do remetente
-
Chave pública do destinatário
Você pode especificar a chave pública de um contrato de chave assimétrica (par de chaves KMS) ou a chave pública de um par de chaves gerado fora do. AWS
-
Especificação da curva
Identifica a especificação da curva elíptica nos pares de chaves especificados. Os pares de chaves do remetente e do destinatário devem ter a mesma especificação de curva.
Valores válidos:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
EphemeralPrivateKeyToStaticPublicKey
Os chaveiros configurados com o esquema de contrato de EphemeralPrivateKeyToStaticPublicKey
chaves criam um novo par de chaves localmente e derivam uma chave de empacotamento compartilhada exclusiva para cada chamada criptografada.
Esse esquema de contrato de chave só pode criptografar mensagens. Para descriptografar mensagens criptografadas com o esquema de contrato de EphemeralPrivateKeyToStaticPublicKey
chave, você deve usar um esquema de contrato de chave de descoberta configurado com a mesma chave pública do destinatário. Para descriptografar, você pode usar um chaveiro ECDH bruto com o algoritmo de acordo de chave ou, se a PublicKeyDiscoverychave pública do destinatário for de um par de chaves KMS de acordo de chave assimétrico, você pode AWS KMS usar um chaveiro ECDH com o esquema de contrato de chave. KmsPublicKeyDiscovery
Para inicializar um chaveiro ECDH bruto com o esquema de contrato de EphemeralPrivateKeyToStaticPublicKey
chave, forneça os seguintes valores:
-
Chave pública do destinatário
Você pode especificar a chave pública de um contrato de chave assimétrica (par de chaves KMS) ou a chave pública de um par de chaves gerado fora do. AWS
-
Especificação da curva
Identifica a especificação da curva elíptica na chave pública especificada.
Ao criptografar, o chaveiro cria um novo par de chaves na curva especificada e usa a nova chave privada e a chave pública especificada para derivar uma chave de empacotamento compartilhada.
Valores válidos:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
PublicKeyDiscovery
Ao descriptografar, é uma prática recomendada especificar as chaves de encapsulamento que podem ser usadas. AWS Encryption SDK Para seguir essa prática recomendada, use um chaveiro ECDH que especifique a chave privada do remetente e a chave pública do destinatário. No entanto, você também pode criar um chaveiro de descoberta de ECDH bruto, ou seja, um chaveiro ECDH bruto que pode descriptografar qualquer mensagem em que a chave pública da chave especificada corresponda à chave pública do destinatário armazenada no texto cifrado da mensagem. Esse esquema de contrato de chave só pode descriptografar mensagens.
Importante
Ao descriptografar mensagens usando o esquema de contrato de PublicKeyDiscovery
chave, você aceita todas as chaves públicas, independentemente de quem as possua.
Para inicializar um chaveiro ECDH bruto com o esquema de contrato de PublicKeyDiscovery
chave, forneça os seguintes valores:
-
Chave privada estática do destinatário
-
Especificação da curva
Identifica a especificação da curva elíptica na chave privada especificada. Os pares de chaves do remetente e do destinatário devem ter a mesma especificação de curva.
Valores válidos:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512