Oracle Native Network Encryption - Amazon Relational Database Service

Oracle Native Network Encryption

O Amazon RDS oferece suporte para a Oracle Native Network Encryption (NNE). Com criptografia de rede nativa, você pode criptografar dados à medida que eles entram e saem de uma instância de banco de dados. O Amazon RDS é compatível com a NNE para todas as edições do Oracle Database.

Uma discussão detalhada sobre a Oracle Native Network Encryption está além do escopo deste guia, mas você deve compreender os pontos fortes e fracos de cada algoritmo e chave antes de decidir sobre uma solução para a sua implantação. Para obter informações sobre os algoritmos e as chaves que estão disponíveis pela Oracle Native Network Encryption, consulte Configurar a criptografia de dados de rede, na documentação da Oracle. Para ter mais informações sobre a segurança da AWS, consulte a Central de Segurança da AWS.

nota

Você pode usar a Native Network Encryption ou a Secure Sockets Layer, mas não ambas. Para ter mais informações, consulte Oracle Secure Sockets Layer.

Configurações de opção do NNE

Você pode especificar requisitos de criptografia no servidor e no cliente. A instância de banco de dados pode atuar como um cliente quando, por exemplo, usa um link de banco de dados para se conectar a outro banco de dados. Você pode preferir evitar forçar a criptografia no lado do servidor. Por exemplo, talvez você não queira forçar todas as comunicações do cliente a usar criptografia porque o servidor exige isso. Nesse caso, você pode forçar a criptografia no lado do cliente usando as opções do SQLNET.*CLIENT.

O Amazon RDS oferece suporte para as seguintes configurações da opção NNE.

nota

Ao usar vírgulas para separar valores para uma configuração de opção, não coloque um espaço após a vírgula.

Configuração da opção Valores válidos Valores padrão Descrição

SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS

TRUE, FALSE

TRUE

O comportamento do servidor quando um cliente que usa uma cifra não segura tenta se conectar ao banco de dados. Se for TRUE, os clientes poderão se conectar mesmo que não sejam corrigidos com a PSU de julho de 2021.

Se a configuração for FALSE, os clientes poderão se conectar ao banco de dados somente quando forem corrigidos com a PSU de julho de 2021. Antes de definir SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS para FALSE, certifique-se de que as seguintes condições sejam atendidas:

  • SQLNET.ENCRYPTION_TYPES_SERVER e SQLNET.ENCRYPTION_TYPES_CLIENT têm um método de criptografia correspondente que não é DES, 3DES ou RC4 (todos os comprimentos de chaves).

  • SQLNET.CHECKSUM_TYPES_SERVER e SQLNET.CHECKSUM_TYPES_CLIENT têm um método de soma de verificação segura correspondente que não é MD5.

  • O cliente é corrigido com a PSU de julho de 2021. Se o cliente não for corrigido, o cliente perderá a conexão e receberá o erro ORA-12269.

SQLNET.ALLOW_WEAK_CRYPTO

TRUE, FALSE

TRUE

O comportamento do servidor quando um cliente que usa uma cifra não segura tenta se conectar ao banco de dados. As seguintes cifras são consideradas não seguras:

  • Método de criptografia DES (todos os comprimentos de chave)

  • Método de criptografia 3DES (todos os comprimentos de chave)

  • Método de criptografia RC4 (todos os comprimentos de chave)

  • Método de soma de verificação MD5

Se a configuração for TRUE, os clientes poderão se conectar quando usarem as cifras não seguras anteriores.

Se a configuração for FALSE, o banco de dados impedirá os clientes e se conectarem quando usarem as cifras não seguras anteriores. Antes de definir SQLNET.ALLOW_WEAK_CRYPTO para FALSE, certifique-se de que as seguintes condições sejam atendidas:

  • SQLNET.ENCRYPTION_TYPES_SERVER e SQLNET.ENCRYPTION_TYPES_CLIENT têm um método de criptografia correspondente que não é DES, 3DES ou RC4 (todos os comprimentos de chaves).

  • SQLNET.CHECKSUM_TYPES_SERVER e SQLNET.CHECKSUM_TYPES_CLIENT têm um método de soma de verificação segura correspondente que não é MD5.

  • O cliente é corrigido com a PSU de julho de 2021. Se o cliente não for corrigido, o cliente perderá a conexão e receberá o erro ORA-12269.

