

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Oracle NNE (Native Network Encryption)
<a name="Appendix.Oracle.Options.NetworkEncryption"></a>

Amazon RDS prend en charge le chiffrement Oracle NNE. Avec l’option `NATIVE_NETWORK_ENCRYPTION`, vous pouvez chiffrer les données lors de leur déplacement vers ou depuis une instance de base de données. Amazon RDS prend en charge NNE pour toutes les éditions de base de données Oracle.

Une présentation détaillée d'Oracle NNE dépasse le propos de ce guide, mais vous devez bien comprendre les points forts et les points faibles de chaque algorithme et de chaque clé avant de choisir une solution pour votre déploiement. Pour plus d'informations sur les algorithmes et les clés qui sont disponibles via Oracle NNE, consultez [Configuration du chiffrement des données réseau](http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/security/network_encrypt/ntwrkencrypt.htm) dans la documentation Oracle. Pour plus d'informations sur la sécurité d'AWS, consultez le [Centre de sécurité AWS](https://aws.amazon.com/security).

**Note**  
Vous pouvez utiliser le chiffrement réseau natif ou le protocole SSL (Secure Sockets Layer), mais pas les deux. Pour plus d’informations, consultez [Oracle Secure Sockets Layer (SSL)](Appendix.Oracle.Options.SSL.md). 

**Topics**
+ [Paramètres de l’option NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Options.md)
+ [Ajout de l’option NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Add.md)
+ [Définition des valeurs NNE dans sqlnet.ora](Oracle.Options.NNE.Using.md)
+ [Modification des paramètres de l’option NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.ModifySettings.md)
+ [Suppression de l’option NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Remove.md)

# Paramètres de l’option NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Options"></a>

Vous pouvez spécifier les exigences de chiffrement à la fois sur le serveur et le client. L'instance de base de données peut agir en tant que client lorsque, par exemple, elle utilise un lien de base de données pour se connecter à une autre base de données. Vous pouvez éviter de forcer le chiffrement côté serveur. Par exemple, vous pouvez ne pas forcer toutes les communications client à utiliser le chiffrement car le serveur en a besoin. Dans ce cas, vous pouvez forcer le chiffrement côté client à l’aide des options `SQLNET.*CLIENT`.

Amazon RDS prend en charge les paramètres suivants pour l’option `NATIVE_NETWORK_ENCRYPTION`.

**Note**  
Lorsque vous utilisez des virgules pour séparer les valeurs d'un paramètre d'option, ne placez pas d'espace après la virgule.


****  

| Paramètre d'option | Valeurs valides | Valeurs par défaut | Description | 
| --- | --- | --- | --- | 
|  `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`  |  `TRUE`, `FALSE`  |  `TRUE`  |  Comportement du serveur lorsqu'un client utilisant un chiffrement non sécurisé tente de se connecter à la base de données. Si `TRUE`, les clients peuvent se connecter même s'ils ne sont pas corrigés avec la PSU de juillet 2021.  Si le paramètre est `FALSE`, les clients peuvent se connecter à la base de données uniquement lorsqu'ils sont corrigés avec la PSU de juillet 2021. Avant de paramétrer `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS` à `FALSE`, assurez-vous que les conditions suivantes sont remplies : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.ALLOW_WEAK_CRYPTO`  |  `TRUE`, `FALSE`  |  `TRUE`  |  Comportement du serveur lorsqu'un client utilisant un chiffrement non sécurisé tente de se connecter à la base de données. Les chiffrements suivants sont considérés comme non sécurisés : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Si le paramètre est `TRUE`, les clients peuvent se connecter lorsqu'ils utilisent les chiffrements non sécurisés précédents. Si le paramètre est `FALSE`, la base de données empêche les clients de se connecter lorsqu'ils utilisent les chiffrements non sécurisés précédents. Avant de paramétrer `SQLNET.ALLOW_WEAK_CRYPTO` à `FALSE`, assurez-vous que les conditions suivantes sont remplies : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.CRYPTO_CHECKSUM_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportement d'intégrité des données quand une instance de base de données se connecte au client, ou à un serveur agissant en tant que client. Lorsqu'une instance DB utilise un lien de base de données, elle agit en tant que client. `Requested` indique que le client ne nécessite pas que l'instance de base de données effectue un total de contrôle.  | 
|  `SQLNET.CRYPTO_CHECKSUM_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportement d'intégrité des données quand un client, ou un serveur agissant en tant que client, se connecte à l'instance de base de données. Lorsqu'une instance DB utilise un lien de base de données, elle agit en tant que client. `Requested` indique que l'instance de base de données ne nécessite pas que le client effectue un total de contrôle.  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`  |  Une liste d’algorithmes de somme de contrôle. Vous pouvez spécifier une valeur ou une liste de valeurs séparées par des virgules. Si vous spécifiez une virgule, n’insérez pas d’espace après celle-ci ; sinon, vous recevez une erreur `InvalidParameterValue`. Ce paramètre et `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER ` doivent avoir un chiffrement commun.  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  Une liste d’algorithmes de somme de contrôle. Vous pouvez spécifier une valeur ou une liste de valeurs séparées par des virgules. Si vous spécifiez une virgule, n’insérez pas d’espace après celle-ci ; sinon, vous recevez une erreur `InvalidParameterValue`. Ce paramètre et `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` doivent avoir un chiffrement commun.  | 
|  `SQLNET.ENCRYPTION_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportement de chiffrement du client quand un client, ou un serveur agissant en tant que client, se connecte à l'instance de base de données. Lorsqu'une instance DB utilise un lien de base de données, elle agit en tant que client. `Requested` indique que le client ne requiert pas que le trafic depuis l'instance de base de données soit chiffré.  | 
|  `SQLNET.ENCRYPTION_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportement de chiffrement du serveur quand un client, ou un serveur agissant en tant que client, se connecte à l'instance de base de données. Lorsqu'une instance DB utilise un lien de base de données, elle agit en tant que client. `Requested` indique que l'instance de base de données ne requiert pas que le trafic depuis le client soit chiffré.  | 
|  `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`  |  Liste d'algorithmes de chiffrement utilisés par le client. Le client tente de déchiffrer l'entrée du serveur en essayant chaque algorithme, dans l'ordre, jusqu'à ce qu'un algorithme réussisse ou que la fin de la liste soit atteinte.  Amazon RDS utilise la liste par défaut suivante d’Oracle. RDS commence par `RC4_256` et parcourt la liste dans l'ordre. Vous pouvez modifier l'ordre ou limiter les algorithmes que l'instance de base de données accepte.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Vous pouvez spécifier une valeur ou une liste de valeurs séparées par des virgules. Si vous spécifiez une virgule, n’insérez pas d’espace après celle-ci ; sinon, vous recevez une erreur `InvalidParameterValue`. Ce paramètre et `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` doivent avoir un chiffrement commun.  | 
|  `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`  |  Liste d'algorithmes de chiffrement utilisés par l'instance de base de données. L'instance de base de données utilise chaque algorithme, dans l'ordre, pour tenter de déchiffrer l'entrée du client jusqu'à ce qu'un algorithme réussisse ou que la fin de la liste soit atteinte.  Amazon RDS utilise la liste par défaut suivante d’Oracle. Vous pouvez modifier l'ordre ou limiter les algorithmes que le client accepte.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Vous pouvez spécifier une valeur ou une liste de valeurs séparées par des virgules. Si vous spécifiez une virgule, n’insérez pas d’espace après celle-ci ; sinon, vous recevez une erreur `InvalidParameterValue`. Ce paramètre et `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` doivent avoir un chiffrement commun.  | 

# Ajout de l’option NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Add"></a>

La procédure générale pour ajouter l’option `NATIVE_NETWORK_ENCRYPTION` à une instance de base de données est la suivante : 

1. Créer un groupe d’options ou copier ou modifier un groupe existant.

1. Ajoutez l'option au groupe d'options.

1. Associez le groupe d’options à l’instance de base de données.

Quand le groupe d'options est actif, NNE est actif. 

**Pour ajouter l'option NATIVE\$1NETWORK\$1ENCRYPTION à une instance de base de données à l'aide du AWS Management Console**

1. Pour **Moteur**, sélectionnez l'édition d'Oracle que vous voulez utiliser. NNE est pris en charge par toutes les éditions. 

1. Pour **Version majeure du moteur**, choisissez la version de votre instance de base de données. 

   Pour plus d’informations, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Ajoutez l’option **NATIVE\$1NETWORK\$1ENCRYPTION** au groupe d’options. Pour plus d’informations sur l’ajout d’options, consultez [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).
**Note**  
Après avoir ajouté l’option **NATIVE\$1NETWORK\$1ENCRYPTION**, vous n’avez pas besoin de redémarrer vos instances de base de données. Dès que le groupe d’options est actif, NNE est actif. 

1. Appliquez le groupe d'options à une instance de base de données nouvelle ou existante: 
   + Pour une nouvelle instance de base de données, vous appliquez le groupe d'options lorsque vous lancez l'instance. Pour plus d’informations, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
   + Pour une instance de base de données existante, vous appliquez le groupe d'options en modifiant l'instance et en attachant le nouveau groupe d'options. Après avoir ajouté l’option **NATIVE\$1NETWORK\$1ENCRYPTION**, vous n’avez pas besoin de redémarrer votre instance de base de données. Dès que le groupe d’options est actif, NNE est actif. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 

# Définition des valeurs NNE dans sqlnet.ora
<a name="Oracle.Options.NNE.Using"></a>

Avec le chiffrement réseau natif Oracle, vous pouvez spécifier le chiffrement réseau côté serveur et côté client. Le client est l'ordinateur utilisé pour se connecter à l'instance de base de données. Vous pouvez spécifier les paramètres client suivants dans le fichier 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`

Pour plus d'informations, consultez [Configuration du chiffrement des données réseau et intégrité des clients et serveurs Oracle](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm) dans la documentation Oracle.

Parfois, l'instance de base de données rejette une demande de connexion provenant d'une application. Par exemple, un rejet peut se produire lorsque les algorithmes de chiffrement sur le client et sur le serveur ne correspondent pas. Pour tester le chiffrement réseau natif Oracle, ajoutez les lignes suivantes dans le fichier sqlnet.ora sur le client : 

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

Lors d'une tentative de connexion, ces lignes génèrent un fichier de trace sur le client appelé `/tmp/nettrace*`. Le fichier de trace contient des informations concernant la connexion. Pour plus d'informations sur les problèmes liés à la connexion lorsque vous utilisez le chiffrement de réseau natif Oracle, veuillez consulter [À propos de la négociation du chiffrement et de l'intégrité](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm#autoId12) dans la documentation base de données Oracle.

# Modification des paramètres de l’option NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.ModifySettings"></a>

Après avoir activé l’option `NATIVE_NETWORK_ENCRYPTION`, vous pouvez modifier ses paramètres. Actuellement, vous ne pouvez modifier les paramètres des `NATIVE_NETWORK_ENCRYPTION` options qu'avec l'API AWS CLI ou RDS. Vous ne pouvez pas utiliser la console. L’exemple suivant modifie deux paramètres de l’option.

```
aws rds add-option-to-option-group \
    --option-group-name my-option-group \
    --options "OptionName=NATIVE_NETWORK_ENCRYPTION,OptionSettings=[{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256},{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256}]" \
    --apply-immediately
```

Pour découvrir comment modifier des paramètres d'option avec l'interface de ligne de commande, consultez [AWS CLI](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption.CLI). Pour plus d'informations sur chaque paramètre, consultez [Paramètres de l’option NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Options.md).

**Topics**
+ [Modification des valeurs CRYPTO\$1CHECKSUM\$1\$1](#Oracle.Options.NNE.ModifySettings.checksum)
+ [Modification des paramètres ALLOW\$1WEAK\$1CRYPTO\$1](#Oracle.Options.NNE.ModifySettings.encryption)

## Modification des valeurs CRYPTO\$1CHECKSUM\$1\$1
<a name="Oracle.Options.NNE.ModifySettings.checksum"></a>

Si vous modifiez les paramètres de l’option **NATIVE\$1NETWORK\$1ENCRYPTION**, assurez-vous que les paramètres des options suivantes ont au moins un chiffrement commun :
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`

L'exemple suivant montre un scénario dans lequel vous modifiez `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`. La configuration est valide car `CRYPTO_CHECKSUM_TYPES_CLIENT` et `CRYPTO_CHECKSUM_TYPES_SERVER` utilisent tous les deux `SHA256`.


| Paramètre d’option | Valeurs avant modification | Valeurs après modification | 
| --- | --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  |  Pas de modification  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  | SHA1,MD5,SHA256 | 

Pour un autre exemple, supposons que vous souhaitez modifier `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER` à partir de son paramètre par défaut vers `SHA1,MD5`. Dans ce cas, veillez à définir `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` sur `SHA1` ou `MD5`. Ces algorithmes ne sont pas inclus dans les valeurs par défaut pour `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`.

## Modification des paramètres ALLOW\$1WEAK\$1CRYPTO\$1
<a name="Oracle.Options.NNE.ModifySettings.encryption"></a>

Pour définir le paramètre `SQLNET.ALLOW_WEAK_CRYPTO*` de la valeur par défaut à `FALSE`, vérifiez que les conditions suivantes sont réunies :
+ `SQLNET.ENCRYPTION_TYPES_SERVER` et `SQLNET.ENCRYPTION_TYPES_CLIENT` possèdent une méthode de chiffrement sécurisée correspondante. Une méthode est considérée comme sécurisée si elle n'est pas `DES` ,`3DES` ou `RC4` (toutes les longueurs de clés).
+ `SQLNET.CHECKSUM_TYPES_SERVER` et `SQLNET.CHECKSUM_TYPES_CLIENT` disposent d'une méthode de total de contrôle sécurisée correspondante. Une méthode est considérée comme sécurisée si elle n'est pas `MD5`.
+ Le client est corrigé avec la PSU de juillet 2021. Si le client n'est pas corrigé, il perd la connexion et reçoit l'erreur `ORA-12269`.

L'exemple suivant montre des exemples de paramètres NNE. Supposons que vous souhaitez définir `SQLNET.ENCRYPTION_TYPES_SERVER` et `SQLNET.ENCRYPTION_TYPES_CLIENT` à FALSE, bloquant ainsi les connexions non sécurisées. Les paramètres de l'option de total de contrôle répondent aux conditions préalables car ils ont tous les deux `SHA256`. Cependant, `SQLNET.ENCRYPTION_TYPES_CLIENT` et `SQLNET.ENCRYPTION_TYPES_SERVER` utilisent les méthodes de chiffrement `DES`, `3DES` et `RC4`, qui ne sont pas sécurisées. Par conséquent, pour définir les options `SQLNET.ALLOW_WEAK_CRYPTO*` à `FALSE`, définissez d'abord `SQLNET.ENCRYPTION_TYPES_SERVER` et `SQLNET.ENCRYPTION_TYPES_CLIENT` pour utiliser une méthode de chiffrement sécurisée telle que `AES256`.


| Paramètre d’option | Valeurs | 
| --- | --- | 
|  `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`  | 

# Suppression de l’option NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Remove"></a>

Vous pouvez supprimer NNE d'une instance de base de données. 

Pour supprimer l’option `NATIVE_NETWORK_ENCRYPTION` d’une instance de base de données, effectuez l’une des actions suivantes : 
+ Pour supprimer l’option de plusieurs instances de base de données, supprimez l’option `NATIVE_NETWORK_ENCRYPTION` du groupe d’options auquel elles appartiennent. Ce changement affecte toutes les instances de bases de données qui utilisent le groupe d’options. Après avoir supprimé l’option `NATIVE_NETWORK_ENCRYPTION`, vous n’avez pas besoin de redémarrer vos instances de base de données. Pour plus d’informations, consultez [Suppression d’une option d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Pour supprimer l’option d’une instance de base de données particulière, modifiez l’instance de base de données et spécifiez un autre groupe d’options qui n’inclut pas l’option `NATIVE_NETWORK_ENCRYPTION`. Vous pouvez spécifier le groupe d’options (vide) par défaut, ou un groupe d’options personnalisées différent. Une fois que vous supprimez l’option `NATIVE_NETWORK_ENCRYPTION`, vous n’avez pas besoin de redémarrer votre instance de base de données. Pour plus d’informations, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 