本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
密碼編譯基本元素
AWS KMS 使用可設定的密碼編譯演算法,讓系統可以快速地從一個核准的演算法或模式遷移到另一個演算法。針對安全屬性和效能,已從聯邦資訊處理標準 (經 FIPS 核准) 演算法中選取初始預設的密碼編譯演算法集。
熵和隨機數字產生
AWS KMS 金鑰產生是在 AWS KMS HSMs上執行。HSM 會實作混合式隨機數字產生器,其使用採用 AES-256 的 NIST SP800-90A 決定性隨機位元產生器
對稱金鑰操作 (僅限加密)
HSM 中使用的所有對稱金鑰加密命令都會使用進階加密標準 (AES)
AES-GCM 是經過驗證的加密配置。除了加密純文字以產生加密文字,它還會針對加密文字和需要身分驗證的任何其他資料 (另外驗證的資料或 AAD) 運算身分驗證標籤。身分驗證標籤有助於確保資料來自所宣稱的來源,而且加密文字和 AAD 尚未修改。
通常, AWS 會省略在我們的描述中包含 AAD,特別是在參考資料金鑰加密時。這些情況下的周圍文字會暗示,在要加密純文字和要保護純文字 AAD 之間會進行分區的要加密結構。
AWS KMS 提供選項,可讓您將金鑰材料匯入 , AWS KMS key 而不是依賴 AWS KMS 產生金鑰材料。此匯入的金鑰材料可以使用 RSAES-OAEP
非對稱金鑰操作 (加密、數位簽章和簽章驗證)
AWS KMS 支援在加密和數位簽章操作中使用非對稱金鑰操作。非對稱金鑰操作依賴於數學相關的公有金鑰和私有金鑰對,可用於加密和解密或簽署和簽章驗證,但不能同時用於兩者。私有金鑰永遠不會 AWS KMS 保持未加密。您可以透過呼叫 AWS KMS API 操作來使用 中的公 AWS KMS 有金鑰,或下載公有金鑰並在外部使用 AWS KMS。
AWS KMS 支援兩種類型的非對稱密碼。
-
RSA-OAEP (用於加密) 與 RSA-PSS 和 RSA-PKCS-#1-v1_5 (用於簽署和驗證) – 針對不同的安全要求,支援 RSA 金鑰長度 (以位元為單位):2048、3072 和 4096。
-
橢圓曲線 (ECC) – 專用於簽署和驗證。支援 ECC 曲線:NIST P256、P384、SECP 256k1。
金鑰衍生函數
密鑰衍生函數用於從初始機密或金鑰衍生額外的金鑰。 AWS KMS 使用金鑰衍生函數 (KDF) 來衍生 AWS KMS key下每次加密的每個呼叫金鑰。所有 KDF 操作均會使用 計數器模式中的 KDF
AWS KMS 數位簽章的內部使用
數位簽章也可用來對命令和 AWS KMS
實體之間的通訊進行身分驗證。所有服務實體都有橢圓曲線數位簽章演算法 (ECDSA) 金鑰對。其執行密碼編譯訊息語法 (CMS) 中橢圓曲線密碼編譯 (ECC) 演算法的使用
封套加密
在許多密碼編譯系統中使用的基本結構是信封加密。信封加密使用兩個或多個密碼編譯金鑰來保護訊息。通常,一個金鑰是從較長期的靜態金鑰 k,另一個金鑰是每條訊息金鑰 msgKey (這是為了加密訊息而產生的)。信封是透過加密訊息:ciphertext = Encrypt(msgKey, message) 形成的。然後訊息金鑰使用長期靜態金鑰:encKey = Encrypt(k, msgKey) 進行加密。最後,將這兩個值 (encKey, ciphertext) 封裝成單一結構或信封加密訊息。
收件人 (可存取 k) 可以先解密加密的金鑰,然後解密訊息,以開啟封住的訊息。
AWS KMS 提供管理這些長期靜態金鑰的能力,並自動化資料信封加密的程序。
除了 AWS KMS 服務內提供的加密功能之外,AWS Encryption SDK 還提供用戶端信封加密程式庫。您可以使用這些程式庫來保護您的資料和用來加密該資料的加密金鑰。