一种基于CPK角色访问控制的方案

2021-03-04 02:51陈亚茹
信息安全研究 2021年2期
关键词:访问控制级别密钥

陈亚茹

(河南工业贸易职业学院信息工程系 郑州 450012)

(642200814@qq.com)

移动办公用户接入到WiFi通过服务器身份认证成功之后,用户可以访问公司内网的电子文档.电子文档的传统保护方法是对文档进行加密存储,用户破解密钥后就拥有访问电子文档的所有权限[1].在访问过程中非法用户可以通过拷贝、复制等方式泄露公司的机密数据,造成公司巨大的经济损失.因此如何加强对公司内部机密电子文档的保护是一个研究重点.

公司内部电子文档从文档本身加密和分配用户访问权限2个方面进行保护,因此移动办公用户访问公司文档时需要进行身份认证、权限控制、文档加解密等操作,实现公司内部电子文档的安全访问[2].文献[3]提出了基于公钥基础设备(public key infrastructure, PKI)的数字签名方案,在一定程度上实现电子文档的传输数据安全,但是存在CA权威和信任度缺陷的问题.针对文献[3]存在CA权威和信任度缺陷的问题,文献[4]提出了基于组合公钥(combined public key)的电子文档保护方案,实现接收方直接通过解密电子文档就可以拥有全部权限的功能,但是存在权限不明确的问题.针对文献[4]存在权限不明确的问题,文献[5]提出了CPK与自主访问控制(DAC)相结合的保护方案,根据用户而不是角色来授权电子文档的操作权限,但是存在难以有效地控制自主授权方式,出现重复授权等情况,不利于管理.针对文献[5]存在重复授权的问题,文献[6]提出角色访问控制电子文档管理的方案,解决了重复授权的问题,但是没有解决权限细化的问题.针对权限细化的问题,即随着访问者数量的增加,不同的角色需要访问不同的资源,基于角色访问控制(role-based access control, RBAC)的模型应运而生[7].随着用户的增加,基于RBAC访问策略控制模型出现了许多问题[8],特别是在面对多层次用户的访问环境时,传统的基于角色访问控制技术不能完全展现自身优势.针对RBAC访问策略控制模型出现的问题,人们提出了RBAC95模型[9]和RBAC96模型[10].其中RBAC95模型存在不支持细粒度访问控制的问题,RBAC96模型中存在角色权限及其继承关系复杂性、不支持多用户访问控制环境的问题.文献[11]针对角色访问策略模型存在的问题,提出改进的多层次访问策略,但是增加了整个体系管理成本.随着组合公钥的提出和深入研究,文献[12]提出了CPK与RBAC访问策略结合的方案.文献[13]把CPK与RBAC访问策略结合的方案应用到实际中,指出CPK-RBAC是解决身份认证的安全问题和细粒度保护措施的基础.文献[14]指出文献[12]仅提出了权限集、会话集,在约束集上没有解决的措施.针对约束集上的问题,文献[14]提出了一种CPK与RBAC96模型相融合的方案,采用继承和约束的关键技术对访问控制进一步细分,解决了访问控制中权限冲突等问题,进一步实现了访问的安全,但是在移动办公中增加了管理员管理的负担.

基于此,针对移动办公过程中限制访问者权限目前需要满足下面2个条件:

1) 授权终端用户ID,分配给用户一定权限访问公司内部数据;

2) 给用户分配不同的角色,使得用户不可以越权访问公司内部数据.

通过以上分析,本文提出了CPK和角色访问控制相结合的改进模型CPK-RBAC.该模型的思想是在保留RBAC96中继承约束关系的基础上,去除RBAC97模型中继承关系的复杂度,引入用户组并通过密钥加密文档,每个密钥代表不同的权限,同时对密钥赋予相应的用户.不同密钥保护不同的文档,不同用户分配不同的密钥,合法用户只有根据自己密钥权限才可以解密相应的文档,保证了公司文档的安全.

1 基于CPK角色访问控制的设计

1.1 基于CPK角色访问控制的目标

本文的总体思路是CPK和角色访问控制相结合,把用户标识(用户标识信息、安全级别)贯穿到身份认证和访问控制中.首先,CPK服务器为每一个用户分配一个安全级别和用户拥有该级别的安全级别密钥,并引入用户组来实现角色为核心的访问控制;其次,根据用户的操作行为划分成不同的用户等级,每个等级具有相同的密钥,用户在执行访问操作之前,进行身份权限的检查;最后,判断用户是否有权限进行这个操作,若有这个权限,允许用户执行相应密钥的授权人员才能解密文档,否则拒绝非法用户的访问.

1.2 基于CPK角色访问控制模型

访问控制是先确定访问者身份,之后根据身份进行权限分配.RBAC模型根据权限实现用户和权限的分离,本文从下面几个方面对RBAC模型进行改进:

