一种基于多秘密可视密码的多级访问控制方法及系统
技术领域
本发明属于网络安全技术领域,尤其涉及一种基于多秘密可视密码的多级访问控制方法及系统。
背景技术
访问控制技术是指系统对用户身份及其所属的预先定义的策略组限制其使用数据资源能力的手段,是确保信息系统安全的一种重要技术。它通过某种途径显式地准许或限制访问能力及范围,从而限制对关键资源的访问,防止非法用户侵入信息系统或者合法用户未经授权而造成的破坏。访问控制一般包括主体、客体和安全访问规则三个要素。主体是指发出访问操作的主动方,通常为用户或计算机进程;客体是一种信息实体,指系统中的信息和资源,可以是文件、数据等;访问规则规定了哪些主体能访问哪些客体,访问权限有多大。目前,访问控制技术已广泛应用于工业控制、数据处理、信息管理、决策支持等众多领域。
目前主流的访问控制实现方法一般分为以下三种:
一是自主访问控制,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体。系统中的主体可以将其拥有的权限自主地授予其他用户。以上方法最大的缺陷是权限容易因传递而出现失控,进而导致信息泄漏。
二是强制访问控制,主要特点是系统对访问主体和受控对象实行强制访问控制,系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。多级访问控制是一种典型强制访问控制,采用多级安全策略为主体和客体分配安全级,主体在系统控制下,不能访问高于其安全级的客体,但能访问本级或低于本安全级的客体,其目的是防止高安全级信息泄露给低安全级的用户,实现信息安全的分级保护,但侧重于提高保密性,对其他方面如系统连续工作能力,授权的可管理性等考虑不足,造成管理不便灵活性差。
三是基于角色的访问控制,指根据用户在系统里表现的活动性质而定的,角色是访问权限的集合,用户通过赋予不同的角色而获得角色所拥有的访问权限,是一种有效而灵活的安全措施。但存在身份标识被恶意篡改导致权限认证失控的隐患。
综上,不管是哪种访问控制策略,其实现都包含两个重要的过程,即:
(1)通过“认证”来检验访问主体的身份合法性;
(2)通过“授权”来限制主体对客体的访问范围和访问权限。
“认证”和“授权”过程的实现都需要运用密码技术。传统密码技术都是基于“密码学”理论基础的,利用大数分解、离散对数等数学难题,达到计算上的安全性,使得攻击者在不知密钥,时间和资源有限的情况下,无法得到秘密信息,从而达到保护秘密信息的目的。此类密码技术的加密和解密过程十分复杂,一般都需通过大量运算,借助计算机等辅助设备才能进行。同时现有的访问控制方法操作过程复杂,对于不具备密码学知识的人来说难以理解,对使用人员的专业素质要求高。故需要找到一种实现简单、不依赖复杂的计算设备,不受领域知识限制的访问控制新方法。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种基于多秘密可视密码的多级访问控制方法及系统。本发明采用可视密码代替传统密码技术,一方面利用可视密码计算复杂度低、依赖人眼进行解密、实现过程简单的优势;另一方面,系统采用C/S模式,利用基于角色的访问控制策略,增强授权操作的灵活性和可实施性。设计了一种简单易用,不过度依赖于领域知识的访问控制方法和系统,实现“认证”操作利用人眼视觉系统实现,使访问控制系统的实现过程更加简单易行,实现结果更加形象,同时降低了人员和设备投入成本。
根据以上目的,基于多秘密可视密码的多级访问控制方法包括步骤:
第一步权限分配,流程如图1。
a)服务器依据预先定义的控制策略(权限等级总数h、参与者数量n,认证门限值k;其中,门限值k用于群体认证时控制参与认证的个体数量)读取相关数据要求,进行权限等级的设置和黑白二值秘密图像的选择;
b)执行秘密分享模块对秘密图像进行分享,构造对应秘密图像黑白像素点的分享矩阵,将密图分享细化为各分享矩阵的构造。分享矩阵的行向量决定着对应共享份的像素点信息(即分享矩阵的每一行代表一个共享份,第i行上的m个元素对应第i个共享份中,由秘密像素点生成的m个扩展像素点),在分享某级秘密图像时,将未授权份对应的行向量作随机混乱处理,使得该密图在此份的信息是杂乱无章的,即授权用户得到该密图信息即该级权限,而未授权用户得到的是混乱数据。然后,对处理后的矩阵作随机列变换,使共享份生成随机性强,一次一密更加安全。
c)最后,服务器执行权限分配模块,将共享份分发给相应级别用户,同时保留一份低等级共享份和原密图数据副本用于认证。
第二步授权请求。
a)客户端执行接收保存模块,将服务器发送的共享份图像保存在指定的位置。
b)当客户端需要图像进行某个级别操作时,执行授权请求模块,可以向服务器发出认证请求,同时提交自己所持有的共享份,等待服务器的认证操作。
第三步认证授权,流程如图2。
服务器接收到用户的认证请求后执行秘密恢复模块,服务器对权限认证的过程也就是对密图恢复的过程,本系统提出了一种新的恢复流程,实现了密图的无损恢复,步骤如下。
a)服务器先通过扫描共享份与内部保留份进行异或运算,得初步恢复图像;
b)接着对它进行选择性取反,生成修正图像;
c)最后,将两个阶段的图像进行异或操作,得到清晰图像。
d)通过和服务器内部保存的副本做比对来验证恢复图像的真实性,若匹配成功,服务器向客户端提供密图对应的权限操作;
e)若认证失败,并对越级访问行为进行审计。
本发明的另一目的在于提供一种与上述方法相应的多级访问控制系统,具体内容如下。
(1)系统架构采用客户服务器C/S模式,如图3。
其中管理服务器负责提供权限分配和权限认证服务;用户客户端具有接收保存共享份和提交授权请求的功能。
权限分配时,服务器根据设置的参数对指定的密图按照设定方案进行分享,然后将共享份分发给相应级别的客户端,客户端则接收保存共享份。
授权认证时,客户端向服务器提交请求和所持共享份,由服务器完成对共享份的验证恢复;若清晰恢复且与原密图对比相同,则认证成功;否则认证失败。
(2)系统包括服务器端和客户端,服务器端各功能模块如图4,客户端如图5。
a)服务器端功能模块包括多秘密可视密码方案和系统实现2个子模块。
·图像分享模块:对密图进行分享操作功能,对应实现上述方法第一步中步骤b);
·图像恢复模块:对用户提交的认证共享份和系统保留共享份进行恢复功能,对应实现步骤,对应实现上述方法第三步中步骤a)-c);
·权限分配模块:读取系统管理员录入参数功能,对应上述方法第一步中步骤a),实现共享份分发功能,对应上述方法第一步中步骤c);
·访问认证模块:读取、比对恢复图像功能,对应上述方法第三步中步骤d),对违规认证行为进行审计功能,对应上述方法第三步中步骤e);
b)客户端功能模块
·接收保存模块:接收和保存服务器分发共享份图像功能,对应上述方法第二步中步骤a);
·授权请求模块:向服务器提交权限操作请求功能,对应上述方法第二步中步骤b)。
本发明的技术方案为:
一种基于多秘密可视密码的多级访问控制方法,其步骤包括:
1)服务器为控制策略中的每一权限等级设置一对应的秘密图像,并为每一用户分配一权限等级;所述控制策略包括权限等级总数h、参与者总数n和认证门限值k;
2)服务器对每一秘密图像构造一对应的分享矩阵;然后根据所述分享矩阵将所述秘密图像中的像素填充到不同等级的多个共享份中;
3)服务器按权限分配策略将所述共享份分发给相应权限等级的用户,同时服务器保留一份最低等级共享份和各所述秘密图像;
4)服务器收到至少k-1个用户发出的授权请求及共享份,然后根据收到的共享份和预留共享份进行秘密恢复,鉴别共享份的真实性以决定是否授权。
进一步的,构造所述分享矩阵的方法为:
21)对于所有偶数p,若2p≤k,则令q=p,否则,令q=p+n-k,然后生成汉明重量为q的所有n维列向量并添加到矩阵C0中;对于所有奇数p,若2p≤k,则令q=p,否则,令q=p+n-k,然后生成汉明重量为q的所有n维列向量,将所有含q个“1”的n维列向量添加到矩阵C1中;其中0≤p≤k;
22)当矩阵C0和矩阵C1中对应任意k行存在不相同的列时,将C1中多余列添加至C0中,生成新的C0;同时,将C0中多余列添加至C1中,生成新的C1;直至矩阵C0和矩阵C1具有相同的列;
23)输出大小为n×m的分享矩阵(C0,C1);m是分享矩阵的像素扩展度,即分享矩阵的列数。
进一步的,根据所述分享矩阵将所述秘密图像中的像素填充到不同等级的多个共享份中的方法为:
31)按等级顺序依次选择秘密图像进行处理;
32)依据设置的共享份旋转规则对n个空白共享份构成的环形共享份进行旋转,然后对每一秘密图像依据a)~c)方法对环形共享份进行像素填充;每份所述共享份包括HT×WT个子像素块,每个子像素块大小为m×h;HT为秘密图像的像素高度,WT为秘密图像的像素宽度;
a)从秘密图像中逐个选择像素点,若为白色,则选择分享矩阵C0;若为黑色,则选择分享矩阵C1;
b)将选择的分享矩阵Ct做随机列变换P后再转置,得到Ct′=(P(Ct))T;t=0或1;
c)将Ct′的第i列填入第i个共享份Xi对应子像素块的第j列,其中,1≤i≤n。
进一步的,所述共享份旋转规则为:设置一循环右移函数R(Xi,(i-1)(j-1)),表示分享权限等级j对应的秘密图像Sj时,将第i个共享份Xi以像素点为单位循环右移(i-1)(j-1)次;按照循环右移函数R(Xi,(i-1)(j-1))确定环形共享份中每一共享份的旋转量。
进一步的,服务器根据收到的共享份和预留共享份进行秘密恢复,鉴别共享份的真实性以决定是否授权的方法为:
a)当恢复第j级权限等级对应秘密图像Sj时,服务器根据所述共享份旋转规则对共享份Xi循环向右旋转(i-1)(j-1)个像素;
b)服务器将预留的最低等级共享份X
1与收到的k-1个共享份进行异或运算,生成初始恢复图像
d)对于每一子像素块,计算该子像素块的第j个列向量V的汉明重量为H(V);若H(V)≥d,d为设定的显示阈值,则对此子像素块的所有像素点的值取反;若H(V)<d,且图像
中的子像素块未处理完毕,则返回c);
e)将处理后的图像
记为修正图像
将图像
和
进行异或,得到无损恢复图像R
j;
f)比对图像Rj与原始秘密图像Sj是否相同,若内容相同,则认证成功,否则为违规授权请求;
g)为该k-1个提交共享份的客户端均授予恢复出的最高等级秘密图像对应的权限。
进一步的,生成所述秘密图像的方法为:初始化h份包含不同信息、大小均为HT×WT的秘密图像,记为S1,S2,…,Sh;所述秘密图像满足WTmodh≡0,即秘密图像的像素宽度值能整除h。
一种基于多秘密可视密码的多级访问控制系统,其特征在于,包括秘密分享模块、权限分配模块、秘密恢复模块和授权认证模块;其中,
权限分配模块,用于为控制策略中的每一权限等级设置一对应的秘密图像,并为每一用户分配一权限等级;所述控制策略包括权限等级总数h、参与者总数n和认证门限值k;
秘密分享模块,用于对每一秘密图像构造一对应的分享矩阵;然后根据所述分享矩阵将所述秘密图像中的像素填充到不同等级的多个共享份中;按权限分配策略将所述共享份分发给相应权限等级的用户;
秘密恢复模块,用于根据收到至少k-1个用户发出的授权请求及共享份进行秘密恢复;
授权认证模块,用于判断恢复出的秘密图像与原始秘密图像是否相同,若相等,则认证成功,为客户端授予相应权限,否则判断为违规授权请求。
本发明的技术效果在于:
本发明使用基于角色的访问控制策略,实现一种针对不同权限的秘密进行分级访问的控制系统。而对于访问控制实现过程中的核心认证方法,设计一种基于多秘密可视密码的多级访问控制方法。基于多秘密可视密码能够一次分享多幅秘密图像,恰好能用于对应不同角色和权限的思路,按照不同秘密图像对应不同操作权限的原则,通过恢复相应密图来授权相关信息并进行访问操作,进而可实现对不同级别信息的安全管理和对用户访问操作的控制。
附图说明
图1为权限分配流程图;
图2为认证模块流程图;
图3为系统架构示意图;
图4为服务器端结构图;
图5为客户端结构图;
图6为秘密图像分享流程图;
图7为初始恢复图像生成示意图;
图8为修正图像生成流程图;
图9为无损恢复过程示意图。
具体实施方式
参考附图,下面给出详细过程。
第一步权限分配
首先初始化参数;其次构造分享矩阵;接着设置环形共享份旋转规则,如表1;然后对共享份区域进行标记,并完成共享份分配,如图6。
(1)初始化参数
用于对参与者数量n(服务器属于参与者之一)、权限等级数量h、秘密门限值k,访问策略和秘密图像等相关数据进行初始化。
a)初始化参数k、n,依据预先定义的策略组,结合实际应用场景为用户分配权限等级,每个用户只为其分配一个权限等级,要求用户的不同权限等级的数量和为h,其中l1的权限等级最低,lh的权限等级最高。
b)初始化h份像素长宽尺寸为HT×WT密图,密图尺寸相同,但包含的内容信息不同,用于区分不同权限等级。HT为密图的像素高度,WT为密图的像素宽度,记为S1,S2,…,Sh,Sj(1≤j≤h)表示第j等级秘密图像,每一级秘密图像均要求满足WTmodh≡0,即图像的像素宽度值能整除h。
(2)构造分享矩阵。
用于依据(1)中参数设置,构造用于分享秘密图像的多秘密可视密码的分享矩阵。
a)输入k,n,1≤j≤h
b)对于所有偶数p(0≤p≤k),若2p≤k,则令q=p;否则,令q=p+n-k;然后生成汉明重量为q的所有n维列向量并添加到矩阵C0中;结合k=3,n=4的实例说明n维列向量的构造过程,对于偶数p=0,满足0≤p≤k=2,由于2p≤k,令q=p=0,将所有汉明重量为0的n维列向量,即(0,0,0,0)T加入矩阵C0中;对于偶数p=2,满足0≤p≤k=2,由于2p>k,令q=p+n-k=3,将汉明重量为3的n维列向量的组合,即{(1,1,1,0)T,(1,1,0,1)T,(1,0,1,1)T,(0,1,1,1)T}加入矩阵C0中。
c)对于所有奇数p(0≤p≤k),若2p≤k,则令q=p;否则,令q=p+n-k,然后生成汉明重量为q的所有n维列向量,将所有含q个“1”的n维列向量的组合添加到矩阵C1中。
d)当矩阵C0和矩阵C1中对应任意k行存在不相同的列时,将C1中多余列添加至C0中,生成新的C0;同时,将C0中多余列添加至C1中,生成新的C1;
e)判断C0,C1中多余列是否相同,如果相同,则该步结束,称C0或者C1包含的列数为分享矩阵的像素扩展度m,否则转到b);
f)生成大小为n×m的分享矩阵(C0,C1),m是矩阵的像素扩展度,算法结束。
(3)设置共享份旋转规则
旋转规则用于分享时设置不同共享份的旋转角度。
a)记R(Xi,(i-1)(j-1))为循环右移函数,表示在分享秘密图像Sj时,将共享份Xi以像素点为单位循环右移(i-1)(j-1)次(1≤i≤n,1≤j≤h),其中,Xi表示第i个共享份,Sj表示第j幅秘密图像,循环右移函数对应旋转规则如表1所示,以表1第3列第3行的元素为例,表示秘密图像S2对应共享份X2的旋转量为1个像素。
表1共享份旋转规则表
|
S<sub>1</sub> |
S<sub>2</sub> |
S<sub>3</sub> |
S<sub>4</sub> |
… |
S<sub>j</sub> |
… |
S<sub>h</sub> |
X<sub>1</sub> |
0 |
0 |
0 |
0 |
… |
0 |
… |
0 |
X<sub>2</sub> |
0 |
1 |
2 |
3 |
… |
j-1 |
… |
h-1 |
X<sub>3</sub> |
0 |
2 |
4 |
6 |
… |
2(j-1) |
… |
2(h-1) |
X<sub>4</sub> |
0 |
3 |
6 |
9 |
… |
3(j-1) |
… |
3(h-1) |
… |
… |
… |
… |
… |
… |
… |
… |
… |
X<sub>i</sub> |
0 |
i-1 |
2(i-1) |
3(i-1) |
… |
(i-1)(j-1) |
… |
(i-1)(h-1) |
… |
… |
… |
… |
… |
… |
… |
… |
… |
X<sub>n</sub> |
0 |
n-1 |
2(n-1) |
3(n-1) |
… |
(n-1)(j-1) |
… |
(n-1)(h-1) |
(4)生成共享份
原始秘密图像中的一个像素对应着每个共享份中的一个子像素块,同时也对应恢复图像中的一个子像素块,一个子像素块划分成h个纵向区域,每个区域对应一个秘密图像,一个区域包含m个子像素,对应分享矩阵中一个行向量(包含m个元素)。在进行分享时对不同共享份要按(3)中规则进行右移变换,然后将(2)中构造的分享矩阵填充到每个共享份中。这里的共享份是环形共享份,首尾相连,分享过程即依次对空白共享份进行像素填充,具体操作时,利用(3)中的旋转规则将不同空白共享份进行像素平移,然后利用(2)中的分享矩阵进行填充,参数j体现了对应关系,对于第j幅秘密图像分享,第i个共享份需要平移(i-1)(j-1)个像素,然后用矩阵(C0,C1)进行加密。
密图中每个像素点对应分享份中的相应子像素块,故每份共享份包括HT×WT个子像素块,每个子像素块大小为m×h。在进行分享时不同共享份要按一定规则进行右移变换,之后运用分享矩阵C0和C1,经随机列变换和转置后按列分享到每个共享份中对应子像素块的对应标记列,从而完成秘密分享。
a)按顺序选择第j级秘密图像Sj(1≤j≤h)进行处理;
b)依据第(2)步分享矩阵构造方法生成分享矩阵C0和C1;
c)依据第(3)步对环形共享份进行旋转,然后依据第(4)步方法对空白共享份进行像素填充,具体步骤如d)-h)。
d)逐个选择像素点,若为白(黑)色,则选择分享矩阵Ct(t∈{0,1})C0(C1);
e)将分享矩阵Ct做随机列变换P后再转置,得到Ct′=(P(Ct))T,t∈{0,1};
f)将Ct′的第i(i=1,2,…,n)列填入共享份Xi对应子像素块的第j列;
g)若秘密图像未全部加密完,则返回b);
h)输出共享份Xi(1≤i≤n)。
(6)分发共享份
将共享份按权限分配策略分发给服务器和用户。
a)服务器保留最低等级共享份X1;
b)分配其余共享份给相应等级用户。依据服务器预先定义的控制策略,为不同等级用户分配相应权限等级的共享份。以(k=2,n=4,h=3)为例,3幅秘密图像为S1,S2,S3,其中S1对应权限等级最低,S3对应权限等级最高,生成4个共享份X1,X2,X3,X4,服务器保留X1,由于权限等级分为3组,若最高等级用户分配X4,中间等级用户分配X3,最低等级分配X2,则X1与X2能S1,X1与X3能恢复S1和S2,X1与X4能恢复S1,S2和S3。当参数变化时,结果可能不一样。
第二步请求授权
在完成第一步权限分配后,客户端向服务器提出授权请求指令,并提交共享份。
a)客户端发出授权请求,至少k-1个用户向服务器提交各自的共享份。
第三步认证授权
服务器端监听到客户端发出的授权请求后,通过操作共享份和预留共享份进行秘密恢复,鉴别共享份的真实性以决定是否授权。
a)当恢复第j级权限等级对应秘密图像Sj时,服务器端依据表1的旋转规则对环形共享份Xi循环向右旋转(i-1)(j-1)个像素;
b)服务器将系统预留的共享份X
1与用户提交的k-1个共享份进行异或运算,如图7,生成初始恢复图像
步骤a)-b)流程如图7;
d)取出子像素块第j列的列向量V,计算汉明重量H(V);只计算第j列,对于恢复图像
选取每个子像素块中的第j列即可;
e)判断若H(V)≥d,d是显示阈值,若成立,则对此子像素块的所有像素点的值取反;
f)判断若H(V)<d,转到g);
g)若当前子像素块处理完毕则转至步骤c),继续处理下一个子像素块,直到图像
中的所有子像素块都处理完毕;
i)利用视觉比对恢复图像Rj与原始秘密图像Sj的内容是否相同,若是,则认证成功lj,否则记录此次违规授权请求;为该k-1个提交共享份的客户端均授予恢复出的最高等级秘密图像对应的权限。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。