云计算环境数据安全研究
作者 :  许龙 顾健 洪珂

  【 摘 要 】 云计算是网格计算、分布式计算、效用计算等技术发展融合的产物,如今普及速度非常快。亚马逊、谷歌、微软等企业向用户提供了在云环境中开发应用和远程访问应用的功能。由于云环境的数据托管给服务商存储在远程服务器中,且应用数据通过互联网传输,数据存储和传输安全是一个重要的问题。在实现云计算之前,首先应该解决由此带来的安全问题。论文描述了云计算中数据安全相关的挑战,研究了对于数据安全不同层面的解决方案。
  【 关键词 】 云计算;数据安全;属性基加密;代理重加密
  Research on Data Security in Cloud Computing
  Xu Long 1 Gu Jian 1 Hong Ke-yi 2
  (1. The Third Research Institute of Ministry of Public Security Shanghai 200031;
  2.Shanghai Municipal Public Security Bureau Shanghai 200025)
  【 Abstract 】 Cloud computing is the product of the integration of the technology development of grid computing, distributed computing, utility computing, and this trend is rapidly increasing. Amazon, Google, Microsoft and other enterprise have provided users with the function of the application and remote access in the cloud environment. As data in the cloud environment is stored in remote server, and the application of data is transmitted through the Internet, data storage and transmission security is an important issue. Before apply cloud computing, we should first address related security issues. This paper describes the challenges of data security in cloud computing, and studies the solutions for different levels of data security.
  【 Keywords 】 cloud computing; data security; attribute-based encryption; proxy re-encryption
  1 引言
  云计算是基于下一代互联网的计算系统,提供了方便和可定制的服务供用户访问或者与其他云应用协同工作。云计算通过互联网将云应用连接在一起,向用户提供了在任意地点通过网络访问和存储数据的服务。
  通过选择云服务,用户能够将本地数据副本存储在远端云环境中。在云环境中存储的数据能通过云服务提供商提供的服务进行存取。在云计算带来方便的同时,必须考虑数据存储的安全性。如今云计算安全是一个值得注意的问题。如果对数据的传输和存储不采取合适的手段,那么数据处于高风险的环境中,关键数据泄露可能造成非常大的损失。由于云服务向公共用户群提供了访问数据的功能,数据存储可能存在高风险问题。在后续章节中,本文首先介绍了云计算模型,然后针对云计算本身的属性带来的安全问题,研究了已有数据安全解决方案的应用范围。
  2 云计算应用模式
  云计算的应用模式主要有软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)等。在SaaS中,厂商提供服务供客户使用,客户使用服务在云基础架构中运行应用。SaaS相对比较简单,不需要购买任何硬件,使用容易。但是数据全部保存在云端,且存放方式不受用户控制,存在安全隐患。PaaS则通过使用云计算服务商提供的中间件平台开发和测试应用,例如谷歌的App Engine。由于不同的中间件平台提供的API不一样,同一个应用不能再不同的平台通用,存在一定的兼容性问题。在IaaS模型中,用户可以控制存储设备、网络设备等基础计算架构,或者直接使用服务商提供的虚拟机去满足特定的软件需求,灵活性高但是使用难度也比较大。
  随着云计算的蓬勃发展,云计算安全作为不能忽视的层面,应该引起足够的重视。如果对数据的传输和存储不采取合适的手段,那么数据将处于高风险的环境中。由于云计算向用户群提供了访问数据的功能,不论采用三种主要应用模式的任意一种,数据都存储在公共平台中,由此带来了数据存储和传输的安全问题。
  3 数据安全挑战
  3.1 数据保障
  当多个用户共享同一个资源的时候存在资源误用的风险。为了避免这个风险,有必要对数据存储、数据传输、数据处理等过程实施安全方面的措施。数据的保护是在云计算中最重要的挑战。为了加强云计算的安全,有必要提供认证授权和访问控制的手段确保数据存储的安全。数据安全的主要几个方面:健壮性――使用测试工具检查数据的安全脆弱性,查看云计算应用是否有常见的漏洞,比如跨站脚本、SQL注入漏洞等;保密性――为了保护客户端数据的安全,应当使用资源消耗少的瘦客户端,尽量将客户端的功能精简,将数据的运算放置在云服务端完成;可用性――数据安全中最重要的部分,具体实施情况由厂商和客户直接协商决定。以上措施决定了数据的可用性、可靠性和安全性。   3.2 数据正确性
  在保证数据安全的同时也要保证数据的正确性。每个在云计算中的事务必须遵守ACID准则保持数据的正确性。否则会造成数据的“脏读”,“幻读”等现象,造成数据的不准确,事后排查花费的代价高。大多数Web服务使用HTTP协议都面临着事物管理的问题。HTTP协议本身并不提供事务的功能,事务的功能可以使用程序内部的机制解决。
  3.3 数据访问
  数据访问主要是指数据安全访问管理机制。在一个公司中,应根据公司的安全条例,给予不同岗位职工特定数据的访问权限,保证该数据不能被公司的其他员工访问。可以使用加密技术保证数据传输安全,采取令牌管理手段提升用户密码的猜解复杂程度。
  3.4 保密性
  由于在云环境中,用户将文本、视频等数据存储在云端,数据保密性成为了一个重要的需求。用户应该了解保密数据的存放情况和数据的访问控制实施情况。
  3.5 数据隔离
  云计算的重要特征之一是多用户租用公共服务或设备。由于公用云向所有用户提供服务的特点,存在数据入侵的可能。通过注入代码等手段,可能造成云端存储的数据被非授权获取。所以有必要将用户数据和程序数据分开存储,增加数据被非授权获取的难度。通常可以通过SQL注入、数据验证等方式验证潜在的漏洞是否存在。
  3.6 数据备份
  云端数据备份主要目的是在数据意外丢失的情况下找。数据丢失是一个很普遍的问题,一份2009年的调查表明,66%的被访者声称个人电脑的文件存在丢失情况。云端数据备份还可以方便将数据恢复到某个时期的版本。云计算作为公用服务,已有大量用户使用网盘将数据副本存储在云端,但是还有很多应用的业务数据未在用户本地设备中存储。无论云端存储数据的性质,云端都应定时将存储的数据备份,保障云服务的正常运行。
  3.7 法律法规风险
  在云计算中,数据有可能分布存储在不同的国家和地区中。当数据被转移到其他的国家和地区中后,必须遵守当地的法律法规。所以在云计算中,存在数据放置地理位置的问题,客户应当知晓数据存储的地理位置防范风险。
  4 数据安全解决方案
  对于数据安全问题,需要方案解决云环境中数据潜在的风险。其中由于云环境的公用特性,数据保密应当作为主要解决目标。针对上节的数据保障、正确性、访问等问题,多位云计算安全专家在不同层面已先后提出了几套完整的解决方案,其目标主要是保证云环境中数据共享的安全性。在不可信的公共云环境中,数据共享的同时保证数据对第三方的保密性。
  4.1 基本方案
  数据加密是一个比较好的保证数据安全的方案。在云端存储数据之前最好能先加密数据。数据的拥有者能将数据的访问权给予特定的用户群体。应当设计一个包括认证、数据加密、数据正确性、数据恢复等功能的模型去保证数据在云端的安全。
  为了保证数据不能被非授权访问,将数据加密使其完全对于其他用户无法解析是一个比较好的方法。在上传数据到云端之前,建议用户验证数据是否在本地有完整的备份,可以通过计算文件的哈希值来验证数据是否一致。数据传输应当采用加密方式,防止敏感信息被中间人监听。SaaS要求必须在物理层面和应用层面将不同用户的数据隔离。可以使用采用基于角色的访问控制或者是自主访问控制,以及分布式的访问控制架构控制云计算中的数据访问。一个设计良好的访问控制机制可以极大地保护数据的安全,还可以采用入侵防御系统实时监测网络入侵。入侵防御系统主要功能为识别可疑行为,记录行为的详细信息并试图阻止。
  上述基本方案可以解决数据保障、数据正确性、数据访问及保密性等问题。但是,在实际应用中没有考虑效率,仅仅作为基本手段不能满足用户云环境数据共享的特定需求。
  4.2 属性基加密
  属性基加密(Attribute-based Encryption)相对于传统的公用密钥加密具有很大的优势。传统的公用密钥加密采用公私钥对,公钥加密的信息只能用私钥解密,保证了仅有接收人能得到明文;私钥加密的信息只能用公钥解密,保证了信息的来源。公钥基础设施体系和对称加密方式相比,解决了信息的保密性、完整性、不可否认性问题。属性基加密则在公用密钥加密的基础上,更多考虑了数据共享和访问控制的问题。在属性基加密系统中,密钥由属性集合标识。仅当公私钥对指定的属性相同或者具有规定的包含关系时,才能完成解密密文。例如,用户如果为了数据安全将文档加密,但是需要同公司的人能解密该密文,那么可以设置密钥的属性位“组织”,只有属性位“组织”为该用户公司的密钥才能将该密文解密,不满足条件的密钥则不能解密,如图1所示。
  属性基加密分为密钥策略(KP-ABE)和密文策略(CP-ABE)。KP-ABE模式中,密文具有属性集合,解密密钥则和访问控制策略关联。加密方定义了能成功解密密文的密钥需要满足的属性集合。KP-ABE模式适用于用户查询类应用,例如搜索、视频点播等。CP-ABE模式中,加密方定义了访问控制策略,访问控制策略被包含在密文内,而密钥仅仅是属性的集合。CP-ABE模式主要适用于访问控制类应用,例如社交网站、电子医疗等。
  属性基加密方式,不仅可以应用在云存储共享中,在审计日志共享方面也有很广泛的应用。审计日志共享大都存在时间段的限制,属性基加密方式可以在密文中添加时间属性位和用户属性,提供对不同用户共享不同时间段日志的功能。属性基加密紧密结合了访问控制的特性,在传统公用密钥的基础上,提高了数据共享的方便程度。
  属性基加密虽然提高了数据共享的方便程度,但是没有从根本上解决云环境数据加解密过程中,解密为明文导致的敏感数据泄露问题。
  4.3 代理重加密
  由于云环境是公用的,用户无法确定服务提供商是否严格的将用户资料保存,不泄露给第三方。所以,当用户之间有在云环境中共享资料的需求时,必须考虑资料的保密性问题。   用户A希望和用户B共享自己的数据,但是不希望直接将自己的私钥Pa给B,否则B能直接用Pa解密自己采用私钥加密的其他数据。对于这种情况,有一些解决方案。
  (1)用户A将加密数据从云端取回,解密后通过安全方式(例如采用用户B的公钥加密)发送给用户B。这种方式要求用户A必须一直在线,存在一定的局限性,并且数据量比较大时,本地耗费的计算量可能非常大。
  (2)用户A可以将自己的私钥给云服务提供商,要求提供数据共享的服务。在这种情况中,用户A必须相信云端不会将私钥泄露。
  (3)用户A可以采用一对一加密机制。A将解密密钥分发给每个想共享数据的用户,A必须针对每个用户生成并存储不同的加密密钥和密文。当新用户数量很多时,这个方案造成了磁盘空间的大量占用,存储数据冗余度高。
  代理重加密(Proxy Re-Encryption)手段可以很好的解决云环境数据共享的问题。代理重加密手段设立了一个解密代理。首选A由私钥Pa和B的公钥Pb计算出转换密钥Rk。转换密钥可以直接将由私钥Pa加密的密文转加密为由公钥Pb加密的密文。在转换过程中,A的原始密文不会解密为明文,而转加密后的密文也只能由用户B解密。当用户B想访问A共享的资料时,只需要解密代理使用Rk将A的密文转换为只有B能解密的密文即可。这种机制保证了包括云在内的所有第三方都不能获取A共享给B的明文,如图2所示。
  代理重加密解决了云环境中数据共享而不泄露明文的基本问题,侧重于数据的保密。该技术手段关注数据的保密性,未考虑实际应用中数据共享方便程度等其他问题。
  4.4 基于代理重加密的属性基加密方法
  代理重加密技术可以和在云存储中使用的属性基加密机制结合,属性基加密侧重于加密方面的访问控制,而代理重加密从加密手段上保证了数据的隐秘性。通过将这两种机制结合,用户可以更加高效的分享数据。数据拥有者可以根据新的访问控制规则生成转换密钥,然后将转换密钥上传至云服务器,服务器将原有的密文转加密为新的密文。新的密文在不影响原有用户解密的情况下,可以使新用户成功解密。而在转换原有密文的整个过程中,服务器无法将密文解密为明文。
  该类加密方法既保证了转换效率,又保证了数据的保密性。此类方法中,不考虑抗选择密文攻击的算法计算转换密钥的资源消耗相对较小,考虑了抗选择密文攻击的算法资源消耗量和密钥属性基的大小正相关。
  5 结束语
  虽然云计算是一个带来了很多益处给用户的新兴技术,但它也同时面临着很多安全方面的挑战。本文说明了云计算方面的安全挑战和对应的解决方案,从而降低云计算可能带来的安全风险。为了保证云存储的安全访问,在技术层面,可以采用健壮的数据加密机制;在管理层面,采用合适的令牌管理机制,分发令牌给用户从而保证数据只能被授权的访问。随着云计算的普及,相信云服务提供商和用户对于云环境数据安全方面会越来越重视。在相关安全策略实施后,云计算能在提供良好服务的同时,让用户使用更加放心。
  参考文献
  [1] L.M. Vaquero, L. Rodero-Merino, J. Caceres, and M. Lindner. A break in the clouds: towards a cloud definition[J]. ACM SIGCOMM Computer Communication Review, 2008:50-55.
  [2] Shucheng Yu,Cong Wang,Kui Ren,and Wenjing Lou. Achieving secure,scalable and fine-grained data access control in cloud computing[J]. IN-FOCOM,2010 Proceedings IEEE,2010:1-9.
  [3] Kabooza Global Backup Survey[OL]. http://www.kabooza.com/globalsurvey.html.2009.
  [4] Wang G,Liu Q,Wu J. Achieving fine-grained access control for secure data sharing on cloud servers[J]. Concurrency and Computation: Practice and Experience 2011; 23(12):1443-1464.
  [5] V. Goyal, O. Pandey, A. Sahai, B. Waters, Attribute-based encryption for fine grained access control of encrypted data[J]. ACM Conference on Computer and Communication Security,2006:89-98.
  [6]J. Bethencourt,A. Sahai, B. Waters,Ciphertext policy attribute based encryption[J]. IEEE Symposium on Security and privacy,2007:321-334.
  [7] Blaze M,Bleumer G,Strauss M. Divertible protocols and atomic proxy cryptography[J]. Advances in Cryptology-Eurocrypt’98,Vol. 1403, Nyberg K (ed.). Springer Berlin / Heidelberg: Espoo,Finland,1998:127-144.
  [8] Kaitai Lianga, Man Ho Au, A secure and efficient Ciphertext-Policy Attribute-Based Proxy Re-Encryption for cloud data sharing[OL]. http://dx.doi.org/10.1016/j.future.2014.11.016, 2014
  [9] 赵丽丽.代理重加密技术在云计算中的应用[J].信息安全与通信保密,2012(11):135-137.
  基金项目:
  2014年上海科委科技创新行动计划技术标准项目:云计算信息安全检测技术标准研究(No.14DZ0502600)。
  作者简介:
  许龙(1988-),男,湖北人,硕士,公安部第三研究所检测中心;主要研究方向和关注领域:信息安全及相关检测技术。
  顾健(1965-),男,江苏人,博士,研究员,公安部第三研究所检测中心;主要研究方向和关注领域:信息安全。
  洪珂一(1978-),男,上海人,学士,上海市公安局;主要研究方向和关注领域:信息安全管理。