1) 引入了用户组的概念.改进的模型支持对用户组和用户的授权,每一个分组授予不同的角色,每个角色拥有不同的权限,用户组授权使授权工作进一步简化,可以把传统管理员进一步细分成系统管理员、审计管理员、安全保密员.其中对用户的授权由系统管理员来实现,改变了传统上全部工作由管理员来完成的任务,用户划分为高层用户、中层用户、一般用户和低级用户;

2) 为每个用户分配一个安全级别且用户拥有安全级别对应的密钥.通过密钥加密文档,每个密钥代表不同的权限,同时密钥赋予相应的用户.不同密钥保护不同的文档,合法用户只有根据自己密钥权限才可以解密相应的文档.文档解密后,通过服务器计算公钥,进一步检测文档的完整性.客户端通过该方式访问公司内部文档,保证了公司文档的安全.

CPK与角色访问控制模型(RBAC)的结合方式如图1所示:

图1 CPK与RBAC访问策略结合方式

1) 符号的含义

CPK KMC:CPK的密钥管理中心;U:用户集;R:角色集;P:权限集;S:会话集;C:用户组.描述如下:

PA∈p×R,表示多对多的权限与用户分配关系,PA∈{(r,p)|r∈R,p∈P}P×R;

UA⊆U×R,表示多对多的用户与角色的分配关系,UA={(u,r)|u∈U}U×R;

US:S→U,表示会话到用户集的映射,每个会话对应单个用户;

SR:S→R,表示会话集到角色集的映射函数;

RH⊆R×R,表示角色集R的关系;

UC:U→C,表示给用户指定用户组;

CA:C→A,表示对指定的用户组授权;

UA:U→A,表示对用户直接授权.

综上所述,CPK和RBAC模型是通过用户ID标识联系在一起.在CPK系统中,终端用户向CPK密钥注册中心(RMC)申请用户注册,在经过密钥注册中心的核审后把标识发送给密钥管理中心(KMC),密钥生成中心(KPC)生成用户ID返回给用户.访问控制根据用户标识分配角色,并根据角色为用户分配相应级别的权限.通过增加支持用户和用户组授权,对用户的权限和授权部门进一步细化,使管理员授权用户角色更加方便.

2) CPK ID证书

嵌套CPK ID证书的CPK TF卡由CPK密钥管理中心生成,经过密钥注册中心分发到用户终端.CPK TF卡中存放的内容包括以下几项.

① CPK TF卡公开的信息:用户姓名、年龄等.

② 颁发机构的信息.

③ 用户标识:姓名、单位名称、电话、邮件、账号等.

④ 权限(等级)密钥kp:在公司内网中,为了保护文件的信息,需要对文件进行强制密级划分,并为移动办公用户分配相应的权限密钥.权限密钥kp采用对称密钥AES算法加密,在口令pwd加密下存放:Epwd(kp).相同权限用户的级别密钥是相同的,高级别权限的用户拥有比自己级别低的权限密钥.例如:假定机密权限等级高于秘密和公开的权限,那么拥有机密权限的用户,也同时拥有秘密和公开的权限密钥.其中,公司内部文档分为4个等级:绝密、机密、秘密、内部.

⑤ 级别(角色)密钥kc:在多个领域中,需要对用户进行不同级别的划分,这个级别通过对称密钥实现.kc在口令pwd加密下存放:Epwd(kc).级别相同的用户具有相同级别密钥.

⑥ 应用环境参数:不同领域的用户标识是不同的,比如电子邮件需要邮件标识、办公用户需要用户名等.

⑦ 私钥SSK:SSK由密钥管理中心生成,并用随机数加密私钥,防止私钥的泄露,即Er(SSKn).其中不同用户随机数是不同的,用户自己保存随机数,防止CPK TF丢失,造成信息泄露的问题.

⑧ 公钥矩阵PSK.

3) 用户权限和用户角色

根据ID证书可以确定用户角色和设置用户权限.用户角色划分如图2所示:

图2 用户角色划分示意图

① 确定用户角色

角色等级由管理员和用户等级2部分组成.管理员分为系统管理员、审计管理员、安全保密员3种级别,不同管理员对系统分别进行管理;根据用户访问文档角色等级,系统管理员把用户划分为高层用户、中层用户、一般用户、低级用户.系统管理员管理用户级别并为其发放ID证书,不同级别用户拥有不同的权限.

② 设置用户权限

根据用户角色进行相应的权限设置.若用户是高层用户,则其证书具有绝密、机密、秘密、公开的对称密钥,若用户是中层用户则具有3个密钥,一般用户具有2个密钥,低级用户具有2个密钥.

当终端用户登录到CPK服务器时,CPK服务器根据用户名和PIN码来获得用户的基本信息,查询用户属于哪个用户组,可以对应访问等级密钥.

2 基于CPK角色访问控制的实现

