基于属性加密(ABE)
前言:海王杨师傅为了防止女朋友们轮流查手机,他将他和每一位女朋友的合影照片都存储到了云服务器中,但每一位女朋友都想看到自己和杨师傅的合影照片,杨师傅要怎么能让她们看到自己的照片而不是其他女朋友的照片呢(下文会介绍,这是CP-ABE的一个应用场景)
-
ABE是什么?
ABE实现的是密文的访问控制,无论是用户想要查看特定数据,还是数据只对特定用户开放,都可以使用ABE来实现。这两中访问控制需求衍生出本节的两个重要的ABE实现方案。 -
传统的访问控制
1)传统的访问控制有哪些?
2)三者的含义?自主访问控制和强制访问控制的含义参考数据库的相关知识进行理解。这里为了讲述的完整性,做一下简单的搬运。
自主访问控制,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将拥有的存取权限转授给其他用户,自主访问控制非常灵活。
强制访问控制,每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意对象,只有具有合法许可证的用户才可以存取,强制访问控制因此相对比较严格。
基于角色访问控制 ,没找到相应的官方解释,可以理解为角色与权限进行关联,对用户进行角色归类管理。(与本节要讲的ABE有类似之处,下文会做重点区分)
3)传统的访问控制存在的问题?
传统的访问控制存在问题的本质是:数据库管理员拥有最高级别的权限。这将成为攻击者的重点攻击目标。在密码学的很多概念中,具有最高权限的都是密钥生成中心,除此之外,其他的参与角色都是不可信任的。 -
ABE的两种方法
1)KP-ABE的应用场景
上面的两句话描述过于抽象,此处应该借助应用场景更好的理解。
KP-ABE适合于加密方与访问控制方分离的场景,能够实现用户对特定数据的访问。
上图中的传感器,可以采集声音、温度、震感等三种信息,我们可以将其视作单一属性1,2,3。由于单一属性天然不具备访问策略,所以采用以明文属性做公钥的KP-ABE加密方式。数据中心负责存储加密的三种信息(声音、温度、震感)。用户如果需要访问某些信息的话,需要向密钥生成中心获取相应的访问控制策略,这样的访问控制方式,便于用户的增减,而不需要改变传感器的设置。用户拿到相应的私钥可以向数据中心获取数据。
2)CP-ABE的应用场景
CP-ABE适合于加密方与访问控制方一体的场景,能够实现数据对特定用户的开放。
上图中的管理员身份其实叫文件上传方更加合适。管理员会让读者误会管理员是不是具有最高级别的权限。其实这里的文件上传方并不具备解密能力(因为他不具有解密者的属性)。
文件上传方选择访问控制策略作为公钥加密文件并上传,经理、职员等信息检索方具备的属性满足访问策略的时候,就能够用私钥解密密文。
如果有耐心的读者看到了这里的话,其实已经可以明白基于角色的访问控制加密和CP-ABE的区别了,在CP-ABE的方案中,文件的上传方没有数据管理员那么高的权限,它只能上传数据,并通过访问策略规定数据的查看人。文件的上传方除了掌握自己上传的文件之外,并不能知道其他文件上传方的文件(除非他具有相应的属性)
-
CP-ABE的实例
如果有小伙伴感兴趣的话,我再进行补充吧。这部分解释的话打公式有点废键盘的。 -
ABE小结