Dans asp.net2.0, il existe une nouvelle fonction pour chiffrer certaines données dans web.config. Vous pouvez utiliser RSAProtectedConfigurationProvider et DPAPIProtectedConfigurationProvider pour chiffrer. Cet article explique les étapes d'utilisation de RSAProtectedConfigurationProvidert et du conteneur de clés au niveau de l'ordinateur pour le chiffrement.
1. Déterminez d'abord si la section de configuration dans web.config à chiffrer peut être chiffrée
2. Créez un conteneur de clé RSA
3. Identifiez le conteneur de clé à utiliser dans web.config
4. Chiffrez web.config
5. Accordez des autorisations d'accès à le conteneur de clé RSA
Étape 1 : Déterminez d'abord si la section de configuration à chiffrer dans web.config peut être chiffrée
ASP.NET 2.0 prend en charge le chiffrement de certaines sections de configuration de Web.config. Les données des sections de configuration suivantes ne peuvent pas être chiffrées :
<processModel>.
<exécution>
<mscorlib>
<démarrage>
<système.runtime.remoting>
<configProtectedData>
<assemblages satellites>
<Paramètres de cryptographie>
<cryptoNameMapping>
<cryptoClasses>
Étape 2 : Créez un conteneur de clé RSA. Pour créer un conteneur de clé RSA, veuillez utiliser l'outil d'enregistrement ASP.NET IIS (Aspnet_regiis.exe) et le commutateur –pc. Vous devez attribuer au conteneur de clé un nom qui identifie le conteneur de clé utilisé par le RsaProtectedConfigurationProvider spécifié dans la section configProtectedData du fichier Web.config de l'application. Pour garantir que le conteneur de clé RSA nouvellement créé peut être exporté, l'option -exp doit être incluse.
Par exemple, la commande suivante crée un conteneur de clés RSA nommé ABeenKeys, qui est un conteneur de clés exportable au niveau de la machine.
aspnet_regiis -pc "ABeenKeys"–exp
Étape 3 : modifier web.config pour identifier le conteneur de clé
Modifiez le fichier Web.config pour identifier le conteneur de clé à utiliser.
Ajoutez <configProtectedData> à web.config pour configurer le conteneur de clé au niveau de la machine nommé ABeenKeys, ajoutez l'attribut xmlns à <configuration>.
<configuration xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">saProtectedConfigurationProvider utilisant un conteneur de clé RSA au niveau de la machine nommé ABeenKeys.
<configProtectedData > <providers> <add name="ABeenProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, processeurArchitecture=MSIL" keyContainerName="ABeenKeys"/> </providers > </configProtectedData>
Étape 4 : Chiffrez la section <connectionStrings> de votre fichier web.config
Chiffrez la section de configuration dans votre fichier web.config
> aspnet_regiis -pe "connectionStrings" -app "/connectionTest"
Étape 5 : L'octroi de l'accès au conteneur de clé RSA peut être déterminé par le code suivant pour lequel les autorisations utilisateur doivent être accordées
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
Par défaut, les conteneurs de clés RSA sont étroitement protégés par la liste de contrôle d'accès (ACL) NTFS sur le serveur sur lequel ils se trouvent. Cela augmente la sécurité des informations cryptées en limitant les personnes ayant accès aux clés de cryptage. Avant qu'ASP.NET puisse utiliser le conteneur de clé RSA, l'identité du processus de l'application ASP.NET doit disposer d'un accès en lecture au conteneur de clé RSA. Vous pouvez utiliser l'outil Aspnet_regiis.exe avec le commutateur -pa pour accorder l'identité d'une application ASP.NET en lecture au conteneur de clé RSA. Par exemple, la commande suivante accorde au compte Windows Server 2003 NETWORK SERVICE un accès en lecture à un conteneur de clé RSA au niveau de la machine nommé ABeenKeys :
aspnet_regiis -pa "ABeenKeys" "NT AUTHORITYNETWORK SERVICE"
Avis:
Si le conteneur de clé RSA est un conteneur de niveau utilisateur, vous devez être connecté en tant qu'utilisateur dont le profil Windows contient la clé stockée et vous devez inclure l'option -pku pour accorder l'accès au conteneur de clé RSA de niveau utilisateur.
Pour utiliser le RsaProtectedConfigurationProvider par défaut spécifié dans la configuration de l'ordinateur, vous devez d'abord accorder à l'identité Windows de l'application l'accès au conteneur de clé de l'ordinateur nommé NetFrameworkConfigurationKey, qui est le conteneur de clé spécifié pour le fournisseur par défaut. Par exemple, la commande suivante accorde au compte NETWORK SERVICE l'accès au conteneur de clé RSA utilisé par le RsaProtectedConfigurationProvider par défaut.
aspnet_regiis -pa "NetFrameworkConfigurationKey" "AUTORITÉ NTSERVICE RÉSEAU"
Le conteneur de clés NetFrameworkConfigurationKey RSA est le conteneur de clés par défaut pour les commandes émises par l'outil Aspnet_regiis.exe. Par conséquent, la commande ci-dessus peut également être émise comme suit :
aspnet_regiis -pa "NT AUTHORITYNETWORK SERVICE"
téléchargement du code