基于CPK-RBAC的访问控制设计主要采用下面3个算法实现,分别是配置密钥、文档加密和解密过程.

2.1 配置密钥

配置密钥包括文件密钥配置、角色密钥配置和等级(权限)密钥配置.配置密钥过程如下:

1) 文件密钥配置

① 绝密级别密钥变量key1;

② 机密级别密钥变量key2;

③ 秘密级别密钥变量key3;

④ 公开级别密钥变量key4.

2) 角色密钥配置

① 系统管理员密钥变量c_key1;

② 高层用户密钥变量c_key2;

③ 中层用户密钥变量c_key3;

④ 一般用户密钥变量c_key4;

⑤ 低级用户密钥变量c_key5.

3) 等级密钥配置

① 机器产生随机密钥:Ran_key=256 b,每一台机器产生不同的密钥;

② 定义初值:data=256 b,采用口令pwd输入;

③ 采用AES加密,计算:

ERan_key(data)=data1;

Edata(data1)=data2;

Edata1(data2)=data3;

Edata1(data3)=data4.

④ 若用户是高层用户,把data1,data2,data3,data4写入等级密钥区;

若用户是中层用户,把data2,data3,data4写入等级密钥区;

若用户是一般用户,把data3,data4写入等级密钥区;

若用户是低级用户,把data4写入等级密钥区.

把用户ID标识、角色密钥、等级密钥、私钥、公钥矩阵、时间戳等写入ID证书.

2.2 文档加密过程

服务器产生随机数Ran,利用等级密钥对文档加密.

ERan⊕c_keyn⊕keyn(data)=coded_text;
EPK(Ran)=coded_key.

服务器先把文档分成不同的等级,后用文件对应的等级密钥加密文档.用户根据CPK ID证书中用户级别进行文档访问,级别高的用户可以访问级别低的用户.

2.3 文档解密过程

文档收到服务器发送的信息,利用等级密钥进行解密.

DSK(coded_key)=Ran;
DRan⊕c_keyn⊕keyn(coded_text)=data.

首先检测用户级别是否大于文档级别,若用户拥有权限,用ID证书中对应的文件等级密钥解密文档.

综上所述,基于CPK-RBAC的访问控制流程如图3所示:

图3 CPK-RBAC访问控制流程图

1) 系统为每个用户划分一个等级, CPK管理中心基于这个等级生成并分发ID证书.终端用户插入CPK TF卡向CPK服务器发送登录请求,CPK服务器根据强身份认证(PIN码和用户密码)对用户进行身份认证;

2) 当终端身份认证通过之后,用户提出访问公司内部某级别文件时,服务器首先查看电子文档的说明(级别等),之后提取用户ID标识,终端访问公司内部文件服务器获取用户的信息,并查询用户属于哪个用户组,并获得用户安全级别,当用户的安全级别高于该文件的级别时,允许用户继续进行步骤3),否则访问结束;

3) 用户访问的文档是加密后的密文,用户利用等级密钥解密文档,之后再利用对方公钥进行数字签名验证来检测文档的完整性,如果文档完整允许继续进行步骤4);

4) 查看用户访问文档的具体权限,进行只读、只写,完成对文档的操作.

系统基于ID标识为用户分配一个安全级别且用户拥有该级别的安全密钥,实现不同级别用户对不同文件进行操作,若用户越权使用文档,则服务器采取措施阻止非法用户的访问.

3 系统测试

图4 身份认证

本方案配置Windows系统中安装虚拟机VM,在虚拟机上安装了Windows Server2003,Windows Server2003作为服务器.其中服务器端含有CPK算法模块,终端含有CPK算法模块的ID标识.采用Java语言对访问的文档进行测试.实验包括2个部分:一是根据CPK ID标识测试终端的合法身份;二是测试用户根据权限对文档的访问操作.用户登录进行身份认证如图4所示,文档访问如图5所示:

图5 文件访问

身份认证测试结果表明,系统对用户身份认证成功之后,根据CPK ID标识把权限准确细分给用户,用户根据自己的权限密钥访问对应的等级密钥文档,防止用户越权访问文档,实现公司内部数据的安全.

4 结束语

本文设计了一种基于CPK的角色访问控制方案.从CPK、访问控制等方面,在保留RBAC96中继承约束关系的基础上,去除RBAC97模型中继承关系的复杂度,通过密钥加密文档,不同密钥保护不同的文档,不同用户分配不同的密钥,合法用户只有根据自己密钥权限才可以解密相应的文档,防止非法用户越权访问.

猜你喜欢
访问控制级别密钥
幻中邂逅之金色密钥
痘痘分级别,轻重不一样
密码系统中密钥的状态与保护*
TPM 2.0密钥迁移协议研究
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
新年导购手册之两万元以下级别好物推荐
一种对称密钥的密钥管理方法及系统
你是什么级别的
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型