一种基于Fabric的数据库访问日志上链方法及系统

文档序号:26006226发布日期:2021-07-23 21:24阅读:271来源:国知局
一种基于Fabric的数据库访问日志上链方法及系统

本发明属于区块链技术领域,特别涉及一种基于fabric的数据库访问日志上链方法及系统。



背景技术:

数据库因为存储着大量有价值和敏感的信息,往往成为黑客的主要攻击目标。大量的网络罪犯作案时主要通过入侵在线业务服务器和破坏数据库获利,而数据库访问日志则记录了罪犯最原始的犯罪记录。但大多数企业在实际工作中并没有对数据库访问日志做安全防护工作,也很难保证获得的数据库访问日志信息的有效性,这就给日后的日志溯源工作带来了极大地障碍,因此,确保数据库数据库访问日志的安全已经成为越来越重要的命题。

目前,有很多的信息系统都存在一些内部人员滥用职权的问题,部分的系统用户可能会在自身的职能之外访问系统的关键性数据,并且将这部分数据用作其他不合理的用途,严重者可能会影响系统的运行,甚至构成犯罪。在很多时候,我们的系统都是针对外部的攻击进行防御,从而达到保护数据的目的。然而假如内部使用人员利用职务之便,私自窃取系统关键性数据,泄露用户隐私,在事后想要追查的话是十分困难的。由此可见,我们的系统不仅要采用防火墙、入侵检测、漏洞扫描等手段来防范系统遭受外部攻击,更要建立起合理的日志审查机制来检测内部人员的操作行为。这样的话,当内部员工恶意或者无意间的违规操作给系统带来安全问题时可以通过追踪系统操作日志来审查用户的行为。此外,系统也可以设定相应的响应措施,当日志触发了一些异常告警时可以进行及时的时候安全控制。

在现实生活中,很多时候如果只依赖系统自带的日志系统是很难达到在特殊情况下对日志的使用要求的,常常需要一些其他的手段来帮助我们进行日志上的管理。系统日志存储在我们传统的文件系统上,可能会由于遭受外部攻击或者内部管理员私自篡改日志内容等原因,导致日志文件的真实可靠性不高。因此针对日志安全的研究在这样的背景下是十分有必要的,有很多研究者已经在这方面做了深层次的研究。在很多系统中会依赖一个单独的日志管理系统来帮助我们管理这些繁杂的日志信息,这是一个在目前应用比较多的方案,但仍存在一些安全方面的问题。



技术实现要素:

为了解决数据库访问的安全问题,本发明提出一种基于fabric的数据库访问日志上链方法及系统,如图4,所述方法具体包括以下步骤:

s1:基于hyperledgerfabric构建数据库访问日志上链模型;

s2:在数据库访问日志上链模型中,基于raft共识机制中日志应用的迟滞差值和节点迟滞差值的方差齐性检验,构建信誉值模型,并选举leader节点;

s3:代理节点发起交易,经背书节点验证后,将交易信息广播给排序模块,由排序节点打包成块,通过组织节点写入账本。

进一步的,在构建的数据库访问日志上链模型中,以代理节点为客户端,构建hyperledgerfabric区块链,通过fabric智能合约将代理节点过滤后的数据库访问日志信息旁路到区块链。

进一步的,构建信誉值模型计算节点信誉值,具体包括以下步骤:

根据收到的操作请求写入raft节点中的logentry结构后,再将操作请求应用到状态机的延迟情况,计算任期ti节点s的raft中log日志应用迟滞差值

根据节点任期ti、节点迟滞差值节点历史平均迟滞差值计算得到迟滞差值的方差;

利用节点迟滞差值的方差进行方差齐性检验得到方差比率;

基于节点s的任期ti、迟滞差值的方差比率f来计算节点s的信誉值表示为:

进一步的,选举leader节点具体包括以下步骤:

初始化节点任期t0、节点log日志应用的迟滞差值节点历史平均迟滞差值并将leader节点个数k和leader平均信誉值初始化为0,将所有节点信誉值初始化为0.5;

当节点长时间未收到来自leader的消息时,获取每个节点信誉值,当节点信誉值不小于历届leader平均信誉值时,其转化为candidate节点;

由candidate节点发起新一轮leader节点选举,根据节点的投票分布选出新的leader,并根据信誉值模型计算节点的信誉值;

更新节点迟滞差值,并更新历届leader平均信誉值、节点历史平均迟滞差值,用于下一轮信誉值模型的计算。

进一步的,步骤s3具体包括以下步骤:

s31:代理节点根据背书策略构造交易提案并广播给背书节点,交易提案经背书节点验证通过后,对模拟执行结果进行背书并返回给代理节点;

s32:代理节点收到模拟执行结果后验证背书签名,验证通过后将数据库访问日志封装为交易请求并广播给排序模块,排序模块将交易排序并打包成块,并将区块广播给组织节点;

