云存储是云的应用, 它便利组织,可使其自由的建立内部数据存储系统。但是, 云存储会引起安全问题。在群共享数据的情况下,这些数据既面临云特定的内部威胁, 也面临常规内部威胁。合法但恶意用户对组内共享安全信息的威胁一个重要的研究问题。SeDaSC
这篇论文提出了云中安全数据共享(SeDaSC) 方法。
文章的基本信息
标题:
SeDaSC: Secure Data Sharing in Clouds
作者:
Mazhar Ali, Student Member, IEEE, Revathi Dhamotharan, Eraj Khan, Samee U. Khan, Senior Member, IEEE,Athanasios V. Vasilakos, Senior Member, IEEE, Keqin Li, Fellow, IEEE, andAlbert Y. Zomaya, Fellow, IEEE
发表期刊: IEEE SYSTEMS JOURNAL, VOL. 11
发表时间: 2017年6月
论文摘要
原文
Abstract—Cloud storage is an application of clouds that liberates organizations from establishing in-house data storage systems. However, cloud storage gives rise to security concerns. In case of groupshared data, the data face both cloud-specific and conventional insider threats. Secure data sharing among a group that counters insider threats of legitimate yet malicious users is an important research issue. In this paper, we propose the Secure Data Sharing in Clouds (SeDaSC) methodology that provides: 1) data confidentiality and integrity; 2) access control; 3) data sharing (forwarding) without using compute-intensive reencryption; 4) insider threat security; and 5) forward and backward access control. The SeDaSC methodology encrypts a file with a single encryption key. Two different key shares for each of the users are generated, with the user only getting one share. The possession of a single share of a key allows the SeDaSC methodology to counter the insider threats. The other key share is stored by a trusted third party, which is called the cryptographic server. The SeDaSC methodology is applicable to conventional and mobile cloud computing environments. We implement a working prototype of the SeDaSC methodology and evaluate its performance based on the time consumed during various operations. We formally verify the working of SeDaSC by using high-level Petri nets, the Satisfiability Modulo Theories Library, and a Z3 solver. The results proved to be encouraging and show that SeDaSC has the potential to be effectively used for secure data sharing in the cloud.
译文
摘要-云存储是云的应用, 它便利组织,可使其自由的建立内部数据存储系统。但是, 云存储会引起安全问题。在群共享数据的情况下,这些数据既面临云特定的内部威胁, 也面临常规内部威胁。合法但恶意用户对组内共享安全信息的威胁一个重要的研究问题。本文提出了云中安全数据共享(
SeDaSC
) 方法, 该方法提供: 1) 数据的保密性和完整性; 2)访问控制; 3)不使用计算密集型重加密的数据共享(转发); 4)内部威胁安全; 5) 向前和向后访问控制。SeDaSC
方法通过一个密钥进行加密。为每个用户生成两个不同的共享密钥, 并只给用户分发其中一个密钥,这种机制使得SeDaSC
方法可以来应对内部威胁。另一个共享密钥由受信任的第三方存储, 该第三方称为加密服务器。SeDaSC
方法适用于传统和移动云计算环境。我们实现了SeDaSC
方法的工作原型,并根据各种操作中花费的时间对其性能进行评估。我们通过使用high-level Petri nets
(高级Petri 网)、the Sat- isfiability Modulo Theories Library
(可满足的模流理论库)和一个Z3 solver
(Z3 解析器)正式验证了
SeDaSC 的工作。结果是令人鼓舞的, 其表明 SeDaSC有可能有效地用于云中的安全数据共享。
论文结论
原文
The SeDaSC methodology has been evaluated for the following three different cases.
Key Generation: there is only one symmetric key generated for each file. However, the key shares are separately computed for every user in the group. The shares are computed at the time of file submission. We evaluated SeDaSC for time consumption in key generation. The time is computed for different numbers of users. We set the number of users to be 10, 20, 30, 40, 50, 60, 70, 80, 90 and 100. In general, the time consumption for key generation increases with the increase in the number of users. Nevertheless, the time for key generation varies between 0.004 and 0.00697 s. The time for key generation is a slight overhead that is only generated once at the time of file submission in the group. A newly joining member will only consume the time for the generation of key shares that would be nominal as is computed for only a single user.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8JCT5gA-1570444666396)(C:\Users\hzw\Desktop\各科作业\信息安全概论\信息安全概论论文\QQ图片20190611191751.png)]
Encryption and Decryption: We evaluated the time consumption during the encryption and decryption of the file with varying file sizes. The file sizes used were 0.1, 0.5, 1, 10, 50,100, and 500 MB. We have observed in Section III that the CS has to compute K before encryption and decryption. Therefore, the time to compute K is also compared with the total encryption and decryption times. The purpose is to observe the time overhead of the key computation over the total encryption and
decryption times. The results for encryption and decryption are highlighted in Figs. 8 and 9, Fig. 8 shows that, as expected, the time for encryption increases with the increase in the file size. However, the time for the computation of K almost remains constant with negligible change, this is because the time for the computation of K is independent of the file size. The comparative analysis shows that, with smaller file sizes, the percentage of the key computation time is high in comparison with the total encryption time. However, with the increase in the file size, the proportion of the key computation time in the total encryption time decreases rapidly.It is also noteworthy that the total key computation time ranges between 0.012 and 0.018 s.
Fig. 9 illustrates the results for decryption. The results show the similar trend for decryption
File Upload/Download: We also evaluated the SeDaSC methodology on the basis of the total time consumed to upload/download a file to/from the cloud. in general, the time to upload the data increased with the increase in the file size. However, in some cases, the marginal increase in the file upload time was small that may be due to the network condition at various times.
We have compared the SeDaSC methodology with the schemes presented in [7], [9], and [11]. The comparison is based on the time consumption during key generation when the group is created and on the turnaround time for encryption and decryption. The comparison of key generation times is provided in Table IV. Table V shows the turnaround times for encryption and decryption. Both of these tables reveal that the SeDaSC methodology outperforms the other techniques due to the absence of heavy computations.
译文
SeDaSC
方法从以下三个不同的方面进行了评估:密钥的生成: 该方法为每个文件只生成一个对称密钥,但是,由于共享密钥对群中每个用户是单独计算的(在文件上传时)。 我们评估
SedaSC
在密钥生成上的花费,应该和用户数量有关。我们将用户数量设置为10-100个(10梯度)进行了实现), 实验结果如图7,总的来说,生成密钥所花费的时间随着用户数量的增加而增加。然而, 时间密钥生成在0.004到0.009秒之间。的时间对于密钥生成是一个轻微的开销, 它只在组中提交文件时生成一次。一个新的加入成员所消耗的生成时间,实际只对该单用户产生了时间消耗。加密和解密: 我们通过测试不同大小的文件来评估加密和解密过程的耗时,文件的大小分别使用了0.1, 0.5 ,1, 10, 50,100, and 500 MB。 我们从Section3 可知,加密服务器在加密和解密过程中需要每次计算密钥K, 所以我们把生成密钥K的时间也算在解密解密时间内。 这样也可以计算生成K时间占加/解密时间的比例。 实验结果如图8和图9所示:
图8: 像预期的那样,加密时间随文件的增大而变长。但是,密钥K的生成时间随文件增大而产生的变化是极小的,这时因为密钥K的生成和文件大小是相互独立的。经过比较分析显示, 当文件越小时,密钥生成时间在总时间中的比重就越大,但是,随着随文件大小增长,其比例迅速下降。另外,值得注意的是,总的加密解密时间在0.012 and 0.018 s之间。
图9: 解密实验结果和加密基本相同。
文件的上传和下载: 我们评估SeDaSC方法的总时间时,也考虑了在云端上传和下载文件所需的时间。钱哦嗯的来说,这个时间随文件Size增大而增长。 但是,在一些情况下,文件上传时间的小幅增加很小,
这可能会是由于不同时间的网络条件造成的。
我们已经对比了
SeDaSC
和[7] [9], [11]文献所提到的方案,对比基于密钥生成时的时间消耗和当组创建和加密和解密的周转时间两个方面。 密钥生成时间的对比在表IV中显示,表V展示了加密解密过程周转时间的对比。 两张表都表明了SeDaSC
方法的性能优于其他技术, 原因是缺乏大量的计算。
选取这篇文章的主要原因
客观原因
- 鉴于还没有开始专业课的学习,对密码学算法研究理解有限,为了读论文有更好的效果,所以选择了信息安全方向的论文。
- 虽然上过不少数学通识课程,但课堂所学只限于考试。且缺少对各领域数学知识的综合应用,所以在选择论文时,避开了引用大量未知数学定理证明算法的论文
- 该论文主要是向大家介绍了一种新的云端数据安全模型,重点在于提出新的解决方法及证明其可行性和优越性。
主观原因
老师上课时对我们介绍过经典的加密算法,自己也对这方面有浓厚的兴趣。
老师课上有提到了云端安全在以后的重要性,所以下去后,自己就想了解一些这方面的知识。
云端安全的重要性
随着企业信息化的逐步深入,各类数据,特别是自动化采集设备(如传感数据、监控数据、网络安全数据、设备状态数据等)生成的数据采集能力逐步提高,数据类型和来源更加多样化。于此同时,面对海量的数据,储存和利用也成为亟待解决的问题。在这个大背景下,云 提供了弹性、灵活和按需的存储和计算服务 。预算较高的组织现在可以利用优质的计算和存储服务, 而无需在基础设施和 maintenance方面进行大量投资,所以,云称为当下的热点。
凡事都具有两面性,云端在为机构提供方便自由的内部储存结构的同时,也暴漏出云端数据保密性和完整性偏低的各种问题,所以,一种可行的,高效的确保云端数据安全共享的方法亟待被提出。
文章的解读
关注的问题
随着云端服务器的快速发展,虽然方便了一些机构数据的处理,但也带来了云端数据安全性的问题。
主要有以下问题:
对数据和存储平台的控制丧失也导致云客户保持对数据(单个数据和通过公共云在一组用户之间共享的数据) 的访问控制降低。
数据的隐私和保密性也受到威胁
单一用户的数据保密问题
对于一组用户的情况,解决方法比较简单。我没只需要在数据储存到云端之前进行加密,就可以很好的保证云端数据的保密性。因为密钥的生成管理有用户端进行,不存在密钥泄露的问题。
组内共享数据的保密问题
当数据要在组之间共享时, 加密服务需要足够灵活, 以处理不同的用户, 赋予其不同的操作权限; 并以有效的方式管理密钥, 以保护数据机密性。区别于双方通信和单个用户的数据处理,组间数据可能会面对内部威胁,现有的、离开的和新加入的组成员可能会被证明是内部威胁, 这会影响到数据机密性和隐私。
显然,采用单一用户时的方法是不可行的,原因如下:
每个组内个体具有相同的密钥,这使系统失去对不同用户访问控制
forward access control(正向访问控制)【1】
当有用户离开组时,需要变更密钥,否则退出小组的成员仍然可以通过以前的密钥访问未来的数据,丧失数据的安全性。但是若有频繁的人员加入离开,使密钥变更过于频繁,密钥利用率低。
backward access control(向后访问控制)【2】
当新用户加入时,如果不对密钥进行更新,会使新用户可以对他加入前组内的共享数据进行解密,导致数据机密性丧失
由于缺少权限控制,任何组内成员都可以是操作数据。若恶意内部人随意对数据进行解密,修改/泄漏,加密,上传。就会导致数据保密性,真实性丧失。
提出的方法
针对上述问题,论文中给出了SeDaSC
方法,下面是其内容和原理
SeDaSC方法包括的实体
云: 只负责数据的上传和下载,数据会在上传前加密
CS(加密服务器):受信任的第三方, 负责密钥生成管理、加密、解密和访问控制
用户: 用户是存储云的客户端。适用于每个数据文件, 一个用户将是该文件的所有者, 而
集团中的其他人将是数据使用者。文件的所有者决定其他组成员的访问权限。根据决定授予和撤销访问权限的所有者。
SeDaSC方法的原理
分享数据: 作为受信任的第三方加密服务器,CS主要负责加密,解密,管理密钥,和访问控制。当文件拥有者上传数据时,CS会对每一份数据都随机生成对称密钥K,并对数据进行加密。然后,针对组内的每个用户,CS会将密钥分成两部分(单一部分不能单独重新生成密钥)。紧接着,原始密钥K会立刻通过安全覆盖【3】进行删除。生成的这些密钥对的一部分K1会被传输到组中的相应用户,而另一部分K2由CS中的与数据文件相关的ALC(访问控制列表)维护。用户部分密钥生成机制如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jl5Xcs9I-1570444666397)(C:\Users\hzw\Desktop\各科作业\信息安全概论\信息安全概论论文\QQ图片20190611192223.png)]
保存数据: ACL是通过数据所有者提交的参数生成的,加密的数据随后会被上传到云端进行储存。
访问数据时:希望访问数据的用户向CS发送下载请求。CS在对请求用户进行身份验证后,从用户处接收密钥的一部分,然后从云中下载数据文件。通过对用户的部分密钥K1和CS中保存的该用户的密钥K2进行操作重新生成密钥K。数据被解密并发送回用户。
对于新加入的成员, 添加请求会包含该用户能操作的文件ID及权限。对每个文件为单独其生成K1,K2, 将生成密钥的两个部分,并将用户添加到 ACL中。
对于离开的成员, 记录将从 ACL中删除。离开的成员不能自行解密数据,因为她只拥有密钥的一部分。同样,在组成员身份发生更改的情况下,不需要频繁的解密和重新加密。
解决了什么问题
- 使用部分密钥,每个用户都不能绕开CS对云端数据进行修改,确保了数据不受内部恶意人士的攻击
- SeDaSC方法可以通过对用户表的更改,来确定人员的变更,保护了数据不受 向前/向后访问控制 而产生的影响
- 控制了用户对数据的不同操作权限,限制了用户的读写权限,且用户数据的下载上传都要经过CS,保证了用户对数据的变更可以被跟踪。
- 用户端不使用计算密集型再加密(因为计算密集型操作是由 CS 执行), 减少了时间开销,减小了密钥管理的复杂度,拟可用于移动云计算。
- 解决了云端数据安全性问题
- 使用了
high-level Petri nets (HLPNs),theSatisfiabilityModuloTheoryLibrary(SMTLib), and a Z3 solver
进行了正式的建模,验证了其正确性和可行性
牵涉的技术要点
SeDaSC
设计- 从新领域面对的新问题出发,开拓性的提出了云端数据安全的新方案。 该新方案不仅解决了云端数据安全性的问题。同时解决了云端访问控制的缺失的问题,内部恶意人员等问题。并通过试验等,验证了其可行性。为云端数据安全提出了新的,高效的,易实现的解决方案。
- 该设计运用巧妙的密钥生成管理机制,有效的避开了大量密钥管理的难题,并且避免了计算密集的再加密,具有较高的性能和可行性
密钥安全性保证
密钥的安全性 反映 了该方案安全性的优劣,下面是该方法密钥安全性的基础
- 密钥生成为CS(加密服务器)随机生成,人为干扰较少。
- 密钥生成使用AES-256进行加密,且被分成两部分,由单独一部分密钥重建K难度大,被破解概率小
- 密钥生成使用后立即被删除,并进行安全覆盖。不储存在任何地方,也不经过信道进行传输,密钥被攻击获取可能性小。
文章的优势
文章脉络条例清晰。
1
2
3从问题入手 --> 分析问题 --> 提出自己的思路 --> 分析该领域他人研究 --> 自己方法
思路详解 --> 基础知识补充 --> 对比分析自己方法的优劣 --> 试验结果展示 -> 总结对复杂模型的具体化,利用列数据和图标形式,使所要说明的事物具体化。
使用高级Petri nets(HLPNs)、the Satisfiability Modulo Theory Library(SMTLib), and a Z3 solver. 对
SeDaSC
方法进行正式建模和验证。
主要的缺点
主要停留在理论层次的分析,试验环境及过程没有进行详细说明
可以理解的部分
-
SeDaSC
方法的文件上传 -
SeDaSC
方法的文件下载 -
SeDaSC
方法的文件更新 -
SeDaSC
方法的新用户组包含 -
SeDaSC
方法的离开用户的删除 - 加密算法,数据保密性的原理
- 密钥生成,加/解密,上传/下载个过程时间消耗的分析
不能完全理解的部分
无
不能理解且怀疑正确性的部分
- 对于算法的可行性
- 文中提到:
The SeDaSC methodology maintains a single cryptographic key for each of the data files.
,对于每一个文件(每一组数据)都会生成随机密钥,那么当数据组数足够大时,是否会为CS和用户的密钥管理带来问题,就如非对称加密证数认证,当证数数量极大时,对第三认证机构会有很大负担。
- 文中提到:
文章的改进空间
SeDaSC
方法的新用户组包含问题阐释不够清晰- 对于新用户的加入,他需要拥有原始密钥K, 对其生成的部分密钥K1, 以及存入CS中的K2, 而论文中曾提到,原始密钥K在每次生成使用后都会被删除,CS不会保留密钥K的信息。所有这里为新用户生成用户密钥K1时所需要的原始密钥K的来源并没有说清楚。
- 我个人觉得,新的用户由文件拥有者向CS发起request进行添加,这里请求参数要额外包含上拥有者自己的部分密钥(论文中请求参数并没有包含该项)。这时,CS会根据拥有者部分密钥生成原始密钥K,再由K生成新用户的用户密钥K1。
名词解释:
【1】: 访问未来数据的离开用户
【2】: 访问过去数据的新加如用户
【3】: 安全覆盖是一个概念, 其中内存中的位不断翻转, 以确保,内存中每个字节不会被记住和恢复