web-dev-qa-db-fra.com

Comment les universités et les écoles synchronisent-elles en toute sécurité les mots de passe entre plusieurs services?

Je suis étudiant et il semble que chaque école ou université où je suis allé ait un mot de passe que vous avez défini pour votre compte d'utilisateur pour vous connecter aux services universitaires, qui est également synchronisé avec les services externes que l'université utilise tels que le tableau noir, le fronter, dropbox, e-mail Office 365, etc.

La leçon 1 de la cybersécurité ne consiste pas à stocker les mots de passe en texte brut ou à les chiffrer. Mais au lieu d'utiliser une sorte d'algorithme de hachage. Si cela est vrai, comment le service informatique d'une université peut-il synchroniser automatiquement le mot de passe pour tous les comptes concernés? Je peux comprendre comment cela peut être fait en utilisant à chaque fois des API pour mettre à jour tous les services lorsqu'un changement de mot de passe a été demandé, mais cela rendrait impossible l'adoption d'un nouveau service sans que l'utilisateur ressaisisse son mot de passe.

Comment est-il fait? ou détiennent-ils simplement des mots de passe en texte brut?

39
darkniss

Ce n'est généralement pas que les mots de passe sont "synchronisés" entre les services, mais plutôt un service d'authentification centralisé est utilisé. Dans de nombreux cas, il s'agira d'un contrôleur de domaine Microsoft Windows exécutant un serveur Active Directory (d'autres existent, par exemple FreeIPA), avec lesquels d'autres services peuvent communiquer à l'aide de LDAP et Kerberos.

La configuration typique a tous les comptes d'utilisateurs ajoutés au serveur d'annuaire (qui est généralement répliqué sur plusieurs serveurs de manière transparente à des fins de redondance et de fiabilité). Les applications hébergées localement (par exemple, Blackboard) verront les informations LDAP du serveur d'annuaire entrées dans les paramètres du serveur en tant que fournisseur d'authentification. Lorsqu'un client saisit ses informations d'identification sur l'interface Web, l'application peut vérifier les informations d'identification par rapport à une base de données locale ainsi qu'aux services LDAP qui ont été configurés. Si le serveur LDAP confirme une authentification réussie, des informations sur l'utilisateur (informations de contact, appartenance à un groupe, etc.) peuvent être récupérées pour remplir des parties de l'application. Lorsque les informations utilisateur sont mises à jour quelque part, les données sur le serveur d'annuaire sont modifiées afin que la modification soit visible partout ailleurs. Cela s'applique à la modification du mot de passe.

Toutes les applications n'utiliseront pas LDAP directement; les services externes tels qu'Office 365 ou la suite Google Apps et d'autres peuvent utiliser à la place l'authentification unique (SSO), où vous vous authentifiez via la page de connexion de votre organisation et ces services externes sont en mesure de réutiliser efficacement cette authentification (par exemple via SAML).

Sur le serveur d'annuaire, les mots de passe sont stockés sous forme de hachages dans chaque objet utilisateur. Les hachages sont davantage protégés à l'aide des contrôles d'accès LDAP (de sorte que tout client LDAP ne peut pas simplement extraire des hachages) et sont chiffrés avec une clé du registre (dans le cas de Windows Active Directory).

En bref, cela ne fait que rayer la surface. Il existe plusieurs façons de configurer un réseau et des services pour utiliser l'authentification centralisée. Mais presque toutes les organisations utilisent un certain type de ce système; comme vous l'avez dit, il serait très difficile et peu sûr de le faire manuellement dans la plupart des cas.

71
multithr3at3d

Lorsque vous vous connectez à des services externes, si vous êtes redirigé par votre navigateur vers votre organisation pour saisir le mot de passe, la fédération est utilisée, c'est-à-dire que le mot de passe n'est pas synchronisé avec le service externe.

C'est généralement le cas, et la norme utilisée est généralement SAML2.

Mais il existe des organisations qui synchronisent réellement votre mot de passe avec différents services, d'après mon expérience, c'est généralement entre des services internes qui ne prennent pas en charge l'authentification LDAP, mais je l'ai vu pour des services externes, tels qu'Office 365 et Google.

Cela se fait par un système de gestion des identités (il y en a beaucoup, "IDM") qui a des connecteurs qui synchronisent les informations d'identité entre un référentiel central et tous les systèmes connectés.

Dans ce cas, le mot de passe est stocké crypté, dans tous les cas, j'ai vu avec AES256 dans ce référentiel central. Bien sûr, l'administrateur du système IDM peut lire ces mots de passe car ils contrôlent la clé s'il n'y a aucun contrôle d'audit en place.

0
Singleton