论文部分内容阅读
随着云计算的迅速发展,具有多租户特点的SaaS应用以其低费用、规模效益的商业运营模式和单实例、按需定制的软件交付特点,为越来越多的企业和服务商所采用。在SaaS应用中,只要租户愿意,任何可以存放在本地机器上的隐私数据都可以存放到云中,如健康档案、财务信息等等。然而,由于租户数据存储在服务商提供的云服务器中,导致租户对其隐私数据失去了直接控制,使租户在云端的隐私信息面临着被服务商恶意泄露的极大风险。针对SaaS应用中存在的隐私保护问题,我们在前期研究工作中提出了基于数据垂直切分的隐私保护方法,根据租户提出的不同隐私约束,将不违背租户隐私约束条件且关联度较高的属性垂直切分到同一分块中,并将分块间的关联关系进行加密混淆。该方法在保证租户隐私安全的同时大大提高了对隐私数据的操作效率,此外还可以根据数据分块间的关联关系重构隐私数据的原始逻辑结构,避免了隐私保护带来的数据失真问题。然而在前期研究工作中,我们并没有考虑分块后的隐私数据放置问题以及租户数据在业务操作过程中面临的隐私泄露风险。对于隐私数据放置当前存在如下问题:(1)租户分块策略的不同导致不同租户需要使用不同的数据模式对同一逻辑关系进行存储,随着租户数量的增多数据库中表的数量将会逐渐膨胀,严重影响数据库性能;(2)数据分块的放置策略对隐私保护等级和应用性能具有重要影响,分块放置越分散则隐私保护程度越高但应用性能也会随之降低,反之亦然,因此如何将关联程度高的分块放置到同一节点成为隐私数据放置的关键。对于隐私数据的业务操作当前存在问题如下:(1)随着SaaS应用的持续运行,租户数据的插入、删除和修改等业务操作将会影响底层数据存储的分布状态,使分块间的关联关系因数据分布的不均匀而面临极大的泄露风险;(2)攻击者也可以通过局部时间内各分块的操作日志以及对应的数据状态分析出部分隐私信息。因此针对隐私保护在SaaS应用中存在的上述问题,文本从以下两个方面进行了研究:1.针对隐私数据的放置问题,本文提出一种隐私数据两阶段放置策略,第一阶段检测当前已有的租户数据放置策略,对新增租户进行数据模式匹配,提高租户对数据模式的共享程度,减少数据库中私有表的数量;第二阶段综合分块关联程度、节点负载以及租户SLA等因素,基于贪心算法对第一阶段匹配失败的租户数据进行放置,将关联程度较高的分块尽量放置到同一节点,同时确保数据节点间的数据均衡。2.针对租户数据在动态环境中面临的隐私泄露问题,本文提出一种基于数据垂直切分的动态数据隐私保护机制,对于插入和修改操作,提出列属性扩展机制,使用列属性扩展表存储新产生的隐私数据,列属性扩展表通过添加干扰属性实现了对表中数据的有效保护;对于删除操作,提出关键分块概念,通过保留关键分块防止攻击者通过删除痕迹窃取隐私信息;对于伪造数据量问题,提出水平分组合并机制,减少伪造数据产生的计算和存储代价。通过上述研究,本文实现了对隐私数据的合理放置以及在业务操作时对租户隐私信息的保护,并通过相关实验验证了算法的可行性和有效性。