SAML-Authentifizierung in ChromeOS

Standardmäßig übernimmt der extern zugängliche Kontodienst von Google die Authentifizierung für Google-Konten. Wenn ein nicht authentifizierter Nutzer eine Google-Seite aufruft, für die eine Authentifizierung erforderlich ist, werden im Google-Anmeldeformular die E-Mail-Adresse und das Passwort des Nutzers angefordert. Nachdem der Nutzer seine E-Mail-Adresse und sein Passwort eingegeben hat, wird durch die Google-Authentifizierung überprüft, ob die eingegebenen Anmeldedaten korrekt sind. Wenn die Anmeldedaten korrekt sind, werden durch die Google-Authentifizierung die Anmeldecookies des Nutzers gesetzt.

Einige Unternehmen verwenden ein komplexeres Modell, bei dem die Authentifizierung über einen externen Identitätsanbieter (IdP) erfolgt. Die Google-Authentifizierung unterstützt dieses Modell über das branchenübliche SAML-Protokoll (Security Assertion Markup Language). Ein Administrator kann eine Domain für die Verwendung der SAML-Authentifizierung konfigurieren.

Nutzerpasswort abrufen

ChromeOS muss das bei der Anmeldung eingegebene Passwort des Nutzers identifizieren, um:

  • Verschlüsseln Sie die auf dem Festplattenlaufwerk gespeicherten Daten des Nutzers.
  • Sperrbildschirm schützen
  • Aktivieren Sie die Offlineanmeldung, wenn kein Netzwerkzugriff möglich ist.

Bei der Verwendung von SAML wird das Passwort nicht direkt in einem ChromeOS-Systemdialog eingegeben, sondern in einer Webview, die vom Identitätsanbieter gehostet wird. ChromeOS hat zwar Zugriff auf den HTML-Code, es gibt aber keine einfache, kanonische Möglichkeit, das Passwort abzurufen, da nicht klar ist, welche Formularfelder die Daten enthalten.

Es gibt zwei Möglichkeiten, das Passwort eines Nutzers abzurufen, wenn SAML verwendet wird: die Credentials Passing API und das Auslesen von Passwörtern.

Chrome Credentials Passing API

Google stellt eine Credentials Passing API bereit, die Identitätsanbieter auf SAML-Seiten in JavaScript implementieren können, um die erforderlichen Daten an ChromeOS zu übergeben. Die Google-Authentifizierung verwendet diese API, aber jeder SAML-Identitätsanbieter könnte sie ebenfalls verwenden.

Auslesen von Passwörtern

Ein SAML-Identitätsanbieter kann das Extrahieren von Passwörtern verwenden, wenn er die Credentials Passing API nicht unterstützt.

Bei dieser Methode gilt Folgendes:

  1. Auf dem Authentifizierungsbildschirm wird ein Inhaltsscript in die Webview eingefügt, in der der Anmeldevorgang stattfindet.
  2. Das Content-Script identifiziert HTML-Eingabefelder vom Typ „password“ und kopiert deren Inhalt in ein Array. Das Array wird aktualisiert, wenn sich der Inhalt eines Passwortfelds ändert.
  3. Gescrapte Passwörter werden an eine Hintergrundseite gesendet, auf der sie gesammelt werden. So kann das Passwort auch dann erfasst werden, wenn der Anmeldevorgang mehrere Weiterleitungen zu verschiedenen HTML-Seiten umfasst.

Am Ende des Anmeldevorgangs wird das Array der abgegriffenen Passwörter von der Hintergrundseite abgerufen. Es gibt drei mögliche Fälle: Es wurde kein Passwort erfasst, genau ein Passwort wurde erfasst oder es wurden mehrere Passwörter erfasst.

Es wurde kein Passwort extrahiert

Das Content-Script kann das Passwort auf den vom Identitätsanbieter bereitgestellten HTML-Seiten nicht finden. Der Identitätsanbieter darf keine herkömmlichen Passwörter verwenden.

In diesem Fall werden Nutzer in ChromeOS aufgefordert, ein manuelles Passwort für das Gerät auszuwählen. Wenn das Passwort nicht vorhanden ist (z.B. Authentifizierung über Smartcards, NFC oder Biometrie), kann der ChromeOS-Authentifizierungsprozess ohne das Passwort fortgesetzt werden.

Es wurde genau ein Passwort extrahiert

Das Content-Script identifiziert genau ein Passwort. Wahrscheinlich ist das das Passwort des Nutzers, das für die Authentifizierung verwendet wird.

In diesem Szenario haben wir das Passwort des Nutzers höchstwahrscheinlich korrekt abgerufen. ChromeOS verwendet das abgerufene Passwort als Passwort des Nutzers, um den Authentifizierungsprozess fortzusetzen.

Es wurden mehrere Passwörter extrahiert

Das Inhaltsskript hat mehrere Passwörter erkannt. Das kann z. B. passieren, wenn ein Identitätsanbieter von einem Nutzer verlangt, ein dauerhaftes Passwort und ein Einmalpasswort in das Anmeldeformular einzugeben.

In diesem Fall haben wir wahrscheinlich das tatsächliche Passwort des Nutzers und einige zusätzliche Passwortfelder erfasst, die für ChromeOS nicht von Interesse sind. Um festzustellen, welches das richtige Passwort ist, fordert ChromeOS den Nutzer auf, das Passwort noch einmal in einer zusätzlichen Passwortaufforderung einzugeben.

Wenn das eingegebene Passwort mit einem der abgegriffenen Passwörter übereinstimmt, wurde das tatsächliche Passwort des Nutzers ermittelt und der Authentifizierungsprozess wird fortgesetzt. Wenn keine Übereinstimmung gefunden wird, wird der Nutzer aufgefordert, sein Passwort noch einmal einzugeben. Nach zwei Abweichungen schlägt die Anmeldung mit einer Fehlermeldung fehl.

Unternehmensregistrierung

Bei der Registrierung von Geräten für Unternehmen ist die E‑Mail-Adresse des registrierenden Nutzers erforderlich, um das Gerät der richtigen Domain zuzuordnen. Die E‑Mail-Adresse wird vom DM-Server (Device Management) während des Abrufs der Gerätekonfiguration in das Feld „username“ der PolicyData-Nachricht in Chrome gesendet. Das Passwort des Nutzers muss nicht ermittelt werden.