AWS 資料庫加密 SDK 中支援的演算法套件 - AWS 資料庫加密 SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS 資料庫加密 SDK 中支援的演算法套件

我們的用戶端加密程式庫已重新命名為 AWS 資料庫加密 SDK。本開發人員指南仍提供 DynamoDB 加密用戶端的相關資訊。

演算法套件是加密演算法與相關數值的集合。密碼編譯系統使用演算法實作來產生加密文字訊息。

資 AWS 料庫加密 SDK 使用演算法套件來加密和簽署資料庫中的欄位。資 AWS 料庫加密 SDK 支援兩個演算法套件。所有支援的套件都使用進階加密標準 (AES) 做為主要演算法,並將它與其他演算法和值結合。

資 AWS 料庫加密 SDK 演算法套件在 Galo/ 計數器模式 (GCM) 中使用進階加密標準 (AES) 演算法來加密原始資料。資 AWS 料庫加密 SDK 支援 256 位元加密金鑰。驗證標籤的長度一律是 16 個位元組。

默認情況下, AWS 數據庫加密 SDK 使用帶有 AES-GCM 的算法套件,具有基於 HMAC 的密 extract-and-expand 鑰派生功能(HKDF),密鑰承諾,對稱和非對稱簽名以及 256 位加密密鑰。

數據 AWS 庫加密 SDK 使用算法套件,該算法套件通過向基於 HMAC extract-and-expand 的密鑰派生功能(HKDF)提供 256 位數據加密密鑰來導出 AES-GCM 數據密鑰。它也會衍生資料金鑰的 MAC 金鑰。資料 AWS 庫加密 SDK 使用此資料金鑰衍生唯一的資料加密金鑰,以加密每個欄位。然後,資料 AWS 庫加密 SDK 會使用 MAC 金鑰來計算資料金鑰的每個加密副本的雜湊型訊息驗證碼 (HMAC),並將橢圓曲線數位簽章演算法 (ECDSA) 新增至記錄。此演算法套件也會衍生一個關鍵承諾 — HMAC,可將資料金鑰與記錄相關聯。主要承諾值是根據材料描述和承諾密鑰計算的 HMAC,該密鑰是通過 HKDF 使用類似於導出數據加密密鑰的程序獲得的。然後,關鍵承諾值會儲存在材料描述中。

加密演算法 資料加密金鑰長度 (以位元為單位) 对称签名算法 非对称签名算法 主要承諾
AES-G 厘米 256 哈馬克-沙 -384 ECDSA 超過 384 香港文憑基金與 SHA-512

該算法套件序列化材料描述和標記的所有字段 ENCRYPT_AND_SIGNSIGN_ONLY,並SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT加密操作中,然後使用 HMAC 與加密哈希函數算法(SHA-512)簽名規範化。然後它計算一個 ECDSA 數字簽名。HMAC 和 ECDSA 簽章會儲存在 AWS 資料庫加密 SDK 新增至記錄的新欄位 (aws_dbe_foot) 中。當授權原則允許一組使用者加密資料,而另一組使用者解密資料時,數位簽章特別有用。

關鍵承諾確保每個密文解密只能解密為一個純文本。他們通過驗證用作加密算法輸入的數據密鑰來實現這一點。加密時,這些演算法套件會衍生金鑰承諾 HMAC。在解密之前,他們會驗證資料金鑰產生相同的金鑰承諾 HMAC。如果沒有,解密呼叫就會失敗。

不含數位簽章的 AES-GCM

雖然預設演算法套件可能適用於大多數應用程式,但您可以選擇替代演算法套件。例如,某些信任模型會由沒有數位簽章的演算法套件來滿足。僅當加密資料的使用者和解密資料的使用者受到同等信任時,才使用此套件。

所有 AWS 資料庫加密 SDK 演算法套件都支援 HMAC-SHA-384 對稱簽章。唯一的區別是,沒有數位簽章的 AES-GCM 演算法套件缺少 ECDSA 簽章,可提供額外的真實性和不可否認性層。

例如,如果您的金鑰圈、、和中有多個包裝金鑰 wrappingKeyA wrappingKeyBwrappingKeyC,而您使用解密記錄wrappingKeyA,則 HMAC-SHA-384 對稱簽章會驗證記錄是否已由具有存取權的使用者加密。wrappingKeyA如果您使用預設演算法,HMAC 會提供相同的驗證wrappingKeyA,並且另外使用 ECDSA 簽章來確保記錄是由具有的加密權限的使用者加密。wrappingKeyA

若要選取不含數位簽章的 AES-GCM 演算法套件,請在加密組態中指定