Daten verschlüsseln und entschlüsseln

In diesem Leitfaden wird beschrieben, wie die Verschlüsselung und Entschlüsselung mithilfe der Google Workspace Client-side Encryption API funktioniert.

Sie müssen alle IdP-Dienste (Identitätsanbieter) 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. Alternativ können Sie sich an den Google Workspace-Administrator der Organisation wenden, um die IdP-Details zu erhalten.

Daten verschlüsseln

Wenn ein Google Workspace-Nutzer das Speichern oder Speichern von clientseitig verschlüsselten Daten (CSE) anfordert, sendet Google Workspace eine wrap-Anfrage zur Verschlüsselung an Ihre KACLS-Endpunkt-URL. Zusätzlich zu optionalen Sicherheitsprüfungen, wie z. B. auf Perimeter- und JWT-Anforderungen basierende Prüfungen, müssen Ihre KACLS die folgenden Schritte ausführen:

  1. Validiert den anfragenden Nutzer.

    • Prüfen Sie sowohl das Authentifizierungstoken als auch das Autorisierungstoken.
    • Prüfen Sie, ob Autorisierungs- und Authentifizierungstokens für denselben Nutzer gelten, indem Sie bei den E-Mail-Anforderungen eine Zuordnung durchführen, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird.
    • Wenn das Authentifizierungstoken die optionale Anforderung google_email enthält, muss es mit der E-Mail-Anforderung im Autorisierungstoken verglichen werden. Die Groß-/Kleinschreibung wird dabei nicht berücksichtigt. Verwenden Sie für diesen Vergleich nicht die E-Mail-Anforderung im Authentifizierungstoken.
    • In Szenarien, in denen dem Authentifizierungstoken die optionale Anforderung google_email fehlt, sollte die E-Mail-Anforderung innerhalb des Authentifizierungstokens mit der E-Mail-Anforderung im Autorisierungstoken verglichen werden. Dabei wird die Groß-/Kleinschreibung nicht berücksichtigt.
    • In Szenarien, in denen Google ein Autorisierungstoken für eine E-Mail-Adresse ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss die email_type-Anforderung vorhanden sein. Dies ist ein wichtiger Bestandteil des Gastzugriffs und bietet KACLS wertvolle Informationen, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.
      • Beispiele dafür, wie ein KACLS diese Informationen verwenden kann:
      • Um zusätzliche Logging-Anforderungen zu erzwingen.
      • Den Aussteller des Authentifizierungstokens auf einen dedizierten Gast-IdP beschränken
      • Sie können zusätzliche Anforderungen für das Authentifizierungstoken anfordern.
      • Wenn ein Kunde den Gastzugriff nicht konfiguriert hat, können alle Anfragen abgelehnt werden, bei denen email_type auf google-visitor oder customer-idp gesetzt ist. Anfragen mit einem email_type von google oder mit einem 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 die kacls_url-Anforderung im Autorisierungstoken mit der aktuellen KACLS-URL übereinstimmt. Diese Prüfung ermöglicht die Erkennung potenzieller Man-in-the-Middle-Server, die von Insidern oder böswilligen Domainadministratoren konfiguriert wurden.
    • Führen Sie eine Perimeterprüfung mit Authentifizierungs- und Autorisierungsanforderungen 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, von dem er stammt, dem resource_name und dem Grund, der in der Anfrage übergeben wurde.

  4. Ein intransparentes binäres Objekt zurückgeben, das von Google Workspace zusammen mit dem verschlüsselten Objekt gespeichert und bei jedem nachfolgenden Schlüsselentpackungsvorgang unverändert gesendet wird. Alternativ können Sie auch eine strukturierte Fehlerantwort senden.

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

Daten entschlüsseln

Wenn ein Google Workspace-Nutzer das Öffnen von clientseitig verschlüsselten Daten anfordert, sendet Google Workspace eine unwrap-Anfrage zur Entschlüsselung an Ihre KACLS-Endpunkt-URL. Zusätzlich zu optionalen Sicherheitsprüfungen, wie z. B. auf Perimeter- und JWT-Anforderungen basierende Prüfungen, müssen Ihre KACLS die folgenden Schritte ausführen:

  1. Validiert den anfragenden Nutzer.

    • Prüfen Sie sowohl das Authentifizierungstoken als auch das Autorisierungstoken.
    • Prüfen Sie, ob Autorisierungs- und Authentifizierungstokens für denselben Nutzer gelten, indem Sie bei den E-Mail-Anforderungen eine Zuordnung durchführen, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird.
    • Wenn das Authentifizierungstoken die optionale Anforderung google_email enthält, muss es mit der E-Mail-Anforderung im Autorisierungstoken verglichen werden. Die Groß-/Kleinschreibung wird dabei nicht berücksichtigt. Verwenden Sie für diesen Vergleich nicht die E-Mail-Anforderung im Authentifizierungstoken.
    • In Szenarien, in denen dem Authentifizierungstoken die optionale Anforderung google_email fehlt, sollte die E-Mail-Anforderung innerhalb des Authentifizierungstokens mit der E-Mail-Anforderung im Autorisierungstoken verglichen werden. Dabei wird die Groß-/Kleinschreibung nicht berücksichtigt.
    • In Szenarien, in denen Google ein Autorisierungstoken für eine E-Mail-Adresse ausstellt, die nicht mit einem Google-Konto verknüpft ist, muss die email_type-Anforderung vorhanden sein. Dies ist ein wichtiger Bestandteil des Gastzugriffs und bietet KACLS wertvolle Informationen, um zusätzliche Sicherheitsmaßnahmen für externe Nutzer zu erzwingen.
      • Beispiele dafür, wie ein KACLS diese Informationen verwenden kann:
      • Um zusätzliche Logging-Anforderungen zu erzwingen.
      • Den Aussteller des Authentifizierungstokens auf einen dedizierten Gast-IdP beschränken
      • Sie können zusätzliche Anforderungen für das Authentifizierungstoken anfordern.
      • Wenn ein Kunde den Gastzugriff nicht konfiguriert hat, können alle Anfragen abgelehnt werden, bei denen email_type auf google-visitor oder customer-idp gesetzt ist. Anfragen mit einem email_type von google oder mit einem nicht festgelegten email_type sollten weiterhin akzeptiert werden.
    • Prüfen Sie, ob die role-Anforderung im Autorisierungstoken „reader“ oder „writer“ ist.
    • Prüfen Sie, ob die kacls_url-Anforderung im Autorisierungstoken mit der aktuellen KACLS-URL übereinstimmt. Dadurch 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 resource_name im Autorisierungstoken und dem entschlüsselten Blob übereinstimmt.

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

  5. Protokollieren Sie den Vorgang, einschließlich des Nutzers, von dem er stammt, dem resource_name und dem Grund, der in der Anfrage übergeben wurde.

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