Oracle Native Network Encryption - Amazon Relational Database Service

Oracle Native Network Encryption

Amazon RDS es compatible con el cifrado de red nativo (NNE, Native Network Encryption) de Oracle. El cifrado de red nativo permite cifrar datos durante su tránsito hacia y desde una instancia de base de datos. Amazon RDS es compatible con NNE para todas las ediciones de Oracle Database.

Esta guía no tiene el propósito de ofrecerle una descripción detallada del cifrado de red nativo de Oracle, pero sí que debe comprender los puntos fuertes y los puntos débiles de cada algoritmo y cada clave antes de decidirse por una solución para su implementación. Para obtener información acerca de los algoritmos y las claves disponibles a través del cifrado de red nativo de Oracle, consulte Configuring Network Data Encryption en la documentación de Oracle. Para obtener más información sobre la seguridad de AWS, consulte el centro de seguridad de AWS.

nota

Es posible utilizar Native Network Encryption o Secure Sockets Layer, pero no ambas opciones. Para obtener más información, consulte Capa de conexión segura de Oracle.

Configuración de la opción NNE

Puede especificar requisitos de cifrado tanto en el servidor como en el cliente. La instancia de base de datos puede actuar como cliente cuando, por ejemplo, utiliza un vínculo de base de datos para conectarse a otra base de datos. Es posible que desee evitar forzar el cifrado en el lado del servidor. Por ejemplo, es posible que no desee forzar todas las comunicaciones del cliente para que utilicen el cifrado porque el servidor lo requiera. En este caso, puede forzar el cifrado en el lado del cliente mediante las opciones de SQLNET.*CLIENT.

Amazon RDS admite los siguientes valores para las opciones de NNE.

nota

Cuando utilice comas para separar valores para una configuración de opción, no coloque un espacio después de la coma.

Ajuste de la opción Valores válidos Valores predeterminados Descripción

SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS

TRUE, FALSE

TRUE

El comportamiento del servidor cuando un cliente que utiliza un cifrado que no está protegido intenta conectarse a la base de datos. Si es TRUE, los clientes pueden conectarse incluso si no cuentan con revisiones de PSU de julio de 2021.

Si el ajuste es FALSE, los clientes pueden conectarse a la base de datos solo cuando cuenten con las revisiones de PSU de julio de 2021. Antes de configurar SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS a FALSE, asegúrese de que se cumplan las siguientes condiciones:

  • SQLNET.ENCRYPTION_TYPES_SERVER y SQLNET.ENCRYPTION_TYPES_CLIENT deben tener un método de cifrado coincidente que no sea DES, 3DES, o bien RC4 (todas las longitudes de clave).

  • SQLNET.CHECKSUM_TYPES_SERVER y SQLNET.CHECKSUM_TYPES_CLIENT deben tener un método de suma de comprobación seguro coincidente que no sea MD5.

  • El cliente cuenta con la revisión de PSU de julio de 2021. Si el cliente no cuenta con la revisión, el cliente pierde la conexión y recibe el erorr ORA-12269.

SQLNET.ALLOW_WEAK_CRYPTO

TRUE, FALSE

TRUE

El comportamiento del servidor cuando un cliente que utiliza un cifrado que no está protegido intenta conectarse a la base de datos. Los siguientes cifrados no se consideran seguros:

  • Método de cifrado DES (todas las longitudes de clave)

  • Método de cifrado 3DES (todas las longitudes de clave)

  • Método de cifrado RC4 (todas las longitudes de clave)

  • Método de sumas de comprobación MD5

Si la configuración es TRUE, los clientes pueden conectarse cuando utilizan los cifrados anteriores que no estén protegidos.

Si la configuración es FALSE, la base de datos evita que los clientes se conecten cuando utilizan los cifrados anteriores que no estén protegidos. Antes de configurar SQLNET.ALLOW_WEAK_CRYPTO a FALSE, asegúrese de que se cumplan las siguientes condiciones:

  • SQLNET.ENCRYPTION_TYPES_SERVER y SQLNET.ENCRYPTION_TYPES_CLIENT deben tener un método de cifrado coincidente que no sea DES, 3DES, o bien RC4 (todas las longitudes de clave).

  • SQLNET.CHECKSUM_TYPES_SERVER y SQLNET.CHECKSUM_TYPES_CLIENT deben tener un método de suma de comprobación seguro coincidente que no sea MD5.

  • El cliente cuenta con la revisión de PSU de julio de 2021. Si el cliente no cuenta con la revisión, el cliente pierde la conexión y recibe el erorr ORA-12269.

SQLNET.CRYPTO_CHECKSUM_CLIENT

Accepted, Rejected, Requested, Required

Requested

Comportamiento de integridad de datos cuando una instancia de base de datos se conecta al cliente o cuando un servidor actúa como un cliente. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente.

Requested indica que el cliente no requiere que la instancia de base de datos haga la suma de comprobación.

SQLNET.CRYPTO_CHECKSUM_SERVER

Accepted, Rejected, Requested, Required

Requested

Comportamiento de integridad de datos cuando un cliente o un servidor que actúa como cliente se conecta a la instancia de base de datos. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente.

