
摘 ?要: 云計算環境相對于傳統的IT系統具有虛擬化、多用戶、分布式等新特征,現有密鑰管理體系架構已無法滿足其需求。本文分析歸納了云計算中密鑰管理遇到的挑戰,提出了云計算中密碼管理關鍵技術應用框架。針對互聯網應用場景,基于多年工作實踐給出了具體可行的云計算密鑰管理解決方案。
關鍵詞:?云計算;密鑰管理;互聯網應用
中圖分類號:?TP393????文獻標識碼:?A????DOI:10.3969/j.issn.1003-6970.2019.09.049
本文著錄格式:彭紅. 云計算中密鑰管理關鍵技術研究[J]. 軟件,2019,40(9):212-215
Research on Critical Technologies for Key Management of Cloud Computing
PENG Hong
(Westone Information Industry INC., Chengdu, Sichuan?610041)
【Abstract】: Compared with traditional IT systems, the cloud computing environment is characterized by virtualization as well as multi-user and distributed features. The existing key management architecture cant meet the need under cloud computing environment any longer. In this paper, the challenges encountered in key management of cloud computing are summarized and an application framework of key technologies of key management of cloud computing is proposed. In this way, a detailed and practical key management solution of cloud computing which can be applied in the Internet is provided based on years of work practice.
【Key words】: Cloud computing;?Key management; Internet application
目前,安全是云計算在大規模推廣和部署過程中需要解決的首要問題,也是影響云計算規模化發展的關鍵要素。密碼技術作為保障安全的基石,在云計算安全中發揮著重要作用。云計算安全聯盟CSA列出的2017年“12大頂級云安全威脅”中,數據泄露、身份憑證和訪問管理不足排名前列[1]。數據泄露、憑證被非授權使用通常是身份驗證機制弱、密鑰管理松散所導致的結果。國際上一些機構和標準組織已開展云計算中密鑰管理技術研究,OASIS出臺了云計算中的密鑰管理互操作協議,解決云端與密鑰管理系統之間的通信標準化問題,CSA發布的《云計算關鍵領域安全指南》也探討了云計算密鑰管理等難題。
傳統的密鑰管理技術已應用多年,研究機構亦出臺了一系列密鑰管理技術標準,但卻難以滿足云計算環境下對密鑰管理提出的新需求。云計算環境相對于傳統的IT系統具有虛擬化、多用戶、分布式等新特征[2],現有密鑰管理體系架構已無法滿足其需求。此外,云計算根據應用場景分為公有云、私有云和混合云,使用的云平臺和面向用戶場景各不相同,應根據實際應用場景研制相應的云密鑰解決方案。本文分析了云計算中密鑰管理遇到的挑戰,梳理總結云計算中密碼管理關鍵技術,并針對互聯網應用場景給出了具體的密鑰管理解決方案。
與傳統IT架構相比,云計算的虛擬化以及動態安全邊界等特性使得密碼技術應用更為廣泛,對密鑰管理技術也帶來諸多新的挑戰[3]。
1.1??密碼資源虛擬化帶來新的安全風險
虛擬化帶來的新風險主要表現在虛擬機的安全使用與訪問方面,虛擬機遷移過程中應用程序、服務以及數據的完整性,密鑰的安全性保護等問題,需要加密、簽名等密碼技術的應用作為支撐[4],其中對密鑰的安全管理尤為重要。
1.2??云環境中數據共享流動帶來新的安全挑戰
云環境中用戶數據共享面臨的威脅主要來源于云服務提供商、惡意租戶。云服務提供商一般具有平臺的管理權限,能對運行在平臺上的數據存儲和下載,存在越權訪問可能性,傳輸中的數據容易遭到偽裝成合法租戶的惡意截獲或篡改。此外,云服務提供商可在全球范圍內動態遷移虛擬機鏡像和數據,與虛擬機和數據相關聯的密鑰則存在泄漏的風險。
1.3海量用戶的身份鑒別與訪問控制成為新的安全挑戰
云服務模式下,用戶身份鑒別與訪問控制面臨新的挑戰,海量用戶的身份鑒別與授權,若采用密碼技術實現,則存在海量用戶密鑰生成、存儲和訪問管理等技術難題,如果密鑰保管或使用不當將導致用戶數據的泄露。
綜上所述,為了解決云服務中面臨的虛擬化安全、數據存儲與訪問控制安全、應用程序安全、用戶身份鑒別安全等,需要加密、簽名等密碼技術保障,而加密密鑰、簽名密鑰、證書密鑰等密鑰的安全產生、分發和存儲是急需解決問題。
云計算相對于傳統計算模式具有多租戶、虛擬化、按需服務等特點[5],使得傳統的密鑰管理系統無法直接應用到云計算環境中。云計算環境中的密鑰管理系統主要需要解決以下問題[6]:
(1)安全策略,包括信息管理策略、信息安全策略、物理安全策略、通信安全策略、密鑰安全策略、域安全策略等;
(2)密鑰及其相關元數據進行定義與說明,包括密鑰類型、密鑰狀態及生命周期、密鑰管理相關功能(密鑰生成、密鑰使用、密鑰更新、密鑰歸檔、密鑰備份、密鑰恢復、密鑰安全存儲、密鑰安全傳輸、訪問控制等);
(3)角色和權限,云密鑰管理系統應對其相關角色和權限進行說明,包括系統權限、系統管理員、審計管理員、密鑰擁有者、密鑰托管、密鑰恢復代理、操作員等;
(4)互操作性及可擴展性,互操作性包括接口和協議、密鑰/數據格式、數據交換機制等;可擴展性(包括支持多種密碼算法)。
如下圖所示,密鑰生成、密鑰分配、存儲保護、備份與恢復、密鑰更新、密鑰撤銷、訪問控制和互操作等環節會出現在云接入安全、交互安全和云數據安全的各個階段[7]。
2.1 密鑰生成
在云計算環境中,用于數據加密的密鑰生成時一般要考慮密鑰的隨機性、密鑰強度和密鑰空間。為了滿足特定的安全要求,可選擇基于生物特征的密鑰生成或基于量子密碼系統生成密鑰,在層次化的云計算密鑰管理體制中,不同級別或不同類別的密鑰產生機制應有所區別。
2.2 密鑰分配
密鑰分配是云密鑰管理中的最大問題之一。一般地,加密密鑰應以密文方式傳輸且應被安全存儲,可采用智能卡或HSM硬件設備進行密鑰的安全存儲。在密鑰傳輸過程中,應確保密鑰的機密性、完整性和可用性,采用基于安全隧道加密技術建立安全通信信道,如Https協議、IPsec VPN、SSL/TLS等,保障傳輸過程中的密鑰安全。在傳輸過程中,利用數字簽名等密碼技術提供完整性校驗,防止密鑰被非法篡改。當訪問云服務數據庫或某個應用程序時,如果需要多個訪問密鑰,那么需要對每個密鑰的分發和使用進行有效控制。
2.3 密鑰存儲保護
密鑰的安全存儲與保護已成為云服務提供商面臨的一個挑戰[8]。鑒于密鑰存儲的物理安全,云用戶可以選擇將密鑰存儲在HSM中,或者其他的安全設施(如智能卡、TPM、安全令牌等)中,用戶數據加密的根密鑰應存儲在安全硬件設備中。從密鑰所有者的角度考慮,密鑰可以存儲在與其被加密數據相同或不同的服務器上,或者委托數據擁有者或第三方密鑰管理服務提供方進行存儲和管理。
2.4 密鑰備份與恢復
在云計算中,密鑰的備份和恢復通常使用秘密共享技術和密鑰托管技術。
2.5密鑰更新
密鑰更新應不影響云計算服務的正常使用,密鑰注入必須在安全環境下進行并避免外漏。現用密鑰和新密鑰同時存在時應處于同等的安全保護水平,更換下來的密鑰一般情況下應避免再次使用。
2.6 密鑰撤銷
密鑰撤銷策略以及相關的機制對于所有的密鑰管理模型都是至關重要的。所有的云密鑰管理服務均需要支持密鑰撤銷機制,如當企業員工離開企業或改變其工作職能時,密鑰管理服務應當撤銷或調整所有與該人員相關的密鑰訪問權限。
2.7密鑰的訪問控制
對于云加密服務中的加密密鑰的訪問需要進行嚴格的控制,在云加密服務不可用時,云服務提供商處存儲的加密密鑰也應當不可用,以使被加密數據的安全訪問得到有效控制[9]。密鑰只能被授權給合法用戶訪問,對于主密鑰可以通過采用密鑰拆分技術來提高密鑰訪問的安全性。
2.8密鑰管理互操作
加密系統的互操作性是實現云解決方案的一個重要考慮。由于在云計算環境中,用戶密鑰需求種類多,導致密鑰管理客戶端需要與多個密鑰管理服務器進行通信。傳統的密鑰管理系統中,不同的密鑰管理服務器與用戶之間使用不同的密鑰管理協議,增加了用戶使用加密、認證等操作的代價,同時提高了管理難度。因此,需要一個能夠協調不同服務和云之間的密鑰管理互操作協議。
3.1應用背景
我國正在大力推進“互聯網+政務服務”,利用云計算、大數據技術構建面向公眾提供服務的政務服務平臺。公眾用戶通過訪問政務平臺互聯網門戶登陸用戶業務系統,通過身份認證、權限管理、訪問控制等安全措施,享受“一站式”政務服務。政務服務平臺多依托于互聯網,提供多種接入和認證方式,服務用戶數眾多。在互聯網云服務的應用場景下,云計算密碼應用呈現其獨特需求:
3.1.1??云端不可信導致用戶需參與密鑰管理
在云計算環境中,云服務提供商面對大量用戶泛在接入需求,管理上可能存在諸多安全隱患,用戶也不愿意上傳敏感數據,云服務提供商也難以證明自己不會誤用和泄露這些數據[10]。因此,用戶需要保管部分密鑰,而不是像傳統的方式將所有密鑰完全交由云服務提供商進行托管。
3.1.2 ?密鑰數量大,需設計合理的密鑰生成、分發等機制
通過公開網絡將大量敏感信息(密鑰信息)從客戶手中傳遞到云服務提供商的過程中會存在諸多安全風險[11],例如:竊聽、釣魚,因此要設計分布式密鑰分發機制,
3.1.3 ?本地加密需求較多
傳統的通信加密方式中大量數據需要通過安全信道傳遞到服務端,加密后再返回給用戶,這種模式對用戶服務的性能影響很大。在分布式系統中,我們應該盡可能的移動計算而不是移動數據,大量的移動數據會帶來巨大的成本。因此,在互聯網+云服務模式中更多采用本地加密以減少云端壓力。
3.2解決思路
3.2.1 ?密鑰生成及分發機制
Step1:用戶A通過建立https通道訪問云服務商的互聯網門戶網站,提交身份信息,完成注冊與審核;云服務商將用戶信息同步至密鑰管理服務器(KMS)中。
Step2:用戶A與KMS之間使用HMAC-SHA1簽名認證方案完成客戶端與KMS服務器之間身份認證與訪問鑒權。
Step3:經過安全協商,KMS產生用戶A的主密鑰
,主密鑰存儲在密鑰服務器KMS中,用戶可以按照權限瀏覽其相關的主密鑰及加密密鑰記錄信息。
Step4:KMS使用主密鑰產生數據加密密鑰,即
。加密密鑰
密文存儲在云服務商不同地理區域的存儲服務器中,且使用存儲備份機制,用戶的加密密鑰與主密鑰之間關聯關系應在KMS中進行記錄。
出于安全性考慮,云服務商與KMS應為不同服務機構。云服務商主要存儲用戶信息,提供加密密鑰密文態存儲。
3.2.2??本地加解密應用
為緩解云端加解密計算壓力,在互聯網應用場景下,一般采用本地加解密方案,即用戶在KMS上通過主密鑰生成數據加密密鑰,數據加密密鑰通過SSL通道傳遞到用戶端,用戶端調用加密程序和數據加密密鑰完成數據加密過程,并將文件密文和加密密鑰密文上傳至云服務商部署在用戶所在區域的本地存儲設備進行存儲;解密時,根據用戶信息在KMS上查詢得到用戶主密鑰,利用主密鑰解密獲得用戶數據加密密鑰,并用數據加密密鑰在本地解密獲得文件明文。
本文對云計算中的密鑰管理技術進行梳理和總結,提出云計算密碼管理技術框架。針對互聯網應用場景,根據工作實踐提出了可行的云計算密鑰管理解決方案。本方案中密鑰產生、存儲與管理分屬不同機構,用戶需要參與才能完成數據加解密過程,這也是與傳統密鑰管理方案不同的。后續研究將探討不同廠商和平臺之間密鑰管理互操作技術實現及標準化的問題,這也是阻礙密鑰管理技術應用和推廣的主要障礙之一。
參考文獻