云计算中密钥管理关键技术研究
2019-11-14彭红
摘 要: 云计算环境相对于传统的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
0 引言
目前,安全是云計算在大规模推广和部署过程中需要解决的首要问题,也是影响云计算规模化发展的关键要素。密码技术作为保障安全的基石,在云计算安全中发挥着重要作用。云计算安全联盟CSA列出的2017年“12大顶级云安全威胁”中,数据泄露、身份凭证和访问管理不足排名前列[1]。数据泄露、凭证被非授权使用通常是身份验证机制弱、密钥管理松散所导致的结果。国际上一些机构和标准组织已开展云计算中密钥管理技术研究,OASIS出台了云计算中的密钥管理互操作协议,解决云端与密钥管理系统之间的通信标准化问题,CSA发布的《云计算关键领域安全指南》也探讨了云计算密钥管理等难题。
传统的密钥管理技术已应用多年,研究机构亦出台了一系列密钥管理技术标准,但却难以满足云计算环境下对密钥管理提出的新需求。云计算环境相对于传统的IT系统具有虚拟化、多用户、分布式等新特征[2],现有密钥管理体系架构已无法满足其需求。此外,云计算根据应用场景分为公有云、私有云和混合云,使用的云平台和面向用户场景各不相同,应根据实际应用场景研制相应的云密钥解决方案。本文分析了云计算中密钥管理遇到的挑战,梳理总结云计算中密码管理关键技术,并针对互联网应用场景给出了具体的密钥管理解决方案。
1 需求分析
与传统IT架构相比,云计算的虚拟化以及动态安全边界等特性使得密码技术应用更为广泛,对密钥管理技术也带来诸多新的挑战[3]。
1.1 密码资源虚拟化带来新的安全风险
虚拟化带来的新风险主要表现在虚拟机的安全使用与访问方面,虚拟机迁移过程中应用程序、服务以及数据的完整性,密钥的安全性保护等问题,需要加密、签名等密码技术的应用作为支撑[4],其中对密钥的安全管理尤为重要。
1.2 云环境中数据共享流动带来新的安全挑战
云环境中用户数据共享面临的威胁主要来源于云服务提供商、恶意租户。云服务提供商一般具有平台的管理权限,能对运行在平台上的数据存储和下载,存在越权访问可能性,传输中的数据容易遭到伪装成合法租户的恶意截获或篡改。此外,云服务提供商可在全球范围内动态迁移虚拟机镜像和数据,与虚拟机和数据相关联的密钥则存在泄漏的风险。
1.3海量用户的身份鉴别与访问控制成为新的安全挑战
云服务模式下,用户身份鉴别与访问控制面临新的挑战,海量用户的身份鉴别与授权,若采用密码技术实现,则存在海量用户密钥生成、存储和访问管理等技术难题,如果密钥保管或使用不当将导致用户数据的泄露。
综上所述,为了解决云服务中面临的虚拟化安全、数据存储与访问控制安全、应用程序安全、用户身份鉴别安全等,需要加密、签名等密码技术保障,而加密密钥、签名密钥、证书密钥等密钥的安全产生、分发和存储是急需解决问题。
2 云计算密钥管理技术框架
云计算相对于传统计算模式具有多租户、虚拟化、按需服务等特点[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 互联网应用场景中云计算密钥管理解决方案
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上查询得到用户主密钥,利用主密钥解密获得用户数据加密密钥,并用数据加密密钥在本地解密获得文件明文。
4 结论
本文对云计算中的密鑰管理技术进行梳理和总结,提出云计算密码管理技术框架。针对互联网应用场景,根据工作实践提出了可行的云计算密钥管理解决方案。本方案中密钥产生、存储与管理分属不同机构,用户需要参与才能完成数据加解密过程,这也是与传统密钥管理方案不同的。后续研究将探讨不同厂商和平台之间密钥管理互操作技术实现及标准化的问题,这也是阻碍密钥管理技术应用和推广的主要障碍之一。
参考文献
- 云安全联盟(CSA). 云计算关键领域安全指南 V2. 1[DB/OL]. (2009-12)[2012-6-16]. http://www.cloudsecurityalliance.org/guidance/ csaguide.v2.1.pdf.
- 姜福成. 云计算的基础结构设计和云应用服务[J]. 软件, 2014, 35(7): 97-102.
- 李振汕. 云计算安全威胁[J]. 通信技术, 2012, 45(09): 1-4.
- 谢立军, 朱智强, 孙磊, 等. 云计算密钥管理架构研究与设计[J]. 计算机应用研究, 2013, 30(3): 909-912.
- 沈昌祥. 云计算安全与等级保护[J]. 信息安全与通信保密, 2012(1): 16-17.
- 李凤海, 张佰龙. 云计算中密码应用模式初探[J]. 信息网络安全, 2011(9): 53-55.
- 张晏, 岑荣伟, 沈宇超, 等. 云计算环境下密码资源池系统的应用[J]. 信息安全研究, 2016, 2(6): 558-561.
- 杨璐, 叶晓俊, 云服务环境下的密钥管理问题和挑战[J]. 计算机科学, 2017, 44(3): 3-8.
- 洪澄, 张敏, 冯登国. 面向云存储的高效动态密文访问控制方法[J]. 通信学报, 2011, 32(7): 125-131.
- 陈永府, 宋鹏, 王启富, 陈立平. 云环境下的数据防泄密存储技术[J]. 计算机应用与软件, 2016, 33(10): 288-310.
- 虚拟化与云计算小组. 云计算实践之道: 战略蓝图与技术架构[M]. 北京: 电子工业出版社, 2011: 133-174.