Vue d'ensemble de la configuration protégée
Mise à jour : novembre 2007
Vous pouvez utiliser la configuration protégée pour chiffrer des informations sensibles, y compris les noms d'utilisateurs et les mots de passe, les chaînes de connexion à une base de données et les clés de chiffrement, dans un fichier de configuration de l'application Web tel que le fichier Web.config. Le chiffrement des informations de configuration peut améliorer la sécurité de votre application dans la mesure où il sera très difficile à un intrus d'accéder à des informations sensibles même s'il parvient à accéder à votre fichier Web.config.
Par exemple, un fichier de configuration non chiffré peut contenir une section qui spécifie des chaînes de connexion à une base de données, comme l'illustre l'exemple suivant :
<configuration>
<connectionStrings>
<add name="SampleSqlServer" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" />
</connectionStrings>
</configuration>
Un fichier de configuration qui chiffre les valeurs des chaînes de connexion à l'aide de la configuration protégée n'affiche pas les chaînes de connexion en texte clair mais les stocke au lieu de cela sous une forme chiffrée, comme l'illustre l'exemple suivant :
<configuration>
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>RSA Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>RXO/zmmy3sR0iOJoF4ooxkFxwelVYpT0riwP2mYpR3FU+r6BPfvsqb384pohivkyNY7Dm4lPgR2bE9F7k6TblLVJFvnQu7p7d/yjnhzgHwWKMqb0M0t0Y8DOwogkDDXFxs1UxIhtknc+2a7UGtGh6Di3N572qxdfmGfQc7ZbwNE=
</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>KMNKBuV9nOid8pUvdNLY5I8R7BaEGncjkwYgshW8ClKjrXSM7zeIRmAy/cTaniu8Rfk92KVkEK83+UlQd+GQ6pycO3eM8DTM5kCyLcEiJa5XUAQv4KITBNBN6fBXsWrGuEyUDWZYm6Eijl8DqRDb11i+StkBLlHPyyhbnCAsXdz5CaqVuG0obEy2xmnGQ6G3Mzr74j4ifxnyvRq7levA2sBR4lhE5M80Cd5yKEJktcPWZYM99TmyO3KYjtmRW/Ws/XO3z9z1b1KohE5Ok/YX1YV0+Uk4/yuZo0Bjk+rErG505YMfRVtxSJ4ee418ZMfp4vOaqzKrSkHPie3zIR7SuVUeYPFZbcV65BKCUlT4EtPLgi8CHu8bMBQkdWxOnQEIBeY+TerAee/SiBCrA8M/n9bpLlRJkUb+URiGLoaj+XHym//fmCclAcveKlba6vKrcbqhEjsnY2F522yaTHcc1+wXUWqif7rSIPhc0+MT1hB1SZjd8dmPgtZUyzcL51DoChy+hZ4vLzE=
</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Lors d'une demande de la page, le .NET Framework déchiffre les informations de chaîne de connexion et les rend disponibles à votre application.
Remarque : |
---|
Vous ne pouvez pas utiliser la configuration protégée pour chiffrer la section configProtectedData d'un fichier de configuration. Vous ne pouvez pas non plus utiliser la configuration protégée pour chiffrer les sections de configuration qui n'emploient pas de gestionnaire de section ou des sections qui font partie de la configuration de chiffrement managée. La liste suivante répertorie les sections de configuration qui ne peuvent pas être chiffrées à l'aide de la configuration protégée : processModel, runtime, mscorlib, startup, system.runtime.remoting, configProtectedData, satelliteassemblies, cryptographySettings, cryptoNameMapping et cryptoClasses. Il est recommandé d'utiliser d'autres méthodes de chiffrement des informations sensibles, par exemple l'application console ASP.NET Set Registry (Aspnet_setreg.exe), pour protéger les informations sensibles de ces sections de configuration. Pour plus d'informations sur l'application console ASP.NET Set Registry (Aspnet_setreg.exe), consultez l'article Q329290 sur l'utilisation de l'outil ASP.NET pour le chiffrement des informations d'identification et des chaînes de connexion d'état de session, dans la Base de connaissances Microsoft du site Web de support technique Microsoft |
Note de sécurité : |
---|
Les informations de configuration chiffrées sont déchiffrées lors de leur chargement dans la mémoire utilisée par votre application. Si la mémoire de votre application est compromise, les informations sensibles de votre section de configuration protégée peuvent l'être aussi. |
Utilisation de la configuration protégée
Vous gérez la configuration protégée à l'aide de l'outil ASP.NET IIS Registration (Aspnet_regiis.exe) ou des classes de configuration protégée de l'espace de noms System.Configuration.
L'outil Aspnet_regiis.exe (installé dans le dossier %SystemRoot%\Microsoft.NET\Framework\NuméroVersion) inclut des options permettant de chiffrer et de déchiffrer des sections d'un fichier Web.config, de créer ou de supprimer des conteneurs de clé, d'exporter et d'importer des informations sur les conteneurs de clé et enfin de gérer l'accès à un conteneur de clé.
Le chiffrement et le déchiffrement du contenu d'un fichier Web.config sont exécutés à l'aide d'une classe ProtectedConfigurationProvider. La liste suivante décrit les fournisseurs de configuration protégée inclus dans le .NET Framework :
DpapiProtectedConfigurationProvider. Utilise l'API de protection des données (DPAPI) Windows pour chiffrer et déchiffrer des données.
RsaProtectedConfigurationProvider. Utilise l'algorithme de chiffrement RSA pour chiffrer et déchiffrer des données.
Les deux fournisseurs offrent un chiffrement renforcé des données. Toutefois, si vous prévoyez d'utiliser le même fichier de configuration chiffré sur plusieurs serveurs, par exemple une batterie de serveurs Web, seul RsaProtectedConfigurationProvider vous permet d'exporter les clés de chiffrement servant à chiffrer les données et de les importer sur un autre serveur.
Vous pouvez spécifier le ProtectedConfigurationProvider que vous souhaitez utiliser en le configurant dans le fichier Web.config de votre application ou vous pouvez utiliser l'une des instances de ProtectedConfigurationProvider configurée dans le fichier Machine.config. Pour plus d'informations, consultez Spécification d'un fournisseur de configuration protégée.
Une fois que vous avez spécifié le fournisseur à utiliser, vous pouvez chiffrer ou déchiffrer le contenu du fichier Web.config de votre application. Pour plus d'informations, consultez Chiffrement et déchiffrement des sections de configuration.
Remarque : |
---|
Dans le cadre des méthodes conseillées pour sécuriser les applications Web, il est important de mettre à jour en permanence votre serveur d'application à l'aide des derniers correctifs de sécurité pour Microsoft Windows et les services IIS (Internet Information Services), ainsi que tous les correctifs pour Microsoft SQL Server ou d'autres sources de données d'appartenance (membership). Pour plus d'informations sur les méthodes conseillées en matière d'écriture de code sécurisé et de sécurisation des applications, consultez le manuel « Writing Secure Code », de Michael Howard et David LeBlanc, et reportez-vous à l'aide fournie par le site Web Microsoft Patterns and Practices. |
Voir aussi
Tâches
Autres ressources
Chiffrement des informations de configuration à l'aide de la configuration protégée