本指南說明如何使用 Google Workspace Client-side Encryption API 加密和解密。
您必須將使用者共用加密檔案時使用的任何識別資訊提供者 (IdP) 服務加入許可清單。通常您可以在其公開發布的 .well-known 檔案中找到必要的 IdP 詳細資料;否則,請與機構的 Google Workspace 管理員聯絡,瞭解對方的 IdP 詳細資料。
加密資料
當 Google Workspace 使用者要求儲存或儲存用戶端加密 (CSE) 資料時,Google Workspace 會傳送 wrap
要求至您的 KACLS 端點網址進行加密。除了選擇的安全性檢查 (例如範圍和 JWT 憑證附加檢查) 之外,KACLS 也必須執行下列步驟:
驗證提出要求的使用者。
- 驗證驗證權杖和授權權杖。
- 對同一位使用者的電子郵件憑證附加資訊進行不區分大小寫的比對,藉此確認同一位使用者的授權和驗證權杖。
- 當驗證權杖包含選用的
google_email
憑證附加資訊時,必須以不區分大小寫的方式,與授權權杖中的電子郵件憑證附加資訊進行比較。請勿在驗證憑證中使用電子郵件憑證附加資訊來進行這項比較。 - 如果驗證權杖缺少選用的
google_email
憑證附加資訊,則應使用驗證權杖中的電子郵件憑證附加資訊,與授權權杖中的電子郵件憑證附加資訊進行比對,方法不區分大小寫。 - 如果 Google 為未與 Google 帳戶建立關聯的電子郵件核發授權權杖,則必須提供
email_type
憑證附加資訊。這構成「訪客存取權」功能中非常重要的一環,可以為 KACLS 提供寶貴的資訊,以針對外部使用者強制執行額外的安全措施。- KACLS 運用這項資訊的範例包括:
- 要實行其他記錄要求。
- 將驗證權杖核發者限制為專屬的訪客 IdP。
- 需要對驗證權杖進行其他聲明。
- 如果客戶未設定訪客存取權,則可以拒絕所有將
email_type
設為google-visitor
或customer-idp
的要求。應繼續接受email_type
為google
或未設定email_type
的要求。
- 檢查授權權杖中的
role
憑證附加資訊是否為「writer」或「升級工具」。 - 檢查授權權杖中的
kacls_url
憑證附加資訊是否與目前的 KACLS 網址相符。這項檢查會偵測內部或惡意網域管理員設定的潛在中間伺服器。 - 使用驗證和授權憑證附加資訊執行範圍檢查。
使用經過驗證的加密演算法加密下列部分:
- 資料加密金鑰 (DEK)
- 授權權杖中的
resource_name
和perimeter_id
值 - 任何其他機密資料
記錄作業,包括產生作業的使用者、
resource_name
,以及要求中傳遞的原因。傳回不透明二進位物件,供 Google Workspace 與加密物件一起儲存,並在任何後續的解除包裝作業中,依原樣傳送。或提供結構化錯誤回覆。
- 二進位物件應包含加密 DEK 的唯一副本,實作的特定資料可以儲存在其中。
解密資料
當 Google Workspace 使用者要求開啟用戶端加密 (CSE) 資料時,Google Workspace 會將 unwrap
要求傳送至您的 KACLS 端點網址進行解密。除了選用的安全檢查 (例如範圍和 JWT 憑證附加檢查) 外,KACLS 也必須執行下列步驟:
驗證提出要求的使用者。
- 驗證驗證權杖和授權權杖。
- 對同一位使用者的電子郵件憑證附加資訊進行不區分大小寫的比對,藉此確認同一位使用者的授權和驗證權杖。
- 當驗證權杖包含選用的
google_email
憑證附加資訊時,必須以不區分大小寫的方式,與授權權杖中的電子郵件憑證附加資訊進行比較。請勿在驗證憑證中使用電子郵件憑證附加資訊來進行這項比較。 - 如果驗證權杖缺少選用的
google_email
憑證附加資訊,則應使用驗證權杖中的電子郵件憑證附加資訊,與授權權杖中的電子郵件憑證附加資訊進行比對,方法不區分大小寫。 - 如果 Google 為未與 Google 帳戶建立關聯的電子郵件核發授權權杖,則必須提供
email_type
憑證附加資訊。這構成「訪客存取權」功能中非常重要的一環,可以為 KACLS 提供寶貴的資訊,以針對外部使用者強制執行額外的安全措施。- KACLS 運用這項資訊的範例包括:
- 要實行其他記錄要求。
- 將驗證權杖核發者限制為專屬的訪客 IdP。
- 需要對驗證權杖進行其他聲明。
- 如果客戶未設定訪客存取權,則可以拒絕所有將
email_type
設為google-visitor
或customer-idp
的要求。應繼續接受email_type
為google
或未設定email_type
的要求。
- 檢查授權權杖中的
role
憑證附加資訊是否為「讀取者」或「寫入者」。 - 檢查授權權杖中的
kacls_url
憑證附加資訊是否與目前的 KACLS 網址相符。這會偵測內部或惡意網域管理員所設定的中間人伺服器。
使用經過驗證的加密演算法解密下列部分:
- 資料加密金鑰 (DEK)
- 授權權杖中的
resource_name
和perimeter_id
值 - 任何其他機密資料
檢查授權權杖與解密 blob 中的
resource_name
是否相符。使用驗證和授權憑證附加資訊執行範圍檢查。
記錄作業,包括產生作業的使用者、
resource_name
,以及要求中傳遞的原因。傳回未包裝的 DEK 或結構化錯誤回覆。