全部產品
Search
文件中心

Key Management Service:非對稱金鑰概述

更新時間:Jul 06, 2024

相比對稱式加密,非對稱金鑰通常用於在信任程度不對等的系統之間,實現數位簽章驗簽或者加密傳遞敏感資訊。

非對稱金鑰由一對公開金鑰和私密金鑰組成,他們在密碼學上互相關聯,其中的公開金鑰可以被分發給任何人,而私密金鑰必須被安全的保護起來,只有受信任者可以使用。阿里雲支援主流的非對稱金鑰演算法並且提供足夠的安全強度,保證資料加密和數位簽章的安全性。

KMS支援對非對稱金鑰類型的使用者主要金鑰產生認證簽章要求CSR(Certificate Signing Request)檔案,認證申請者提交CSR給憑證授權單位後,憑證授權單位使用其CA私密金鑰為使用者簽發數位憑證。簽發的數位憑證可以用於安全電子郵件、安全終端保護、程式碼簽署保護、可信網站服務、身份授權管理等。

非對稱金鑰的類型

KMS支援的非對稱金鑰演算法類型如下:
演算法密鑰規格說明用途
RSA
  • RSA_2048
  • RSA_3072
RSA非對稱密碼
  • 資料的加解密運算
  • 數位簽章
ECC
  • EC_P256:NIST推薦的橢圓曲線P-256
  • EC_P256K:SECG橢圓曲線secp256k1
橢圓曲線密碼(Elliptic Curve Cryptography)數位簽章
SM2EC_SM2標準GBT32918定義的橢圓曲線密碼
  • 資料的加解密運算
  • 數位簽章

資料加密

非對稱金鑰用於資料加密,通常適用於傳遞敏感資訊,典型情境如下:
  1. 資訊接收者將加密公開金鑰分發給資訊傳送者。
  2. 資訊傳送者使用公開金鑰對敏感資訊進行加密保護。
  3. 資訊傳送者將敏感資訊的密文傳遞給資訊接收者。
  4. 資訊接收者使用私密金鑰將敏感資訊的密文解密。

由於解密的私密金鑰只有資訊接收者可以使用,因此可以確保敏感資訊的明文在傳遞過程中不被惡意者截獲。這種敏感資訊傳遞的方式,被廣泛用於各類金鑰交換情境。例如:在TLS中交換工作階段金鑰、在不同的密碼機之間匯入匯出加密金鑰。

更多資訊,請參見非對稱資料加解密

數位簽章

非對稱金鑰更廣泛的用途是數位簽章,即使用私密金鑰對訊息或者資訊產生簽名。由於私密金鑰受到嚴格保護,只有受信者可以使用私密金鑰來產生簽名,使用公開金鑰驗證簽名可以實現以下目的:
  • 驗證資料的完整性(integrity):如果資料和簽名不匹配,資料可能受到了篡改。
  • 驗證訊息的真實性(authenticity):如果訊息和簽名不匹配,訊息傳送者不是真實持有私密金鑰的使用者。
  • 為簽名提供不可抵賴性(non-repudiation):如果資料和簽名能夠匹配,簽名者不可以否認此簽名。
典型的簽名驗簽情境如下:
  1. 簽名者將驗簽公開金鑰分發給訊息接收者。
  2. 簽名者使用簽名私密金鑰,對資料產生簽名。
  3. 簽名者將資料以及簽名傳遞給訊息接收者。
  4. 訊息接收者獲得資料和簽名後,使用公開金鑰針對資料驗證簽名的合法性。

數位簽章被廣泛用於資料防篡改、身份認證等相關技術領域。

  • 案例1:數位簽章用於對二進位代碼提供完整性保護,代碼執行者可以驗證代碼未被篡改,以提供可信的執行環境。
  • 案例2:數位憑證系統中,認證機構(CA)對頒發的數位憑證提供簽名,證明數位憑證的主體資訊、公私密金鑰資訊、密鑰用途、有效期間、簽發者等資訊。認證私密金鑰持有人使用私密金鑰對訊息進行簽名,訊息接收者使用認證中包含的公開金鑰對訊息簽名進行驗證,同時使用認證簽發者的公開金鑰,驗證認證本身的合法性。

更多資訊,請參見非對稱數位簽章

密鑰版本

由於公私密金鑰使用情境的特殊性,KMS不支援對非對稱的使用者主要金鑰進行自動輪轉。您可以調用CreateKeyVersion介面,在指定使用者主要金鑰中建立新的密鑰版本,產生全新的一對公開金鑰和私密金鑰。如果您使用新的版本進行數位簽章或者資料加密,則需要重新分發新版本的公開金鑰。

除此之外,和對稱類型的使用者主要金鑰不同,非對稱的使用者主要金鑰沒有主要版本(PrimaryKeyVersion)的概念,因此使用非對稱密碼運算的介面除需指定使用者主要金鑰標誌符(或別名)之外,還需指定密鑰版本。

公開金鑰運算的方式

大多數情況下,公開金鑰加密、公開金鑰驗簽的操作,都可以調用GetPublicKey介面擷取公開金鑰,之後分發給公開金鑰使用者。使用者在業務端通過OpenSSL、Java JCE等常用的密碼運算庫進行本地計算。

KMS也提供公開金鑰運算的介面AsymmetricEncryptAsymmetricVerify,滿足您的業務需求。和在業務端使用公開金鑰本地運算相比,調用KMS的公開金鑰運算介面可以協助您更方便的記錄調用日誌,或者通過存取控制服務對公開金鑰的使用情境進行一些限制,滿足您的特定需求。

私密金鑰運算的方式

您僅能通過KMS提供的私密金鑰運算的介面AsymmetricDecryptAsymmetricSign,來使用私密金鑰進行資料解密或者數位簽章。