2010-11-03 5 views
0

Je dois stocker un compte utilisateur localement sur une machine, quelle serait la meilleure méthode pour stocker cela? (A besoin d'être plutôt que le chiffrement reversible hachage)Stocker des informations d'identification localement dans le registre - méthodes de chiffrement?

Je suis accès à un partage UNC comme mentionné ici: Accessing UNC Share from outside domain for file transfer

En utilisant cette méthode proposée: http://www.codeproject.com/KB/IP/ConnectUNCPathCredentials.aspx

Ce sera un processus automatisé donc pas option d'informations d'identification saisies par l'utilisateur. Je chiffrer actuellement les détails et les stocker dans le registre en utilisant TripleDES:

http://www.devarticles.com/c/a/VB.Net/String-Encryption-With-Visual-Basic-.NET/4/

Avec le vecteur clé et l'initialisation codés en dur dans l'application.

Quelqu'un peut-il suggérer une meilleure méthode ou des changements à ce qui précède pour sécuriser les informations d'identification autant que possible?

alt text

Répondre

1

Vous jamais besoin de stocker les informations d'identification de l'utilisateur. Si votre processus doit accéder à un partage réseau, il doit être exécuté sous les informations d'identification appropriées, en utilisant runas ou les propriétés du compte de service. Si les informations d'identification réseau ne se trouvent pas dans le domaine local/actuel, elles doivent utiliser runas /netonly. Et c'est tout ce qu'il y a, pas d'excuses, pas d'exceptions. En guise de note, les applications Windows stockent les secrets localement en utilisant DPAPI, exposés dans la classe 0.Net ProtectedData .Net. Le lien contient des exemples entièrement fonctionnels de chiffrement de données avec DPAPI dans .Net. Cependant, il reste que le stockage des informations d'identification de l'utilisateur dans les applications, même sous DPAPI, est fondamentalement cassé.

+0

Mon application est appelée par un programme FTP. Lorsqu'un téléchargement est terminé, le fichier est déplacé dans le domaine. J'utilise WNetUseConnection pour transmettre des informations d'identification (un compte créé localement sur le serveur hébergeant le partage dans le domaine). Je ne peux pas emprunter l'identité d'un utilisateur via runas \ a service car il n'y a pas de contrôleur de domaine pour s'authentifier. La seule option consiste à transmettre les informations d'identification pour se connecter au partage UNC. Mon application est appelée par un programme FTP. Lorsqu'un téléchargement est terminé, le fichier est déplacé dans le domaine. J'utilise WNetUseConnection pour transmettre des informations d'identification (un compte créé localement sur le serveur hébergeant le partage). – madlan

+0

Je ne peux pas usurper l'identité d'un utilisateur via des runes ou en tant que service car il n'y a pas de DC pour s'authentifier. La seule option consiste à transmettre les informations d'identification pour se connecter au partage UNC. – madlan

+0

'runas/netonly' ne nécessite pas ** de ** DC. –

Questions connexes