web-dev-qa-db-fra.com

Comment fonctionne l'authentification de compte Microsoft de Windows 8?

L'une des nouvelles fonctionnalités de Windows 8 est la possibilité de Connectez-vous à votre PC à l'aide de vos informations d'identification à partir d'un compte Microsoft . Comment cela est-il implémenté et quelles mesures sont prises pour empêcher le détournement des informations d'identification en transit, l'authentification falsifiée ou d'autres attaques de MITM?

Je suppose que SSL ou un autre schéma de cryptage et d'authentification utilisée, mais je ne trouve aucun détail sur ce que cela inclut et jusqu'où la SP est allée pour empêcher (par exemple) l'intoxication SSL & DNS.

EDIT: RE SSL - Quoi d'arrêter un Sysadmin Ajout d'un faux certificat pour Live.com aux touches publiques de confiance de Windows, exécutant un serveur avec la fausse clé privée correspondante et utilise DNS pour rediriger les demandes d'authentification?

14
jackweirdy

Windows utilise un fournisseur de crédits et un SSPI pour fournir les fonctionnalités. Le SSPI communique via un service Web aux critères Microsoft. Les points d'extrémité sont configurés en les stockant dans un code-signé DLL========== Down via Windows Update. Le SSPI chargera la DLL, vérifiez son code signé par Microsoft et d'analyser le nécessaire. points de terminaison.

Lorsque le SSPI se connecte aux points d'extrémité, il compare le certificat SSL à une valeur stockée dans la DLL de configuration. Je ne sais pas si sa comparaison de sujet ou s'ils font des comparaisons clés, mais si la comparaison échoue pour une raison quelconque de la demande est rejetée.

En outre, le processus est protégé par un secret client. Les informations d'identification envoyées au point final sont cryptées à l'aide d'un secret local que les points finaux Microsoft connaissent. Je ne sais pas si sa clé symétrique ou une clé asymétrique. La clé asymétrique pourrait bien être plus probable. Cette clé est partagée lors du processus de bootstrapping qui se produit lorsque vous enregistrez l'ordinateur en tant que ID en direct activé.

Pour une mesure ajoutée, la SSO dans des sites compatibles en direct est de stocker un cookie avec un jeton de courte durée de vie pour l'un des domaines d'identité en direct. Une fois qu'un utilisateur a été authentifié par le SSPI, une demande est envoyée à un autre service Web pour obtenir un jeton de périphérique. Le service est authentifié par une confiance fédérée à l'ID en direct. Si vous avez un jeton d'ID en direct qui est émis sur votre appareil, vous pouvez appeler ce service pour obtenir un autre jeton. Ce jeton de périphérique est sérialisé à un format particulier et écrit dans un cookie dans la session Windows des utilisateurs. La prochaine fois que l'utilisateur navigue sur un site d'identifiant en direct, le cookie sera présent, validé et vous ne serez pas invité à demander des informations d'identification. Il y a un peu plus que cela, mais c'est le gist du processus.

Donc, en ce qui concerne l'entrepoiffage ou la falsification, Microsoft utilise le certificat d'épingle pour empêcher le MITM et utilise un secret partagé pour empêcher les clients non autorisés de faire des demandes d'authentification.

EDIT: Si le certificat approprié n'est pas dans DLL, la demande échouera. Un administrateur pourrait spoof le DLL mais il aura besoin de la signer avec Clés de la signature de code de Microsoft, et bien, des problèmes plus importants et tout ce que, s'ils pouvaient le faire. Si l'administrateur acquiert la clé partagée en quelque sorte, ils pourraient utiliser une demande utilisant votre jeton, mais cela signifie qu'ils doivent acquérir le jeton de la manière dont est considérablement plus difficile compte tenu du pincement du certificat. À ce stade, il pourrait simplement être plus facile d'installer un faux fournisseur de crédits et de collecter les informations d'identification.

6
Steve

En fait, cela fonctionne plus dans la direction opposée. Pour vous connecter à votre propre PC, vous utilisez un mot de passe que vous avez demandé à votre PC de reconnaître. Lorsque vous configurez votre PC pour accepter un "compte Microsoft", demandez à votre PC de reconnaître votre mot de passe de compte Microsoft en tant que "mot de passe local" - et Le même mot de passe sera utilisé pour accéder aux serveurs de Microsoft Pour toute la synchronisation automatique et la bonté de l'application qu'ils ont tous.

Les détails exacts peuvent être complexes mais le principe reste le même: l'authentification est d'abord locale, puis (seulement (seulement) les informations d'identification sont également utilisées pour parler aux serveurs de Microsoft.

Une conséquence est que si quelqu'un parle d'obtenir le mot de passe de votre compte à partir de serveurs de Microsoft (en supposant qu'ils le stockent et non seulement un hachage, ce qui ne serait pas une bonne idée), il recevrait alors le mot de passe de votre ordinateur local, ce qui ne serait pas Apportez-le loin jusqu'à ce qu'il puisse accéder physiquement à l'ordinateur, à ce moment-là qu'il pourrait simplement saisir et courir, mot de passe ou aucun mot de passe.


L'empoisonnement DNS est vaincu par SSL. Le point de SSL est de résumer le support de transport, y compris la DNS et l'adresse IP. Le client est sûr de parler au serveur de droite car il validait le certificat de serveur et utilise la cryptographie basée sur la clé publique trouvée dans ce certificat. Vraisemblablement, les ingénieurs Microsoft ont pris soin d'utiliser une validation et des vérifications de certificat appropriés (ils peuvent le faire, car le même code est utilisé lorsque vous accédez à votre compte bancaire via le site Web de votre banque à moteur HTTPS).

6
Thomas Pornin