In diesem Leitfaden wird beschrieben, wie die Verschlüsselung und Entschlüsselung mit der clientseitigen Verschlüsselungs-API von Google Workspace funktioniert.
Sie müssen alle Identitätsanbieterdienste (Identity Provider, IdP) auf eine Zulassungsliste setzen, die von Nutzern verwendet werden, die verschlüsselte Dateien freigeben. Normalerweise finden Sie die erforderlichen IdP-Details in der öffentlich verfügbaren .well-known-Datei. Andernfalls wenden Sie sich an den Google Workspace-Administrator der Organisation, um die IdP-Details zu erhalten.
Daten verschlüsseln
Wenn ein Google Workspace-Nutzer anfordert, clientseitig
verschlüsselte (client-side encryption, CSE) Daten zu speichern, sendet Google Workspace eine
wrap-Anfrage zur Verschlüsselung an die KACLS-Endpunkt-URL (Key Access Control List
Service) Ihres Unternehmens. Zusätzlich zu optionalen Sicherheitsprüfungen wie perimeter- und JWT-anspruchsbasierten Prüfungen muss Ihr KACLS die folgenden Schritte ausführen:
Den anfragenden Nutzer validieren.
- Sowohl das Authentifizierungs token als auch das Autorisierungs token validieren.
- Prüfen, ob die Autorisierungs- und Authentifizierungstoken für denselben Nutzer gelten, indem Sie die E‑Mail-Ansprüche ohne Berücksichtigung der Groß-/Kleinschreibung vergleichen.
- Wenn das Authentifizierungstoken den optionalen Anspruch
google_emailenthält, muss es ohne Berücksichtigung der Groß-/Kleinschreibung mit dem E‑Mail-Anspruch im Autorisierungstoken verglichen werden. Verwenden Sie für diesen Vergleich nicht den E‑Mail-Anspruch im Authentifizierungstoken. - In Szenarien, in denen das Authentifizierungstoken den optionalen Anspruch
google_emailnicht enthält, sollte der E‑Mail-Anspruch im Authentifizierungstoken ohne Berücksichtigung der Groß-/Kleinschreibung mit dem E‑Mail-Anspruch im Autorisierungstoken verglichen werden. - In Szenarien, in denen Google ein Autorisierungstoken für eine E‑Mail-Adresse ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss der Anspruch
email_typevorhanden sein. Dies ist ein wichtiger Bestandteil der Funktion für den Gastzugriff und liefert wertvolle Informationen für KACLS, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.- Einige Beispiele dafür, wie ein KACLS diese Informationen verwenden kann:
- Zusätzliche Protokollierungsanforderungen auferlegen.
- Den Aussteller des Authentifizierungstokens auf einen bestimmten Gast-IdP beschränken.
- Zusätzliche Ansprüche für das Authentifizierungstoken festlegen.
- Wenn ein Kunde den Gastzugriff nicht konfiguriert hat, können alle Anfragen abgelehnt werden, bei denen
email_typeaufgoogle-visitorodercustomer-idpfestgelegt ist. Anfragen mit einememail_typevongoogleoder mit einem nicht festgelegtenemail_typesollten weiterhin akzeptiert werden.
- Wenn das Authentifizierungstoken den optionalen Anspruch
delegated_toenthält, muss es auch den Anspruchresource_nameenthalten. Diese beiden Ansprüche müssen mit den Ansprüchendelegated_toundresource_nameim Autorisierungstoken verglichen werden. Diedelegated_to-Ansprüche sollten ohne Berücksichtigung der Groß-/Kleinschreibung verglichen werden und derresource_namein den Token muss mit demresource_namedes Vorgangs übereinstimmen. - Prüfen, ob der Anspruch
roleim Autorisierungstokenwriteroderupgraderist. - Prüfen, ob die Anforderung
kacls_urlim Autorisierungstoken mit der aktuellen KACLS-URL übereinstimmt. Mit dieser Prüfung können potenzielle Man-in-the-Middle-Server erkannt werden, die von Insidern oder betrügerischen Domainadministratoren konfiguriert wurden. - Eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsansprüchen durchführen.
Die folgenden Teile mit einem authentifizierten Verschlüsselungsalgorithmus verschlüsseln:
- Datenverschlüsselungsschlüssel (Data Encryption Key, DEK)
- Die Werte
resource_nameundperimeter_idaus dem Autorisierungstoken - Alle zusätzlichen sensiblen Daten
Den Vorgang protokollieren, einschließlich des Nutzers, der ihn initiiert hat, des
resource_nameund des in der Anfrage übergebenen Grunds.Ein undurchsichtiges binäres Objekt zurückgeben, das von Google Workspace zusammen mit dem verschlüsselten Objekt gespeichert und bei allen nachfolgenden Vorgängen zum Entschlüsseln des Schlüssels unverändert gesendet werden soll. Oder eine strukturierte Fehler antwort senden.
- Das binäre Objekt sollte die einzige Kopie des verschlüsselten DEK enthalten. Implementierungsspezifische Daten können darin gespeichert werden.
Daten entschlüsseln
Wenn ein Google Workspace-Nutzer anfordert, clientseitig verschlüsselte
(client-side encryption, CSE) Daten zu öffnen, sendet Google Workspace eine
unwrap-Anfrage zur Entschlüsselung an die KACLS-Endpunkt-URL
Ihres Unternehmens. Zusätzlich zu optionalen Sicherheitsprüfungen wie perimeter- und JWT-anspruchsbasierten Prüfungen muss Ihr KACLS die folgenden Schritte ausführen:
Den anfragenden Nutzer validieren.
- Sowohl das Authentifizierungs token als auch das Autorisierungs token validieren.
- Prüfen, ob die Autorisierungs- und Authentifizierungstoken für denselben Nutzer gelten, indem Sie die E‑Mail-Ansprüche ohne Berücksichtigung der Groß-/Kleinschreibung vergleichen.
- Wenn das Authentifizierungstoken den optionalen Anspruch
google_emailenthält, muss es ohne Berücksichtigung der Groß-/Kleinschreibung mit dem E‑Mail-Anspruch im Autorisierungstoken verglichen werden. Verwenden Sie für diesen Vergleich nicht den E‑Mail-Anspruch im Authentifizierungstoken. - In Szenarien, in denen das Authentifizierungstoken den optionalen Anspruch
google_emailnicht enthält, sollte der E‑Mail-Anspruch im Authentifizierungstoken ohne Berücksichtigung der Groß-/Kleinschreibung mit dem E‑Mail-Anspruch im Autorisierungstoken verglichen werden. - In Szenarien, in denen Google ein Autorisierungstoken für eine E‑Mail-Adresse ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss der Anspruch
email_typevorhanden sein. Dies ist ein wichtiger Bestandteil der Funktion für den Gastzugriff und liefert wertvolle Informationen für KACLS, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.- Einige Beispiele dafür, wie ein KACLS diese Informationen verwenden kann:
- Zusätzliche Protokollierungsanforderungen auferlegen.
- Den Aussteller des Authentifizierungstokens auf einen bestimmten Gast-IdP beschränken.
- Zusätzliche Ansprüche für das Authentifizierungstoken festlegen.
- Wenn ein Kunde den Gastzugriff nicht konfiguriert hat, können alle Anfragen abgelehnt werden, bei denen
email_typeaufgoogle-visitorodercustomer-idpfestgelegt ist. Anfragen mit einememail_typevongoogleoder mit einem nicht festgelegtenemail_typesollten weiterhin akzeptiert werden.
- Wenn das Authentifizierungstoken den optionalen Anspruch
delegated_toenthält, muss es auch den Anspruchresource_nameenthalten. Diese beiden Ansprüche müssen mit den Ansprüchendelegated_toundresource_nameim Autorisierungstoken verglichen werden. Diedelegated_to-Ansprüche sollten ohne Berücksichtigung der Groß-/Kleinschreibung verglichen werden und derresource_namein den Token muss mit demresource_namedes Vorgangs übereinstimmen. - Prüfen, ob der Anspruch
roleim Autorisierungstokenreaderoderwriterist. - Prüfen, ob die Anforderung
kacls_urlim Autorisierungstoken mit der aktuellen KACLS-URL übereinstimmt. Mit dieser Prüfung können potenzielle Man-in-the-Middle-Server erkannt werden, die von Insidern oder betrügerischen Domainadministratoren konfiguriert wurden.
Die folgenden Teile mit einem authentifizierten Verschlüsselungsalgorithmus entschlüsseln:
- Datenverschlüsselungsschlüssel (Data Encryption Key, DEK)
- Die Werte
resource_nameundperimeter_idaus dem Autorisierungstoken - Alle zusätzlichen sensiblen Daten
Prüfen, ob der
resource_nameim Autorisierungstoken und im entschlüsselten Blob übereinstimmen.Eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsansprüchen durchführen.
Den Vorgang protokollieren, einschließlich des Nutzers, der ihn initiiert hat, des
resource_nameund des in der Anfrage übergebenen Grunds.Den entschlüsselten DEK oder eine strukturierte Fehler antwort zurückgeben.