Requested indica que la instancia de base de datos no requiere que el cliente haga la suma de comprobación.

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

SHA256, SHA384, SHA512, SHA1, MD5

SHA256, SHA384, SHA512

Una lista de algoritmos de suma de comprobación.

Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error InvalidParameterValue.

Este parámetro y SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER deben tener un cifrado común.

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

SHA256, SHA384, SHA512, SHA1, MD5

SHA256, SHA384, SHA512, SHA1, MD5

Una lista de algoritmos de suma de comprobación.

Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error InvalidParameterValue.

Este parámetro y SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT deben tener un cifrado común.

SQLNET.ENCRYPTION_CLIENT

Accepted, Rejected, Requested, Required

Requested

Comportamiento de cifrado del cliente cuando un cliente o un servidor que actúa como cliente se conecta a la instancia de base de datos. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente.

Requested indica que el cliente no requiere que el tráfico del servidor esté cifrado.

SQLNET.ENCRYPTION_SERVER

Accepted, Rejected, Requested, Required

Requested

Comportamiento de cifrado del servidor cuando un cliente o un servidor que actúa como cliente se conecta a la instancia de base de datos. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente.

Requested indica que la instancia de base de datos no requiere que el tráfico del cliente esté cifrado.

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

Lista de algoritmos de cifrado utilizados por el cliente. El cliente utiliza cada algoritmo, por orden, para intentar descifrar la entrada del servidor hasta que un algoritmo tenga éxito o hasta que se llegue al final de la lista.

Amazon RDS utiliza la siguiente lista predeterminada de Oracle. RDS comienza con RC4_256 y continúa con la lista por orden. Es posible cambiar el orden o limitar los algoritmos que aceptará la instancia de base de datos.

  1. RC4_256: RSA RC4 (tamaño de clave de 256 bits)

  2. AES256: AES (tamaño de clave de 256 bits)

  3. AES192: AES (tamaño de clave de 192 bits)

  4. 3DES168: 3 claves Triple-DES (tamaño de clave efectivo de 112 bits)

  5. RC4_128: RSA RC4 (tamaño de clave de 128 bits)

  6. AES128: AES (tamaño de clave de 128 bits)

  7. 3DES112: 2 claves Triple-DES (tamaño de clave efectivo de 80 bits)

  8. RC4_56: RSA RC4 (tamaño de clave de 56 bits)

  9. DES: DES estándar (tamaño de clave de 56 bits)

  10. RC4_40: RSA RC4 (tamaño de clave de 40 bits)

  11. DES40: DES40 (tamaño de clave de 40 bits)

Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error InvalidParameterValue.

Este parámetro y SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER deben tener un cifrado común.

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

Lista de algoritmos de cifrado utilizados por la instancia de base de datos. La instancia de base de datos utiliza cada algoritmo, por orden, para intentar descifrar la entrada del cliente hasta que un algoritmo tenga éxito o hasta que se llegue al final de la lista.

Amazon RDS utiliza la siguiente lista predeterminada de Oracle. Es posible cambiar el orden o limitar los algoritmos que aceptará el cliente.

  1. RC4_256: RSA RC4 (tamaño de clave de 256 bits)

  2. AES256: AES (tamaño de clave de 256 bits)

  3. AES192: AES (tamaño de clave de 192 bits)

  4. 3DES168: 3 claves Triple-DES (tamaño de clave efectivo de 112 bits)

  5. RC4_128: RSA RC4 (tamaño de clave de 128 bits)

  6. AES128: AES (tamaño de clave de 128 bits)

  7. 3DES112: 2 claves Triple-DES (tamaño de clave efectivo de 80 bits)

  8. RC4_56: RSA RC4 (tamaño de clave de 56 bits)

  9. DES: DES estándar (tamaño de clave de 56 bits)

  10. RC4_40: RSA RC4 (tamaño de clave de 40 bits)

  11. DES40: DES40 (tamaño de clave de 40 bits)

Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error InvalidParameterValue.

Este parámetro y SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER deben tener un cifrado común.

Adición de la opción NNE

El proceso general para añadir la opción NNE a una instancia de base de datos es el siguiente:

  1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

  2. Añada la opción al grupo de opciones.

  3. Asocie el grupo de opciones a la instancia de base de datos.

En cuanto esté activo el grupo de opciones, NNE también estará activo.

Para agregar la opción NNE a una instancia de base de datos mediante el uso de AWS Management Console
  1. En Engine, elija la edición de Oracle que desea utilizar. NNE se admite en todas las ediciones.

  2. En Major engine version (Versión principal del motor), elija la versión de su instancia de base de datos.

    Para obtener más información, consulte Creación de un grupo de opciones.

  3. Añada la opción NNE al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte Agregar una opción a un grupo de opciones.

    nota

    Después de añadir la opción NNE, no es necesario reiniciar las instancias de base de datos. En cuanto esté activo el grupo de opciones, NNE también lo estará.

  4. Aplique el grupo de opciones a una instancia de base de datos nueva o existente:

    • Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte Creación de una instancia de base de datos de Amazon RDS.

    • Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Después de añadir la opción NNE, no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, NNE también lo estará. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

