CN117235810A - 一种基于区块链的日志安全存储与高效查询方法 - Google Patents
一种基于区块链的日志安全存储与高效查询方法 Download PDFInfo
- Publication number
- CN117235810A CN117235810A CN202311291105.2A CN202311291105A CN117235810A CN 117235810 A CN117235810 A CN 117235810A CN 202311291105 A CN202311291105 A CN 202311291105A CN 117235810 A CN117235810 A CN 117235810A
- Authority
- CN
- China
- Prior art keywords
- log
- access
- contract
- query
- user
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 238000007726 management method Methods 0.000 claims description 62
- 230000007613 environmental effect Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 13
- 238000013475 authorization Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000035945 sensitivity Effects 0.000 claims description 6
- 238000012550 audit Methods 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000011217 control strategy Methods 0.000 abstract 1
- 238000013500 data storage Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的日志安全存储与高效查询方法,属于信息安全技术领域。首先设计了一种基于区块链的链上链下协同防篡改日志存储框架,其中日志服务器接收日志生成器通过安全信道上传的日志并加密存储,同时提取日志中的关键词构建倒排序索引表,并将该索引表以交易的形式保存到区块链。该框架通过链上数据的不可篡改性,以及链上与链下数据的有效映射,保障了日志的防篡改性和完整性。在上述框架的基础上,设计了一种安全高效的日志查询方法:通过基于角色的访问控制策略对日志查询者进行身份认证,使用智能合约来高效处理合法日志查询者的请求,采用自适应前缀树作为数据结构保存索引项,实现了对日志的高效检索。
Description
技术领域
本发明涉及一种基于区块链的日志安全存储与高效查询方法,属于区块链的日志安全存储与查询技术领域。
背景技术
智慧物联网平台的有效运营、安全维护和性能监控至关重要。平台生成大量以日志形式记录的事件,包括设备、系统和应用程序的运行信息。通过分析这些日志,可以快速解决问题。智慧物联网已广泛渗透到生活各个领域,成为不可或缺的一部分。这些系统生成大量包含系统状态、用户操作的关键信息的日志数据。通过分析这些数据,可以感知系统状态并改善用户体验。
然而,由于日志中的关键信息,恶意攻击往往以日志为目标。恶意人员可能篡改日志,误导基于日志的系统分析,从而影响系统安全。更为严重的是,某些恶意攻击者甚至可以擦除其对日志数据所做修改的痕迹,使追溯到他们变得困难,由此造成的损失不容小觑。另外,快速增长的日志数据导致查询效率低下,无法迅速检索所需日志。
因此现有技术需要防止日志篡改以确保数据存储的可靠性和完整性,并提供满足用户查询需求的访问机制。
发明内容
本发明提供了一种基于区块链的日志安全存储与高效查询方法,以用于解决日志数据易被篡改、查询效率低的现象,提高了日志数据的安全存储和高效查询效率。用户可以快速、精确地获取所需数据,满足了现实应用中对日志数据查询的高要求。
本发明采用的技术方案是:一种基于区块链的日志安全存储与高效查询方法,所述方法的具体步骤如下:
S1:日志数据的加密与关键词提取:日志生成器LogGen将收集到的日志数据DataLD发送到日志服务器LogSer,通信双方使用DH密钥协商建立安全的数据传输通信信道,通信双方获得协商密钥NK,LogSer收到日志数据后使用SM4加密并保存,然后利用TF-IDF提取技术,计算每个单词在文件中的权重W,最后将提取出的关键词构建为倒排序索引表保存到区块链,一起上链的还包括时间戳,数据哈希指纹,资源-权限映射表;
S2:日志数据查询处理:数据请求者即用户以交易的形式发布查询请求到区块链,系统调用访问控制合约验证用户身份,在经过访问控制合约的验证后,获得授权令牌AuthToken,然后系统调用查询智能合约ESMC处理查询请求,以自适应前缀树ART作为数据结构保存索引项,遍历倒排索引表的每个关键词及信息,查询的方式有多关键词查询和时间范围查询,由此提供高效的查询功能,最后,系统查询时还需查看权限-资源映射表查询用户是否具有访问的权限,合约将用户的地址、查询请求和时间戳记录在查询数组中,以备后续记录比对;
S3:智能合约的创建与部署:首先部署属性信息管理合约AIMC,包括用户属性和资源属性,然后部署策略管理合约PMC有效管理访问策略,不同的用户具有不同的权限,最后部署访问控制合约ACMC,用于对用户属性与策略的匹配进行验证,进而决定是否授予访问权限,当用户发布访问请求后,调用访问控制合约查询链上的资源-权限映射表验证用户身份,所有访问行为均会被记录,这些记录可用于审计和溯源,以保障数据的合规性和安全性。
具体地,所述S1的具体步骤为:
S1.1:LogGen收集所有的日志数据,并将汇总后的日志数据保存到日志服务器,建立安全的通信渠道:
(1)首先计算LogGen与LogSer的协商密钥:
NKgen=(Yb)Amod p=(gBmod p)A=g(B×A)mod p (5)
NKser=(Ya)Bmod p=(gAmod p)B=gA×Bmod p (6)
日志生成器通过计算式(1)得到协商密钥NKgen,同理,日志服务器通过计算式(2)得到协商密钥NKser,且必然满足条件NKgen=NKser,因此双方经过协商得到了相同的密钥,达到了密钥协商的目的,其中p是素数,g是素数p的本原根,A是日志生成器的私有随机数,B是日志服务器的私有随机数,Ya=gA mod p,Yb=gB mod p;
(2)然后将协商密钥NK与将要发送的DataLD加密获得密文C=Enc(NK,DataLD);
S1.2:LogServer接收到LogGen发送的日志数据后,首先对密文进行解密Den(NK,DataLD),获得明文,然后对数据进行加密处理,利用伪随机数生成器PRNG生成一个随机密钥后与原始数据作为输入,使用SM4加密,得到密文C,用公式表示为:
C=SM4-Enc(P,K) (7)
其中,C表示密文,P是明文日志数据,K是随机密钥;
S1.3:首先对收集的日志数据进行预处理,包括对数据赋予相应的权限标签,去掉停用词、标点符号这些无关信息,然后使用TF-IDF关键词提取算法提取文档中的关键词,TF-IDF模型寻找在一个文档中频繁出现而在整个文档集合中很少出现的单词,用公式表示:
其中fi,j为关键字i在文档j中出现的频率,dfi为包含关键字i的文档在语料库文档D中出现的次数;
S1.4:将经过TF-IDF算法提取的关键词构建倒排序索引表,每个词都有一个与之关联的列表,包含所有含有该词的文档,各文档的开始记录时间StartT和结束记录时间EndT,列表是按照TF-IDF值从大到小排序的结果;
S1.5:将倒排索引表上传至区块链存储,索引表和区块一同生成,区块包含元数据倒排索引表、日志记录起始时间,数据哈希指纹,资源权限映射表。
具体地,所述S2的具体步骤包括:
S2.1:用户首先发布一个访问请求AR,以交易的形式上传至区块链,调用访问控制合约查询资源-权限表进行身份和权限的验证,验证通过后返回一个授权令牌;
S2.2:调用ESMC,将AR、AuthToken作为参数上传到ESMC,ESMC根据用户的查询请求执行查询,用户的查询方式可以是多关键词查询和以时间范围作为查询条件,采用KMP模糊匹配算法进行模糊查询,能够匹配缩写,匹配词根:
(1)多关键词查询:使用自适应前缀树作为数据结构,查询时,查询合约根据倒排索引表自动构造自适应前缀树ART,实现多关键词的查询;
(2)时间范围查询:对于想知道某一个时间段内发生的日志记录,根据需要查询日志记录的发生的时间,选择使用按照时间范围查询记录,查询请求者发布查询请求后,系统调用ESMC自动构建ART执行查询,执行查询请求后返回范围内的所有相关日志记录,然后根据用户身份过滤没有权限访问的记录;
S2.3:查询结束后合约将请求访问者的地址、查询请求和时间戳记录在查询数组中,以备后续记录比对。
具体地,所述S2.2的(1)中根据倒排索引表自动构造自适应前缀树ART,实现多关键词的查询的具体步骤包括:
(1)初始化ART树:创建一个根节点Root,通常为空节点;
(2)插入关键词:逐个插入关键词,从根节点开始,对于每个关键词的字符,检查是否已经存在一个具有相同字符的子节点,如果存在,移动到该子节点;否则,创建一个新的子节点并移动到该子节点;
(3)标记关键词结尾:当插入完整的关键词后,在最后一个字符的节点上标记关键词的结尾,使用一个特殊标记is_end_of_word=True来标记;
(4)搜索关键词:搜索关键词时,从根节点开始,逐个检查字符;如果字符在当前节点的子节点中,则移动到该子节点;否则,关键词不存在;
(5)遍历ART树:使用深度优先搜索遍历ART树,以获取所有的相关关键词。具体地,所述S2.2的(2)中,查找特定时间范围内的日志文件的具体步骤如下:
(1)将每个日志文件的时间戳作为键,将日志文件的相关信息作为值存储在ART树中,每当新的日志文件生成时,将其时间戳和相关信息插入到ART树中;
(2)从ART树的根节点开始,根据查询的时间范围以及时间戳的比较规则,逐级遍历树的节点;
(3)当到达某个节点时,根据时间戳的范围条件进一步确定是否需要继续向下遍历子节点;
(4)若不符合条件,则继续遍历左侧或右侧子节点,直到找到满足时间范围条件的日志文件;
(5)重复这个过程,直到查找到所有满足条件的日志文件,查询的时间复杂度通常为O(logN+M),其中N是树的高度,M是满足时间范围条件的日志文件数量。
具体地,所述S2中,系统调用访问控制合约验证用户身份的具体步骤如下:
S3.1:定义用户、环境和资源属性
用户属性:普通用户、管理员、审计员;
资源属性:设备类型、敏感级别、时间戳;
环境条件:根据上下文信息,如时间、地理信息;
S3.2:制定访问策略:将用户的属性、环境条件与日志数据的属性进行匹配,以确定是否具有访问权限;
S3.3:智能合约的创建:根据用户和资源的属性验证条件,以及依照策略来授权或拒绝访问权限,编写了智能合约,然后,将这一智能合约部署至区块链网络,为了构建基于属性的访问控制体系,借助了几个关键合约模块,包括属性信息管理合约AIMC、访问控制管理合约ACMC以及策略管理合约PMC:
S3.4:智能合约部署:将属性信息管理合约、访问控制合约、策略管理合约部署到区块链网络;
S3.5:智能合约触发:用户向访问控制模块发布访问请求,从而触发访问控制合约的执行,用户发布的访问请求包含用户身份、查询要求,这一过程中,访问控制合约与属性信息管理合约以及策略管理合约进行了交互,访问控制合约调用了属性信息管理合约以获取用户属性、资源属性以及环境属性的相关信息,同时,它还与策略管理合约交互,以获取相应的访问策略,通过这些交互,访问控制合约能够基于用户的属性、资源的属性以及环境的属性,结合事先定义的策略,做出准确的访问控制决策;
S3.6:智能合约验证:智能合约首先会验证用户的身份和属性,以及资源的属性,以确保请求的合法性,然后根据用户的属性和请求的资源属性,验证访问请求是否符合访问策略,并检查是否存在动态访问策略,如访问时间范围、特定条件下的访问;
S3.7:访问授权和访问记录创建:如果验证成功,智能合约将授予用户访问权限,并在区块链上创建一条访问记录,访问记录将包括用户ID、资源ID、时间戳、访问结果记录的信息,这个记录被添加到区块链的一个新块中,确保其不可篡改;
S3.8:动态访问策略更新:当用户属性或资源属性发生变化时,访问策略可以根据需要进行动态更新;
S3.9:资源访问:用户获得访问权限后,根据所获得的授权令牌,调用查询合约请求数据访问。
具体地,所述S3.2的具体步骤为:
S3.2.1:非敏感日志:所有用户类型都可以使用非敏感日志,这些日志不包含敏感信息,所有用户均可访问,无特定环境要求;
S3.2.2:敏感日志:普通用户可以访问敏感日志的部分内容,如记录自己的登录和数据访问,由于日志的敏感性,普通用户只能在特定时间内登录访问,管理员和审计员可以完整访问敏感日志,以便监控和审计用户行为,高度敏感日志涉及用户登录记录、数据访问记录、文件操作记录,对普通用户和管理员无特定环境要求;
S3.2.3:高度敏感日志:仅管理员可以访问高度敏感日志,这些日志包含敏感信息,因此需要限制访问权限,确保只有经过授权的人员可以查看,高度敏感日志包括用户对敏感数据的操作、身份验证信息、支付数据,无特定环境要求。
具体地,所述S3.3中属性信息管理合约AIMC、访问控制管理合约ACMC以及策略管理合约PMC的具体如下:
S3.3.1:属性信息管理合约AIMC:AIMC属性合约涵盖了用户属性管理、资源属性管理以及环境属性管理三项重要功能,通过与访问控制的交互接口,该合约不仅能够有效地管理属性值,还能够实现属性信息的持续更新,AIMC接口为访问控制提供了关键数据,使其能够检索各种属性值,并随着情境的变化保持属性信息的实时更新;
S3.3.2:访问控制合约ACMC:ACMC访问控制合约履行了收集访问请求、启动决策过程以及实施策略的三大关键功能,在策略执行环节,合约接收策略、访问请求以及当前属性值作为输入,经过评估后产生相应的访问决策,为允许、拒绝,或者以不确定方式处理;
S3.3.3:策略管理合约PMC:PMC策略管理合约充当了策略管理和策略存储的关键实现者,在策略管理方面,由于智能合约一经部署至区块链,其天然的不可篡改性质导致了无法直接对合约进行修改,因此,在设计合约时,引入一项升级机制,该机制蕴含于合约代码之中,具体体现为一个升级函数,当需要对合约进行更新时,通过调用该函数,以全新的合约代码取代原有版本,因而,已经部署的合约得以焕然一新,完成向更新版本的平稳迁移,对于策略存储,将每条访问策略编纂成一个访问策略表的形式,以实现对策略的有序储存与便捷管理。
本发明的有益效果是:本发明公开了一种基于区块链的日志安全存储与高效查询方法,部署智能合约建立基于属性的访问控制,利用智能合约自动执行和不可篡改的属性实现访问控制判断并且链下使用SM4加密后保存到本地,实现数据的防篡改。利用TF-IDF关键词提取技术提取关键词,构建倒排序索引表,建立链外数据与链上数据的映射关系,实现日志数据的高效查询。该方案可以在开放的智慧物联网环境中实现动态、分布式、可靠的访问控制。本发明与现有技术相比,主要解决了日志数据易被篡改、查询效率低的现象,提高了日志数据的安全存储和高效查询效率。
附图说明
图1是本发明总流程图;
图2日志查询详细流程图;
图3是基于属性的访问控制流程图。
具体实施方式
下面结合附图和具体实施例,对本发明做进一步的说明。
实施例1:参照附图1所示,例如考虑一个智能城市的物联网系统,其中数百个传感器即日志生成器分布在城市各地,收集关于交通、环境、能源等方面的数据,这些数据需要被安全地收集、存储和查询。与基于区块链的日志安全存储与高效查询具体步骤如下:
S1:日志数据的加密与关键词提取:例如物联网系统中的一个日志生成器LogGen_A负责收集环境监测数据DataLD,LogGen_A和日志服务器LogSer_B之间建立了安全的通信信道。这个通道通过DH密钥协商协议进行建立,双方协商得到了协商密钥NK,LogGen_A将NK与DataLD加密并发送给LogSer_B,LogSer_B收到密文后解密获得原始数据,在LogSer_B上,利用TF-IDF提取技术对解密后的日志数据进行处理,计算每个单词在文件中的权重W,最后将提取出的关键词构建为倒排序索引表保存到区块链,一起上链的还包括时间戳,数据哈希指纹,资源-权限映射表;
S2:日志数据查询处理:数据请求者即用户以交易的形式发布查询请求到区块链,系统调用访问控制合约验证用户身份,在经过访问控制合约的验证后,获得授权令牌AuthToken,然后系统调用查询智能合约ESMC处理查询请求,以自适应前缀树ART作为数据结构保存索引项,遍历倒排索引表的每个关键词及信息,查询的方式有多关键词查询和时间范围查询,由此提供高效的查询功能,最后,系统查询时还需查看权限-资源映射表查询用户是否具有访问的权限,合约将用户的地址、查询请求和时间戳记录在查询数组中,以备后续记录比对;
S3:智能合约的创建与部署:首先部署属性信息管理合约AIMC,包括用户属性和资源属性,然后部署策略管理合约PMC有效管理访问策略,不同的用户具有不同的权限,最后部署访问控制合约ACMC,用于对用户属性与策略的匹配进行验证,进而决定是否授予访问权限,当用户发布访问请求后,调用访问控制合约查询链上的资源-权限映射表验证用户身份,所有访问行为均会被记录,这些记录可用于审计和溯源,以保障数据的合规性和安全性。
进一步地,所述S1的具体步骤为:
S1.1:LogGen收集所有的交通日志数据,并将汇总后的日志数据保存到日志服务器,为了防止传输的过程数据被篡改,需要建立安全的通信渠道。
(1)假设LogGen_A与LogSer_B共享的p和g分别为p=13,g=3,然后LogGen_A选择一个私有数字A=15,LogSer_B也选择一个私有数字B=13,经过下述等式计算协商密钥:
NKgen=(Yb)Amod p=(gBmod p)A=g(B×A)mod p=8 (9)
NKser=(Ya)Bmod p=(gAmod p)B=gA×Bmod p=8 (10)
日志生成器通过计算式(1)得到协商密钥NKgen,同理,日志服务器通过计算式(2)得到协商密钥NKser,且必然满足条件NKgen=NKser=8,因此双方经过协商得到了相同的密钥,达到了密钥协商的目的。其中p是素数,g是素数p的本原根,A是日志生成器的私有随机数,B是日志服务器的私有随机数,Ya=gA mod p,Yb=gB mod p。
(2)经过上述计算后可得双方的协商密钥NK=8,,将8与要发送的DataLD加密获得密文C=Enc(NK,DataLD)。
S1.2:LogSer_B接收到LogGen_A发送的日志数据后,首先对密文进行解密Den(NK,DataLD),获得明文,然后对数据进行加密处理,利用伪随机数生成器(PRNG)生成一个随机密钥后与原始数据作为输入,使用SM4加密,得到密文C,用公式表示为:
C=SM4-Enc(P,K) (11)
其中,C表示密文,P是明文日志数据,K是随机密钥。
S1.3:LogSer_B获得数据后首先对日志数据进行预处理,包括对数据赋予相应的权限标签,去掉停用词(如“的”,“和”等在多数情况下对搜索没有帮助的词)、标点符号这些无关信息,例如,假设日志数据包括两条记录如下:1、Timestamp:2023-09-20 9:10:00Location:C Air Quality Index:95Weather Condition:Cloudy 2、时间戳:2023-09-2510:00:00Location:A Air Quality Index:80Weather Condition:Sunny。然后使用TF-IDF关键词提取算法提取文档中的关键词:Timestamp、Location、Air Quality Index、WeatherCondition进行计算,TF-IDF模型的主要是寻找在一个文档中频繁出现而在整个文档集合中很少出现的单词,可以用公式表示:
其中fi,j为关键字i在文档j中出现的频率,dfi为包含关键字i的文档在语料库文档D中出现的次数。
S1.4:将经过TF-IDF算法提取的关键词构建倒排序索引表,每个词都有一个与之关联的列表,包含所有含有该词的文档,各文档的开始记录时间StartT和结束记录时间end_Time。列表是按照TF-IDF值从大到小排序的结果。
S1.5:将倒排索引表上传至区块链存储,索引表和区块一同生成,区块包含元数据倒排索引表、日志记录起始时间,数据哈希指纹,资源权限映射表。
进一步地,参照附图2所示,所述S2的具体步骤包括:
S2.1:一个城市居民Bob希望查询过去一周内区域A的空气质量数据Bob首先发布一个访问请求AR:Query the air quality index and weather conditions for Area A,将其以交易的形式上传至区块链,调用访问控制合约查询资源-权限表进行身份和权限的验证,验证通过后返回给Bob一个授权令牌AuthToken。
S2.2:系统调用ESMC,将Bob的AR、AuthToken作为参数上传到ESMC,ESMC根据Bob的查询请求执行查询,查询方式可以是多关键词查询和以时间范围作为查询条件,采用KMP模糊匹配算法进行模糊查询,能够匹配缩写(如搜索abbr会返回包含abbreviation的结果),匹配词根(如搜索Fail会匹配Failed):
I1)多关键词查询:为了加快数据的查询速度,链外对数据的关键词构建倒排索引表,但查询时只能查询一个关键词,为了实现多关键词的查询,使用自适应前缀树作为数据结构,查询时,查询合约根据倒排索引表自动构造自适应前缀树ART,实现多关键词的查询。如根据Bob的查询请求关键词为:<Identity number,{Location:A,Air Quality Index,Weather Condition}>,首先依次查询包含Location:A,Air Quality Index,WeatherCondition的所有文档,然后对这些文档取交集,得到的就是包含三个关键词的文档,最后根据Bob的身份过滤没有权限访问的记录。
(2)时间范围查询:Bob若想知道某一个时间段内发生的日志记录,根据需要查询日志记录的发生的时间,可以选择使用按照时间范围查询记录。如查询请求为:<Identitynumber{2017-5-23,2017-5-25}>,调用ESMC自动构建ART执行查询,执行查询请求后返回范围内的所有相关日志记录,然后根据Bob的身份过滤没有权限访问的记录。
S2.2的(1)中根据倒排索引表自动构造自适应前缀树ART,实现多关键词的查询的具体步骤包括
(1)初始化ART树:创建一个根节点Root,通常为空节点。
(2)插入关键词:逐个插入关键词,从根节点开始。对于每个关键词的字符,检查是否已经存在一个具有相同字符的子节点。如果存在,移动到该子节点;否则,创建一个新的子节点并移动到该子节点。
(3)标记关键词结尾:当插入完整的关键词后,在最后一个字符的节点上标记关键词的结尾,使用一个特殊标记is_end_of_word=True来标记。
(4)搜索关键词:搜索关键词时,从根节点开始,逐个检查字符。如果字符在当前节点的子节点中,则移动到该子节点;否则,关键词不存在。
(5)遍历ART树:使用深度优先搜索遍历ART树,以获取所有的相关关键词。
S2.2的(2)中,查找特定时间范围内的日志文件的具体步骤如下:
(1)将每个日志文件的时间戳作为键,将日志文件的相关信息(文件名、存储路径)作为值存储在ART树中。每当新的日志文件生成时,将其时间戳和相关信息插入到ART树中。
(2)从ART树的根节点开始,根据查询的时间范围(开始时间和结束时间)以及时间戳的比较规则,逐级遍历树的节点。
(3)当到达某个节点时,根据时间戳的范围条件进一步确定是否需要继续向下遍历子节点。
(4)若不符合条件,则继续遍历左侧或右侧子节点,直到找到满足时间范围条件的日志文件。
(5)重复这个过程,直到查找到所有满足条件的日志文件。查询的时间复杂度通常为O(logN+M),其中N是树的高度,M是满足时间范围条件的日志文件数量。
S2.3:查询结束后合约将请求访问者的地址、查询请求和时间戳记录在查询数组中,以备后续记录比对。
参照附图3所示,所述S2中,系统调用访问控制合约验证用户身份的具体步骤如下:
S3.1:定义用户、环境和资源属性
用户属性:普通用户、管理员、审计员。
资源属性:设备类型、敏感级别、时间戳。
环境条件:根据上下文信息,如时间、地理信息。
S3.2:制定访问策略:将用户的属性、环境条件与日志数据的属性进行匹配,以确定是否具有访问权限。
S3.2.1:非敏感日志:所有用户类型(普通用户、管理员、审计员)都可以使用非敏感日志。这些日志通常不包含敏感信息,如系统启动和关闭日志、常规活动记录、一般性错误,对于问题排查和了解系统运行状态有帮助,因此所有用户均可访问,无特定环境要求。
S3.2.2:敏感日志:普通用户可以访问敏感日志的部分内容,如记录自己的登录和数据访问,由于日志的敏感性,普通用户只能在特定时间内登录访问。管理员和审计员可以完整访问敏感日志,以便监控和审计用户行为。高度敏感日志可能涉及用户登录记录、数据访问记录、文件操作记录,对普通用户和管理员无特定环境要求。
S3.2.3:高度敏感日志:仅管理员可以访问高度敏感日志。这些日志可能包含敏感信息,因此需要限制访问权限,确保只有经过授权的人员可以查看。高度敏感日志可能包括用户对敏感数据的操作、身份验证信息,无特定环境要求。
S3.3:智能合约的创建:根据用户和资源的属性验证条件,以及依照策略来授权或拒绝访问权限,编写了智能合约。然后,将这一智能合约部署至区块链网络。为了构建基于属性的访问控制体系,借助了几个关键合约模块,包括属性信息管理合约AIMC、访问控制管理合约ACMC以及策略管理合约PMC:
S3.3.1:属性信息管理合约:AIMC属性合约涵盖了用户属性管理、资源属性管理以及环境属性管理三项重要功能。通过与访问控制的交互接口,该合约不仅能够有效地管理属性值,还能够实现属性信息的持续更新。AIMC接口为访问控制提供了关键数据,使其能够检索各种属性值,并随着情境的变化保持属性信息的实时更新。
S3.3.2:访问控制合约:ACMC访问控制合约履行了收集访问请求、启动决策过程以及实施策略的三大关键功能。在策略执行环节,合约接收策略、访问请求以及当前属性值作为输入,经过评估后产生相应的访问决策,可能为允许、拒绝,或者以不确定方式处理。
S3.3.3:策略管理合约:PMC策略管理合约充当了策略管理和策略存储的关键实现者。在策略管理方面,由于智能合约一经部署至区块链,其天然的不可篡改性质导致了无法直接对合约进行修改。因此,在设计合约时,引入一项升级机制。该机制蕴含于合约代码之中,具体体现为一个升级函数。当需要对合约进行更新时,可以通过调用该函数,以全新的合约代码取代原有版本。因而,已经部署的合约得以焕然一新,完成向更新版本的平稳迁移。对于策略存储,将每条访问策略编纂成一个访问策略表的形式,以实现对策略的有序储存与便捷管理。
S3.4:智能合约部署:将属性信息管理合约、访问控制合约、策略管理合约部署到区块链网络。
S3.5:智能合约触发:用户向访问控制模块发布访问请求,从而触发访问控制合约的执行,用户发布的访问请求包含用户身份、查询要求(如关键词、时间)。这一过程中,访问控制合约与属性信息管理合约以及策略管理合约进行了交互。访问控制合约调用了属性信息管理合约以获取用户属性、资源属性以及环境属性的相关信息。同时,它还与策略管理合约交互,以获取相应的访问策略。通过这些交互,访问控制合约能够基于用户的属性、资源的属性以及环境的属性,结合事先定义的策略,做出准确的访问控制决策。
S3.6:智能合约验证:智能合约首先会验证用户的身份和属性,以及资源的属性,以确保请求的合法性,然后根据用户的属性和请求的资源属性,验证访问请求是否符合访问策略,并检查是否存在动态访问策略,如访问时间范围、特定条件下的访问。
S3.7:访问授权和访问记录创建:如果验证成功,智能合约将授予用户访问权限,并在区块链上创建一条访问记录。访问记录将包括用户ID、资源ID、时间戳、访问结果记录信息。这个记录被添加到区块链的一个新块中,确保其不可篡改。
S3.8:动态访问策略更新:当用户属性或资源属性发生变化时,访问策略可以根据需要进行动态更新。
S3.9:资源访问:用户获得访问权限后,根据所获得的授权令牌,调用查询合约请求数据访问。
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (8)
1.一种基于区块链的日志安全存储与高效查询方法,其特征在于:所述方法的具体步骤如下:
S1:日志数据的加密与关键词提取:日志生成器LogGen将收集到的日志数据DataLD发送到日志服务器LogSer,通信双方使用DH密钥协商建立安全的数据传输通信信道,通信双方获得协商密钥NK,LogSer收到日志数据后使用SM4加密并保存,然后利用TF-IDF提取技术,计算每个单词在文件中的权重W,最后将提取出的关键词构建为倒排序索引表保存到区块链,一起上链的还包括时间戳,数据哈希指纹,资源-权限映射表;
S2:日志数据查询处理:数据请求者即用户以交易的形式发布查询请求到区块链,系统调用访问控制合约验证用户身份,在经过访问控制合约的验证后,获得授权令牌AuthToken,然后系统调用查询智能合约ESMC处理查询请求,以自适应前缀树ART作为数据结构保存索引项,遍历倒排索引表的每个关键词及信息,查询的方式有多关键词查询和时间范围查询,由此提供高效的查询功能,最后,系统查询时还需查看权限-资源映射表查询用户是否具有访问的权限,合约将用户的地址、查询请求和时间戳记录在查询数组中,以备后续记录比对;
S3:智能合约的创建与部署:首先部署属性信息管理合约AIMC,包括用户属性和资源属性,然后部署策略管理合约PMC有效管理访问策略,不同的用户具有不同的权限,最后部署访问控制合约ACMC,用于对用户属性与策略的匹配进行验证,进而决定是否授予访问权限,当用户发布访问请求后,调用访问控制合约查询链上的资源-权限映射表验证用户身份,所有访问行为均会被记录,这些记录用于审计和溯源。
2.根据权利要求1所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述Sl的具体步骤为:
S1.1:LogGen收集所有的日志数据,并将汇总后的日志数据保存到日志服务器,建立安全的通信渠道:
(1)首先计算LogGen与LogSer的协商密钥:
NKgen=(Yb)Amod p=(gBmod p)A=g(B×A)mod p (1)
NKser=(Ya)Bmod p=(gAmod p)B=gA×Bmod p (2)
日志生成器通过计算式(1)得到协商密钥NKgen,同理,日志服务器通过计算式(2)得到协商密钥NKser,且必然满足条件NKgen=NKser,因此双方经过协商得到了相同的密钥,达到了密钥协商的目的,其中p是素数,g是素数p的本原根,A是日志生成器的私有随机数,B是日志服务器的私有随机数,Ya=gAmod p,Yb=gBmod p;
(2)然后将协商密钥NK与将要发送的DataLD加密获得密文C=Enc(NK,DataLD);
S1.2:LogServer接收到LogGen发送的日志数据后,首先对密文进行解密Den(NK,DataLD),获得明文,然后对数据进行加密处理,利用伪随机数生成器PRNG生成一个随机密钥后与原始数据作为输入,使用SM4加密,得到密文C,用公式表示为:
C=SM4-Enc(P,K) (3)
其中,C表示密文,P是明文日志数据,K是随机密钥;
S1.3:首先对收集的日志数据进行预处理,包括对数据赋予相应的权限标签,去掉停用词、标点符号这些无关信息,然后使用TF-IDF关键词提取算法提取文档中的关键词,TF-IDF模型寻找在一个文档中频繁出现而在整个文档集合中很少出现的单词,用公式表示:
其中fi,j为关键字i在文档j中出现的频率,dfi为包含关键字i的文档在语料库文档D中出现的次数;
S1.4:将经过TF-IDF算法提取的关键词构建倒排序索引表,每个词都有一个与之关联的列表,包含所有含有该词的文档,各文档的开始记录时间StartT和结束记录时间EndT,列表是按照TF-IDF值从大到小排序的结果;
S1.5:将倒排索引表上传至区块链存储,索引表和区块一同生成,区块包含元数据倒排索引表、日志记录起始时间,数据哈希指纹,资源权限映射表。
3.根据权利要求2所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述S2的具体步骤包括:
S2.1:用户首先发布一个访问请求AR,以交易的形式上传至区块链,调用访问控制合约查询资源-权限表进行身份和权限的验证,验证通过后返回一个授权令牌;
S2.2:调用ESMC,将AR、AuthToken作为参数上传到ESMC,ESMC根据用户的查询请求执行查询,用户的查询方式可以是多关键词查询和以时间范围作为查询条件,采用KMP模糊匹配算法进行模糊查询,能够匹配缩写,匹配词根:
(1)多关键词查询:使用自适应前缀树作为数据结构,查询时,查询合约根据倒排索引表自动构造自适应前缀树ART,实现多关键词的查询;
(2)时间范围查询:对于想知道某一个时间段内发生的日志记录,根据需要查询日志记录的发生的时间,选择使用按照时间范围查询记录,查询请求者发布查询请求后,系统调用ESMC自动构建ART执行查询,执行查询请求后返回范围内的所有相关日志记录,然后根据用户身份过滤没有权限访问的记录;
S2.3:查询结束后合约将请求访问者的地址、查询请求和时间戳记录在查询数组中,以备后续记录比对。
4.根据权利要求3所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述S2.2的(1)中根据倒排索引表自动构造自适应前缀树ART,实现多关键词的查询的具体步骤包括:
(1)初始化ART树:创建一个根节点Root,通常为空节点;
(2)插入关键词:逐个插入关键词,从根节点开始,对于每个关键词的字符,检查是否已经存在一个具有相同字符的子节点,如果存在,移动到该子节点;否则,创建一个新的子节点并移动到该子节点;
(3)标记关键词结尾:当插入完整的关键词后,在最后一个字符的节点上标记关键词的结尾,使用一个特殊标记is_end_of_word=True来标记;
(4)搜索关键词:搜索关键词时,从根节点开始,逐个检查字符;如果字符在当前节点的子节点中,则移动到该子节点;否则,关键词不存在;
(5)遍历ART树:使用深度优先搜索遍历ART树,以获取所有的相关关键词。
5.根据权利要求3所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述S2.2的(2)中,查找特定时间范围内的日志文件的具体步骤如下:
(1)将每个日志文件的时间戳作为键,将日志文件的相关信息作为值存储在ART树中,每当新的日志文件生成时,将其时间戳和相关信息插入到ART树中;
(2)从ART树的根节点开始,根据查询的时间范围以及时间戳的比较规则,逐级遍历树的节点;
(3)当到达某个节点时,根据时间戳的范围条件进一步确定是否需要继续向下遍历子节点;
(4)若不符合条件,则继续遍历左侧或右侧子节点,直到找到满足时间范围条件的日志文件;
(5)重复这个过程,直到查找到所有满足条件的日志文件,查询的时间复杂度通常为O(logN+M),其中N是树的高度,M是满足时间范围条件的日志文件数量。
6.根据权利要求1所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述S2中,系统调用访问控制合约验证用户身份的具体步骤如下:
S3.1:定义用户、环境和资源属性
用户属性:普通用户、管理员、审计员;
资源属性:设备类型、敏感级别、时间戳;
环境条件:根据上下文信息,如时间、地理信息;
S3.2:制定访问策略:将用户的属性、环境条件与日志数据的属性进行匹配,以确定是否具有访问权限;
S3.3:智能合约的创建:根据用户和资源的属性验证条件,以及依照策略来授权或拒绝访问权限,编写了智能合约,然后,将这一智能合约部署至区块链网络,为了构建基于属性的访问控制体系,借助了几个关键合约模块,包括属性信息管理合约AIMC、访问控制管理合约ACMC以及策略管理合约PMC:
S3.4:智能合约部署:将属性信息管理合约、访问控制合约、策略管理合约部署到区块链网络;
S3.5:智能合约触发:用户向访问控制模块发布访问请求,从而触发访问控制合约的执行,用户发布的访问请求包含用户身份、查询要求,这一过程中,访问控制合约与属性信息管理合约以及策略管理合约进行了交互,访问控制合约调用了属性信息管理合约以获取用户属性、资源属性以及环境属性的相关信息,同时,它还与策略管理合约交互,以获取相应的访问策略,通过这些交互,访问控制合约能够基于用户的属性、资源的属性以及环境的属性,结合事先定义的策略,做出准确的访问控制决策;
S3.6:智能合约验证:智能合约首先会验证用户的身份和属性,以及资源的属性,以确保请求的合法性,然后根据用户的属性和请求的资源属性,验证访问请求是否符合访问策略,并检查是否存在动态访问策略,如访问时间范围、特定条件下的访问;
S3.7:访问授权和访问记录创建:如果验证成功,智能合约将授予用户访问权限,并在区块链上创建一条访问记录,访问记录将包括用户ID、资源ID、时间戳、访问结果记录的信息,这个记录被添加到区块链的一个新块中,确保其不可篡改;
S3.8:动态访问策略更新:当用户属性或资源属性发生变化时,访问策略可以根据需要进行动态更新;
S3.9:资源访问:用户获得访问权限后,根据所获得的授权令牌,调用查询合约请求数据访问。
7.根据权利要求6所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述S3.2的具体步骤为:
S3.2.1:非敏感日志:所有用户类型都可以使用非敏感日志,这些日志不包含敏感信息,所有用户均可访问,无特定环境要求;
S3.2.2:敏感日志:普通用户可以访问敏感日志的部分内容,如记录自己的登录和数据访问,由于日志的敏感性,普通用户只能在特定时间内登录访问,管理员和审计员可以完整访问敏感日志,以便监控和审计用户行为,高度敏感日志涉及用户登录记录、数据访问记录、文件操作记录,对普通用户和管理员无特定环境要求;
S3.2.3:高度敏感日志:仅管理员可以访问高度敏感日志,这些日志包含敏感信息,因此需要限制访问权限,确保只有经过授权的人员可以查看,高度敏感日志包括用户对敏感数据的操作、身份验证信息、支付数据,无特定环境要求。
8.根据权利要求6所述的一种基于区块链的日志安全存储与高效查询方法,其特征在于,所述S3.3中属性信息管理合约AIMC、访问控制管理合约ACMC以及策略管理合约PMC的具体如下:
S3.3.1:属性信息管理合约AIMC:AIMC属性合约涵盖了用户属性管理、资源属性管理以及环境属性管理三项重要功能,通过与访问控制的交互接口,该合约不仅能够有效地管理属性值,还能够实现属性信息的持续更新,AIMC接口为访问控制提供了关键数据,使其能够检索各种属性值,并随着情境的变化保持属性信息的实时更新;
S3.3.2:访问控制合约ACMC:ACMC访问控制合约履行了收集访问请求、启动决策过程以及实施策略的三大关键功能,在策略执行环节,合约接收策略、访问请求以及当前属性值作为输入,经过评估后产生相应的访问决策,为允许、拒绝,或者以不确定方式处理;
S3.3.3:策略管理合约PMC:PMC策略管理合约充当了策略管理和策略存储的关键实现者,在策略管理方面,由于智能合约一经部署至区块链,其天然的不可篡改性质导致了无法直接对合约进行修改,因此,在设计合约时,引入一项升级机制,该机制蕴含于合约代码之中,具体体现为一个升级函数,当需要对合约进行更新时,通过调用该函数,以全新的合约代码取代原有版本,因而,已经部署的合约得以焕然一新,完成向更新版本的平稳迁移,对于策略存储,将每条访问策略编纂成一个访问策略表的形式,以实现对策略的有序储存与便捷管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311291105.2A CN117235810A (zh) | 2023-10-07 | 2023-10-07 | 一种基于区块链的日志安全存储与高效查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311291105.2A CN117235810A (zh) | 2023-10-07 | 2023-10-07 | 一种基于区块链的日志安全存储与高效查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117235810A true CN117235810A (zh) | 2023-12-15 |
Family
ID=89087830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311291105.2A Pending CN117235810A (zh) | 2023-10-07 | 2023-10-07 | 一种基于区块链的日志安全存储与高效查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235810A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614750A (zh) * | 2024-01-24 | 2024-02-27 | 北京亚鸿世纪科技发展有限公司 | 一种网络安全日志查询方法及系统 |
CN117792797A (zh) * | 2024-02-26 | 2024-03-29 | 中国信息通信研究院 | 基于工业互联网标识解析的数据权限管理方法和装置 |
CN117938547A (zh) * | 2024-03-22 | 2024-04-26 | 恒丰银行股份有限公司 | 一种数据资产安全控制方法、设备及介质 |
-
2023
- 2023-10-07 CN CN202311291105.2A patent/CN117235810A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614750A (zh) * | 2024-01-24 | 2024-02-27 | 北京亚鸿世纪科技发展有限公司 | 一种网络安全日志查询方法及系统 |
CN117614750B (zh) * | 2024-01-24 | 2024-05-24 | 北京亚鸿世纪科技发展有限公司 | 一种网络安全日志查询方法及系统 |
CN117792797A (zh) * | 2024-02-26 | 2024-03-29 | 中国信息通信研究院 | 基于工业互联网标识解析的数据权限管理方法和装置 |
CN117792797B (zh) * | 2024-02-26 | 2024-05-14 | 中国信息通信研究院 | 基于工业互联网标识解析的数据权限管理方法和装置 |
CN117938547A (zh) * | 2024-03-22 | 2024-04-26 | 恒丰银行股份有限公司 | 一种数据资产安全控制方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114514732B (zh) | 用于区块链dag结构的共识协议的方法、计算系统和可读介质 | |
Mehmood et al. | Protection of big data privacy | |
CN117235810A (zh) | 一种基于区块链的日志安全存储与高效查询方法 | |
CN107423632B (zh) | 可定制的敏感数据脱敏方法和系统 | |
Bringer et al. | Identification with encrypted biometric data | |
CN112765245A (zh) | 一种电子政务大数据处理平台 | |
US20080271157A1 (en) | Evaluating removal of access permissions | |
Zhang et al. | Efficient dynamic provable possession of remote data via balanced update trees | |
CN107733863B (zh) | 一种分布式hadoop环境下的日志调试方法和装置 | |
CN106874461A (zh) | 一种工作流引擎支持多数据源配置安全访问系统及方法 | |
Rahman et al. | A blockchain-enabled privacy-preserving verifiable query framework for securing cloud-assisted industrial internet of things systems | |
De Capitani di Vimercati et al. | Preserving confidentiality of security policies in data outsourcing | |
Zhang et al. | Efficient dynamic provable possession of remote data via update trees | |
CN113886841A (zh) | 一种面向云数据操作行为的可信溯源方法 | |
KR102009029B1 (ko) | 특징정보 비교분석을 통한 콘텐츠 필터링 시스템 | |
CN101408955A (zh) | 一种基于策略的责任认定方法与系统 | |
Shahin et al. | Big data platform privacy and security, a review | |
Sun et al. | Cloud Computing and Security: 4th International Conference, ICCCS 2018, Haikou, China, June 8–10, 2018, Revised Selected Papers, Part III | |
CN110177092A (zh) | 一种基于区块链的电子数据可信下载方法 | |
Korsgaard | Improving trust in the Wikipedia | |
CN115033187B (zh) | 一种基于大数据的分析管理方法 | |
CN116112264B (zh) | 一种基于区块链的策略隐藏大数据访问控制方法和装置 | |
CN115525609B (zh) | 一种基于电子文件与电子档案的数据交换平台及方法 | |
CN114244823B (zh) | 一种基于Http请求自动变形的渗透测试方法及系统 | |
Lindqvist | Privacy preserving audit proofs |
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 |