SQLNET.CRYPTO_CHECKSUM_CLIENT

Accepted, Rejected, Requested, Required

Requested

O comportamento de integridade de dados quando uma instância de banco de dados se conecta ao cliente ou um servidor atuando como um cliente. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente.

Requested indica que o cliente não exige que a instância de banco de dados realize uma soma de verificação.

SQLNET.CRYPTO_CHECKSUM_SERVER

Accepted, Rejected, Requested, Required

Requested

O comportamento de integridade de dados quando um cliente, ou um servidor atuando como um cliente, conecta-se à instância de banco de dados. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente.

Requested indica que a instância de banco de dados não exige que o cliente faça uma soma de verificação.

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

SHA256, SHA384, SHA512, SHA1, MD5

SHA256, SHA384, SHA512

Uma lista de algoritmos de soma de verificação.

É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro InvalidParameterValue.

Este parâmetro e o SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER devem ter uma cifra comum.

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

SHA256, SHA384, SHA512, SHA1, MD5

SHA256, SHA384, SHA512, SHA1, MD5

Uma lista de algoritmos de soma de verificação.

É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro InvalidParameterValue.

Este parâmetro e o SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT devem ter uma cifra comum.

SQLNET.ENCRYPTION_CLIENT

Accepted, Rejected, Requested, Required

Requested

O comportamento de criptografia do cliente quando um cliente, ou um servidor atuando como cliente, se conecta à instância de banco de dados. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente.

Requested indica que o cliente não exige que o tráfego do servidor seja criptografado.

SQLNET.ENCRYPTION_SERVER

Accepted, Rejected, Requested, Required

Requested

O comportamento de criptografia do servidor quando um cliente, ou um servidor atuando como cliente, se conecta à instância de banco de dados. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente.

Requested indica que a instância de banco de dados não requer que o tráfego a partir do cliente seja criptografado.

SQLNET.ENCRYPTION_TYPES_CLIENT

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

Uma lista de algoritmos de criptografia usados pelo cliente. Para descriptografar a entrada do servidor, o cliente experimenta cada algoritmo, em ordem, até que um deles seja bem-sucedido ou até atingir o final da lista.

O Amazon RDS usa a seguinte lista padrão do Oracle. O RDS inicia com RC4_256 e segue a sequência na lista. Você pode alterar a ordem ou limitar os algoritmos que a instância de banco de dados aceitará.

  1. RC4_256: RSA RC4 (tamanho da chave de 256 bits)

  2. AES256: AES (tamanho da chave de 256 bits)

  3. AES192: AES (tamanho da chave de 192 bits)

  4. 3DES168: DES triplo de 3 chaves (tamanho da chave efetivo de 112 bits)

  5. RC4_128: RSA RC4 (tamanho da chave de 128 bits)

  6. AES128: AES (tamanho da chave de 128 bits)

  7. 3DES112: DES triplo de 2 chaves (tamanho da chave efetivo de 80 bits)

  8. RC4_56: RSA RC4 (tamanho da chave de 56 bits)

  9. DES: DES padrão (tamanho da chave de 56 bits)

  10. RC4_40: RSA RC4 (tamanho da chave de 40 bits)

  11. DES40: DES40 (tamanho da chave de 40 bits)

É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro InvalidParameterValue.

Este parâmetro e o SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER devem ter uma cifra comum.

SQLNET.ENCRYPTION_TYPES_SERVER

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

RC4_256, AES256, AES192, 3DES168, RC4_128, AES128, 3DES112, RC4_56, DES, RC4_40, DES40

Uma lista de algoritmos de criptografia usados pela instância de banco de dados. A instância de banco de dados usa cada algoritmo, em ordem, para tentar descriptografar a entrada do cliente até que um algoritmo seja bem-sucedido ou até atingir o final da lista.

