In diesem Leitfaden wird beschrieben, wie die Verschlüsselung und Entschlüsselung mit der Google Workspace Client-side Encryption API funktioniert.
Sie müssen alle Identitätsanbieterdienste (Identity Provider, IdP) auf die Zulassungsliste setzen, die von Nutzern verwendet werden, die verschlüsselte Dateien freigeben. Normalerweise finden Sie die erforderlichen IdP-Details in der öffentlichen .well-known-Datei. Andernfalls können Sie den Google Workspace-Administrator der Organisation um die Informationen zum IdP bitten.
Daten verschlüsseln
Wenn ein Google Workspace-Nutzer clientseitig verschlüsselte (CSE) Daten speichern oder aufbewahren möchte, sendet Google Workspace eine wrap
-Anfrage zur Verschlüsselung an die Endpunkt-URL Ihres Key Access Control List Service (KACLS).
Zusätzlich zu optionalen Sicherheitsprüfungen wie Perimeter- und JWT-Anspruchsprüfungen müssen Ihre KACLS die folgenden Schritte ausführen:
Validieren Sie den anfragenden Nutzer.
- Validieren Sie sowohl das Authentifizierungstoken als auch das Autorisierungstoken.
- Prüfen Sie, ob Autorisierungs- und Authentifizierungstokens 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_email
enthält, muss es mit dem Anspruch „email“ im Autorisierungstoken verglichen werden. Dabei muss die Groß-/Kleinschreibung ignoriert werden. Verwenden Sie für diesen Vergleich nicht den E-Mail-Claim im Authentifizierungstoken. - In Szenarien, in denen das Authentifizierungstoken den optionalen
google_email
-Anspruch nicht enthält, sollte der E-Mail-Anspruch im Authentifizierungstoken mit dem E-Mail-Anspruch im Autorisierungstoken verglichen werden. Dabei sollte eine Methode verwendet werden, bei der die Groß- und Kleinschreibung keine Rolle spielt. - Wenn Google ein Autorisierungstoken für eine E-Mail-Adresse ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss der
email_type
-Anspruch vorhanden sein. Dies ist ein wichtiger Bestandteil der Gastzugriffsfunktion und liefert wertvolle Informationen für KACLS, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.- Hier einige Beispiele dafür, wie ein KACLS diese Informationen verwenden kann:
- Zusätzliche Anforderungen an das Logging durchzusetzen.
- So beschränken Sie den Aussteller von Authentifizierungstokens auf einen bestimmten Gast-IdP.
- Zusätzliche Ansprüche für das Authentifizierungstoken erforderlich machen
- Wenn ein Kunde keinen Gastzugriff konfiguriert hat, können alle Anfragen, bei denen
email_type
aufgoogle-visitor
odercustomer-idp
gesetzt ist, abgelehnt werden. Anfragen mit einememail_type
vongoogle
oder mit einem nicht festgelegtenemail_type
sollten weiterhin akzeptiert werden.
- Wenn das Authentifizierungstoken die optionale Anforderung
delegated_to
enthält, muss es auch die Anforderungresource_name
enthalten. Diese beiden Anforderungen müssen mit den Anforderungendelegated_to
undresource_name
im Autorisierungstoken verglichen werden. Diedelegated_to
-Ansprüche sollten mit einem nicht berücksichtigenden Ansatz verglichen werden und dieresource_name
in den Tokens sollte mit derresource_name
des Vorgangs übereinstimmen. - Prüfen Sie, ob der Anspruch
role
im Autorisierungstokenwriter
oderupgrader
ist. - Prüfen Sie, ob die Anforderung
kacls_url
im 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. - Führen Sie eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsansprüchen durch.
Verschlüsseln Sie die folgenden Teile mit einem Algorithmus für authentifizierte Verschlüsselung:
- Datenverschlüsselungsschlüssel (Data Encryption Key, DEK)
- Die Werte
resource_name
undperimeter_id
aus dem Autorisierungstoken - Alle zusätzlichen sensiblen Daten
Protokollieren Sie den Vorgang, einschließlich des Nutzers, der ihn initiiert hat, der
resource_name
und des in der Anfrage übergebenen Grunds.Gibt ein undurchsichtiges binäres Objekt zurück, das von Google Workspace zusammen mit dem verschlüsselten Objekt gespeichert und bei jedem nachfolgenden Entschlüsselungsvorgang unverändert gesendet wird. Oder Sie senden eine strukturierte Fehlerantwort.
- 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 Daten zu öffnen, sendet Google Workspace eine unwrap
-Anfrage zur Entschlüsselung an die KACLS-Endpunkt-URL. Zusätzlich zu optionalen Sicherheitsprüfungen wie Perimeter- und JWT-Anforderungsprüfungen muss Ihr KACLS die folgenden Schritte ausführen:
Validieren Sie den anfragenden Nutzer.
- Validieren Sie sowohl das Authentifizierungstoken als auch das Autorisierungstoken.
- Prüfen Sie, ob Autorisierungs- und Authentifizierungstokens 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_email
enthält, muss es mit dem Anspruch „email“ im Autorisierungstoken verglichen werden. Dabei muss die Groß-/Kleinschreibung ignoriert werden. Verwenden Sie für diesen Vergleich nicht den E-Mail-Claim im Authentifizierungstoken. - In Szenarien, in denen das Authentifizierungstoken den optionalen
google_email
-Anspruch nicht enthält, sollte der E-Mail-Anspruch im Authentifizierungstoken mit dem E-Mail-Anspruch im Autorisierungstoken verglichen werden. Dabei sollte eine Methode verwendet werden, bei der die Groß- und Kleinschreibung keine Rolle spielt. - Wenn Google ein Autorisierungstoken für eine E-Mail-Adresse ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss der
email_type
-Anspruch vorhanden sein. Dies ist ein wichtiger Bestandteil der Gastzugriffsfunktion und liefert wertvolle Informationen für KACLS, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.- Hier einige Beispiele dafür, wie ein KACLS diese Informationen verwenden kann:
- Zusätzliche Anforderungen an das Logging durchzusetzen.
- So beschränken Sie den Aussteller von Authentifizierungstokens auf einen bestimmten Gast-IdP.
- Zusätzliche Ansprüche für das Authentifizierungstoken erforderlich machen
- Wenn ein Kunde keinen Gastzugriff konfiguriert hat, können alle Anfragen, bei denen
email_type
aufgoogle-visitor
odercustomer-idp
gesetzt ist, abgelehnt werden. Anfragen mit einememail_type
vongoogle
oder mit einem nicht festgelegtenemail_type
sollten weiterhin akzeptiert werden.
- Wenn das Authentifizierungstoken die optionale Anforderung
delegated_to
enthält, muss es auch die Anforderungresource_name
enthalten. Diese beiden Anforderungen müssen mit den Anforderungendelegated_to
undresource_name
im Autorisierungstoken verglichen werden. Diedelegated_to
-Ansprüche sollten mit einem nicht berücksichtigenden Ansatz verglichen werden und dieresource_name
in den Tokens sollte mit derresource_name
des Vorgangs übereinstimmen. - Prüfen Sie, ob der Anspruch
role
im Autorisierungstokenreader
oderwriter
ist. - Prüfen Sie, ob die Anforderung
kacls_url
im Autorisierungstoken mit der aktuellen KACLS-URL übereinstimmt. So können potenzielle Man-in-the-Middle-Server erkannt werden, die von Insidern oder betrügerischen Domainadministratoren konfiguriert wurden.
Entschlüsseln Sie die folgenden Teile mit einem Algorithmus für authentifizierte Verschlüsselung:
- Datenverschlüsselungsschlüssel (Data Encryption Key, DEK)
- Die Werte
resource_name
undperimeter_id
aus dem Autorisierungstoken - Alle zusätzlichen sensiblen Daten
Prüfen Sie, ob die
resource_name
im Autorisierungstoken und im entschlüsselten Blob übereinstimmen.Führen Sie eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsansprüchen durch.
Protokollieren Sie den Vorgang, einschließlich des Nutzers, der ihn initiiert hat, der
resource_name
und des in der Anfrage übergebenen Grunds.Geben Sie das entpackte DEK oder eine strukturierte Fehlerantwort zurück.