CN111783128B - 可验证的分布式数据库访问控制方法 - Google Patents
可验证的分布式数据库访问控制方法 Download PDFInfo
- Publication number
- CN111783128B CN111783128B CN202010720407.7A CN202010720407A CN111783128B CN 111783128 B CN111783128 B CN 111783128B CN 202010720407 A CN202010720407 A CN 202010720407A CN 111783128 B CN111783128 B CN 111783128B
- Authority
- CN
- China
- Prior art keywords
- user
- database
- access
- manager
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000013475 authorization Methods 0.000 claims abstract description 51
- 238000003860 storage Methods 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 9
- 238000012550 audit Methods 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract 1
- 230000004048 modification Effects 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009956 central mechanism Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本发明公开了一种可验证的分布式数据库访问控制方法,包括初始化加密参数的步骤;初始化智能合约的步骤;生成授权密文的步骤;发布授权参数的步骤;用户注册的步骤;用户访问数据库的步骤;用户属性修改的步骤和用户更新解密密钥的步骤。本发明不存在单点故障导致授权失败的问题,保证了数据参数保存在区块链上实现安全不可篡改;能够对分布式数据库访问权限进行细粒度的安全访问控制和对用户属性的撤销,防止了密钥泄露带来的责任鉴定问题和因令牌泄露造成数据库安全问题;同时实现用户访问数据库的记录可验证、可追溯、不可抵赖,便于数据库管理者对访问记录的审计和验证;安全性高、可靠性好且实用性好。
Description
技术领域
本发明属于数据库技术领域,具体涉及一种可验证的分布式数据库访问控制方法。
背景技术
随着经济技术的发展和人们生活水平的提高,计算机已经广泛应用于人们的生产和生活当中,给人们的生产和生活带来了无尽的便利。计算设备的频繁使用带来了互联网海量数据的快速增长,因而数据库的容量和规模也在逐渐增大。互联网上的数据库承载了大部分核心业务的数据,随着人们安全意识的提高,数据库安全性也越来越得到重视。目前,一个大型数据库由多个分布式数据库节点支撑,能够承载上层几百甚至几千个应用的数据存储服务,如何在不安全的互联网环境下保证分布式数据库的安全授权访问是确保互联网应用安全的基础。
分布式数据库访问控制是数据库安全的一个重要组成部分,目前,大多数分布式数据库虽然物理上是分散的,但管理方式上是集中式的。访问控制是分布式数据库管理的一部分,中心化的授权访问控制机制,既容易存在单点故障,也容易引起中心机构作恶的问题。传统基于ABE属性加密的方案需要密钥颁发机构或者中心机构的参与,在安全性方面会出现用户私钥泄露、责任无法认定的问题。
发明内容
本发明的目的在于提供一种安全性高、可靠性好且实用性好的可验证的分布式数据库访问控制方法。
本发明提供的这种可验证的分布式数据库访问控制方法,包括如下步骤:
初始化加密参数的步骤;
初始化智能合约的步骤;
生成授权密文的步骤;
发布授权参数的步骤;
用户注册的步骤;
用户访问数据库的步骤;
用户属性修改的步骤;
用户更新解密密钥的步骤。
所述的初始化加密参数的步骤,具体为管理者选择隐藏的安全参数,通过CP-ABE属性加密算法的初始化函数生成一组密钥对(PSK,MK),利用公钥加密算法生成非对称加密密钥对(PAK,SK);其中,PSK和PAK均为公开的加密参数,MK为仅由管理者保存的属性加密主密钥,SK为仅由管理者保存的公钥加密私钥。
所述的初始化智能合约的步骤,具体为管理者在区块链上发布数据库访问授权的智能合约。
所述的智能合约功能包括授权参数存储、授权参数读取、授权密文更新、用户访问记录生成与存储、分布式数据库节点信息更新与查询。
所述的生成授权密文的步骤,具体为数据库管理者构造访问策略Ac,使用随机算法生成分布式数据库的访问token,通过CP-ABE算法加密生成一个授权密文消息E;分布式数据库的各个节点调用智能合约,利用token作为对称加密密钥,加密节点连接信息并上传至区块链。
所述的发布授权参数的步骤,具体为管理者将公开的加密参数PSK、PAK和授权密文消息E通过调用智能合约的授权参数存储功能发布至区块链。
所述的用户注册的步骤,具体为用户在数据库管理员处进行用户属性注册;并在注册完成后,数据库管理者根据用户属性集合,利用密文策略属性加密密钥生成算法为用户生成解密密钥USK并返回给用户,数据库管理者仅保存用户ID;同时数据库管理者更新访问策略从而给用户开放访问权限。
所述的用户访问数据库的步骤,具体为采用如下步骤进行数据库的访问:
A.用户调用区块链智能合约的授权参数读取功能并获取公开参数PSK、PAK和授权密文消息E;
B.用户通过CP-ABE的解密算法解密出数据库的访问token;
C.用户通过智能合约将区块链上保存的数据库节点连接信息同步到本地,利用token将连接信息解密;
D.根据连接策略选择访问速度最快的数据库节点,将自己的ID和token的使用公钥PAK加密发给数据库管理者,由管理者使用私钥SK解密并进行用户身份验证;
E.验证通过后,数据库管理者为用户生成具有时间限制的临时访问令牌tk;用户在后续的访问数据库节点时,在访问请求中携带该tk作为临时访问凭证;
F.数据库管理者在验证用户身份通过时,调用智能合约的访问记录存储功能将用户的访问记录保存在区块链上。
所述的用户属性修改的步骤,具体为数据库管理者在分布式数据库保存用户属性的数据表中删除用户的某个属性,更新该用户的ID值,在Ac访问策略中通过在访问列表中删除该用户ID来禁止该用户访问,并重新生成数据库访问token以及授权密文E,并更新授权密文。
本发明提供的这种可验证的分布式数据库访问控制方法,第三方为去中心化的可信可靠区块链平台,数据库管理者兼任密钥分发机构,不需要依赖第三方权威机构也能够实现数据库安全访问控制,不存在单点故障导致授权失败的问题,同时也保证了数据参数保存在区块链上实现安全不可篡改;而且能够实现对分布式数据库访问权限进行细粒度的安全访问控制,同时提供用户属性撤销方案,能够实现数据库管理员对用户属性的撤销,本方案还取消了ABE授权机构和密钥管理机构,由用户保管自己的私钥,掌握了密钥的机构可能泄露用户私钥,从而防止了密钥泄露带来的责任鉴定问题;同时,本发明方法数据库管理者能够定期更新数据库访问的令牌,并在区块链上更新其授权密文,防止因令牌泄露造成数据库安全问题;最后,本发明方法利用区块链的数据可追溯性实现用户访问数据库的记录可验证、可追溯、不可抵赖,便于数据库管理者对访问记录的审计和验证。因此,本发明方法的安全性高、可靠性好且实用性好。
附图说明
图1为本发明方法的方法流程示意图。
图2为本发明方法的框架示意图。
图3为本发明方法的树形访问策略结构示意图。
具体实施方式
如图1所示为本发明方法的方法流程示意图:本发明提供的这种可验证的分布式数据库访问控制方法,包括三个参与角色分别为数据库用户、数据库管理者、区块链,如图2所示,包括如下步骤:
初始化加密参数的步骤;具体为管理者选择隐藏的安全参数,通过CP-ABE属性加密算法的初始化函数生成一组密钥对(PSK,MK),利用公钥加密算法生成非对称加密密钥对(PAK,SK);其中,PSK和PAK均为公开的加密参数,MK为仅由管理者保存的属性加密主密钥,SK为仅由管理者保存的公钥加密私钥;
在具体实施时,管理者选择一个隐藏的安全参数λ,设置属性集U,通过CP-ABE属性加密算法的初始化函数生成一组密钥对PSK、MK,其中(PSK、MK)=Setup(λ,U);利用公钥加密算法生成非对称加密密钥对PAK、SK,其中(PSK、SK)=KenGen_p();所述属性加密算法包括设置函数Setup()、密钥生成函数KeyGen()、解密算法Decrypt()、加密算法Encrypt();所述公钥加密算法包括KeyGen_p()、Encrypt_p()、Decrypt_p()函数;所述PSK、PAK是公开的加密参数,所述MK是仅为管理者保存的属性加密主密钥,所述SK是仅为管理者保存的公钥加密算法的私钥;
初始化智能合约的步骤;具体为管理者在区块链上发布数据库访问授权的智能合约;
在具体实施时,智能合约功能包括授权参数存储、授权参数读取、授权密文更新、用户访问记录生成与存储、分布式数据库节点信息更新与查询;
生成授权密文的步骤;具体为数据库管理者构造访问策略Ac,使用随机算法生成分布式数据库的访问token,通过CP-ABE算法加密生成一个授权密文消息E;分布式数据库的各个节点调用智能合约,利用token作为对称加密密钥,加密节点连接信息并上传至区块链;
发布授权参数的步骤;具体为管理者将公开的加密参数PSK、PAK和授权密文消息E通过调用智能合约的授权参数存储功能发布至区块链;
用户注册的步骤;具体为用户在数据库管理员处进行用户属性注册;并在注册完成后,数据库管理者根据用户属性集合,利用密文策略属性加密密钥生成算法为用户生成解密密钥USK并返回给用户,数据库管理者仅保存用户ID;同时数据库管理者更新访问策略从而给用户开放访问权限;
在具体实施时,注册完成后,数据库管理者根据用户属性集合,利用密文策略属性加密密钥生成算法为用户生成解密密钥USK并返回给用户,其中USK=KeyGen(PSK,MK,Au);数据库管理者仅保存用户的ID至用户表Tb1中,其中所述的用户ID=H(USK);同时,数据管理者将用户ID添加至Ac访问策略的访问列表下,以便用户获得授权密文的解密权限;
用户访问数据库的步骤;具体为采用如下步骤进行数据库的访问:
A.用户调用区块链智能合约的授权参数读取功能并获取公开参数PSK、PAK和授权密文消息E;
B.用户通过CP-ABE的解密算法解密出数据库的访问token;token=Decrypt(USK,PSK,E);
C.用户通过智能合约将区块链上保存的数据库节点连接信息同步到本地,利用token将连接信息解密;
D.根据连接策略选择访问速度最快的数据库节点,将自己的ID和token的使用公钥PAK加密发给数据库管理者,由管理者使用私钥SK解密并进行用户身份验证;
E.验证通过后,数据库管理者为用户生成具有时间限制的临时访问令牌tk;用户在后续的访问数据库节点时,在访问请求中携带该tk作为临时访问凭证;
在一段时间内,用户初次访问数据库节点需要构造访问参数Pa=Encrypt_p(PAK,ID|token),将Pa发给数据库管理者,由管理者的SK解密Pa得出token、ID后进行用户身份验证;
F.数据库管理者在验证用户身份通过时,调用智能合约的访问记录存储功能将用户的访问记录保存在区块链上;区块链上保存访问记录附带时间戳记录,便于管理者对访问记录的进行审计验证;
用户属性修改的步骤;具体为数据库管理者在分布式数据库保存用户属性的数据表中删除用户的某个属性,更新该用户的ID值,在Ac访问策略中通过在访问列表中删除该用户ID来禁止该用户访问,并重新生成数据库访问token以及授权密文E,并更新授权密文;
具体实施时,授权密文更新后,用户密钥USK无法解密最新授权密文,无法获取最新的token值,直到用户重新获取USK1之后才可以正常解密;
用户更新解密密钥的步骤;用户被撤销属性后便无法再通过数据库管理者的访问验证,必须在数据库管理者的平台上重新申请生成新的解密密钥进行请求访问;
在具体实施时,用户被撤销属性后便无法再通过数据库管理者的访问验证,必须在数据库管理者的平台上重新申请生成新的解密密钥USK1。申请成功后,管理者将用户在Tb1表更新用户ID为ID1。
用户注册和用户属性修改时,访问列表是通过门限逻辑构建的访问策略子树,如图3所示,访问策略Ac通过一个子树分支构建一个访问列表L,在用户注册时,将用户密钥的哈希添加到子树“1-of-n”的节点中。所述用户密钥的哈希值被添加到子树节点中才满足子树策略要求,否则不满足,用户密钥便无法解密授权密文E,该方法用于用户属性的撤销。
Claims (1)
1.一种可验证的分布式数据库访问控制方法,包括如下步骤:
初始化加密参数的步骤;具体为管理者选择隐藏的安全参数,通过CP-ABE属性加密算法的初始化函数生成一组密钥对(PSK,MK),利用公钥加密算法生成非对称加密密钥对(PAK,SK);其中,PSK和PAK均为公开的加密参数,MK为仅由管理者保存的属性加密主密钥,SK为仅由管理者保存的公钥加密算法的私钥;
初始化智能合约的步骤;具体为管理者在区块链上发布数据库访问授权的智能合约;智能合约功能包括授权参数存储、授权参数读取、授权密文更新、用户访问记录生成与存储、分布式数据库节点信息更新与查询;
生成授权密文的步骤;具体为数据库管理者构造访问策略Ac,使用随机算法生成分布式数据库的访问token,通过CP-ABE算法加密生成一个授权密文消息E;分布式数据库的各个节点调用智能合约,利用token作为对称加密密钥,加密节点连接信息并上传至区块链;
发布授权参数的步骤;具体为管理者将公开的加密参数PSK、PAK和授权密文消息E通过调用智能合约的授权参数存储功能发布至区块链;
用户注册的步骤;具体为用户在数据库管理者处进行用户属性注册;并在注册完成后,数据库管理者根据用户属性集合,利用密文策略属性加密密钥生成算法为用户生成解密密钥USK并返回给用户,数据库管理者仅保存用户ID;同时数据库管理者更新访问策略从而给用户开放访问权限;
用户访问数据库的步骤;具体为采用如下步骤进行数据库的访问:
A. 用户调用区块链智能合约的授权参数读取功能并获取公开参数PSK、PAK和授权密文消息E;
B. 用户通过CP-ABE的解密算法解密出数据库的访问token;
C. 用户通过智能合约将区块链上保存的数据库节点连接信息同步到本地,利用token将连接信息解密;
D. 根据连接策略选择访问速度最快的数据库节点,将自己的ID和token,使用公钥PAK加密,并发给数据库管理者,由管理者使用私钥SK解密并进行用户身份验证;
E. 验证通过后,数据库管理者为用户生成具有时间限制的临时访问令牌tk;用户在后续的访问数据库节点时,在访问请求中携带该tk作为临时访问凭证;
F. 数据库管理者在验证用户身份通过时,调用智能合约的用户访问记录生成与存储功能将用户的访问记录保存在区块链上;
用户属性修改的步骤;具体为数据库管理者在分布式数据库保存用户属性的数据表中删除用户的某个属性,更新该用户的ID值,在Ac访问策略中通过在访问列表中删除该用户ID来禁止该用户访问,并重新生成数据库访问token以及授权密文E,并更新授权密文;
用户更新解密密钥的步骤;用户被撤销属性后无法再通过数据库管理者的访问验证,用户必须在数据库管理者的平台上重新申请并生成新的解密密钥,再进行请求访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010720407.7A CN111783128B (zh) | 2020-07-24 | 2020-07-24 | 可验证的分布式数据库访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010720407.7A CN111783128B (zh) | 2020-07-24 | 2020-07-24 | 可验证的分布式数据库访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111783128A CN111783128A (zh) | 2020-10-16 |
CN111783128B true CN111783128B (zh) | 2021-09-28 |
Family
ID=72764003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010720407.7A Active CN111783128B (zh) | 2020-07-24 | 2020-07-24 | 可验证的分布式数据库访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111783128B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543105B (zh) * | 2020-11-26 | 2022-11-29 | 齐鲁工业大学 | 一种智能合约下基于角色的完全访问控制方法 |
CN112989385B (zh) * | 2021-03-26 | 2022-07-19 | 中国人民解放军国防科技大学 | 一种云际计算环境中数据安全动态访问控制方法及系统 |
CN113761492A (zh) * | 2021-08-17 | 2021-12-07 | 国网山东省电力公司信息通信公司 | 一种可信数据存储方法、系统、计算机设备、终端 |
CN114465824B (zh) * | 2022-04-11 | 2022-06-17 | 四川高速公路建设开发集团有限公司 | 面向智慧建设工程信息系统平台的授权访问控制方法 |
CN114780568B (zh) * | 2022-06-22 | 2022-09-20 | 军事科学院系统工程研究院网络信息研究所 | 一种分布式多方数据一致性更新方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294963A (zh) * | 2017-06-14 | 2017-10-24 | 广东工业大学 | 一种基于联盟区块链的数据的安全加密方法及装置 |
CN110098919A (zh) * | 2019-04-26 | 2019-08-06 | 西安电子科技大学 | 基于区块链的数据权限的获取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11362806B2 (en) * | 2018-03-30 | 2022-06-14 | Walmart Apollo, Llc | System and methods for recording codes in a distributed environment |
-
2020
- 2020-07-24 CN CN202010720407.7A patent/CN111783128B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294963A (zh) * | 2017-06-14 | 2017-10-24 | 广东工业大学 | 一种基于联盟区块链的数据的安全加密方法及装置 |
CN110098919A (zh) * | 2019-04-26 | 2019-08-06 | 西安电子科技大学 | 基于区块链的数据权限的获取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111783128A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111783128B (zh) | 可验证的分布式数据库访问控制方法 | |
CN116112274B (zh) | 在企业环境中区块链,管理组权限和访问的集成 | |
CN113132103B (zh) | 一种数据跨域安全共享系统及方法 | |
AU2011226741B2 (en) | Method and system for sharing encrypted content | |
WO2019114097A1 (zh) | 基于区块链的分布式存储方法 | |
Chen et al. | BIdM: A blockchain-enabled cross-domain identity management system | |
CN110278462A (zh) | 一种基于区块链的流动放映授权管理方法 | |
CN112800439B (zh) | 一种面向安全存储的密钥管理协议设计方法及系统 | |
CN113824563B (zh) | 一种基于区块链证书的跨域身份认证方法 | |
CN108810007B (zh) | 一种物联网安全架构 | |
CN111010430B (zh) | 一种基于双链结构的云计算安全数据共享方法 | |
US11544392B2 (en) | Implementation of a file system on a block chain | |
CN107612910A (zh) | 一种分布式文件数据访问方法及系统 | |
CN111901432A (zh) | 一种基于区块链的安全数据交换方法 | |
CN107426223A (zh) | 云文档加密及解密方法、加密及解密装置、以及处理系统 | |
Li | Secured cloud storage scheme based on blockchain | |
Yan et al. | Distributed authentication scheme for industry internet platform application based on consortium blockchain | |
CN114116609A (zh) | 一种基于ipfs的空间权限管理方法、设备及介质 | |
Zhang et al. | BC-SSES: Secure Storage Extension and Sharing Method for Blockchain | |
Wang et al. | Cloud computing key management mechanism for cloud storage | |
Rao et al. | VAPKI: A blockchain-based identification system with validation and authentication | |
CN106059759A (zh) | 一种cp‑abe密文访问控制的架构方法 | |
US20230199066A1 (en) | Distributed network nodes defining a database access gateway | |
Peng et al. | Research on the Application of Digital Education Resource Data Security Sharing Based on Blockchain and Access Control | |
Duan et al. | Access Control Mechanism for Edge Nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |