加密(&A);解密資料

本指南說明如何使用 Google Workspace 用戶端加密 API 進行加密和解密作業。

您必須將共用加密檔案的使用者使用的任何 Identity Provider (IdP) 服務加入許可清單。一般來說,您可以在相應的公開 .well-known 檔案中找到必要的 IdP 詳細資料;如果找不到,請與該機構的 Google Workspace 管理員聯絡,瞭解對方的 IdP 詳細資料。

加密資料

當 Google Workspace 使用者要求儲存或儲存用戶端加密 (CSE) 資料時,Google Workspace 會向您的 KACLS 端點網址傳送 wrap 要求,以便加密資料。除了選用的安全性檢查 (例如邊界和 JWT 宣告檢查) 之外,KACLS 還必須執行下列步驟:

  1. 驗證要求使用者。

    • 驗證驗證權杖授權權杖
    • 針對電子郵件要求,執行大小寫不敏感比對,確認授權和驗證權杖是否適用於同一使用者。
    • 如果驗證權杖包含選用的 google_email 要求,則必須使用不區分大小寫的方式,與授權權杖中的電子郵件要求進行比較。請勿在驗證權杖中使用電子郵件要求進行比較。
    • 如果驗證權杖缺少選用的 google_email 要求,則應使用不區分大小寫的方法,將驗證權杖中的電子郵件要求與授權權杖中的電子郵件要求進行比較。
    • 如果 Google 為未與 Google 帳戶建立關聯的電子郵件地址發出授權權杖,則必須提供 email_type 要求。這是「訪客存取」功能的重要部分,可為 KACLS 提供寶貴資訊,讓系統對外部使用者強制執行額外安全措施。
      • 以下列舉幾個例子說明 KACLS 可以如何使用這類資訊:
      • 強制執行其他記錄要求。
      • 將驗證權杖核發者限制為專屬的訪客 IdP。
      • 要求驗證權杖提供額外的要求。
      • 如果客戶未設定訪客存取權,則系統可拒絕所有 email_type 設為 google-visitorcustomer-idp 的要求。系統應繼續接受 email_typegoogle 或未設定 email_type 的要求。
    • 檢查授權權杖中的 role 宣告是否為「writer」或「upgrader」。
    • 請確認授權權杖中的 kacls_url 聲明與目前的 KACLS 網址相符。這項檢查可偵測由內部人士或不當網域管理員設定的潛在中間人伺服器。
    • 使用驗證和授權宣告執行邊界檢查。
  2. 使用經過驗證的加密演算法加密下列部分:

    • 資料加密金鑰 (DEK)
    • 授權權杖中的 resource_nameperimeter_id
    • 任何其他機密資料
  3. 記錄作業,包括發出作業的使用者、resource_name 和要求中傳遞的原因。

  4. 傳回不透明的二進位物件,供 Google Workspace 與加密物件一併儲存,並在後續任何金鑰展開作業中原封不動地傳送。或者,您也可以提供結構化錯誤回應

    • 二進位檔物件應包含已加密 DEK 的唯一副本,且可儲存實作專屬資料。

解密資料

當 Google Workspace 使用者要求開啟用戶端加密 (CSE) 資料時,Google Workspace 會傳送 unwrap 要求至您的 KACLS 端點網址,以便解密。除了選用的安全性檢查 (例如邊界和 JWT 聲明檢查) 之外,KACLS 還必須執行下列步驟:

  1. 驗證提出要求的使用者。

    • 驗證驗證權杖授權權杖
    • 針對電子郵件要求,執行大小寫不敏感比對,確認授權和驗證權杖是否適用於同一使用者。
    • 如果驗證權杖包含選用的 google_email 要求,則必須使用不區分大小寫的方式,與授權權杖中的電子郵件要求進行比較。請勿在驗證權杖中使用電子郵件要求進行比較。
    • 如果驗證權杖缺少選用的 google_email 要求,則應使用不區分大小寫的方法,將驗證權杖中的電子郵件要求與授權權杖中的電子郵件要求進行比較。
    • 如果 Google 為未與 Google 帳戶建立關聯的電子郵件地址發出授權權杖,則必須提供 email_type 要求。這是「訪客存取」功能的重要部分,可為 KACLS 提供寶貴資訊,讓系統對外部使用者強制執行額外安全措施。
      • 以下列舉幾個例子說明 KACLS 可以如何使用這類資訊:
      • 強制執行其他記錄要求。
      • 將驗證權杖核發者限制為專屬的訪客 IdP。
      • 要求驗證權杖提供額外的要求。
      • 如果客戶未設定訪客存取權,則系統可拒絕所有 email_type 設為 google-visitorcustomer-idp 的要求。系統應繼續接受 email_typegoogle 或未設定 email_type 的要求。
    • 檢查授權權杖中的 role 宣告是否為「reader」或「writer」。
    • 請確認授權權杖中的 kacls_url 聲明是否與目前的 KACLS 網址相符。這可偵測由內部人員或不當網域管理員設定的潛在中間人伺服器。
  2. 使用經過驗證的加密演算法解密下列部分:

    • 資料加密金鑰 (DEK)
    • 授權權杖中的 resource_nameperimeter_id
    • 任何其他機密資料
  3. 檢查授權權杖和解密 Blob 中的 resource_name 是否相符。

  4. 使用驗證和授權宣告執行邊界檢查。

  5. 記錄作業,包括發出作業的使用者、resource_name 和要求中傳遞的原因。

  6. 傳回已解開包裝的 DEK 或結構化錯誤回覆