

# Oracle Secure Sockets Layer
<a name="Appendix.Oracle.Options.SSL"></a>

Para habilitar a criptografia SSL para uma instância de banco de dados do RDS para Oracle, adicione a opção Oracle SSL ao grupo de opções associado à instância de banco de dados. O Amazon RDS usa uma segunda porta, conforme exigido pela Oracle, para conexões SSL. Essa abordagem permite que comunicações de texto sem formatação e de texto com criptografia SSL ocorram ao mesmo tempo entre uma instância de banco de dados e o SQL\*Plus. Por exemplo, você pode usar a porta com comunicação de texto simples para se comunicar com outros recursos dentro de uma VPC enquanto usa a porta com comunicação criptografada em SSL para se comunicar com recursos fora da VPC.

**nota**  
É possível usar SSL ou a Native Network Encryption (NNE) na mesma instância de banco de dados do RDS para Oracle, mas não ambas. Se você usar a criptografia SSL, desative qualquer outra criptografia de conexão. Para obter mais informações, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

SSL/TLS e NNE não fazem mais parte do Oracle Advanced Security. No RDS para Oracle, é possível usar a criptografia SSL com todas as edições licenciadas das seguintes versões do banco de dados:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [Versões do TLS para a opção Oracle SSL](#Appendix.Oracle.Options.SSL.TLS)
+ [Pacotes de criptografia para a opção Oracle SSL](#Appendix.Oracle.Options.SSL.CipherSuites)
+ [Suporte ao FIPS](#Appendix.Oracle.Options.SSL.FIPS)
+ [Compatibilidade de certificados com pacotes de criptografia](#Appendix.Oracle.Options.SSL.CertificateCompatibility)
+ [Adicionar a opção do SSL](Appendix.Oracle.Options.SSL.OptionGroup.md)
+ [Configurar o SQL\*Plus para usar SSL com uma instância de banco de dados do RDS para Oracle](Appendix.Oracle.Options.SSL.ClientConfiguration.md)
+ [Conectar-se a uma instância de banco de dados do RDS para Oracle usando SSL](Appendix.Oracle.Options.SSL.Connecting.md)
+ [Configurar uma conexão SSL via JDBC](Appendix.Oracle.Options.SSL.JDBC.md)
+ [Forçar uma correspondência de DN com uma conexão SSL](Appendix.Oracle.Options.SSL.DNMatch.md)
+ [Solução de problemas de conexões SSL](Appendix.Oracle.Options.SSL.troubleshooting.md)

## Versões do TLS para a opção Oracle SSL
<a name="Appendix.Oracle.Options.SSL.TLS"></a>

O Amazon RDS for Oracle oferece suporte ao Transport Layer Security (TLS) versões 1.0 e 1.2. Quando você adiciona uma nova opção Oracle SSL, defina `SQLNET.SSL_VERSION` explicitamente como um valor válido. Os seguintes valores são permitidos para essa configuração de opção:
+ `"1.0"`: os clientes só podem se conectar à instância de banco de dados usando o TLS versão 1.0. Para opções Oracle SSL existentes, a `SQLNET.SSL_VERSION` é definida como `"1.0"` automaticamente. Você pode alterar a configuração se necessário.
+ `"1.2"` – os clientes podem se conectar à instância de banco de dados usando somente o TLS 1.2.
+ `"1.2 or 1.0"` – os clientes podem se conectar à instância de banco de dados usando o TLS 1.2 ou 1.0.

## Pacotes de criptografia para a opção Oracle SSL
<a name="Appendix.Oracle.Options.SSL.CipherSuites"></a>

O Amazon RDS for Oracle oferece suporte para vários pacotes de criptografia SSL. Por padrão, a opção Oracle SSL está configurada para usar o pacote de criptografia `SSL_RSA_WITH_AES_256_CBC_SHA`. Para especificar um pacote de criptografia diferente para usar em conexões SSL, use a configuração da opção `SQLNET.CIPHER_SUITE`.

É possível especificar vários valores para `SQLNET.CIPHER_SUITE`. Essa técnica é útil caso você tenha links de banco de dados entre suas instâncias de banco de dados e decida atualizar seus pacotes de criptografia.

A tabela a seguir resume o suporte a SSL no RDS para Oracle em todas as edições do Oracle Database 19c e 21c.


| Suíte de cifras (SQLNET.CIPHER\_SUITE) | Versão do TLS compatível (SQLNET.SSL\_VERSION) | Suporte ao FIPS | Conformidade com FedRAMP | 
| --- | --- | --- | --- | 
| SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA (padrão) | 1.0 e 1.2 | Sim | Não | 
| SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256 | 1.2 | Sim | Não | 
| SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | Sim | Não | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256 | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384 | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256 | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | Sim | Sim | 
| TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | 1.2 | Sim | Sim | 

## Suporte ao FIPS
<a name="Appendix.Oracle.Options.SSL.FIPS"></a>

O RDS para Oracle permite usar o padrão FIPS (Federal Information Processing Standard) para 140-2. O FIPS 140-2 é um padrão do governo dos Estados Unidos que define os requisitos de segurança de módulos criptográficos. Ative o padrão FIPS definindo `FIPS.SSLFIPS_140` como `TRUE` para a opção do Oracle SSL. Quando o FIPS 140-2 é configurado para SSL, as bibliotecas criptográficas criptografam dados entre o cliente e a instância de banco de dados do RDS para Oracle.

Os clientes devem usar o pacote de criptografia compatível com o FIPS. Ao estabelecer uma conexão, o cliente e a instância de banco de dados do RDS para Oracle negociam qual pacote de criptografia deverá ser usado ao transmitir mensagens nas duas direções. A tabela em [Pacotes de criptografia para a opção Oracle SSL](#Appendix.Oracle.Options.SSL.CipherSuites) mostra os pacotes de criptografia SSL compatíveis com o FIPS para cada versão do TLS. Para receber mais informações, consulte [Oracle Database FIPS 140-2 Settings](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/oracle-database-fips-140-settings.html#GUID-DDBEB3F9-B216-44BB-8C18-43B5E468CBBB) na documentação da Oracle.

## Compatibilidade de certificados com pacotes de criptografia
<a name="Appendix.Oracle.Options.SSL.CertificateCompatibility"></a>

O RDS para Oracle comporta os certificados RSA e Elliptic Curve Digital Signature Algorithm (ECDSA). Ao configurar o SSL para sua instância de banco de dados, você deve garantir que os pacotes de criptografia especificados na configuração da opção `SQLNET.CIPHER_SUITE` aceitem o tipo de certificado usado pela sua instância de banco de dados.

A tabela a seguir mostra a compatibilidade entre os tipos de certificado e pacotes de criptografia:


| Tipo de certificado | Pacotes de criptografia compatíveis | Pacotes de criptografia incompatíveis | 
| --- | --- | --- | 
| Pacotes de RSA (rds-ca-2019, rds-ca-rsa2048-g1, rds-ca-rsa4096-g1) | SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256<br />SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | 
| Certificados ECDSA (rds-ca-ecc384-g1) | TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256<br />SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | 

Ao especificar vários pacotes de criptografia na configuração da opção `SQLNET.CIPHER_SUITE`, inclua pelo menos um pacote de criptografia compatível com o tipo de certificado usado pela sua instância de banco de dados. Se você estiver usando um grupo de opções com várias instâncias de banco de dados com tipos de certificados diferentes, inclua pelo menos um pacote de criptografia para cada tipo de certificado.

Se você tentar associar um grupo de opções a uma opção SSL que contenha somente pacotes de criptografia incompatíveis com o tipo de certificado de uma instância de banco de dados, a operação falhará com uma mensagem de erro indicando a incompatibilidade.