Cryptage Web.Config

Duplication des fichiers de configuration Encrypting pour le déploiement .NET et des fichiers de configuration Encrypting pour le déploiement


Quelle est la meilleure approche et les meilleurs outils pour chiffrer les informations dans un fichier web.config?

Je crois qu’il y a deux façons de faire cela:

en utilisant aspnet_regiis en utilisant DPAPI ou RSA , ou le faire par programme .

La méthode de programmation peut être pratique, surtout si vous souhaitez également chiffrer app.config.

D’après mon expérience, si vous écrivez une section de configuration personnalisée, vous devez installer la DLL contenant les classes de cette section dans le GAC. Pour un projet sur lequel je travaillais, j’ai essentiellement écrit l’approche suivante:

  • Copier la DLL de configuration dans GAC.
  • Effectuer un cryptage.
  • Supprimez la DLL de configuration de GAC.

Si vous ne chiffrez que les chaînes de connexion, il y a de fortes chances que cela ne pose pas de problème. N’oubliez pas non plus que vous souhaitiez chiffrer à la machine ou à un compte d’utilisateur spécifique. Les deux options peuvent être utiles en fonction de votre scénario. Pour plus de simplicité, je me suis attaché à un chiffrement à grande échelle. Les liens que j’ai fournis expliquent les avantages des deux approches.

Voici les commandes pour chiffrer le fichier web.config sans aucune programmation …

Pour le cryptage

aspnet_regiis -pef "Section" "Path exluding web.config" 

Pour le décryptage

 aspnet_regiis -pdf "Section" "Path exluding web.config" 

A partir de cette commande, vous pouvez chiffrer ou déchiffrer toute la section.

Utilisez l’outil aspnet_regiis dans votre répertoire framework:

  -- CONFIGURATION ENCRYPTION OPTIONS -- pe section Encrypt the configuration section. Optional arguments: [-prov provider] Use this provider to encrypt. [-app virtual-path] Encrypt at this virtual path. Virtual path must begin with a forward slash. If it is '/', then it refers to the root of the site. If -app is not specified, the root web.config will be encrypted. [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the default web site will be used. [-location sub-path] Location sub path. [-pkm] Encrypt/decrypt the machine.config instead of web.config. pd section Decrypt the configuration section. Optional arguments: [-app virtual-path] Decrypt at this virtual path. Virtual path must begin with a forward slash. If it is '/', then it refers to the root of the site. If -app is not specified, the root web.config will be decrypted. [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the default web site will be used. [-location sub-path] Location sub path. [-pkm] Encrypt/decrypt the machine.config instead of web.config. 

Vous devriez commencer à partir d’ici, facile à suivre, ainsi que l’explique pas à pas dans MSDN: Comment: chiffrer les sections de configuration dans ASP.NET 2.0 à l’aide de DPAPI

Utiliser l’outil de ligne de commande aspnet_regiis.exe

Vous pouvez également chiffrer et déchiffrer des sections du fichier Web.config à l’aide de l’outil de ligne de commande aspnet_regiis.exe, disponible dans le répertoire% WINDOWSDIR% \ Microsoft.Net \ Framework \ version.

Regardez ici: http://aspnet.4guysfromrolla.com/articles/021506-1.aspx .