s33:组织节点对区块进行有效性验证后将其写入本地账本,并将区块同步广播给组织内的其他节点,最后向代理节点返回交易验证结果。

本发明还提出一种基于fabric的数据库访问日志上链系统,该系统包括日志旁路模块、交易背书模块、区块排序模块、区块生成模块、信誉值计算模块以及leader节点选举模块,其中:

日志旁路模块,用于将数据库访问日志信息进行过滤打包,然后由代理节点构建交易提案,发起交易请求;

交易背书模块,用于背书节点在交易模拟执行过程中交易提案进行有效性验证,验证通过后向代理节点发回响应,代理节点收获足够的再发起正式的交易请求;

区块排序模块,用于对收到的正式交易请求进行排序并打包成块,然后将区块广播给组织节点;

区块生成模块,用于验证组织节点接受到的区块的有效性,验证通过后写入到所有组织节点的本地账本中。

信誉值计算模块,用于计算节点的信誉值,该信誉值被用于区块排序模块leader节点的选举过程中,最终通过以leader节点为准的方式实现一系列排序模块的共识和各节点日志的一致;

leader节点选举模块,用于判断是否需要节点转换为candidate节点以及进行leader节点的选取。

本发明的有益效果包括:

1)本发明采用了hyperledgerfabric区块链来存储数据库访问日志信息,因为区块链具有去中心化、可溯源、防篡改等特性,因此可以保证存储的数据库访问日志具有很强的防篡改性、可溯源性。

2)本发明使用了raft算法作为区块链的共识算法,加快了fabric排序模块的共识效率,有助于应对数据库访问日志信息吞吐量非常巨大的情况,保证了系统的高吞吐量、高负载的特性,极大地提升了数据库访问日志信息上链的效率。

3)本发明对传统的raft共识算法进行了优化,在原来raft共识算法的leader选举过程中引入了信誉值模型,根据leader节点的日志复制过程和leadr选举过程中follower节点的投票行为来构造信誉值模型,降低了恶意节点当选为leader节点的可能性,大大提升了leader选举过程的安全性,从而进一步提升了数据库访问日志上链的安全性。

附图说明

图1为本发明中数据库访问日志上链拓扑图;

图2为本发明中日志上链逻辑架构图;

图3为本发明的交易流程图;

图4为本发明一种基于fabric的数据库访问日志上链方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提出一种基于fabric的数据库访问日志上链方法,其特征在于,具体包括以下步骤:

s1:基于hyperledgerfabric构建数据库访问日志上链模型;

s2:基于raft共识机制中日志应用的迟滞差值和节点迟滞差值的方差齐性检验,构建信誉值模型,并选举leader节点;

s3:代理节点发起交易,经背书节点验证后,将交易信息广播给排序模块,由排序节点打包成块,通过组织节点写入账本。

在本实施例中,基于fabric的数据库访问日志上链方法具体包括以下步骤:

步骤1:代理节点首先基于hyperledgerfabric构建数据库访问日志上链模型,模型包括日志旁路、交易背书、区块排序、区块生成等模块;

步骤2:然后raft集群中的排序节点基于raft共识机制中log日志应用的迟滞差值和节点迟滞差值的方差齐性检验构建信誉值模型,以提升fabric排序模块leader节点选举的公平性及安全性,并根据信誉值选举leader节点;

步骤3:最后由代理节点旁路出数据库访问日志后发起交易流程,经背书节点验证后,将交易信息广播给排序模块,由排序节点打包成块,通过组织节点写入账本。

如图1中数据库访问日志上链拓扑图所示,在基于hyperledgerfabric构建数据库访问日志上链模型,包括:

1)代理节点作为客户端,构建hyperledgerfabric区块链。

2)区块链构建好后,代理节点将数据库访问日志信息进行过滤,并通过fabric智能合约将过滤后的日志信息旁路到fabric区块链。

如图2,fabric区块链中包括由follower节点和leader节点构成的排序模块以及多个通道(channel),每个通道包括背书节点、主节点以及记账节点,当代理节点提交交易提案到某一通道的背书节点后,fabric区块链中该通道模拟执行交易提案并签名,再由钙通道的背书节点模拟执行结果到代理节点,代理节点再将交易正式提交到排序模块。

如图2中日志上链逻辑架构中信誉值模型模块所示,信誉值模型的构建和leader选举的过程如下:

1)raft集群中的排序节点基于raft共识机制中log日志应用的迟滞差值,并考虑节点任期、历届leader节点个数、历届leader节点平均信誉值、节点迟滞差值方差、节点迟滞差值的方差齐性检验构建信誉值模型。

2)模型构造好后,首先对系统进行初始化时,raft集群中的排序节点s在任期ti的信誉值表示为到任期ti为止,历届leader获选的平均信誉值表示为任意节点s信誉值初始化为0.5,任期t0、leader平均信誉值均初始化为0。

