发明内容
为了克服上述问题,本发明提供一种基于区块链的电力数据权限分级管理方法,该方法将身份验证、基于属性的访问控制方式与区块链相结合的方法,分级的对客户端用户进行管理和应答,可以更快排除一些不符合要求的用户,并进一步实现去中心化的基于属性的访问控制,它能让资源拥有者根据自己的意愿制定相关访问策略,符合属性条件的数据访问申请者才能在智能合约自动执行时判决成功,并最终访问成功。
本发明的技术方案如下:
一种基于区块链的电力数据权限分级管理方法,包括:
S1、对电力数据进行预处理,所述电力数据包括来自n个不同部门的电力数据,所述预处理为按照电力数据来源部门进行分类;
S2、对区块链进行初始化,并在所述区块链上安置n个组织节点,各所述组织节点对应不同的部门;
设置属性授权中心、密钥管理中心、文件管理中心和加密中心;
S3、部署区块链智能合约,所述智能合约用于身份管理、密钥管理、文件加密、服务转发和数据查询;
S4、用户与区块链上的组织节点建立TLS连接,并进行交互,组织节点验证所述用户是否属于组织节点对应的部门,若是,则为所述用户注册身份并分配与区块链交互的权限,作为数据访问的第一级权限,所述注册身份包括赋予用户属性集,所述属性集用于验证用户是否满足访问策略;
S5、各所述组织节点分别与所述密钥管理中心建立TLS连接,利用DH协议进行密钥协商,生成密钥集合;
S6、分别取出各组织节点对应的密钥,加密中心利用密钥/>加密对应部门i的数据文件/>,得到加密文件集合/>,将加密文件存储至所述文件管理中心,将部门i对应的加密文件/>的文件地址存储至部门i对应的组织节点;
S7、根据文件机密等级对各部门的数据文件密钥设置访问策略,所述访问策略/>具备区分访问者级别的结构;
S8、所述组织节点将数据加密请求提交给所述属性授权中心,为数据设置第二级权限,所述属性授权中心对所述密钥集合中的密钥在访问策略下加密,生成加密后的密钥集合/>,并存储至所述密钥管理中心;
S9、用户查询部门i的数据文件时,用户通过分配的第一级权限身份在区块链上查询是否存在所需数据,若是,用户所属部门对应的组织节点向密钥管理中心请求加密密钥集合中对应的密钥e i 并返回给用户;
S10、判断用户是否具备所需数据的第二级权限,若具备,则解密密钥e i 得到所需部门密钥k i ,使用所述密钥k i 对所需数据的密文解密得到数据明文,所需数据的密文属于加密文件。
进一步的,步骤S6中,加密中心利用密钥和AES对称加密算法加密对应部门i的数据文件/>。
进一步的,步骤S8中,所述属性授权中心利用cpabe算法对所述密钥集合中的密钥在访问策略下加密。
进一步的,步骤S4包括:
用本地证书向区块链请求注册一个管理员身份,所述本地证书利用证书生成文件生成,生成与所属部门组织上相同的证书,当管理员被登记到组织节点后,在客户端拥有管理员身份,并收到管理员使用的签名密钥和证书;
管理员用成员相应的信息将部门成员用户注册到组织节点中,组织节点返回一个成员机密;
客户端使用所述机密将用户注册到身份管理机构,得到用户的签名密钥和证书,存储在本地身份钱包中,用于执行与区块链的交互。
进一步的,步骤S5包括:
组织节点A与密钥管理中心进行协商,协商过程如下:
组织节点A与密钥管理中心节点建立TLS连接,共享一个素数p以及该素数p的本原根g,2≤g≤p-1;
组织节点A产生一个私有的随机数R a ,且所述随机数R a 满足1≤R a ≤p-1,计算,将K a 通过TLS传输通道发送给所述密钥管理中心;
密钥管理中心产生一个私有的随机数R b ,且所述随机数R b 满足1≤R b ≤p-1,计算,将结果K b 通过传输通道发送给组织节点A;
组织节点A计算,密钥管理中心计算/>,得到共享密钥K,。
进一步的,步骤S7包括:
设置文件机密等级L、部门权限等级R和部门属性,机密等级集合为{},部门权限等级集合为{/>},部门i属性/>,其中T为部门所属公司,R为部门权限等级;
对部门i不同机密等级的文件设置不同的访问策略:
对于机密等级为L1的文件,设置访问策略;R 1 R 2 R 31of3表示部门权限等级为R 1、R 2和R 3可查看,/>表示部门所述公司为a公司可查看,2of2表示需同时满足前面的两个条件;
对于L2的文件,设置访问策略;R 2 R 31of2表示部门权限等级为R 2和R 3可查看;
对于L3的文件,设置访问策略;R 31of1表示部门权限等级为R 3可查看。
进一步的,步骤S8包括:
对于用户发起的加密请求,所述属性授权中心生成安全参数k,根据cpabe初始化算法setup,以k为输入,计算生成公钥PK:
利用步骤S7生成的访问策略,属性授权中心在访问策略/>下对各部门的密钥集合/>进行加密,利用cpabe加密算法Encrypt输入系统公钥PK、密钥集合和基于属性的访问测量/>,生成加密后的密钥集合{/>},将加密后的密钥集合存放在密钥管理中心。
进一步的,步骤S9包括:
只有经过身份注册的用户才有操纵智能合约的权限;
用户调用查询智能合约查询指定部门的加密密钥时,区块链将查询加密密钥的请求转发给密钥管理中心,密钥管理中心查询出结果后返回给用户。
进一步的,步骤S10包括:
属性授权中心根据用户属性检查每个通过一级身份验证用户的属性集S,将S作为cpabe算法密钥生成的一个输入,输出与该属性集对应的用户私钥SK
用户调用cpabe解密算法Decrypt,以公钥PK、密文CT和用户私钥SK作为输入,若用户属性集符合步骤S7中所述的访问策略,成功解密密钥密文得到解密后的对称密钥/>,利用对称密钥/>对文件管理中心存储的加密文件/>进行对称解密得到所需数据。
进一步的,步骤S2采用联盟链HyperledgerFabric作为可信平台。
本发明具有如下有益效果:
1.本发明使用的电力数据权限分级管理的方法,分级的方式使得用户访问数据的速度比传统的单一基于属性访问控制的方法得到提高,更快地排除了不符合身份的客户端用户,访问效率也有所提高。
2.本发明设计了多个密文密钥管理中心,分散了数据泄露的风险。第一次对称加密获得加密密文,存储在文件管理中心,区块链上的属性授权中心用于分配属性加密的密钥,第二次属性加密获得加密后的对称加密密钥,存储在密钥管理中心。攻击者仅仅破解其中的一方,无法得到数据明文。与传统的电力系统访问控制方式相比,安全性更高。
3.本发明针对电力数据体系子系统繁多和电力数据种类多的特点,对数据和部门进行定制化分级,设计了分级访问策略,并依照访问策略设计了分级访问树,对不同系统的数据进行数据隔离,防止部门数据直接的交叉修改。
具体实施方式
下面结合附图和具体实施例来对本发明进行详细的说明。
参考图1~5,一种基于区块链的电力数据权限分级管理方法,包括:
S1、对电力数据进行预处理,所述电力数据包括来自n个不同部门的电力数据,所述预处理为按照电力数据来源部门进行分类;
S2、对区块链进行初始化,并在所述区块链上安置n个组织节点,各所述组织节点对应不同的部门;
设置属性授权中心、密钥管理中心、文件管理中心和加密中心;
S3、部署区块链智能合约,所述智能合约用于身份管理、密钥管理、文件加密、服务转发和数据查询;
S4、用户与区块链上的组织节点建立TLS连接,并进行交互,组织节点验证所述用户是否属于组织节点对应的部门,若是,则为所述用户注册身份并分配与区块链交互的权限,作为数据访问的第一级权限,所述注册身份包括赋予用户属性集,所述属性集用于验证用户是否满足访问策略;TLS即安全传输层协议;
S5、各所述组织节点分别与所述密钥管理中心建立TLS连接,利用DH协议进行密钥协商,生成密钥集合;DH协议即Diffie-Hellman,一种确保共享KEY安全穿越不安全网络的方法;
S6、分别取出各组织结构对应的密钥,加密中心利用密钥/>加密对应部门i的数据文件/>,得到加密文件集合/>,将加密文件存储至所述文件管理中心,将部门i对应的加密文件/>的文件地址存储至部门i对应的组织节点;
S7、根据文件机密等级对各部门的数据文件密钥设置访问策略,所述访问策略/>具备区分访问者级别的结构;
S8、所述组织节点将数据加密请求提交给所述属性授权中心,为数据设置第二级权限,所述属性授权中心对所述密钥集合中的密钥在访问策略下加密,生成加密后的密钥集合/>,并存储至所述密钥管理中心;
S9、用户查询部门i的数据文件时,用户通过分配的第一级权限身份在区块链上查询是否存在所需数据,若是,用户所属部门对应的组织节点向密钥管理中心请求加密密钥集合中对应的密钥e i 并返回给用户;
S10、判断用户是否具备所需数据的第二级权限,若具备,则解密密钥e i 得到所需部门密钥k i ,使用所述密钥k i 对所需数据的密文解密得到数据明文,所需数据的密文属于加密文件;所述判断用户是否具备所需数据的第二级权限即判断用户是否符合访问策略P i 的要求。
本发明设计了多个密文密钥管理中心,分散了数据泄露的风险。第一次对称加密获得加密密文,存储在文件管理中心,区块链上的属性授权中心用于分配属性加密的密钥,第二次属性加密获得加密后的对称加密密钥,存储在密钥管理中心。攻击者仅仅破解其中的一方,无法得到数据明文。与传统的电力系统访问控制方式相比,安全性更高。
步骤S2中的属性授权中心用于分配属性加密的密钥,密钥管理中心为系统提供密钥的生成,保存,分发、查询和更新等相关操作,文件管理中心将各部门的文件按部门分别存储在此,提供文件的存储和查询等操作,加密中心应用密码学原理,采用AES,CPABE等加密算法对数据和密钥等进行加密。
在一种具体实施例中,步骤S5中的密钥集合为各组织节点与密钥管理中心协商后得到的密钥,如/>为编号为1的部门与密钥管理中心协商后得到的密钥,以此类推。
在一种具体实施例中,步骤S6中的加密文件集合为各组织节点对应部门的数据文件加密后的加密文件,如/>为编号为1的部门的数据文件加密后得到的加密文件。
在一种具体实施例中,所述属性授权中心设置在链上,所述密钥管理中心、所述文件管理中心和所述加密中心设置在链下,参考图3。
在本发明的一种实施方式中,步骤S6中,加密中心利用密钥和AES对称加密算法加密对应部门i的数据文件/>。
在本发明的一种实施方式中,步骤S8中,所述属性授权中心利用cpabe算法对所述密钥集合中的密钥在访问策略下加密。
在本发明的一种实施方式中,步骤S4包括:
用本地证书向区块链请求注册一个管理员身份,所述本地证书利用证书生成文件生成,生成与所属部门组织上相同的证书,当管理员被登记到组织节点后,在客户端拥有管理员身份,并收到管理员使用的签名密钥和证书;
管理员用成员相应的信息将部门成员用户注册到组织节点中,组织节点返回一个成员机密;所述机密包含用户的权限信息,在部分实施例中,包括能够访问的机密等级。
客户端使用所述机密将用户注册到身份管理机构,得到用户的签名密钥和证书,存储在本地身份钱包中,用于执行与区块链的交互。
在本发明的一种实施方式中,步骤S5包括:
组织节点A与密钥管理中心进行协商,协商过程如下:
组织节点A与密钥管理中心节点建立TLS连接,共享一个素数p以及该素数p的本原根g,2≤g≤p-1;因为无论k取何值,0 k mod p始终为0,1 k modp始终为1,由本原根定义知,g显然不为0和1,又由于g产生于素数p的一个完全剩余系,{0,1,…,p-1}是素数p的一个完全剩余系,故取2≤g≤p-1;
组织节点A产生一个私有的随机数R a ,且所述随机数R a 满足1≤R a ≤p-1,计算,将K a 通过TLS传输通道发送给所述密钥管理中心;由本原根的定义知,g1modp,g2mod p,…,gp-1mod p是不同的并且包含1到p-1的整数的某种排列,故取R a 满足1≤R a ≤p-1,
密钥管理中心产生一个私有的随机数R b ,且所述随机数R b 满足1≤R b ≤p-1,计算,将结果K b 通过传输通道发送给组织节点A;R b 的取值原理与R a 相同;
组织节点A计算,密钥管理中心计算/>,得到共享密钥K,。
在一种具体实施例中,每次协商包括以下步骤:
T1:部门a与密钥管理中心建立TLS连接,共享素数p以及p的本原根g(2≤g≤p-1)。
T2:部门a产生一个私有的随机数,满足1≤/>≤p-1,计算/>modp=/>
T3:结果通过TLS传输通道发送给密钥管理中心;
T4:与此同时,密钥管理中心产生一个私有的随机数,满足1≤/>≤p-1,计算modp=/>,将结果/>通过传输通道发送给部门A。
T5:部门a计算,密钥管理中心计算/>,得到共享密钥K,。
其中,mod为取模运算符。
在本发明的一种实施方式中,步骤S7包括:
设置文件机密等级L、部门权限等级R和部门属性,机密等级集合为{},部门权限等级集合为{/>},部门i属性/>,其中T为部门所属公司,R为部门权限等级;
对部门i不同机密等级的文件设置不同的访问策略:
对于机密等级为L1的文件,设置访问策略;R 1 R 2 R 31of3表示部门权限等级为R 1、R 2和R 3可查看,/>表示部门所述公司为a公司可查看,2of2表示需同时满足前面的两个条件;
对于L2的文件,设置访问策略;R 2 R 31of2表示部门权限等级为R 2和R 3可查看;
对于L3的文件,设置访问策略;R 31of1表示部门权限等级为R 3可查看。
在本发明的一种实施方式中,步骤S8包括:
对于用户发起的加密请求,所述属性授权中心生成安全参数k,根据cpabe初始化算法setup,以k为输入,计算生成公钥PK:
利用步骤S7生成的访问策略,属性授权中心在策略/>下对各部门的密钥集合进行加密,利用cpabe加密算法Encrypt输入系统公钥PK、密钥集合和基于属性的访问策略/>,生成加密后的密钥集合{/>},将加密后的密钥集合存放在密钥管理中心。
在本发明的一种实施方式中,步骤S9包括:
只有经过身份注册的用户才有操纵智能合约的权限;
用户调用查询智能合约查询指定部门的加密密钥时,区块链将查询加密密钥的请求转发给密钥管理中心,密钥管理中心查询出结果后返回给用户。
在本发明的一种实施方式中,步骤S10包括:
属性授权中心根据用户属性检查每个通过一级身份验证用户的属性集S,将S作为cpabe算法密钥生成的一个输入,输出与该属性集对应的用户私钥SK
用户调用cpabe解密算法Decrypt,以公钥PK、密文CT和用户私钥SK作为输入,若用户属性集符合步骤S7中所述的访问策略,成功解密密钥密文得到解密后的对称密钥/>,利用对称密钥/>对文件管理中心存储的加密文件/>进行对称解密得到所需数据。
在本发明的一种实施方式中,步骤S2采用联盟链HyperledgerFabric作为可信平台。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。