Daten verschlüsseln und entschlüsseln

In diesem Leitfaden wird beschrieben, wie Verschlüsselung und Entschlüsselung mit der clientseitigen Verschlüsselungs-API von Google Workspace funktionieren.

Sie müssen alle Identitätsanbieterdienste (IdP) auf die 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.

Daten verschlüsseln

Wenn ein Google Workspace-Nutzer anfordert, clientseitig verschlüsselte Daten (client-side encryption, CSE) zu speichern, sendet Google Workspace eine wrap-Anfrage zur Verschlüsselung an Ihre KACLS-Endpunkt-URL. Zusätzlich zu optionalen Sicherheitsprüfungen wie Perimeter- und JWT-Claim-basierten Prüfungen müssen Ihre KACLS die folgenden Schritte ausführen:

  1. Prüfen Sie den anfragenden Nutzer.

    • Prüfe sowohl das Authentifizierungstoken als auch das Autorisierungstoken.
    • Prüfe, ob Autorisierungs- und Authentifizierungstokens für denselben Nutzer gelten, indem du die E-Mail-Anspruche ohne Berücksichtigung der Groß- und Kleinschreibung abgleichst.
    • Wenn das Authentifizierungstoken den optionalen Anspruch google_email enthält, muss er ohne Berücksichtigung der Groß- und Kleinschreibung mit dem E-Mail-Anspruch im Autorisierungstoken verglichen werden. Verwende für diesen Vergleich nicht den E-Mail-Claim im Authentifizierungstoken.
    • In Szenarien, in denen das Authentifizierungstoken den optionalen Anspruch google_email 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, die nicht zwischen Groß- und Kleinschreibung unterscheidet.
    • In Fällen, in denen Google ein Autorisierungstoken für eine E-Mail ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss der email_type-Anspruch vorhanden sein. Dies ist ein wichtiger Bestandteil der Funktion „Gastzugriff“ und liefert wertvolle Informationen für KACLS, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.
      • Beispiele für die Verwendung dieser Informationen durch eine KACLS:
      • Zusätzliche Logginganforderungen festlegen
      • Sie können den Aussteller des Authentifizierungstokens auf einen bestimmten Gast-IdP beschränken.
      • Zusätzliche Ansprüche für das Authentifizierungstoken anfordern
      • Wenn ein Kunde den Gastzugriff nicht konfiguriert hat, können alle Anfragen, bei denen email_type auf google-visitor oder customer-idp gesetzt ist, abgelehnt werden. Anfragen mit einer email_type von google oder mit einer nicht festgelegten email_type sollten weiterhin akzeptiert werden.
    • Prüfen Sie, ob die role-Anforderung im Autorisierungstoken „writer“ oder „upgrader“ ist.
    • Prüfen Sie, ob der Anspruch 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 böswilligen Domainadministratoren konfiguriert wurden.
    • Führen Sie eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsansprüchen durch.
  2. Verschlüsseln Sie die folgenden Teile mit einem authentifizierten Verschlüsselungsalgorithmus:

    • Datenverschlüsselungsschlüssel (Data Encryption Key, DEK)
    • Die Werte resource_name und perimeter_id aus dem Autorisierungstoken
    • Zusätzliche sensible Daten
  3. Protokollieren Sie den Vorgang, einschließlich des Nutzers, der ihn initiiert hat, der resource_name und des in der Anfrage angegebenen Grundes.

  4. Gibt ein undurchsichtiges Binärobjekt zurück, das von Google Workspace zusammen mit dem verschlüsselten Objekt gespeichert und bei jedem nachfolgenden Entfernen des Schlüssels unverändert gesendet wird. Sie können auch eine strukturierte Fehlerantwort senden.

    • Das Binärobjekt sollte die einzige Kopie des verschlüsselten DEK enthalten. Darin können implementierungsspezifische Daten gespeichert werden.

Daten entschlüsseln

Wenn ein Google Workspace-Nutzer clientseitig verschlüsselte Daten öffnen möchte, sendet Google Workspace eine unwrap-Anfrage zur Entschlüsselung an Ihre KACLS-Endpunkt-URL. Zusätzlich zu optionalen Sicherheitsprüfungen wie Perimeter- und JWT-Anforderungsbasierten Prüfungen müssen Ihre KACLS die folgenden Schritte ausführen:

  1. Prüfen Sie den anfragenden Nutzer.

    • Prüfe sowohl das Authentifizierungstoken als auch das Autorisierungstoken.
    • Prüfe, ob Autorisierungs- und Authentifizierungstokens für denselben Nutzer gelten, indem du die E-Mail-Anspruche ohne Berücksichtigung der Groß- und Kleinschreibung abgleichst.
    • Wenn das Authentifizierungstoken den optionalen Anspruch google_email enthält, muss er ohne Berücksichtigung der Groß- und Kleinschreibung mit dem E-Mail-Anspruch im Autorisierungstoken verglichen werden. Verwende für diesen Vergleich nicht den E-Mail-Claim im Authentifizierungstoken.
    • In Szenarien, in denen das Authentifizierungstoken den optionalen Anspruch google_email 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, die nicht zwischen Groß- und Kleinschreibung unterscheidet.
    • In Fällen, in denen Google ein Autorisierungstoken für eine E-Mail ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss der email_type-Anspruch vorhanden sein. Dies ist ein wichtiger Bestandteil der Funktion „Gastzugriff“ und liefert wertvolle Informationen für KACLS, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.
      • Beispiele für die Verwendung dieser Informationen durch eine KACLS:
      • Zusätzliche Logginganforderungen festlegen
      • Sie können den Aussteller des Authentifizierungstokens auf einen bestimmten Gast-IdP beschränken.
      • Zusätzliche Ansprüche für das Authentifizierungstoken anfordern
      • Wenn ein Kunde den Gastzugriff nicht konfiguriert hat, können alle Anfragen, bei denen email_type auf google-visitor oder customer-idp gesetzt ist, abgelehnt werden. Anfragen mit einer email_type von google oder mit einer nicht festgelegten email_type sollten weiterhin akzeptiert werden.
    • Prüfen Sie, ob die role-Anforderung im Autorisierungstoken „Leser“ oder „Schreiber“ ist.
    • Prüfen Sie, ob der Anspruch 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 böswilligen Domainadministratoren konfiguriert wurden.
  2. Entschlüsseln Sie die folgenden Teile mit einem authentifizierten Verschlüsselungsalgorithmus:

    • Datenverschlüsselungsschlüssel (Data Encryption Key, DEK)
    • Die Werte resource_name und perimeter_id aus dem Autorisierungstoken
    • Zusätzliche sensible Daten
  3. Prüfen Sie, ob die resource_name im Autorisierungstoken und im entschlüsselten Blob übereinstimmen.

  4. Führen Sie eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsansprüchen durch.

  5. Protokollieren Sie den Vorgang, einschließlich des Nutzers, der ihn initiiert hat, der resource_name und des in der Anfrage angegebenen Grundes.

  6. Gib den entpackten DEK oder eine strukturierte Fehlerantwort zurück.