3)如果follower节点在心跳计时器超时后(一般为150~300ms)仍然没有收到leader的消息,根据信誉值模型将信誉值大于历届leader平均信誉值的follower节点将转变为candidate节点并发起选举。

4)candidate节点获多数投票以后当选为leader,若在这轮选举中没有选出leader节点,则自动进入下一轮的选举,重置心跳计时器,直至选出新的leader或收到了leader的消息。

5)在新的leader选出以后,根据信誉值模型按照下列公式更新follower和leader节点信誉值、历届leader平均信誉值所有节点的迟滞差值和历史平均迟滞差值等,采用如下公式更新任期ti节点s的迟滞差值:

其中,为节点s在任期ti的日志提交索引,为节点s在任期ti应用的日志索引。

采用如下公式更新任期节点s的历史平均日志应用迟滞差值:

采用下式计算节点s在任期ti时的方差

采用下式计算节点s迟滞差值的方差比率f:

采用下式计算任期ti节点s的信誉值:

如图1中数据库访问日志上链拓扑结构和图3中交易流程所示,系统的交易过程如下:

1)代理节点根据背书策略构造交易提案并广播给背书节点,交易提案经背书节点验证通过后,背书节点对模拟执行结果进行背书并响应给代理节点。

2)代理节点在收到足够的背书后验证背书签名,验证通过后将数据库访问日志信息封装为交易请求并广播给排序模块,排序模块将交易排序并打包成块,然后将区块广播给组织节点。

3)在组织中的主节点获取到区块以后,主节点先对区块进行有效性验证,验证通过后将每个有效交易写入本地账本中,然后将区块同步广播给组织内的其他节点,最后向代理节点返回交易验证结果。

如图1中的数据库访问日志上链拓扑图:该系统由代理节点和fabric区块链组成,系统包括日志旁路、交易背书、区块排序、区块生成等模块。首先,系统需要构建数据库访问日志上链模型,由代理节点作为客户端,将过滤后的日志信息旁路到fabric区块链,如步骤1所示;然后raft集群中的所有排序节点基于raft共识机制中log日志应用的迟滞差值和节点迟滞差值的方差齐性检验构建信誉值模型,该模型主要用于提升fabric排序模块leader选举的公平性及安全性,根据该模型完成raft共识机制中leader的选取,如图2所示;然后数据库访问日志的上链交易过程对应步骤3中的实现,该部分先由代理节点和背书节点完成交易模拟执行,代理节点得到足够的交易背书并验证通过后将交易广播给排序模块,有排序模块完成交易的排序打包,最后广播给组织节点完成最终的区块生成工作。

本发明还提出一种基于fabric的数据库访问日志上链系统,该系统包括日志旁路模块、交易背书模块、区块排序模块、区块生成模块、信誉值计算模块以及leader节点选举模块,其中:

日志旁路模块,用于将数据库访问日志信息进行过滤打包,然后由代理节点构建交易提案,发起交易请求;

交易背书模块,用于背书节点在交易模拟执行过程中交易提案进行有效性验证,验证通过后向代理节点发回响应,代理节点收获足够的再发起正式的交易请求;

区块排序模块,用于对收到的正式交易请求进行排序并打包成块,然后将区块广播给组织节点;

区块生成模块,用于验证组织节点接受到的区块的有效性,验证通过后写入到所有组织节点的本地账本中。

信誉值计算模块,用于计算节点的信誉值,该信誉值被用于区块排序模块leader节点的选举过程中,最终通过以leader节点为准的方式实现一系列排序模块的共识和各节点日志的一致;

leader节点选举模块,用于判断是否需要节点转换为candidate节点以及进行leader节点的选取。

进一步的,信誉值计算模块包括迟滞差值计算单元、迟滞差值方差计算单元、迟滞差值比率计算单元、节点信誉值计算单元,其中:

迟滞差值计算单元,用于根据raft机制中每个节点log日志写入,到应用至复制状态机的延迟情况,计算任期ti节点s的raft中log日志应用迟滞差值;

迟滞差值方差计算单元,用于根据节点任期ti、节点迟滞差值节点历史平均迟滞差值计算得到迟滞差值的方差;

迟滞差值比率计算单元,用于利用节点迟滞差值的方差进行方差齐性检验得到方差比率。

进一步的,leader节点选举模块包括节点初始化单元、节点转化单元、选举统计单元,其中:

节点初始化单元,用于对节点进行初始化,包括初始化节点任期t0、节点log日志应用的迟滞差值节点历史平均迟滞差值并将leader节点个数k和leader平均信誉值初始化为0,将所有节点信誉值初始化为0.5;

节点转化单元,用于在超过设置的时间未收到leader节点的消息时,获取每个节点的信誉值,并将信誉值不小于历届leader节点信誉值平均值的节点转换为candidate节点;

选举统计单元,用于统计candidate节点发起的leader节点选举,将票数最多的k个candidate节点作为新的leader节点。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1