2008-12-10 3 views
0

Je développe un utilitaire .NET (2.0) WinForms qui se connecte à une base de données SQL Server 2005. J'ai trouvé le matériel de référence, tel que Avoiding Plaintext Passwords pour manipuler le cryptage réel des données de chaîne de connexion. J'ai maintenant besoin d'implémenter le chiffrement pendant le processus d'installation afin qu'un administrateur puisse installer l'utilitaire sur le bureau d'un utilisateur, mais ne pas fournir à l'utilisateur les informations de connexion à la base de données.Les données de configuration peuvent-elles être cryptées à partir d'un processus d'installation?

L'exemple de code semble tout indiqué pour effectuer le chiffrement dans l'application primaire. L'application devrait donc être exécutée une fois pour que le cryptage ait lieu. Si l'application est installée mais pas exécutée, les informations de configuration seront en texte brut dans le fichier de configuration.

Quelqu'un peut-il fournir des informations montrant comment le chiffrement peut être effectué à partir de l'application d'installation. D'autres approches du problème sont également les bienvenues (cependant, en raison des besoins de l'entreprise, je ne suis pas en mesure d'exiger l'authentification Windows pour la connexion à la base de données - je suis limité à l'authentification SQL Server).

Editer: Je pourrais avoir été trop bref avec ma description. Nous avons déjà effectué une évaluation des risques et déterminé que l'utilisation de la fonctionnalité intégrée du framework .NET pour chiffrer les informations de connexion fournit une sécurité suffisante pour l'application.

Nous comprenons qu'un individu vraiment déterminé pourrait éventuellement obtenir les informations de connexion, et nous acceptons volontiers ce risque. Le but du cryptage des données de connexion est de simplement augmenter la barre d'effort et d'aider à "garder les gens honnêtes". Ayant déjà mis au point les moyens d'effectuer le chiffrement, j'essaie maintenant de trouver une méthode pour effectuer le chiffrement à partir du processus d'installation. Toute aide dans ce sens sera appréciée. Merci!

Répondre

1

Qu'en est-il du fait que le programme d'installation lance un processus postscript pendant la configuration? De cette façon, il sera exécuté pendant l'instalation et donc sous surveillance de l'administration et le code pour l'écriture sera ce que vous voulez qu'il soit.

+0

C'est la route que j'irai probablement. Je peux ajouter le code d'enrôlement dans l'application principale, puis demander au programme d'installation de lancer l'application avec un paramètre de ligne de commande indiquant que le cryptage doit avoir lieu. Merci. – JeremyDWill

2

Le principal problème avec la configuration cryptée est la protection de la clé utilisée pour déchiffrer les paramètres de configuration.

Avec une application serveur, vous pouvez le faire en limitant l'accès au serveur. Une application client WinForms devra avoir accès à la clé en cours d'exécution en tant qu'utilisateur actuel, donc l'utilisateur sera en mesure de trouver la clé s'il est assez intelligent.

Si vous ne pouvez pas utiliser l'authentification Windows pour la connexion à la base de données ou utiliser une architecture à n niveaux avec le code d'accès aux données sur un serveur, vous ne serez pas sécurisé.

+0

Comme indiqué dans le lien que j'ai fourni, .NET me fournit les moyens de crypter les données dans le fichier de configuration. J'ai juste besoin d'un moyen d'effectuer ce cryptage lors de l'installation de l'application. La gestion de la clé de chiffrement est gérée par le framework .NET. Merci pour la réponse si! – JeremyDWill

Questions connexes