加密概念
高階流程
你可控制雲端環境中的 主金鑰,OpenAI 絕不會看到
你的主金鑰會用於加密 OpenAI 所使用的 資料加密金鑰 (DEK)
OpenAI 使用 DEK 對你的待用資料加密。DEK 會由你的主金鑰加密,產生 eDEK (encrypted DEK),並與你的資料一同儲存
若要讀取資料,OpenAI 會取得 eDEK,要求你的 KMS 將其解密為 DEK,然後再解密你的資料
EKM 加密如何運作?
請參閱我們的文章瞭解詳情:OpenAI 企業金鑰管理 (EKM) 概覽
OpenAI 是否會儲存我的 DEK?
否 - 我們儲存的是加密的 DEK (eDEK),這些金鑰由你的 KMS 產生。若要解密資料,我們會要求你的 KMS 將 eDEK 解密還原為 DEK。
OpenAI 是否會快取我的 DEK?
是,僅限於記憶體中。這是為了提升效能,避免每次資料加密/解密要求都存取你的 KMS。DEK 絕不會寫入儲存空間。
雲端權限
OpenAI 對我的 KMS 會有哪些權限?
僅限你透過所設定之原則授予我們的權限。我們只需至少執行加密/解密作業。請另外在你的雲端 KMS 中為 OpenAI 建立一個新金鑰,不要重複使用任何現有、用於正式環境的金鑰。
OpenAI 何時會取得我的 KMS 存取權限?
這些步驟都必須完成:1. 你已辨識 OpenAI 的身分 (透過信任原則、工作負載身分等,具體方式取決於雲端供應商),2. 你已建立可存取 KMS 的原則,3. 你已將存取該原則的權限指派給 OpenAI 的身分。如果你只是建立 KMS,而沒有完成上述所有步驟,OpenAI 將無法存取。
我是否必須將主金鑰儲存在雲端?
否,如何管理你的主金鑰由你自行決定。你可以選擇雲端管理型解決方案,或是將金鑰另外儲存的外部解決方案。OpenAI 只需要在您的 KMS 上呼叫加密/解密作業 - 主金鑰實際上如何執行加密/解密是我們不清楚的實作細節。
金鑰生命週期
DEK/eDEK 輪替 (由 OpenAI 控制)
DEKs/eDEKs 多久輪替一次?
每 24 小時於加密路徑上 (要求 DEK/eDEK 金鑰配對)
每 1 小時一次,用於解密金鑰路徑 (DEK 至 eDEK)
DEK 變更時,我是否需要採取任何行動?
否,DEK/eDEK 輪替是在 OpenAI 內部完成的。只要你的主金鑰仍然有效,任何由你的主金鑰加密的 eDEK 仍可解密為 DEK,再用來解密你的資料。
主金鑰輪替與撤銷 (由你控制)
金鑰輪替和金鑰撤銷多久會發生一次?
這是由你決定的,因為 OpenAI 無法查看你的主金鑰。
金鑰輪替與金鑰撤銷之間有什麼差異?
金鑰撤銷會移除使用舊金鑰加密的資料存取權限。金鑰輪替會使用新的金鑰加密資料,但仍保留對舊資料的讀取權限。
如果你撤銷主金鑰,會發生什麼事?
如果金鑰遭撤銷或權限遭移除,一旦快取的金鑰過期,工作區最終將無法正常運作。屆時,OpenAI 將無法再解密已儲存的資料,也無法為新資料加密。實際上,資料被「切碎」了。
撤銷多快會生效?
OpenAI 會將 DEK 快取於記憶體中,以提升效能與韌性。一旦快取金鑰到期且重新驗證失敗,撤銷通常會在一小時內生效。
是否能安全地測試撤銷作業?
不建議在正式工作區測試撤銷,因為這會導致現有資料永久無法存取。然而,客戶可以 (而且應該) 在沙箱環境中測試撤銷,以驗證其行為是否正確,並驗證其信任假設。
如果金鑰已永久撤銷,是否可透過附加新的金鑰來復原工作區?
否。一旦金鑰遺失,資料將無法復原,這是系統設計的本意。唯一的補救方法就是建立新的工作區。
如果工作區因金鑰變更而變得無法存取,該怎麼辦?
預期的補救措施是建立新的工作區。更新 KMS 將無法復原現有資料。
如果我們決定停用 CMEK,備選方案是什麼?
目前沒有備選方案。工作區一旦以 CMEK 建立,所有相關資料都會使用由客戶管理的加密金鑰進行加密,沒有金鑰便無法存取。停止使用 CMEK 的唯一方式是建立新的工作區—現有的加密資料將永久無法存取。
當我輪替主金鑰時,會發生什麼事?
系統會產生新的密碼編譯材料用於加密,因此後續新的加密要求將使用新的金鑰。不過,KMS 識別碼 (ARN 或金鑰名稱) 仍維持不變,而且舊資料仍可解密。許多雲端供應商都提供自動金鑰輪替 (AWS、GCP、Azure)。
當我輪替主金鑰時,OpenAI 是否會將較舊的資料重新加密?
否。新的密碼編譯材料只會用於加密新的資料。
金鑰輪替或撤銷需要多久才會生效?
1 小時。這是因為 DEK/eDEK 會快取於記憶體中,而我們每小時會透過你的 KMS 重新驗證這些項目。
切換 KMS 識別碼
將 KMS 識別碼切換為其他值是金鑰撤銷還是金鑰輪替?
金鑰撤銷。一把金鑰無法解密由另一把金鑰加密的資料。
OpenAI 是否可以協助我切換 ChatGPT 工作區的 KMS 識別碼?
如果你確認目的是撤銷金鑰,我們可以協助你在 ChatGPT 工作區執行此操作。請注意,KMS ARN 更新後,較舊的資料仍將無法存取,因此變更後,資料將同時包含可存取與無法存取的部分。
OpenAI 是否可以幫我切換 API 專案的 KMS 識別碼?
如果你使用的是 API,API 可讓你輕鬆封存並建立新專案,因此請改為封存反正其資料無法存取的專案,向 OpenAI 註冊新的 EKM 設定,並使用新的 KMS 金鑰建立新的 API 專案。
如果你想自行定期切換 KMS 識別碼,該怎麼辦?
不建議這麼做,因為你可能不會想要定期撤銷你的金鑰。然而,如果你使用支援 KMS 金鑰別名的雲端供應商 (AWS 範例),你仍然可以這麼做。你可以向 OpenAI 註冊該 KMS 金鑰別名,然後在你的雲端供應商端隨時替換該別名所指向的底層 KMS 識別碼,以執行金鑰撤銷。
測試版與正式版行為
在正式環境中使用加密測試版時,是否有任何已知風險或系統層面的變更?
測試版環境在功能上等同於正式版,預計不需要任何移轉步驟。主要風險是,某些邊緣案例功能可能因為程式碼路徑不完整,而尚未支援加密內容。這些情況很罕見,且正積極處理中。資料皆經完整加密並受到保護,不受這些潛在問題影響。
從測試版升級到正式版是否會有任何移轉步驟?
否。使用加密測試版的工作區在正式版推出後將自動獲得支援,無需使用者採取任何動作。
其他技術詳細資料
信封式加密與權限
我們是否需要為 EKM 授予 OpenAI GenerateDataKey 權限?
否。OpenAI 只需要你的 KMS 金鑰具有加密和解密權限。EKM 整合不需要 GenerateDataKey 權限。
OpenAI 是否會對客戶資料使用信封式加密?
是。OpenAI 使用信封式加密模型:
客戶 KMS:管理金鑰加密金鑰 (KEK)。OpenAI 絕不會查看或儲存 KEK。
OpenAI 基礎架構:產生並管理資料加密金鑰 (DEK)。每個 DEK 都會先使用你的 KEK 加密 (封裝) 後再儲存。
資料流程:
客戶資料使用資料加密金鑰 (DEK) 加密。
該 DEK 會使用你的 KEK 進行加密,產生 eDEK。
eDEK 與加密資料一同儲存。
若要解密資料,OpenAI 會要求你的 KMS 解密 eDEK、擷取 DEK,並解密內容。
OpenAI 為何選擇這個模型,而非讓 KMS 同時管理 KEK 和 DEK?
有兩種常見的信封式加密方法:
由 KMS 管理的密鑰加密密鑰 (KEK) 和資料加密密鑰 (DEK):
優點:實作較簡單,無需維護加密基礎架構。
缺點:每次加密/解密要求都會呼叫 KMS,增加延遲與成本,並引入單點故障。
由 KMS 管理的 KEK / 由 OpenAI 管理的 DEK (我們的方法):
優點:延遲與成本顯著降低、具備更佳的可擴充性與可靠性,且即使在 KMS 發生部分中斷時仍可持續運作 (最長可達 DEK 快取 TTL 所設定的時間)。
缺點:對 OpenAI 而言,實作稍微更複雜。
此設計可讓 OpenAI 在提供強大安全保障的同時,將客戶的營運風險與成本降至最低。
DEK 多久輪替一次?
每個 DEK 大約每 60 分鐘輪替一次。這可提供時間隔離,即使 DEK 以某種方式遭到洩露,影響也只會限於該一小時內加密的資料。
KMS 要求量 & 可觀測性
我們看到的 KMS 要求數量遠少於使用者訊息的數量。這些數字是否應該一致?
否,不會直接相關。
由於 OpenAI 基於效能考量會將 DEK 快取於記憶體中,因此只有在需要解密 DEK 時才會進行 KMS 呼叫,而不是每次加密或解密作業都會呼叫 KMS。因此,你應該會看到:
KMS 要求少於使用者互動次數。
偶爾出現尖峰,發生於已快取的 DEK 到期時 (約每小時一次),或需要存取較舊的加密資料時。
在擷取歷史資料時,例如使用者繼續長時間對話且必須載入較舊的 DEK 時,會有額外的要求。
KMS 要求的確切數量取決於快取狀態、使用者行為、資料存取模式和對話長度,因此不會與訊息量直接相關。
