加密(&A);解密資料

本指南說明如何使用 Google Workspace Client-side Encryption API 加密和解密。

您必須將使用者共用加密檔案時使用的任何識別資訊提供者 (IdP) 服務加入許可清單。通常您可以在其公開發布的 .well-known 檔案中找到必要的 IdP 詳細資料;否則,請與機構的 Google Workspace 管理員聯絡,瞭解對方的 IdP 詳細資料。

加密資料

當 Google Workspace 使用者要求儲存或儲存用戶端加密 (CSE) 資料時,Google Workspace 會傳送 wrap 要求至您的 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 憑證附加資訊是否為「writer」或「升級工具」。
    • 檢查授權權杖中的 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 憑證附加資訊是否為「讀取者」或「寫入者」。
    • 檢查授權權杖中的 kacls_url 憑證附加資訊是否與目前的 KACLS 網址相符。這會偵測內部或惡意網域管理員所設定的中間人伺服器。
  2. 使用經過驗證的加密演算法解密下列部分:

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

  4. 使用驗證和授權憑證附加資訊執行範圍檢查。

  5. 記錄作業,包括產生作業的使用者、resource_name,以及要求中傳遞的原因。

  6. 傳回未包裝的 DEK 或結構化錯誤回覆