0. 引言
煤矿安监数据涵盖范围广,包含煤矿基本信息、政策法规信息、监管监察信息等,具体涉及人事管理、事故管理、行政执法、应急避难、隐患报送等方面的业务数据。一般采用行业内部开发的云平台对该类数据进行管理和使用[1-3],以云存储作为数据存储手段。目前,在国家法律和行业标准层面,如《网络安全法》《数据安全法》《网络安全等级保护条例》《关键信息基础设施安全保护条例》等都对云数据安全保障提出了明确要求,建立了煤矿安监云数据分类分级保护制度[4] 。煤矿安监信息涉及公民个人维度、公共管理维度、信息传播维度及行业领域维度,分类应依据数据自身的共享开放要求,分级则应根据用户层级划分。在分类分级层面加强煤矿安监云数据的安全保障,避免出现数据安全问题及后续带来的职责不清等问题[5],这既是云平台自身发展的客观要求,也是满足国家和行业监管的需要。因工作需要,各级工作人员需经常访问平台内煤矿安监云数据,执行对云数据的增加、修改、删除等行为,并基于平台云数据开展后续监管监察工作,存在数据泄露、篡改的风险,因此,需要对煤矿安监云数据的安全访问进行深入研究。
目前对煤矿安监云数据安全访问的研究主要集中在用户权限策略的安全存储和访问控制功能实现2个方面。刘敖迪等[6]综述了区块链在信息安全领域的研究进展,提出了一种基于区块链的分布式大数据访问控制机制(Blockchain-Based Access Control Mechanism for Big Data Environment,BBAC?BD),并验证了该机制的有效性。史锦山等[7]总结了去中心的区块链访问控制模型和有中心的区块链访问控制模型并分析了其性能优势。王秀利等[8]提出了应用区块链的数据访问控制与共享模型,利用属性基加密对企业数据进行访问控制与共享,达到了细粒度访问控制及安全共享的目的。付永贵等[9]将区块链用于数据库访问控制,通过对访问者身份、权限及行为的强化认证与监管,提高了数据库访问控制能力。上述基于区块链的数据访问控制研究为实现煤矿安监云数据安全访问提供了新的思路,但对于存放在云平台上的云数据访问控制安全性研究还不足:一方面,现有的访问控制方法对业务数据在管理和使用过程中的个性化安全需求考虑不足;另一方面,缺少针对数据安全管控维度的安监云数据分类分级策略。
针对上述问题,为满足煤矿安监云数据的安全保障需求,提出了一种基于区块链的煤矿安监云数据安全访问模型。通过对煤矿安监云数据属性和访问对象的分析,设计了基于用户层级和数据属性的访问权限模型,符合煤矿安监云数据在安全保障方面分类分级的需要;基于区块链工作原理设计了4层架构的访问控制模型,实现了基于用户权限的安全访问控制,并对存储在区块链上的权限信息增加隐私保护功能,进一步增强了煤矿安监云数据的安全性。
1. 基于用户层级和数据属性的访问权限模型
受相关制度要求,煤矿安监云数据管控十分严格,访问权限的设计应满足分类分级和安全性方面的需求。数据访问者可以分为国家级、省级、市级、煤矿/个人4个层级,其中数据所有者和使用者分布在不同层级;从数据本身来看,涉及煤矿/个人的隐私信息、国家政策法规及决议决策信息等,种类繁杂且安全需求各不相同。因此,数据访问权限不能简单地用角色定义,也不能全部依赖规则来动态生成。本文从煤矿安监云数据自身属性入手,设计了基于用户层级和数据属性的访问权限模型。
1.1 数据访问属性分析
根据实际需求对数据的访问属性进行分析。首先根据数据所有者的身份及数据自身的共享和开放属性,划分细粒度权限;然后基于用户层级,梳理不同用户类别可以具备的细粒度权限;最后由不同细粒度权限集合构成各用户角色。其中用于权限设计的数据访问属性包括数据来源、数据所有者、用户层级、数据属性等,如图1所示。
(1) 数据来源为煤炭行业安全监管监察真实数据。
(2) 数据所有者分为应急管理部职能部门和资源提供方。应急管理部职能部门包括办公厅、安全监察司、政策法规司等;资源提供方包括办公厅、省级及以下应急管理机构、应急救援机构等。
(3) 用户层级包括国家级、省级、市级、煤矿/个人4个等级。依照归属部门和数据来源的要求,各层级用户的数据访问权限大小各不相同。
(4) 数据属性根据煤矿安监云数据实际情况进行细分,如图2所示。
根据煤矿安监云数据在共享和开放方面的要求,结合图2数据属性,划分出11种数据属性,见表1。
编号 | 属性描述 | 含义 |
1 | 不予共享、不开放 | 在任何条件下都不予共享且不向社会开放 |
2 | 不予共享、平台共享、不开放 | 存储在共享平台上,任何条件下都不予共享且不向社会开放 |
3 | 有条件共享、工作参考、平台共享、不开放、批复后可开放 |
在共享平台上以工作参考条件进行共享,一般不向社会开放,有特殊需求可在 批复后开放 |
4 | 有条件共享、工作参考、平台共享、不开放 | 在共享平台上以工作参考条件进行共享,任何条件下都不向社会开放 |
5 | 有条件共享、平台共享、不开放 | 仅允许平台内部共享,任何条件下都不向社会开放 |
6 | 有条件共享、平台共享、开放 | 在共享平台上有条件共享,无条件向社会开放 |
7 | 无条件共享、工作参考、平台共享、不开放 | 在共享平台上向有工作参考需求的用户无条件共享,任何条件下都不向社会开放 |
8 | 无条件共享、工作参考、平台共享、开放 | 在共享平台上向有工作参考需求的用户无条件共享,无条件向社会开放 |
9 | 无条件共享、平台共享、不开放 | 在共享平台上无条件共享,任何条件下都不向社会开放 |
10 | 无条件共享、平台共享、批复后可开放 | 在共享平台上无条件共享,在批复后可向社会开放 |
11 | 无条件共享、平台共享、开放 | 在共享平台上无条件共享,无条件向社会开放 |
1.2 数据访问对象分析
煤矿安监云数据包含具体字段、数据所有者及其他相关信息。由于结构复杂,数据量庞大,不便直接进行访问分析,所以要先根据数据属性对煤矿安监云数据进行分类分级,再研究云数据访问过程。
本文以煤矿安监云数据的11种数据属性作为条件,分别筛选出每种属性包含的数据字段名并进行4级分类:第1级编号为001?013,共13组数据;第2级编号为001?042,共42组数据;第3级编号为001?059,共59组数据;第4级编号为001?317,共317组数据。权限管控粒度到第4级,即最小查询单位是第4级数据,待访问数据的查询编号由1—4级串联构成。每一条数据都有唯一编号,在查询数据时,根据编号即可准确对应到某一条或某一组数据。图3为“数据属性1:在任何条件下都不予共享且不向社会开放”包含的数据及数据所有者。该组数据在任何条件下都不予共享且不向社会开放,因此访问者只能是数据所有者。例如,当“事故调查司”用户查询第4级数据“行政复议申请书信息”时,云平台根据编号004039011094访问到一组具体数据并返回给“事故调查司”用户;当其查询第3级数据“行政执法应诉”时,根据编号004039013即可查询到。在煤矿安监云数据访问过程中,4级编号查询法相较于文字查询效率更高,比模糊查询法更准确,且增减数据字段时只需在当前级别进行添加、删除,避免了大范围变动。
1.3 访问权限模型设计
访问权限模型根据用户层级和数据属性划分访问权限,访问权限生成规则见表2。首先根据11种数据属性划分细粒度权限;然后根据用户层级梳理细粒度权限,并进行勾选;最后结合以上2步结果构成用户角色。访问权限模型的用户角色根据用户层级和所要访问的数据属性共同决定,结合角色与权限对应及权限动态生成的设计理念,不同层级的用户在访问不同数据时权限不同,权限直观且易于管理,具有动态灵活的特点,适合煤矿安监云数据的安全访问需要。
数据属性 | 用户层级 | ||||||||||||
访问 属性1 |
访问 属性2 |
访问 属性3 |
访问 属性4 |
访问 属性5 |
访问 属性6 |
访问 属性7 |
访问 属性8 |
访问 属性9 |
访问 属性10 |
访问 属性11 |
角色 | ||
国家级 | 用户1 | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | 角色A |
用户2 | √ | √ | √ | √ | √ | 角色B | |||||||
省级 | 用户3 | √ | √ | √ | √ | √ | √ | 角色C | |||||
用户4 | √ | √ | √ | √ | √ | 角色D | |||||||
市级 | 用户5 | √ | √ | √ | √ | 角色E | |||||||
用户6 | √ | √ | √ | √ | 角色F | ||||||||
煤矿/个人 | 用户7 | √ | √ | 角色G | |||||||||
用户8 | √ | 角色H |
2. 基于区块链的煤矿安监云数据访问控制模型
2.1 访问控制模型总体架构
由于煤炭行业的特殊性及相关云数据的机密性,基于区块链的煤矿安监云数据访问控制模型采用私有链结构或煤炭行业联盟链结构,防止无关用户或恶意用户未经许可注册访问。该模型分为数据层、职能层、合约层和应用交互层4层区块链架构,如图4所示。
(1) 数据层:用于存储区块链结构和云数据。为了保障区块链运行效率和煤矿安监云数据安全,将权限信息上链存储,煤矿安监云数据采用链下存储方式,区块链上仅存储数据地址。
(2) 职能层:包括网络职能和共识职能。网络职能承担区块链网络中节点间的信息交换工作,包括点对点通信机制、广播机制和验证机制。共识职能采用权益证明机制对网络中节点进行一致性检验,并创建新的区块,以维持整个区块链的正常运转。
(3) 合约层:部署智能合约,实现访问控制功能。用户申请访问触发智能合约,合约自动执行调用数据层的属性信息,判断用户具有的权限和能访问的数据,从而控制用户的数据访问情况。
(4) 应用交互层:封装了区块链的应用场景,是存储区块链和用户之间的接口,即用户在应用交互层完成注册、登录、访问的活动。一般权限管理功能在应用交互层实现,但为了进一步保障权限信息的安全,在数据层存储权限信息,在合约层实现权限判别功能。
区块存储结构如图5所示,其中区块头包含版本号、前后区块哈希、时间戳、随机数、Merkle根等信息,用于确定区块位置及合法性。区块体用于存储具体数据,在本模型中数据包括权限信息及煤矿安监云数据地址信息。
2.2 基于区块链的权限访问控制
权限访问控制由区块链系统实现,其安全保障的核心是权限信息的安全管理,基于区块链的权限访问控制过程如图6所示。由于区块链上所有数据(包含智能合约代码及各种逻辑规则)公开透明,权限信息在存储时应注意隐私保护。当有节点扫描全部区块时,返回的权限信息应是进行加密或是匿名化处理过的密文信息。用户申请访问时,智能合约申请调用权限信息,进行解密或去匿名化操作,得到明文属性信息,并提取所需属性集合反馈给智能合约进行权限判别。
合约层主要依靠权限请求合约和权限判别合约2个智能合约实现权限请求及判别功能。
权限请求合约流程如图7所示,步骤如下:
(1) 输入用户访问请求(包含用户角色及请求访问的数据),并对请求进行解析。
(2) 遍历权限存储区块,寻找权限属性集合。
(3) 判断区块头部Merkle根值和解析权限请求后的flag是否相等,当二者相等时,提取对应权限属性集合,否则重复步骤(2)和步骤(3)。
权限判别合约流程如图8所示,步骤如下:
(1) 输入权限请求合约中获取的权限属性集合。
(2) 对密文进行解密,得到明文的属性字符串。
(3) 将明文字符串按照“用户层级”“数据”“数据属性”进行分割。
(4) 按照访问权限生成规则,通过步骤(3)得到权限结果并返回,用于授权。
2.3 权限信息安全存储技术选择
基于应用背景及访问控制模型对于权限信息的存储需求,应选择具备匿名化、可逆及高实时性的技术对权限信息进行隐私保护。目前主要有3类隐私保护技术可用于权限信息安全存储,分别是基于对称加密的隐私保护技术、基于数据失真的隐私保护技术、基于可逆置换算法的隐私保护技术。3种隐私保护技术针对云数据权限访问控制在安全性、实时性2个方面的性能比较结果见表3。从表3可看出,基于对称加密的隐私保护技术在兼顾安全性和实时性需求的同时能够适用于区块链系统的数据通信,因此选择该技术实现权限信息安全存储。
隐私保护技术 | 安全性 | 实时性 |
不使用隐私保护机制 |
智能合约直接计算数据属性得到具体权限,属性信息直接存储在区块 链上,不具有隐私保护功能 |
没有转换明文的过程,实时性最强 |
基于对称加密的技术 |
安全性强,算法成熟度高,适用于分布式系统的数据通信,保障权限 在区块中以密文形式存储 且查询过程安全可靠 |
比无隐私保护稍弱,但权限信息数 据量小,延迟忽略不计 |
基于数据失真的技术 | 能保证发布数据的真实性,但存在一定程度的数据缺损和隐私泄露 | 算法不可逆,不满足需求 |
基于可逆置换算法的技术 |
算法较简单,安全性弱于基于对称加密的技术,智能合约通过变换 规则复原明文 |
权限信息数据量小,延迟忽略不计 |
3. 对比分析
3.1 访问权限模型对比分析
为验证本文设计的基于用户层级和数据属性的访问权限模型的正确性,从模型特点、优劣势及与安监云数据是否适配3个方面将本文访问权限模型与目前应用最多的2种访问权限模型?基于角色的访问控制(Role-Based Access Control,RBAC)模型和基于属性的权限验证(Attribute-Based Access Control,ABAC)模型[10]进行对比,结果见表4。
模型 | 模型特点 | 优势/劣势 | 与安监云数据是否适配 |
RBAC模型 | 角色与用户一一对应,每个角色可以访问所有数据 |
用户权限清晰;修改权限操作复杂,存储空间受限,实时增加 用户受到限制 |
否 |
ABAC模型 |
根据用户每次需求动态生成单次权限,同一用户每 次访问不同数据的权限不同 |
权限生成灵活,规则可变;生成权限的计算开销大 | 否 |
本文访问 权限模型 |
用户按层级划分,每条数据对应各自数据属性,通 过用户层级和数据属性动态构成用户角色,用户与 可访问数据自动关联 |
用户权限直观,生成权限规则简单,所需存储空间较小,增加 用户只需对应用户层级,权限与云数据具体分类分级相关 |
是 |
基于用户层级和数据属性的访问权限模型具有2个方面优势:① 将权限管理与煤矿安监云数据分类分级和安全需求挂钩,便于管理和应用。② 兼顾了基于角色和基于属性的访问权限模型的优点,同时避免了权限信息占用过多存储空间、权限变动受限及计算开销大等带来的不利影响。
3.2 访问控制模型安全特性对比分析
为验证本文依据区块链自身安全性构建的访问控制模型的优势,从访问控制的实现安全、权限管理及适用场景3个方面将本文访问控制模型与目前常用的基于第三方的访问控制模型进行对比,结果见表5。
模型 | 实现安全 | 权限管理 | 适用场景 |
本文访问控制模型 |
基于区块链自身安全性,使用智能合约进行访 问控制,安全性能够得到保障;基于区块链存 储权限信息防止非法篡改,对于链上的数据采 取隐私保护机制防止非法获取 |
权限信息存储在区块链上,采用隐私保护 机制对权限进行保护,通过智能合约管理 权限信息 |
区块链可以和众多技术结合,能够满足飞禽走兽老虎机场景下的访问控制需求 |
基于第三方的 访问控制模型 |
为了保障系统安全而进行访问控制,不考虑自 身安全性;通常设置访问控制模块,与系统隔 离,可靠性保障困难 |
通过数据库存储权限表、权限属性和规则 等,信息安全难以保证 |
难以适应云平台、大数据背景下日益严格的安全访问需求,存在防御漏洞 |
从访问控制的实现安全方面来看,本文访问控制模型基于区块链自身安全性,安全性能够得到保障,基于区块链存储权限信息可防止非法篡改,对于链上的数据采取隐私保护机制可防止非法获取,而基于第三方的访问控制模型安全性和可靠性较低。从权限管理方面来看,本文访问控制模型权限信息存储在区块链上,采用隐私保护机制对权限进行保护,通过智能合约管理权限信息,保障了访问控制功能使用的安全;基于第三方的访问控制模型权限管理通过数据库完成,目前针对数据库的攻击层出不穷,权限信息安全难以保证。从适用场景来看,本文访问控制模型利用区块链技术可与众多技术结合,能够满足飞禽走兽老虎机场景下的访问控制需求;基于第三方的访问控制模型要根据访问控制设计思路应用,特点鲜明的应用场景往往要进行功能定制,成本较高,应用范围较小。
4. 结语
针对煤矿安监云数据的访问安全问题提出了一种基于区块链的安全访问模型,该模型包括访问权限模型和访问控制模型。基于用户层级和数据属性设计了访问权限模型,根据数据安全在分类分级方面的要求,为安监云数据划分访问权限,同一层级和同一数据属性分类下的数据拥有一类权限,实现了分类分级的安全管控;依据区块链分布式实现、全程透明、防篡改等优势构建了访问控制模型,实现了分布式访问控制,利用智能合约保障访问控制安全,采用加密技术增强对权限信息的安全保护。对比分析结果表明:与常用的RBAC模型和ABAC模型相比,基于用户层级和数据属性的访问权限模型实现了对煤矿安监云数据更细粒度的访问权限划分,用户权限直观,权限生成规则简单;与基于第三方的访问控制模型相比,基于区块链的访问控制模型利用智能合约进行访问控制,能够增强煤矿安监云数据的安全性,为云数据安全问题提供了新的解决思路。基于区块链的安全访问模型能够解决煤矿安监云数据在安全管控维度的分类分级不清晰及保密性不强等问题,提高了云数据的安全性。
来源:工矿自动化