Existe-t-il un moyen plus sûr de protéger et de stocker un mot de passe que Windows DPAPI?

Existe-t-il un moyen plus sûr de protéger et de stocker un mot de passe que Windows DPAPI?

Mon programme doit stocker un secret (quelque chose comme les informations d’identification) pour effectuer des connexions automatiques sous Windows, et ce secret doit être partagé avec les autres comptes d’utilisateurs car le programme peut être exécuté sur des comptes différents mais en partageant les informations d’identification.

Je dois protéger ce secret contre la falsification pour éviter qu’un attaquant injecte ses propres informations d’identification et prenne le contrôle. Si l’attaquant a un access physique, je sais qu’il n’y a rien que nous puissions faire, mais … actuellement, quelle est la meilleure façon de stocker et de protéger ce secret?

Si vous voulez sécuriser quelque chose contre la falsification, vous êtes probablement mieux avec une approche à plusieurs niveaux. L’inconvénient est que l’access (même avec tous les secrets) est un exploit astronomique et augmentera votre temps de connexion à ce sujet.

Gardez toutefois à l’esprit qu’un système est seulement aussi sûr que son point le plus faible; vous pouvez avoir un fichier dans un volume chiffré caché derrière encore plus de couches de chiffrement personnalisé, mais si vous avez les mots de passe sur une note post-it de votre bureau au travail, il y a de fortes chances que cela ne soit pas sécurisé pour longtemps.

La même chose s’applique avec la sécurité sur Windows. Les listes de contrôle d’access et le cryptage sont aussi puissants que les comptes de vos administrateurs. Pour obtenir des conseils sur la sécurité, essayez Server Fault .

En ce qui concerne le système lui-même, l’implémentation de la cryptographie à clé publique (cryptage asymésortingque) à l’aide de clés ou de certificates numériques et la fourniture de clés / identifiants individuels à chaque utilisateur constituent une alternative beaucoup plus sûre avec beaucoup moins de risques.
Windows a pris en charge l’infrastructure pubkey depuis au moins Windows Server 2000 ; vous pouvez même utiliser une connexion par carte à puce si vous en avez le matériel.

Considérer ce qui suit:
1. Un attaquant obtient une clé privée (avec protection) auprès d’un utilisateur. Cela peut être cassé à 2048bit en une heure ou deux sur un matériel moyen. Avec cet exemple, il vous suffit de supprimer la clé publique de l’utilisateur et de lui faire générer une nouvelle clé.
2. Un attaquant obtient un certificate numérique d’utilisateur, vous avez alors deux options:

1) Remove their certificatee from the Active Directory store, ACL or other certificatee store. 2) Issue a revocation on the certificatee, and forceably expire it. This assumes your are acting as the certificatee authority. 

En bref, cette réponse énonce une chose: si vous êtes trop préoccupé par la sécurité des mots de passe, vous ne devriez pas utiliser de mots de passe. Si vous faites en sorte que votre système prenne une éternité, alors le chemin alternatif est un bruteforce de botnet.