O Amazon RDS usa a seguinte lista padrão do Oracle. Você pode alterar a ordem ou restringir os algoritmos que o cliente aceitará.

  1. RC4_256: RSA RC4 (tamanho da chave de 256 bits)

  2. AES256: AES (tamanho da chave de 256 bits)

  3. AES192: AES (tamanho da chave de 192 bits)

  4. 3DES168: DES triplo de 3 chaves (tamanho da chave efetivo de 112 bits)

  5. RC4_128: RSA RC4 (tamanho da chave de 128 bits)

  6. AES128: AES (tamanho da chave de 128 bits)

  7. 3DES112: DES triplo de 2 chaves (tamanho da chave efetivo de 80 bits)

  8. RC4_56: RSA RC4 (tamanho da chave de 56 bits)

  9. DES: DES padrão (tamanho da chave de 56 bits)

  10. RC4_40: RSA RC4 (tamanho da chave de 40 bits)

  11. DES40: DES40 (tamanho da chave de 40 bits)

É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro InvalidParameterValue.

Este parâmetro e o SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER devem ter uma cifra comum.

Adicionar a opção do NNE

O processo geral para adicionar as opções do NNE a uma instância de banco de dados é o seguinte:

  1. Crie um novo grupo de opções, ou copie ou modifique um existente.

  2. Adicione a opção ao grupo de opções.

  3. Associe o grupo de opções à instância de banco de dados.

Quando o grupo de opções estiver ativo, a NNE ficará ativa.

Para adicionar a opção NNE a uma instância de banco de dados usando o AWS Management Console
  1. Para Engine (Mecanismo), escolha a edição do Oracle que deseja usar. NNE é compatível em todas as edições.

  2. Para Major engine version (Versão do mecanismo principal), escolha a versão da sua instância de banco de dados.

    Para ter mais informações, consulte Criar um grupo de opções.

  3. Adicione a opção NNE ao grupo de opções. Para mais informações sobre a adição de opções, consulte Adicionar uma opção a um grupo de opções.

    nota

    Depois de adicionar a opção NNE, você não precisará reiniciar suas instâncias de banco de dados. Assim que o grupo de opções estiver ativo, o NNE ficará ativo.

  4. Aplique o grupo de opções a uma instância de banco de dados nova ou existente:

    • Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte Criar uma instância de banco de dados do Amazon RDS.

    • Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Depois de adicionar a opção NNE, você não precisará reiniciar sua instância de banco de dados. Assim que o grupo de opções estiver ativo, o NNE ficará ativo. Para ter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.

Como definir valores de NNE no sqlnet.ora

Com a Oracle Native Network Encryption, você pode configurar a criptografia de rede no lado do servidor e no lado do cliente. O cliente é o computador usado para realizar a conexão com a instância de banco de dados. Você pode especificar as seguintes configurações de cliente no slqnet.ora:

  • SQLNET.ALLOW_WEAK_CRYPTO

  • SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS

  • SQLNET.CRYPTO_CHECKSUM_CLIENT

  • SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

  • SQLNET.ENCRYPTION_CLIENT

  • SQLNET.ENCRYPTION_TYPES_CLIENT

Para obter informações, consulte Configurar a criptografia de dados da rede e a integridade para clientes e servidores Oracle na documentação da Oracle.

Às vezes, a instância de banco de dados rejeita uma solicitação de conexão de uma aplicação. Por exemplo, uma rejeição pode ocorrer quando os algoritmos de criptografia no cliente e no servidor não correspondem. Para testar a Oracle Native Network Encryption, adicione as seguintes linhas ao arquivo sqlnet.ora no cliente:

DIAG_ADR_ENABLED=off TRACE_DIRECTORY_CLIENT=/tmp TRACE_FILE_CLIENT=nettrace TRACE_LEVEL_CLIENT=16

Quando ocorre uma tentativa de conexão, as linhas anteriores geram um arquivo de rastreamento no cliente chamado /tmp/nettrace*. O arquivo de rastreamento contém informações sobre a conexão. Para ter mais informações sobre problemas de conexão quando você estiver usando a Oracle Native Network Encryption, consulte About negotiating encryption and integrity (Sobre a negociação da criptografia e a integridade) na documentação do Oracle Database.

