KMS 加密解密

2022-08-05 00:09:21 字數 2660 閱讀 5707

kms 加密解密

2019/07/04 chenxin

參考: (pdf在磁碟裡).

(api,sdk參考)

(boto3參考)

術語和概念

kmskey management service (aws kms)

cmkcustomer master key 客戶主金鑰 (cmk).通過kms來管理你的cmk.aws 賬戶中有三種型別的 cmk:客戶託管 cmk(我們需要用的)、aws 託管 cmk(使用者可見,但不可管理.aws一些服務自帶的) 和 aws 擁有的 cmk(使用者不可見的)。

信封加密

(對明文金鑰1次或多次進行加密)aws kms 中的主要資源是客戶主金鑰 (cmk)。可以使用 cmk 加密和解密最多 4 kb(4096 位元組)的資料。通常情況下,您可以使用 cmk 生成/加密/解密 資料金鑰,您在 aws kms 之外使用這些金鑰來加密您的資料。此策略稱為信封加密。

信封加密 是一種加密方法,它使用 資料金鑰 對 玩家明文資料 進行加密,然後使用 其他金鑰 對 該明文資料金鑰 再進行加密。

您也可以使用 其他加密金鑰 對 資料加密金鑰 進行再加密,並且在 另乙個加密金鑰下 加密 此加密金鑰。但是,最後,乙個金鑰一定會以明文形式保留,以便您可以 解密金鑰和資料。此頂層明文金鑰(加密金鑰)稱為主金鑰cmk。

aws kms 可通過安全地 儲存和管理 主金鑰 來幫助您保護它們。儲存在 kms 中的 主金鑰(稱為客戶主金鑰(cmk))絕不會讓 aws kms 經 fips 驗證的硬體安全模組 處於不加密狀態。要使用 cmk,您必須呼叫 kms。

信封加密可提供以下多種優勢:

資料金鑰

資料金鑰 是可用於加密資料的加密金鑰,包括 大量資料 和 其他資料 加密金鑰 。

您可以使用 aws kms 客戶主金鑰 (cmk) 生成、加密和解密 資料金鑰。aws kms 不會儲存、管理或跟蹤您的資料金鑰,也不會使用資料金鑰執行加密操作。您必須在 aws kms 之外使用和管理資料金鑰。

建立資料金鑰

要建立資料金鑰,請呼叫 generatedatakey 操作。aws kms 使用您指定的 cmk 來生成資料金鑰。

此操作會返回 資料金鑰的明文副本 和 借助cmk加密的資料金鑰的副本 .

kms 利用 cmk ->通過 encryption algorithm (加密演算法) -> 資料金鑰的明文副本+資料金鑰的密文副本(可以再通過kms來解密得到明文的).

使用資料金鑰加密資料

aws kms 無法使用資料金鑰來加密資料,但您可以在 kms 之外使用資料金鑰,例如使用 openssl 或 aws 加密 sdk 等加密庫。也就是使用者用kms的cmk來加密使用者的 資料金鑰(可以是密文金鑰或明文金鑰,密文金鑰可以通過kms解密獲得明文金鑰).使用者通過使用者的資料金鑰(明文)來加密自己的資料.

使用者在使用明文資料金鑰加密資料後,請盡快從記憶體中將其刪除。以防被黑客獲取.

您可以在s3上安全地儲存加密資料金鑰(必須通過kms的cmk才能解密)及加密資料(必須通過使用者金鑰才能解密),以便其可根據需要用於解密資料。

使用資料金鑰解密資料

要解密資料(玩家資料),請將 加密資料金鑰 傳遞至 decrypt 操作。aws kms 使用您的 cmk 解密資料金鑰,然後該函式返回純文字資料金鑰。

然後,使用 明文資料金鑰 解密資料(並盡快從記憶體中刪除該明文資料金鑰).

kmi加密術的主要問題之一是很難保持金鑰的私密性。這通常是金鑰管理基礎設施 (kmi) 的工作。aws kms 可為您操作 kmi。aws kms 會建立並安全地儲存稱為 cmk 的主金鑰。

建立cmk

控制台操作(步驟略)

以下是策略檢視,在控制台上可以切換到影象檢視(更直觀).

,"action": "kms:",

"resource": ""},,

"action": [

"kms:create",

"kms:describe",

"kms:enable",

"kms:list",

"kms:put",

"kms:update",

"kms:revoke",

"kms:disable",

"kms:get",

"kms:delete",

"kms:tagresource",

"kms:untagresource",

"kms:schedulekeydeletion",

"kms:cancelkeydeletion"

],"resource": ""},,

"action": [

"kms:encrypt",

"kms:decrypt",

"kms:reencrypt",

"kms:generatedatakey",

"kms:describekey"

],"resource": ""},,

"action": [

"kms:creategrant",

"kms:listgrants",

"kms:revokegrant"

],"resource": "*",

"condition": }}

]}cmk的訪問

cmk的訪問不同於訪問aws其他服務(其他服務只需要iam授權即可).cmk必須要有金鑰策略.(另外,還可以選擇結合iam.)

金鑰策略,就是上面的那個json檔案.

KMS信封加密

www.iloveaws.cn 今天的課程內容信封加密,是kms部分比較重要的內容。我們開始今天的課程內容。我們先看下什麼是信封加密。信封加密是類似數字信封技術的一種加密手段。這種技術將加密資料的資料金鑰封入信封中儲存 傳遞 和使用,不再使用主金鑰直接加解密資料。也就是說,信封加密使用客戶主金鑰生成...

des vue 加密解密 DES加密 解密

外掛程式描述 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法簡介 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法的入口引數有三個 key data mode。其中k...

加密生成指定長度 KMS信封加密

今天的課程內容信封加密,是kms部分比較重要的內容。我們開始今天的課程內容。我們先看下什麼是信封加密。信封加密是類似數字信封技術的一種加密手段。這種技術將加密資料的資料金鑰封入信封中儲存 傳遞 和使用,不再使用主金鑰直接加解密資料。也就是說,信封加密使用客戶主金鑰生成資料金鑰,然後用離線的資料金鑰在...