Existe-t-il un équivalent du trousseau OS X, utilisé pour stocker les mots de passe des utilisateurs, dans Windows? Je l'utiliserais pour enregistrer le mot de passe de l'utilisateur pour un service Web que mon logiciel (de bureau) utilise.
D'après les réponses à cette question connexe ( Protéger les mots de passe des utilisateurs dans les applications de bureau (Rev 2) ) et les multitude d'outils de stockage de mots de passe tiers disponibles, je suppose qu'une telle chose n'existe pas - Suis-je obligé de demander le mot de passe à chaque fois que j'accède au service Web, ou simplement de le stocker obscurci?
L'équivalent "traditionnel" de Windows serait le sous-système de stockage protégé, utilisé par IE (pre IE 7), Outlook Express et quelques autres programmes. I croyez qu'il est chiffré avec votre mot de passe de connexion, ce qui empêche certaines attaques hors ligne, mais une fois connecté, tout programme qui le souhaite peut le lire (voir, par exemple, NirSoft's Protected Storage PassView .)
Windows fournit également l'API CryptoAPI et la protection des données qui pourraient vous aider. Encore une fois, cependant, je ne pense pas que Windows fasse quoi que ce soit pour empêcher les processus exécutés sous le même compte de voir les mots de passe les uns des autres.
Il ressemble au livre Mécanique de l'identification et de l'authentification des utilisateurs fournit plus de détails sur tout cela.
Eclipse (via sa fonction SecureStorage ) implémente quelque chose comme ça, si vous êtes intéressé à voir comment les autres logiciels le font.
Windows 8 a une notion de trousseau appelé Password Vault. Les applications Windows Runtime (Modern/Metro) ainsi que les applications de bureau gérées peuvent en faire usage. Selon la documentation:
Les applications et services n'ont pas accès aux informations d'identification associées à d'autres applications ou services.
Voir Comment stocker les informations d'identification de l'utilisateur sur MSDN.
Pré-Windows 8, API de protection des données (DPAPI) est l'équivalent le plus proche d'un trousseau. Les données arbitraires peuvent être chiffrées à l'aide de cette API, bien que le stockage des données chiffrées incombe au développeur. Les données sont finalement cryptées à l'aide du mot de passe de l'utilisateur actuel, mais une "entropie facultative" fournie par l'utilisateur ou le développeur pourrait être incluse pour protéger davantage les données contre d'autres logiciels ou utilisateurs. Les données peuvent également être déchiffrées sur différents ordinateurs d'un domaine.
DPAPI est accessible via des appels natifs aux fonctions CryptProtectData et CryptUnprotectData de Crypt32.dll ou via la classe ProtectedData de .NET Framework, qui est un wrapper de fonctionnalités limité. pour les anciennes fonctions.
Plus d'informations que vous n'auriez jamais dû connaître sur DPAPI sont disponibles dans l'article de Passcape Secrets DPAPI. Analyse de sécurité et récupération de données dans DPAPI .
En fait, en parcourant MSDN, les fonctions qu'ils recommandent d'utiliser (au lieu du stockage protégé) sont:
CryptProtectData
CryptUnprotectData
Le lien pour CryptProtectData
est à fonction CryptProtectData .
C'est l'année 2018, et Windows 10 a un "Credential Manager" qui peut être trouvé dans "Control Panel"