Como modificar configurações de opção da NNE

Depois de habilitar o NNE, é possível modificar as configurações. Atualmente, você pode modificar as configurações da opção NNE somente com a AWS CLI ou a API do RDS. Não é possível usar o console. Para saber como modificar as configurações da opção usando a CLI, consulte AWS CLI. Para ter mais informações sobre cada configuração, consulte Configurações de opção do NNE.

Modificar valores de CRYPTO_CHECKSUM_*

Se você modificar as configurações de opções de NNE, certifique-se de que as seguintes configurações de opções tenham pelo menos uma cifra comum.

  • SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

  • SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

O exemplo a seguir mostra um cenário no qual você modifica SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER. A configuração é válida porque CRYPTO_CHECKSUM_TYPES_CLIENT e CRYPTO_CHECKSUM_TYPES_SERVER usam SHA256.

Configuração da opção Valores antes da modificação Valores após modificação

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

SHA256, SHA384, SHA512

Sem alterações

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

SHA256, SHA384, SHA512, SHA1, MD5

SHA1,MD5,SHA256

Como outro exemplo, suponha que você queira modificar SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER de sua configuração padrão para SHA1,MD5. Nesse caso, certifique-se de que tenha definido SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT como SHA1 ou MD5. Esses algoritmos não são incluídos nos valores padrão para SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT.

Modificar as configurações de ALLOW_WEAK_CRYPTO*

Para definir as opções SQLNET.ALLOW_WEAK_CRYPTO* do valor padrão para FALSE, certifique-se de que as seguintes condições sejam atendidas:

  • SQLNET.ENCRYPTION_TYPES_SERVER e SQLNET.ENCRYPTION_TYPES_CLIENT têm um método de criptografia segura correspondente. Um método é considerado seguro se não for DES, 3DES ou RC4 (todos os comprimentos de chaves).

  • SQLNET.CHECKSUM_TYPES_SERVER e SQLNET.CHECKSUM_TYPES_CLIENT têm um método de soma de verificação segura correspondente. Um método é considerado seguro se não for MD5.

  • O cliente é corrigido com a PSU de julho de 2021. Se o cliente não for corrigido, o cliente perderá a conexão e receberá o erro ORA-12269.

O exemplo a seguir mostra as configurações de NNE de exemplo. Suponha que você queira definir SQLNET.ENCRYPTION_TYPES_SERVER e SQLNET.ENCRYPTION_TYPES_CLIENT para FALSE, bloqueando conexões não seguras. As configurações da opção de soma de verificação atendem aos pré-requisitos porque ambas têm SHA256. No entanto, SQLNET.ENCRYPTION_TYPES_CLIENT e SQLNET.ENCRYPTION_TYPES_SERVER usam os métodos de criptografia DES, 3DES e RC4, que não são seguros. Portanto, para definir as opções de SQLNET.ALLOW_WEAK_CRYPTO* para FALSE, primeiro defina SQLNET.ENCRYPTION_TYPES_SERVER e SQLNET.ENCRYPTION_TYPES_CLIENT para um método de criptografia seguro, como AES256.

Configuração da opção Valores

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

SHA256, SHA384, SHA512

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

SHA1,MD5,SHA256

SQLNET.ENCRYPTION_TYPES_CLIENT

RC4_256, 3DES168, DES40

SQLNET.ENCRYPTION_TYPES_SERVER

RC4_256, 3DES168, DES40

Remover a opção NNE

Você pode remover o NNE de uma instância de banco de dados.

Para remover o NNE de uma instância de banco de dados, siga um destes procedimentos:

  • Para remover o NNE de várias instâncias de bancos de dados, remova a opção NNE do grupo de opções ao qual elas pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Depois de remover a opção NNE, você não precisará reiniciar suas instâncias de banco de dados. Para ter mais informações, consulte Remover uma opção de um grupo de opções.

  • Para remover o NNE de uma única instância de banco de dados, modifique essa instância e especifique um grupo de opções diferente que não inclua a opção NNE. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Depois de remover a opção NNE, você não precisará reiniciar sua instância de banco de dados. Para ter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.