大容量存储设备身份认证与数据保护方案研究
2018-07-14韩刚李辉
韩刚, 李辉
(西北工业大学 电子信息学院, 陕西 西安 710072)
通用串行总线(universal serial bus,USB)是连接计算机系统与外部设备的一个串口总线标准,也是一种输入输出接口的技术规范,被广泛应用于外围设备与个人电脑连接过程之中,例如键盘、鼠标、打印机以及大容量存储设备(mass storage devices,MSD)等。USB重要的优势包括高可用性、高数据传输率以及连接便利性等。但从应用层面讲,大容量存储设备存在着重大的安全隐患,例如非授权用户能够随意非法读取并复制存储器中的明文数据;其次,大容量设备在通过USB与个人电脑连接过程中,攻击者能够轻易截获此过程中的数据。因此,对于MSD-USB用户身份的认证以及MSD中明文数据的保护至关重要。
如今很多学者提出了相应的保护方案。2004年Ku和Chen等人[1]仅仅利用口令提出了一种认证方案,但随后Yoon和Ryu等人[2]发现Ku等人的方案对于预防平行会话攻击非常脆弱,因此Yoon等人提出了一个增强版的认证方案。2010年Yang等人[3]提出了一种利用人的生物特征(比如指纹等)生成口令的方案,用于提升安全性。2013年Lee和Chen等人[4]基于生物特征以及第三方认证中心实现了一种认证协议。但2014年,He等人[5]发现Lee等人的方案不能有效抵抗口令猜测攻击、拒绝服务攻击以及重放攻击等,于是He等人提出了一种基于三方认证的安全协议。2015年Giri等人[6]提出了一种基于口令、生物特征以及第三方认证的安全协议,该协议能够有效实现用户身份认证以及保护MSD中的数据安全。
上述方案将研究重点放在了用户身份认证以及保护MSD中数据安全上。但可以从以下几个方面拓展MSD的应用场景:①能否实现对MSD-USB用户身份的规范化管理,例如某个MSD设备属于某一个用户组,只有属于该用户组的用户才能读取并利用该MSD设备中的文件,因此需要实现从该用户组中删除或添加一位用户;②能否实现对某个MSD设备中文件的细粒度权限控制。这类似于Linux系统中root用户与普通用户的权限不一样,但与Linux系统中的权限类型又有点不同,只有拥有特定权限的用户解密该MSD设备中对应隐私密文数据。
因此,本文所做的工作包括以下几点:
1) 结合相关密码技术,将MSD设备的应用场景进一步拓展,提高了MSD设备的实际应用价值;
2) 采用新的认证协议,有效地实现了用户身份认证,能够有效防止重放攻击、中间人攻击等等;
3) 采用基于属性加密技术实现了对MSD设备用户组的有效管理,实现了向该用户组中删除或添加一位用户;
4) 实现了对某个MSD设备中隐私文件的细粒度权限控制。用户组中不同的用户拥有不同的权限,拥有哪种权限才能解密具有对应权限的隐私密文文件。
1 基础知识
1.1 模糊提取器
模糊提取器是由安全概略和强提取器来定义的,先给出安全概略的定义,安全概略是由一对随机过程〈SS,REC〉定义的,SS是概略过程,REC是恢复过程[7]。
定义1(随机提取器)一个(k,ε)的提取器是一个函数EXT:{0,1}n×{0,1}d→{0,1}m,对于任意定义在{0,1}n上具有最小熵k的分布X,分布EXT(X;Ud),也就是函数的输出ε接近{0,1}m的均匀分布Um。直观上来说,随机提取器借助一个正随机的种子把最小熵从随机变量X中提取出来[7]。
定义2(安全概略)一个(M,m,m′,n)的安全概略是一对随机过程〈SS,REC〉,这对随机过程具有如下的几个性质[7]。
1) 概略过程:SS输入M上的一个元素w,输出s∈{0,1}*
2) 恢复过程:REC输入的元素有2个,w′∈M,s∈{0,1}*。如果w和w′的统计距离小于t,那么就有REC(w′,SS(w))=w。
安全概略提供以下几个安全保证,对于任意M上的分布W,只要W上的最小熵大于m,安全概略可以保证其输出位串s后,W的条件最小熵大于等于m′,也就是H∞(W|SS(W))≥m′,有了安全概略的概念之后,接下来就可以定义模糊提取器的概念了。
定义3(模糊提取器[7])一个(M,m,l,t,ε)模糊提取器是满足以下特性的一对随机过程〈GEN,REP〉。
1) 产生过程:GEN输入w∈M,输出s∈{0,1}l上的一个随机串R和{0,1}*一个帮助串P。
2) 重生过程:REP输入w′∈M和P∈{0,1}*。如果dis(w,w′)≤t,GEN(w)=
模糊提取器提供以下保证:如果定义在M上的随机变量W的最小熵大于m,那么,即便敌手可以观察到P,R依旧非常的接近于均匀分布。或者说,如果GEN(w)=〈R,P〉,那么dis((R,P),(U1,P))≤ε。
引理1(从安全概略中得到模糊提取器)保证(SS,Rec)是一个(M,m,m′,n)的安全概略,并且Ext是一个(M,m,l,t,ε)的强提取器,那么下面的(GEN,REP)是一个(M,m,l,t,ε)的模糊提取器[8];
1)GEN(w;r,x):设定P=(SS(w,r),x),R=EXT(w,x),输出为(R,P)。
2)REP(w′,s,c):恢复出w=REC(w′,s),输出R=EXT(w,c)。
模糊提取器的原理框图结构如图1所示
图1 模糊提取器框图
1.2 权限控制树Tpr
本文通过权限控制树Tpr描述访问控制策略,权限树中的每个叶子节点代表某个属性,每个非叶子节点代表一个阈值门。文中所采用的权限控制树类似于操作系统中的权限控制,例如用户a可以访问文件f,而用户b则不能访问文件f。
文件拥有者将文件存储于MSD之前,会根据某种属性集合在文件中定义某种权限控制树Tpr,如果某个用户的属性满足该特权树Tpr,那么该用户便被授予该特权P。给定一个权限控制树,如果numx是结点x的孩子结点的数量,kx是x的阈值且0 图2 权限控制树 如图2所示为某种权限控制树,每个叶子结点均用某个用户属性表示,非叶子结点为设定的阈值门。该权限控制树的满足运算规则如下,S代表着用户属性集合,Tpr代表某个权限控制树,x代表权限树中的某个结点。如果用S满足Tpr或结点x,则有Tpr(S)=1或x(S)=1。通过递归运算便可计算出Tpr(S)。如果x为叶子结点,当且仅当att(x)∈S时,则x(S)=1;如果x为非叶子结点,当结点x至少有kx个孩子结点返回1时,则x(S)=1。对于特权树Tpr的根结点Rpr来说,只有当Rpr(S)=1时,Tpr(S)=1。 定义4G0是素数阶为p的循环群,g是G0的生成元,运算e:G0×G0→GT映射拥有如下3个性质: 1) 双线性:e(ga,gb)=e(g,g)ab,a,b∈Zp; 2) 不可退化性:存在x,y∈G0使得e(x,y)≠1; 3) 对称性:对于所有的x,y∈G0,存在e(x,y)=e(y,x)。 双线性对累加器是一种高效的数据认证机制,该机制对于任意大小的集合输入提供一个固定长度的消息摘要,并且为集合中的每一个元素提供一个固定长度的证据,该证据可以用来验证集合中的成员身份。 (1) 图3为本文提出的系统模型结构。图3a)表示用户注册模型,图3b)表示认证与文件加解密模型。 图3 系统结构 1) 用户添加:如图4所示,属于该MSD用户组的用户人数为2,添加1位用户后属于该用户组的用户人数为3。 图4 用户添加 2) 用户删除:如图5所示,属于该MSD用户组的用户人数为3,添加1位用户后属于该用户组的用户人数为2。 图5 用户删除 在这里先定义一种表达式用于表示用户u对文件f拥有解密权限。例如,uf表示用户u能够解密文件f;u≻f表示用户u不能够解密文件f。图6为MSD中文件细粒度解密权限结构关系图,图中显示该MSD中共包含4份数据文件f1,f2,f3,f4。用户对于文件的细粒度解密权限关系可表示为uaf1、ubf2,f4、ucf1,f4、udf2,f4、uef3。反之,只要不满足此关系,用户便不能解密相应的文件。 图6 文件细粒度解密权限关系图 图6所示的每一个文件中均包含了某种访问策略,而该策略是文件上传者利用某种用户属性集合生成的权限树Tpr,这里的pr表示某种特权。例如,文件f1与f2中分别包含着权限Tpr1和Tpr2,则说明用户ua拥有权限Tpr1;用户ub则拥有权限Tpr2,那么uaf1,ubf2,但ua≻f2,ub≻f1。 图3a)为用户注册模型,在此阶段,用户U与认证服务器AS按照如下算法过程实现: 1) U、AS、MSD分别存储自己的私钥skU,skAS,skMSD并发布自己的公钥pkU,pkAS,pkMSD。 用户U为了向MSD证明自己是合法的用户,则该用户U需要向认证中心获得授权,当用户将MSD插入个人终端后,认证过程执行,具体步骤如下所述: 1) 用户U提供IDU、生物特征BU以及时间戳TM,并将cU-AS=ENCpkAS[IDU‖BU‖TM]发送给AS。 2) AS执行DECskAS[cU-AS]后,获得IDU、生物特征BU以及时间戳TM,计算得到cAS-U=ENCpkMSD[IDU‖BU‖TM],并将cAS-U发送给用户U; (3) 若TM*-TM>ΔT,则认证失败;否则,认证通过。 只有当第(1)、(2)以及(3)步均成立时,则用户的身份认证通过;否则用户身份认证失败,MSD将立即与个人终端断开连接。 以上1)~4)步有效保证了U的合法身份,而U是否属于该MSD用户组需要通过第5)步验证。 MSD判断e(accU,ACCwitness)=e(ACC,g)是否相等,若相等则MSD用户组用户成员身份验证通过;否者认证失败,则MSD将立即与个人终端断开连接。 进过以上1)~5)步,MSD验证了用户的身份,同时又验证了MSD的用户组身份。 MSD用户组中的用户集合表示为User={U1,U2,…,Un},生成的属性累加值集合为acc={acc1,acc2,…accn},添加一位用户Un+1进入用户组中,关于用户Un+1生成属性累加值accn+1;则新的ACC*=ACC(accn+1+s);删除用户组中的一位用户Ui,则新的ACC*=ACC(acci+1)-1。 当U经过3.2小节的身份认证之后,能够按照如下算法过程以加密形式上传文件至MSD中。 1) U采用对称加密算法以及对称密钥k(例如DES)加密文件F,生成的密文C=ENCk(F); 这里采用多项式插值法实现Shamir的密钥分享协议。对于Tpr中的每一结点x选择一个多项式qx,设置多项式的次幂dx比设定的阈值kx小1,即kx=dx+1。从Tpr的根结点Rpr开始,随机选取多项式qx的系数,并使得qRpr(0)=t,采用Shamir密钥分享协议,将密钥逐级分享下去。对于其他结点x,每个结点的多项式qx系数随机选取,而常数项为qparent(x)(index(x)),从而使得qx(0)=qparent(x)(index(x)),这里的parent(x)表示x的父结点。最终生成此文件的权限控制树Tpr。最终U将{C,s,Tpr}存储于MSD中。 当用户U进过4.2小节的身份人认证之后,便能通过如下算法过程访问MSD中的文件。具体过程如下所示: 1) U为了解密文件F,首先U的属性必须满足权限控制树Tpr,根据2.2小节权限控制树的定义,权限控制树的每个叶子结点代表用户的每个属性,而非叶子借点代表着一个阈值门,因此只有用户的属性满足该权限控制树时,根据Shamir的原理,最终恢复出隐藏在权限控制树Tpr的值t; 2) MSD执行k=t⨁s,F=DECk(C),最终获得文件明文F。 3.2小节用户身份认证过程中,U需输入个人生物特征(比如指纹等),但根据相关资料[10]显示,同一个人在不同时候获取的个人生物特征会有一定的差别,因此在该认证阶段,U的身份可能会认证失败,导致MSD拒绝提供服务的事件发生。但本方案采用了模糊提取器,U的个人生物特征采集后经过了模糊提取器算法处理,能够保证认证阶段采集的生物特征值与系统建立阶段采集的生物特征值一致,因此本方案能够抵抗拒绝服务攻击。 在3.2小节说明用户U的认证过程之中,用户U、认证中心AS以及大容量存储设备MSD均分别保存了自己私钥skU、skAS、skMSD,同时各自发布了公钥证书。 1) 用户U提供IDU、生物特征BU以及时间戳TM,并将cU-AS=ENCpkAS[IDU‖BU‖TM]发送给AS,因此在该阶段中假设攻击者A获取了cU-AS,A也无法解密该密文,因此无法修改其中的身份信息。 2) AS执行DECskAS[cU-AS]后,获得IDU、生物特征BU以及时间戳TM,计算得到cAS-U=ENCpkMSD[IDU‖BU‖TM],并将cAS-U发送给用户U。当AS解密cU-AS中的用户身份信息后,重新利用自己的公钥加密用户身份信息,重新生成cAS-U发送给用户U。因此在此过程中,假设攻击者A获取了cAS-U,A也无法解密获得用户的身份信息。 最终进过上述三步用户身份认证过程,攻击者A不能获得任何用户信息,也不能伪装成用户U执行用户伪装欺骗攻击。 在3.2小节用户身份认证过程中,U向AS以及MSD均发送了系统当前时间TM,过程如下所示: 1) 用户U提供IDU、生物特征BU以及时间戳TM,这里的时间戳TM发送给了认证中心,并对该时间戳进行了加密cU-AS=ENCpkAS[IDU‖BU‖TM],因此攻击者A无法获取该时间戳; 用户U认证过程中,需要提供用户的个人身份信息,个人生物特征等等,而每个人的生物特征等相关信息是唯一的,因此攻击者无法执行口令猜测攻击。 表1将本文所提方案的优势与方案进行了对比,从表1中可以发现: 1) 本文所提方案能够抵抗用户伪装攻击、内部攻击、离线口令猜测攻击、拒绝服务攻击以及重放攻击等,因此相对于其他一些方案,在抵抗以上这个攻击上具有一定的优势。 2) 本文所提方案能够进行MSD中用户组成员管理,提供了用户组成员添加或删除功能;其次,对于MSD中文件实现了细粒度权限控制,严格控制了文件访问权限,提升了用户组间的安全性。 表2将本文所提方案与方案在用户注册、用户身份验证、文件加密、文件解密等方面进行了运算效率对比,同时将方案中的用户组成员添加、删除以及权限控制树的运算开销进行了说明。Th表示哈希函数运算、Tm表示标量乘法运算、Tdiv表示除法运算、Te表示双线性对运算、TEn表示对称加密运算、TDe对称解密运算、Texp表示指数运算、Tinter表示插值运算。 表1 方案攻击类型或特征对比 表2 运算效率对比 本文提出了一种运用于大容量存储设备下的用户认证与数据保护方案。利用属性基加密技术以及权限控制技术,实现了对USB设备用户的安全认证、实现了对USB设备中隐私数据细粒度控制。安全性分析表明该方案具有较强的安全性,能够抵抗重放攻击、拒绝服务攻击、用户伪装攻击、口令猜测攻击等。 本文提出了适用于大容量存储下的用户认证与数据保护方案,后续需要在文件加解密上进一步提升运算速率;其次,后续会研究如何实现存储器器中密文数据的修改与删除,同时文中方案性能分析部分只是利用了数学理论分析了运算效率,后续将会利用代码具体实现本文方案。1.3 双线性对[9]
1.4 双线性对累积器
2 系统结构与功能模块描述
2.1 系统结构
2.2 用户添加与删除
2.3 文件细粒度解密权限关系
3 算法阶段描述
3.1 用户注册阶段
3.2 用户身份认证阶段
3.3 MSD用户组成员添加与删除
3.4 文件加密阶段
3.5 文件解密阶段
4 方案安全性与性能分析
4.1 抵抗拒绝服务攻击
4.2 能够抵抗用户伪装攻击
4.3 能够抵抗重放攻击
4.4 能够抵抗离线口令猜测攻击
4.5 能够提供有效安全的用户组成员认证
4.6 性能分析
5 结 语