Establecimiento de valores de NNE en sqlnet.ora

Con el cifrado de red nativo de Oracle, también puede especificar el cifrado de red en lado del cliente y el lado del servidor. El cliente es el ordenador que se utiliza para conectarse a la instancia de base de datos. Puede especificar la siguiente configuración del cliente en el archivo sqlnet.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 obtener más información, consulte Configuring Network Data Encryption and Integrity for Oracle Servers and Clients en la documentación de Oracle.

A veces, la instancia de base de datos rechaza una solicitud de conexión de una aplicación. Por ejemplo, puede producirse un rechazo cuando los algoritmos de cifrado en el cliente y en el servidor no coinciden. Para probar el cifrado de red nativo de Oracle, agregue las siguientes líneas al archivo sqlnet.ora en el cliente:

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

Cuando se intenta establecer la conexión, estas líneas generan un archivo de seguimiento en el cliente denominado /tmp/nettrace*. El archivo de seguimiento contiene información sobre la conexión. Para obtener más información sobre problemas relacionados con la conexión cuando utiliza el cifrado de red nativo de Oracle, consulteAcerca de la negociación del cifrado y la integridad en la documentación de la base de datos de Oracle.

Modificación de la configuración de opciones de NNE

Después de habilitar NNE, puede modificar su configuración. Actualmente, solo puede modificar la configuración de las opciones de NNE con la AWS CLI o la API de RDS. No puede utilizar la consola. Para obtener más información acerca de cómo modificar la configuración de las opciones con la CLI, consulte AWS CLI. Para obtener más información acerca de cada opción, consulte Configuración de la opción NNE.

Modificación de los valores CRYPTO_CHECKSUM_*

Si modifica la configuración de la opción de NNE, asegúrese de que la siguiente configuración de la opción tenga al menos un cifrado común:

  • SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

  • SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

En el siguiente ejemplo, se muestra un escenario en el que se modifica SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER. La configuración es válida porque tanto CRYPTO_CHECKSUM_TYPES_CLIENT y CRYPTO_CHECKSUM_TYPES_SERVER usan SHA256.

Ajuste de la opción Valores antes de la modificación Valores tras la modificación

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

SHA256, SHA384, SHA512

Sin cambios

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

SHA256, SHA384, SHA512, SHA1, MD5

SHA1,MD5,SHA256

Por otro ejemplo, suponga que desea modificar SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER de su configuración predeterminada a SHA1,MD5. En este caso, asegúrese de establecer uno de estos valores para SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT: SHA1 o MD5. Estos algoritmos no se incluyen en los valores predeterminados para SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT.

Modificación de la configuración ALLOW_WEAK_CRYPTO*

Para configurar las opciones SQLNET.ALLOW_WEAK_CRYPTO* del valor predeterminado a FALSE, asegúrese de que se cumplan las siguientes condiciones:

  • SQLNET.ENCRYPTION_TYPES_SERVER y SQLNET.ENCRYPTION_TYPES_CLIENT deben tener un método de cifrado seguro coincidente. Un método se considera seguro si no es DES, 3DES, o bien RC4 (todas las longitudes de clave).

  • SQLNET.CHECKSUM_TYPES_SERVER y SQLNET.CHECKSUM_TYPES_CLIENT deben tener un método de suma de comprobación seguro coincidente. Un método se considera seguro si no es MD5.

  • El cliente cuenta con la revisión de PSU de julio de 2021. Si el cliente no cuenta con la revisión, el cliente pierde la conexión y recibe el erorr ORA-12269.

El siguiente ejemplo muestra configuraciones NNE de muestra. Supongamos que desea configurar SQLNET.ENCRYPTION_TYPES_SERVER y SQLNET.ENCRYPTION_TYPES_CLIENT a FALSE, bloqueando así las conexiones no seguras. La configuración de la opción de suma de comprobación cumple los requisitos previos porque ambos tienen SHA256. Sin embargo, SQLNET.ENCRYPTION_TYPES_CLIENT y SQLNET.ENCRYPTION_TYPES_SERVER usan los métodos de cifrado no seguro DES, 3DES, y RC4. Por lo tanto, para establecer las opciones SQLNET.ALLOW_WEAK_CRYPTO* en FALSE, primero establezca SQLNET.ENCRYPTION_TYPES_SERVER y SQLNET.ENCRYPTION_TYPES_CLIENT en un método de cifrado seguro como AES256.

Ajuste de la opción 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

Eliminación de la opción de NNE

Puede eliminar NNE de una instancia de base de datos.

Para eliminar NNE de una instancia de base de datos, realice una de las siguientes operaciones:

  • Para eliminar NNE de varias instancias de bases de datos, elimine la opción NNE del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Después de eliminar la opción NNE, no es necesario reiniciar las instancias de base de datos. Para obtener más información, consulte Quitar una opción de un grupo de opciones.

  • Para quitar NNE de una única instancia de base de datos, modifique la instancia y especifique un grupo de opciones distinto que no incluya la opción NNE. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Después de eliminar la opción NNE, no es necesario reiniciar la instancia de base de datos. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.