随着计算机和互联网的到广泛的应用,电子政务的出现大大提高了人们的工作效率,加快了信息的处理速度和传输速度。但是,随之而来的对电子信息的泄密、假冒、抵赖、篡改等诸多问题,开始困扰人们的工作、学习、生活。为此我们在对电子政务中应用属性加密机制实现访问控制进行研究的基础上,结合电子政务已有授权管理基础设施PMI,提出属性加密方案的部署架构。
一、属性加密机制的相关说明
1、访问控制
常见的访问控制模型有自主访问控制(DAC)、强制访问控制(MAC) 和基于角色的访问控制(RBAC)等。其中基于角色的访问控制的优点是管理简单,在角色数量相对稳定的情况下,用户和资源数量越大,越能体现基于角色访问控制的优势,非常适宜在局部的独立应用中使用。但现有的基于角色的访问控制模型不适宜在电子政务这样的大型分布式网络环境中应用,体现为:
1)电子政务中行政角色数量巨大,直接定义和维护困难;
2)行政角色间关系复杂,现有的角色表达方式使用不便;
3)用户同时拥有的行政角色较多,且角色变化频繁,维护用户和角色关联的工作量巨大。基于属性的访问控制(ABAC)能够很好地解决上述问题。
在基于属性的访问控制中,用户的政务属性由授权管理基础设施(PMI)以职属证书形式统一管理,授权规则由属性表达式描述,根据请求者的属性是否满足属性表达式进行裁决,实现访问控制。这种访问控制模型中,访问控制裁决执行者并不关心访问者是谁,只关心访问者是否具备相应的属性,可很好地将属性管理和访问裁决相分离,在电子政务中得到很好的应用。
2、属性加密
属性加密机制(attribute-based encryption,ABE) 是由基于身份的加密机制发展而来,属性加密方案将身份加密方案表示用户身份的唯一标识扩展成与用户相关的多个属性组成的属性集合。从唯一标识符扩展成属性集合,不仅是用户身份信息表示方式上的改变,属性集合能够非常方便地和访问结构相结合,实现对密文和密钥的访问控制。属性加密方案中结合访问控制策略,构造访问结构,只有用户属性集合满足访问控制策略时才能进行正确的解密操作,因而具有细粒度访问控制的能力。根据控制策略的不同,属性加密机制主要分为3类。
1)密钥策略属性加密(KP-ABE, Key-policyABE)将访问控制策略部署到用户私钥中,结合访问控制结构访问树(Access tree)产生用户的私钥。访问树描述用户私钥的权限,密文由属性集合计算而得,当且仅当密文的属性集合满足访问树时,用户才能解密密文。该机制主要适用于面向访问主体(用户)的授权场景。
2)密文策略属性加密(CP-ABE, Ciphertext-policy ABE)将访问控制策略部署到密文中,用户私钥根据一个属性集合产生,当且仅当用户的属性集合满足密文的访问控制策略时,用户才能解密密文。访问控制策略部署在密文中有很强的灵活性,信息的发送者可以自己决定采用什么样的访问控制策略限制对信息的访问,主要适用于面向访问客体(被保护对象)的授权。
3)双策略属性加密(Dual-policy ABE)是在同一个加密方案中实现密钥和密文两种访问控制策略,用户私钥由一个访问结构构造,密文也由一个访问结构构造,是密钥策略和密文策略属性加密的组合。
在电子政务应用中,人们更关心对信息数据实施保护,所以本文重点研究密文策略加密机制解决面向信息数据保护的授权和访问控制问题。
二、属性加密机制中架构的设计
1、电子政务中的授权管理和授权服务模型
在日常政务工作中,对用户的授权是根据其政务角色进行的,而政务角色是由用户拥有的政务属性集确定的。笔者在电子政务中实现了一个基于属性证书(AC)的授权管理基础设施(PMI)和授权服务系统,并在实际工作中取得了很好的应用效果。授权管理和授权服务架构如图1所示。
用户是具有特定政务属性集合的实体,用户的政务属性集合借助属性证书(AC)形式,采用授权管理基础设施(PMI)进行管理,由属性权威(AA)为用户签发属性证书。政务属性包括单位、部门、岗位、职务、职级、职称等。授权服务系统完成授权策略管理和访问控制裁决,用于制定访问控制策略,将属性条件表达式和对资源的操作权限相关联,以属性条件表达式的形式限定对资源拥有操作权限的用户集合范围,实现对资源的授权。授权控制判决点根据用户属性证书中的属性是否满足属性表达式的条件,给出裁决结果。访问控制实施点根据裁决结果实施访问控制。
基于政务属性表达式的访问控制模型可描述为(u,Au)和(con,p),其中(u,Au)表示将用户u与政务属性Au相关联,(con,p)表示将权限p授予属性条件表达式con描述的政务角色,当用户u的政务属性集合Au满足属性条件表达式时,用户u即拥有权限p。
基于政务属性表达式的访问控制模型是基于属性的访问控制在电子政务应用中的一个特例,具有以下特点:
1)实现政务角色的隐式定义和使用,通过属性条件表达式实现政务角色的隐式定义,通过用户政务属性集合满足表达式定义的条件,隐式关联用户范围,政务角色不必事先显式定义。
2)属性条件表达式具有通用性,统一的属性表达式可确保授权裁决的统一标准。该模型可解决电子政务应用中3个方面的问题:
1)电子政务应用繁多,因此角色数量巨大,角色是和应用相关的,不同应用中角色的定义不同,使得角色的直接定义和维护非常困难。该模型可以解决角色的直接定义和维护的难题。
2)电子政务用户同时具有多重角色,且角色变化频繁,维护角色关联的工作量巨大。通过隐式定义用户的属性变化,对应的政务角色也自动变化。该模型可减轻维护用户和角色关联的工作量。
3)该模型可解决跨部门、跨应用间的统一授权、统一裁决问题。
基于政务属性表达式的访问控制和属性加密机制拥有共性的用户属性集,可以用政务属性集生成用户私钥,把属性加密机制应用到电子政务中实现同样的访问控制策略。
2、属性加密方案的构成
以密文策略属性加密方案为例,介绍属性加密机制的组成6一个属性加密方案由4个算法组成,包括:
1)初始化算法Setup()。初始化算法以一个隐含的安全参数为输入,生成公共参数PK和系统主密钥MK,公共参数也就是系统公钥。
2)用户密钥生成算法Keygen( MK,S)。用户密钥生成算法通过输入系统主密钥MK和用户的属性集合S,生成用户关于属性集合S的私钥SK。
3)加密算法Encrypt( PK,M,A)。加密算法根据系统公钥PK,按照访问控制结构A描述的控制策略,加密文件M,输出密文CT。
4)解密算法Decrypt (PK,CT,SK)。解密算法输入系统公钥参数PK,用户私钥SK和密文CT,密文CT中包含了访问控制策略A,用户私钥SK由属性集S产生。如果S满足A,则解密密文CT,返回明文M。
基于属性的访问控制与属性加密机制中的属性集是具有共性的交集,所以基于属性的访问控制很容易引入属性加密体制,实现基于属性加密体制的访问控制。
3、属性加密机制的部署及应用流程
在电子政务中,结合现有的PMI授权管理架构部署属性加密机制,可实现基于密码的强访问控制。部署及应用流程如图2所示。
将属性加密方案中的初始化和用户私钥生成算法部署到属性认证中心AA上,在属性认证中心AA初始化时,执行初始化算法Setup(),生成系统公钥参数PK和系统主密钥MK。将系统公钥参数PK写入用户属性证书(AC)中,通过属性证书查询验证系统发布,以备使用时查询。系统主密钥MK由AA本地保存于安全的载体,用于生成用户私钥。用户申请属性证书时,由AA根据其职务属性集S调用密钥生成算法Keygen(MK,S),生成的用户私钥SK通过安全通道将SK传给属性证书注册审核机构ARA,由ARA写入用户的安全载体。
应用流程如下:信息的发布者根据信息的密级确定授权范围,制定访问控制策略A,通过调用加密算法Encrypt(PK,M,A)加密信息,将加密后的信息发到服务器以备用户查阅。用户访问信息时,先调用解密函数Decrypt(PK,CT,SK)对密文进行解密,当用户的属性集S满足访问控制策略A时,即可得到明文。
4、属性条件表达式与属性加密访问结构映射
属性加密中,访问结构是关键,其决定访问控制策略。
属性加密方案中,常用访问结构是访问树(Ac-cess tree)。访问树T的构造如下:
每一个非叶子节点由一个门限访问结构(k,n)组成,其中n是该节点的子节点个数,k是门限值。当k=1时,表示“或”门,当k=n时,表示“与”门。每一个叶子节点对应一个具体属性,当一个属性与该叶子节点属性相同时,表示该属性满足该叶子节点。节点z的子树记为L,如果一个属性集合S满足一个子树Tx,记为Tx(S)=1。当一个子树的对应子树满足的数目达到该子树节点门限值时,认为满足该子树。因此可以递归计算一个属性集合是否满足一个访问树,由此访问树就可以映射出属性条件表达式,如“部门=办公室”and“职务=处长”or职称一“高级工程师”,如图3所示。同样,通过访问树的构造实现“与”、“或”逻辑组合,可以表达更复杂的访问控制策略。
三、电子政务中属性加密机制的应用实验结果
以cpabe工具包为基础,结合属性证书认证中心AA实现了一个原型系统,并进行了实验测试。测试中,由原型系统为3个用户a、b、c分别颁发3个用户私钥SKa、Sl<6和SKc。用户a的属性集为“部门=人事处,职务一处长,职称=工程师”;b的属性集为“部门一人事处,职务=科长,职称=高级工程师”,c的属性集为“部门=人事处,职务=副科长,职称一助理工程师”。用访问控制策略“部门一人事处”and“职务一副处长”or“职称一高级工程师”加密一个文件得到密文。3个用户分别用自己的私钥解密密文,测试结果表明,因为a和b的属性集满足上述控制策略,所以它们的私钥可以解密密文,得到正确明文,而c的解密请求被拒绝。
测试结果表明,基于属性的加密机制可以应用于电子政务实现细粒度的访问控制。
小知识之DAC
即数/模转换器,一种将数字信号转换成模拟信号的装置。 DAC的位数越高,信号失真就越小。声音也更清晰稳定。