云场景中的数据保护
摘要
本文概述了在数据存储、处理或管理于云中时需要应对的主要数据保护挑战,并讨论了应对这些挑战的新兴方法和发展方向。
云计算中的数据安全与隐私
“云”已成为一种成功的范式,使用户和企业能够访问近乎无限的资源,在可靠且稳定的基础设施中存储、管理和处理数据,甚至相较于“本地”解决方案还具有经济优势。在带来显著便利的同时,云也引入了新的安全与隐私问题。
事实上,当在云中存储或处理数据时,数据所有者会失去对其数据的控制,可能使数据暴露于未授权方,包括本身可能不完全可信的云服务提供商。尽管通常认为云服务提供商在保障基本安全防护方面是可靠的(例如防止第三方对数据和资源的未授权访问),但它们可能并不被认为值得信赖来确保所存储或处理数据的机密性(即有权知晓内容)或完整性。
为了确保云环境中的安全与隐私,需要应对诸多挑战。在本文中,我们特别关注与数据管理相关的挑战[18,19,21,34,35]。当然,云场景中还存在其他安全与隐私问题(例如多租户和虚拟化、容错管理[26–28]),但我们不对此展开讨论。
静态数据保护
静态数据保护涉及存储中数据的安全性和机密性。存储在外部云服务提供商的数据需要防范第三方以及云服务提供商自身的未授权访问,因为云服务提供商可能并不可信,其可能会知晓所存储数据的内容或对这些数据的访问行为(诚实但好奇的提供商)。保护存储数据的机密性通常依赖于加密。
在云场景中,要防止云服务提供商查看数据,必须将加密密钥保留在客户端的信任边界内。换句话说,加密应在客户端进行,在将数据传输到云之前完成加密。
由于加密会使查询评估和应用执行的成本更高或无法始终实现(参见下一个关于“外包数据的细粒度访问”的挑战),因此也提出了基于碎片化的解决方案(例如,[1,6–10])。当敏感信息并非单个数据值本身,而是这些数据值之间的关联时(例如,在医疗数据库中,患者姓名和疾病可能被视为公开信息,而每位患者姓名与其所患疾病之间的具体关联可能被视为敏感信息),碎片化技术允许不使用加密。在这种情况下,可以通过将具有敏感关联的数据值存储在不同的碎片中,从而打破这种关联,阻止未授权方获取该关联信息。例如,在上述例子中,可以将患者姓名存储在一个碎片中,疾病存储在另一个碎片中。
为了确保通过碎片保护的敏感关联无法被重建,可将碎片存储在相互独立(且不通信)的云服务提供商处,或确保碎片之间不可链接。碎片化技术将加密限制于自身即为敏感的数据值,甚至在某些情况下(例如混合云)完全避免使用加密,前提是可假定存在可信方提供一定的存储/计算支持。采用碎片化的优势在于数据以明文形式存在,这使得云服务提供商能够对数据进行条件评估,从而更好地支持查询处理。除了数据机密性之外,数据完整性(即存储数据的真实性和完整性)和可用性(即云服务提供商满足用户希望实施的数据存储和访问要求)也是需要解决的另外两个方面[3,29]。
外包数据的细粒度访问
如上所述,云服务提供商不能完全访问其存储的数据,这些数据可能已被加密或分片。此外,当数据被加密时,加密密钥应保留在客户端的信任边界内,以确保数据对存储和处理提供商本身也保持机密性。因此,提供商无法在查询执行过程中解密数据,使得条件评估和查询支持变得困难(甚至不可能)。近年来,研究与开发领域一直关注如何在加密数据上实现对外包数据的细粒度访问(即检索满足特定条件的数据),并已开展了多项研究。
所分析的技术包括:支持基于关键词搜索的密码学技术(例如,[4])、同态加密(例如,[22])、使用支持不同操作的多层加密[33],以及附加到数据上的元数据(索引),用于实现细粒度的信息检索和特定类型的查询执行(例如,[5,25,39])。此类研究中的主要难点在于查询处理支持与防止此类支持泄露原本由加密(或分片)保护的敏感信息之间的权衡。
Selective data access
存储在云中的数据可能受不同访问控制策略的约束,这意味着不同用户可能需要对外包数据享有不同的访问视图。实施授权以提供此类选择性数据访问在云环境中,这使得实现访问控制策略尤为困难,因为一方面数据所有者显然无法自行提供此类执行(这相当于需要拦截对数据的每一次访问),而另一方面,云服务提供商也可能无法被完全信任来执行此类操作。此外,策略本身可能是敏感的,或可能泄露有关数据内容的信息。目前有两条主要的研究路线致力于研究在云中实施访问控制策略的解决方案。
第一条研究路线,在基于属性的加密(ABE)[24,41]这一通用框架下,基于公钥加密技术,通过使加密过程依赖于某些属性值(这些属性用于表征被授权用户)来实施授权。这样,只有当用户的属性集合与加密数据关联的属性条件匹配时,该用户才能访问数据。ABE支持依赖多种条件的授权实施,从而提供表达能力强的授权机制。然而,这类方法的主要局限在于评估成本较高(由于使用了公钥加密),以及难以有效实施撤销机制。
第二条研究路线称为选择性加密[12,13],其基于对称加密技术,通过将授权策略转换为等效的加密策略来实施授权,使得数据可以使用不同的加密密钥进行加密,并以一种方式向用户分发密钥,使其能够解密且仅能解密其被授权访问的数据(即保证完整性与正确性)。通过对所使用的加密密钥进行层次化组织,可以在确保数据仅保留单一副本且每位用户只需持有一个密钥的前提下,实现此类授权(提供对数据的不同视图)。实际上,通过将密钥合理地组织成层次结构,并利用令牌实现密钥派生,用户可以从自己的密钥推导出所有且仅有权限访问的数据所需的解密密钥。选择性加密由于仅使用对称加密,因而提供了高效的访问控制机制。同时,用于密钥派生的公开令牌可存储在云环境中。对访问策略的变更(如授权授予或撤销)可通过叠加加密便捷地实施,即数据所有者可在云服务提供商的协作下,要求后者在服务端对已由所有者加密的数据资源再增加一层加密,从而实现授权变更。叠加加密使得数据所有者无需从云端重新下载、重新加密并重新上传已有数据即可完成授权变更的实施。
查询隐私
除了数据本身之外,某些场景还可能要求对数据访问提供保密保证。这类场景的一个经典例子是医学百科全书:尽管百科全书本身并不敏感,用户的身份(相对于存储服务提供商而言)也可能不敏感,但用户查询的具体条目可能被视为机密,因为它们可能泄露其本人或与其关系密切之人的健康状况。当存储的数据已加密时,同样可能需要类似的查询保密保证(因为知晓访问行为本身甚至可能破坏所存储数据的机密性)。因此,问题在于如何保证访问保密性,即确保某次特定访问所针对的具体数据不被泄露,as模式机密性,即两次访问指向相同数据的事实。我们将这些新的保密保证称为查询隐私,其目标是在支持对数据进行高效访问以实现查询功能(例如索引搜索和范围条件评估)的同时,保持这种隐私性。
提供访问隐私的经典解决方案,如私有信息检索方案,虽然提供了较强的保密保证,但访问功能有限,且存在较大的性能开销,使其难以适用于实际场景。在较新的方法中,路径 ORAM和洗牌索引提供了更好的性能,因而更具实用性。这两种方案均基于特定的索引结构,通过依赖本地缓存、动态重新映射和延迟写入(路径ORAM)[37]或通过依赖缓存、覆盖搜索以及每次访问时对数据进行动态重新分配的洗牌操作(洗牌索引)[16,17]来实现保护。目前尚未解决的问题包括如何进一步降低性能开销、提供更多查询支持,以及确保更强的保密保证。
查询结果完整性
除了机密性之外,当相关云服务提供商可能并非完全可信时,数据的完整性也可能面临风险。虽然对于存储完整性可以采用传统技术(如链式结构和签名),但确保动态检索的数据或计算结果的完整性仍具有挑战性。
评估查询结果或计算的完整性需要为用户提供一种能力,以验证云服务提供商返回的结果是完整的(即基于全部数据集合进行计算)、正确的(即基于真实数据并正确执行了计算)以及新鲜的(即基于数据的最新版本进行计算)。保证查询结果完整性的方法可分为确定性方法(例如,[30–32])和概率性方法(例如,[15,23,36,38,40,42])。确定性方案使用认证数据结构(例如签名链、Merkle哈希树、跳跃表)或基于加密的解决方案,仅能检测在其所定义属性上发起的查询的完整性违规。概率性方案则基于在数据集中插入虚构信息或校验项,若这些信息在查询结果中缺失,则表明发生了完整性违规。概率性方法可对任意查询检测完整性违规,但仅能提供概率性保障,意味着可能存在误报负结果。在新兴的分布式计算场景中,涉及多个云服务提供商或工作节点(例如,[11]),查询结果完整性的评估问题变得更加复杂。
通过选择性共享进行协同计算
在多种场景中,云中的计算或查询执行可能涉及由不同机构(数据所有者)控制并存储在不同服务提供商处的数据,这些机构可能对其数据施加不同的访问和共享限制。一些方法已针对参与方之间无法共享数据、仅能获知查询结果的环境下的协同计算问题提出了方案(例如,安全多方计算或主权连接[2])。这些解决方案基于加密技术与以下方法的结合使用可信计算基的可能参与。其他方法考虑了数据可以选择性地与其他方共享的场景,不同的数据所有者和/或云服务提供商需要协作,并为查询执行有选择性地与他人共享信息。所解决的问题是在这种情况下进行分布式查询执行(这必然涉及相关各方之间的数据交换),使得数据仅对授权方可见,且不会发生信息的不当共享或泄露[14,43]。在此背景下,正在进行的研究正在探索用于表达和实施共享策略、调控查询执行中的信息流,并高效计算查询执行计划以确保没有信息被不当释放或泄露的新技术。其他方法则解决了在查询评估过程中保护查询目标不被参与的云服务提供商获知这一正交问题(例如,[20])。
281

被折叠的 条评论
为什么被折叠?



