39

I'm a student and it seems every school or university I have been to has one password that you set for your user account for logging in to university services, which is also then synced to external services the university use such as blackboard, fronter, dropbox, Office 365 e-mail, etc.

Lesson 1 of cybersecurity is not to store passwords in plain text or to encrypt them. But instead to use some sort of hashing algorithm. If this is true how can a university's IT service automatically sync password for all the relevant accounts? I can understand how this can be done by using APIs each time to update all the services when a password change has been requested, but it would then make it impossible to adopt a new service without the user re-entering their password.

How is it done? or are they just holding passwords in plain text?

6
  • 17
    I added the Single-sign-on tag because that's actually what you are talking about (and it's the answer).
    – schroeder
    Commented Jan 20, 2019 at 15:28
  • 4
    For educational institutions in the US, Internet2 drives a lot of identity management work. Shibboleth is common in Universities to provide the actual sign-in APIs, and InCommon allows federation (i.e. cross-university authentication for features like eduroam).
    – user71659
    Commented Jan 20, 2019 at 19:58
  • 2
    The accepted answer is the right one, but also consider that a hash could be passed to other services and used as long as the other services know how it was created.
    – Blrfl
    Commented Jan 20, 2019 at 23:28
  • 1
    @Blrfl: That sounds indistinguishable from single sign-on with replication to local mirrors.
    – Ben Voigt
    Commented Jan 21, 2019 at 16:02
  • @BenVoigt Sure, to a point. The distinguishing factor being that if I tell you I have an account called bob whose password hashes to ABC123, it's stored in your own system.
    – Blrfl
    Commented Jan 21, 2019 at 23:27

2 Answers 2

71

It's usually not that passwords are "synced" between services, but rather a centralized authentication service is used. In many cases, this is going to be a Microsoft Windows domain controller running an Active Directory server (others exist e.g. FreeIPA), which other services can talk to using LDAP and Kerberos.

The typical setup has all user accounts added to the directory server (which is usually replicated across multiple servers transparently for redundancy and reliability purposes). Locally hosted applications (e.g. Blackboard) will have the directory server's LDAP information entered into the server settings as an authentication provider. When a client enters their credentials on the web interface, the application may check the credentials against a local database as well as LDAP services that have been configured. If the LDAP server confirms a successful authentication, information about the user (contact info, group membership, etc.) can be retrieved to populate parts of the application. When user information is updated somewhere, the data on the directory server is changed so that the change will be visible everywhere else. This applies to changing the password.

Not all applications will use LDAP directly; external services such as Office 365 or Google Apps suite and others may instead use single sign-on (SSO), where you authenticate through your organization's login page and these external services are able to effectively reuse this authentication (e.g. through SAML).

On the directory server, passwords are stored as hashes within each user object. The hashes are protected further using LDAP access controls (so any LDAP client can't just pull hashes) and are encrypted with a key from the registry (in the case of Windows Active directory).

In short, this is just scratching the surface. There are a number of ways to set up a network and services to use centralized authentication. But almost every organization uses some type of this system; like you said, it would be very difficult and insecure to do manually in most cases.

3
  • 20
    A useful comparison may be online services, such as Google's myriad sites & tools (e.g., Youtube, Google+, Google Drive, Gmail, etc.) all sharing the same login information, by passing your authentication attempts on to a single backend service. Or for external services, Stack Exchange allowing users to log in by authenticating through Facebook or Google. Commented Jan 20, 2019 at 20:01
  • 7
    Kerberos and CAS are also heavily used in Academic organizations. In additions to that RADIUS is pretty much omnipresent for WLAN access points (including EDURoam)
    – eckes
    Commented Jan 21, 2019 at 9:53
  • @JustinTime In fact, after I left university, they moved their email to Google - I haven't been back but chances are they moved a lot of their authentication to that google account.
    – corsiKa
    Commented Jan 22, 2019 at 18:24
0

When logging in to external services, if you are redirected by your browser to your organization for entering the password then federation is used, i.e. the password is not synced to the external service.

This is usually the case, and the standard used is usually SAML2.

But there are organizations that actually sync your password to different services, in my experience it's usually between internal services that don't support LDAP authentication but I have seen it done for external services as well such as Office 365 and Google.

This is done by a identity management system (there are plenty of those out there, "IDM") which has connectors that keep identity information in sync between a central repository and all connected systems.

In that case the password is stored encrypted, in all cases I've seen with AES256 in that central repository. Of course the administrator of the IDM system can read those passwords since they control the key if there are no audit controls in place.

4
  • 1
    Really, encrypted passwords, with AES, not hashed with $somethingappropriate? Are you sure "all cases you've seen" are not zero?
    – Tobi Nary
    Commented Jan 22, 2019 at 8:24
  • 1
    To be more precise, if an IDM encrypts the passwords and doesn't hash them, it's not a good IDM, regardless of the algorithm used to encrypt the data.
    – Tobi Nary
    Commented Jan 22, 2019 at 8:31
  • I've seen plenty implementations, i.e. more than zero when utilizing password synchronization. That's the nature of password sync since each system you are syncing to has its own hash method so you need the clear text password to be able to sync it. That's the reality of "enterprise" software.
    – Singleton
    Commented Jan 22, 2019 at 10:17
  • I'm not sure that you can equate IdM with "password syncing" services. Those are different services. Yes, password syncing services would encrypt your password, but I'm not sure that the implication can be that IdM encrypts passwords and sends them on. I think you need to rephrase that part of your answer.
    – schroeder
    Commented Jan 22, 2019 at 10:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .