首页 / 专利库 / 视听技术与设备 / / 基于存储空间互换的改进的防重放设备

基于存储空间互换的改进的防重放设备

阅读:505发布:2020-05-08

专利汇可以提供基于存储空间互换的改进的防重放设备专利检索,专利查询,专利分析的服务。并且本文描述了用于检测和禁止重放攻击的方法、系统和装置,包括编码在计算机存储介质上的 计算机程序 。所述方法之一包括:接收要在 区 块 链 中完成的交易,确定用于存储交易信息的 存储器 中的当前工作区段,所述当前工作区段被 指定 用于识别已处理的历史交易,其中,所述存储器还存储有备份区段,所述备份区段在与所述当前工作区段组合使用时为所述交易信息提供替换存储区段存储方案。根据所述当前工作区段确定所述交易先前是否已被处理。当确定所述交易先前已被处理时,跳过所述交易。当确定所述交易先前未被处理时处理所述交易,以及将所述交易的交易信息写入所述当前工作区段。,下面是基于存储空间互换的改进的防重放设备专利的具体信息内容。

1.一种计算机实现的用于检测和禁止重放攻击的方法,所述方法包括:
接收要在链中完成的交易;
确定用于存储交易信息的存储器中的当前工作区段,所述当前工作区段被指定用于识别已处理的历史交易,所述存储器还存储有备份区段,所述备份区段在与所述当前工作区段组合使用时为所述交易信息提供替换存储区段存储方案;
根据所述当前工作区段确定所述交易先前是否已被处理;
当确定所述交易先前已被处理时,跳过所述交易;以及
当确定所述交易先前未被处理时:
处理所述交易;以及
将所述交易的交易信息写入所述当前工作区段。
2.如权利要求1所述的方法,还包括:
确定是否满足用于发起在所述当前工作区段和所述备份区段之间的切换的阈值条件。
3.如权利要求2所述的方法,还包括:
当确定满足所述阈值条件时:
发起所述切换,包括开启重叠阶段,在所述重叠阶段中,所述交易信息被写入所述当前工作区段和所述备份区段;
清空所述备份区段;以及
将所述交易信息写入所述备份区段。
4.如权利要求3所述的方法,还包括:
确定已经到达所述重叠阶段的末端;
停止将所述交易信息写入所述当前工作区段;以及
指定所述备份区段作为当前工作区段。
5.如权利要求3所述的方法,其中,所述阈值条件是关于所述当前工作区段的已使用存储容量的预设百分比的指示。
6.如权利要求3所述的方法,其中,所述阈值条件是关于所述当前工作区段的误判率超过预设率的指示。
7.如先前任一项权利要求所述的方法,还包括:
确定所述交易是否在所述区块链中;以及
在确定所述交易在所述区块链中时,跳过所述交易。
8.如先前任一项权利要求所述的方法,还包括:
在确定所述交易先前是否已被处理之前,使用布隆过滤器确定所述交易先前已被处理的概率。
9.一种用于检测和禁止重放攻击的系统,包括:
一个或多个处理器;以及
耦接至所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行如权利要求1至8中任一项所述的方法。
10.一种用于检测和禁止重放攻击的装置,所述装置包括用于执行如权利要求1至8中任一项所述的方法的多个模块。

说明书全文

基于存储空间互换的改进的防重放设备

技术领域

[0001] 本文涉及识别重放攻击(或回放攻击),在重放攻击中交易或传输被恶意性或欺骗性重复。

背景技术

[0002] 分布式账本系统(DLS),也可称为共识网络和/或链网络,使得参与的实体能够安全且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络类型的示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并包括访问控制层。
[0003] 重放攻击可以指攻击方发送目标主机已经接收过的包,例如区块链网络中的交易。重放攻击的目的是欺骗区块链网络。重放攻击可以由例如恶意计算机用户的发起方执行,其拦截(例如通过窃取)交易并重新发送与交易有关的数据。重放攻击可以在任何网络通信处理中发生、并且是恶意计算机用户最常用的攻击方法之一。
[0004] 布隆过滤器可以用于识别交易是否已经发生。布隆过滤器是被优化以高效插入和查询的数据结构,并可以接受例如“某样东西(交易)一定不存在或可能存在”之类的查询并返回概率值。布隆过滤器具有相对于传统数据结构更高效且消耗更少计算资源(例如,存储空间)的优点。布隆过滤器的一个缺点是返回值是概率性的(也即,不精确的)。
[0005] 期望加速识别重复交易的处理以更快速地识别重放攻击。发明内容
[0006] 本文描述了用于使用存储空间互换识别重放攻击的技术。这些技术一般涉及存储交易信息(例如,交易标识(ID))。用于存储交易信息的存储器可以被划分为工作区段和备份区段。工作区段可以用于存储当前交易信息。一旦工作区段接近写满,交易可以被存储在备份区段中。在重叠阶段,交易信息可以被存储在工作区段和备份区段来提供冗余。在切换时,备份区段可以被指定为新的写有交易信息的工作区段。仅对最近的交易进行交易信息的存储和搜索可以加速搜索时间。
[0007] 本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
[0008] 本文还提供了用于实施本文提供的所述方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将导致所述一个或多个处理器按照本文提供的方法的实施例执行操作。
[0009] 应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
[0010] 以下在附图和描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显而易见。

附图说明

[0011] 图1是示出可以用于执行本文实施例的环境的示例的图。
[0012] 图2描述了根据本文实施例的示例性架构。
[0013] 图3是示出根据本文实施例的重放攻击场景的示例的框图
[0014] 图4是示出根据本文实施例的用于检测重放攻击的常规系统的示例的框图。
[0015] 图5是示出根据本文实施例的用于检测重放攻击的系统的示例的框图。
[0016] 图6是描述用于检测和禁止(disable)重放攻击的方法的示例的流程图
[0017] 图7描述了根据本文实施例的装置的模块的示例。
[0018] 各附图中相同的附图标记和名称指示相同的元素。

具体实施方式

[0019] 本公开描述了涉及用于使用存储空间互换以更高效地识别重放攻击技术的方案。仅最近交易的信息被存储在存储器的工作区段中。在确定达到阈值条件时,例如当工作区段处于写满的阈值百分比时,执行切换。在切换期间,备份区段成为工作区段。在重叠阶段,交易信息可以被存储在工作区段和备份区段以提供冗余。仅对最近的交易进行交易信息的存储和搜索可以加速搜索时间。例如,交易可以是区块链中的交易。
[0020] 为本文的实施例提供进一步的背景,并且如上所述,分布式账本系统(DLS),又可以称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体安全地、不可篡改地进行交易和存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例情况下,本文使用“区块链”来一般地指代DLS。
[0021] 区块链是以交易不可篡改的方式存储交易的数据结构。因此,记录在区块链上的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据经哈希处理,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenate)。此处理沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与该树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
[0022] 区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文参考联盟区块链网络进一步详细描述了本文的实施例。然而,可以预期,本文的实施例可以在任何适当类型的区块链网络中实现。
[0023] 通常,联盟区块链网络在参与的实体间是私有的。在联盟区块链网络中,共识处理由可以被称为共识节点的授权的节点集控制,一个或多个共识节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
[0024] 在一些示例中,在联盟区块链网络内,全局区块链被提供为跨所有节点复制的区块链。也就是说,所有共识节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在联盟区块链网络内实现共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识,下面将进一步详细描述。
[0025] 图1是示出可用于执行本文实施例的环境100的示例的图。在一些示例中,环境100使得实体能够参与联盟区块链网络102中。环境100包括计算设备106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后台系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得能够与联盟区块链网络102通信或在联盟区块链网络102内部通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算设备106、108可以是计算系统(未示出)的节点,或者每个计算设备106、108可以是单独的云计算系统,其包括通过网络互连并且用作分布式处理系统的多个计算机。
[0026] 在所描绘的示例中,计算设备106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算设备。计算设备的示例包括(但不限于)服务器、台式计算机、笔记本电脑平板电脑和智能手机。在一些示例中,计算设备106、108承载用于与联盟区块链网络102交互的一个或多个由计算机实施的服务。例如,计算设备106可以承载第一实体(例如,用户A)的由计算机实施的、例如交易管理系统的服务,例如,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算设备108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被示出为节点的点对点网络(Peer-to-Peer network),并且计算设备106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
[0027] 图2描绘了根据本文实施方式的示例性概念架构200。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如本文中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
[0028] 在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如本文所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的单个系统(例如,计算机、服务器)。在图2的示例中,参与者与每个节点214对应。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
[0029] 节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应的系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206分别存储区块链216的完整副本216'、216”、216”'。
[0030] 区块链(例如,图2的区块链216)包括区块的链,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据(例如,文档、图像、视频、音频)可以存储在区块链中。交易的示例可以包括但不限于交换有价物(例如,资产、产品、服务、货币)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能被改变。
[0031] 在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的处理。无法对哈希值进行去哈希处理(un-hash)以获得交易数据。哈希处理确保即使交易数据中的轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括(但不限于)输出256位哈希值的安全哈希算法(SHA)-256。
[0032] 多个交易的交易数据被哈希处理并存储在区块中。例如,提供了两个交易的哈希值,并对它们自身进行哈希处理以提供另一个哈希值。重复该处理,直到对于所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
[0033] 通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行将区块添加到区块链中的工作。这样的节点称为共识节点。上文介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
[0034] 更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最新区块(即,添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)和时间戳。
[0035] 通常,PBFT提供容忍拜占庭错误(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的操纵消息)在PBFT中实现的。在PBFT中,在包括主共识节点和备共识节点的序列中提供共识节点。主共识节点会定期更改,通过由区块链网络内的所有共识节点对区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点(peer node)接收的,并验证在传输期间消息未被篡改。
[0036] 在PBFT中,共识协议是在所有共识节点以相同的状态开始的情况下分多个阶段提供的。首先,客户端向主共识节点发送用以调用服务操作(例如,在区块链网络内执行交易)的请求。响应于接收到该请求,主共识节点将该请求组播到备共识节点。备共识节点执行该请求,并且各自向客户端发送回复。客户端等待直到接收到阈值数量的回复。在一些示例中,客户端等待直到接收f+1个回复,其中f是区块链网络内可以容忍的故障共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,并且该记录或被接受或被拒绝。
[0037] 在一些区块链网络中,实施密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既加密(从明文生成密文)又解密(从密文生成明文)的加密处理。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
[0038] 非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密的数据发送给参与者B。参与者B可以使用其私钥来对该加密数据(密文)进行解密并提取出原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
[0039] 非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以基于参与者A的该数字签名来确认该消息是由该节点发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A向参与者B发送一条消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值,以提供作为加密的哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
[0040] 在一些情况下,区块链可以被恶意代理方攻击。例如,诸如软件机器人(又称为例如互联网机器人、网页机器人、万维网(WWW)机器人或机器人)的恶意代理方可以在区块链上发起重放攻击。重放攻击可以试图使区块链中的交易被重新处理,这可以造成其他问题:计算资源的浪费(例如,处理速度、网络带宽、内存使用和数据存储使用)或财产损失(例如,一定金额的货币)。
[0041] 图3是示出根据本文实施例的重放攻击场景300的示例的框图。重放攻击场景300包括重放攻击,所述重放攻击包括重放曾在发送方行Alice 302和接收方银行Bob 304之间将要发生的交易。交易包括Alice 302提供的汇款请求信息306和正确MAC值308。例如,在交易期间,可能会发生由通过窃取或保存交易信息的恶意代理方实施的窃取和保存310,包括窃取汇款请求信息312和窃取由Alice 302提供的(或从中窃取)正确MAC值314。在此示例中,恶意代理方是主动攻击方Mallory 316。主动攻击方Mallory 316可以使用汇款请求信息320和正确MAC值322发起重放攻击318。在重放攻击324期间,主动攻击方Mallory 316可以重复地发送先前窃取和保存的信息与MAC值的组合。
[0042] 防重放攻击技术,例如本公开中描述的用于防止重放攻击324的技术,与中心化系统相比一般更难在去中心化系统中实现。本公开中描述的技术可以提供改进的高性能、防重放技术,例如可以在稳定的存储空间中快速搜索交易信息。
[0043] 图4是示出根据本文实施例的用于检测重放攻击的常规系统400的示例的框图。常规系统400包括客户端402和服务器404。
[0044] 在406,客户端402准备交易。流程从406进行到408。
[0045] 在408,客户端402发起交易请求408。流程从408进行到410。
[0046] 在410,服务器404在布隆过滤器中执行对交易的搜索。
[0047] 在412,确定在布隆过滤器中是否找到该交易。如果在布隆过滤器中没有找到该交易,则流程进行到414,交易正常执行,且交易请求被处理。然而,如果在布隆过滤器中找到该交易,则流程进行到416,在区块链中查找该交易。
[0048] 在418,确定在区块链中是否找到该交易。如果在区块链中没有找到该交易,则流程进行到414,交易正常执行,且交易请求被处理。然而,如果在区块链中找到该交易,则流程进行到420,交易被跳过(bypass)。
[0049] 为了例如常规系统400的系统的正确运行,通常使包含交易信息(例如,经处理交易的交易哈希值(tx_hash))的存储器的大小尽可能大。例如,存储器大小可以与交易信息的大小和交易的数量成比例。然而,本公开所使用的技术可以考虑并使用典型回放的典型时间分布的模式。例如,包括正常交易且还包括试图重放交易的时间窗口通常较短。结果,从正常交易发生的时刻开始经过5分钟后,可以忽略与网络重传相关联的组合传输控制协议(TCP)的重放尝试。
[0050] 图5是示出根据本文实施例的用于检测重放攻击的系统500的示例的框图。然而系统500包括与系统400中的组件相似的组件,应当注意,系统500包括对系统400的优化。例如,在一些实施例中,优化可以加速对重放攻击的识别。例如可以使用系统500来执行对交易的重找,例如在使用布隆过滤器搜索交易之后。
[0051] 在系统500内的处理可以以和常规系统400相同的方式开始。例如,在406,客户端402准备交易。
[0052] 在408,客户端402发起交易请求408。流程从406进行到502。
[0053] 在502,确定当前工作区504。例如,在当前示例中至少最初,当前工作区504可以是区段A,而区段B可以用作备份工作区。流程从502进行到506。
[0054] 在506,可以在工作区段执行对交易的搜索。流程从506进行到508.[0055] 在508,确定在工作区段中是否找到该交易。如果在工作区段中没有找到该交易,随后,在510,确定是否超过发起区段切换的阈值。可以存在例如当工作区段达到容量的预设百分比时(例如95%)的阈值。
[0056] 如果在510确定超过阈值,则在512清空备份区段以准备将备份区段作为新的工作区段。流程从512进行到514。
[0057] 在514,交易信息被写入备份区段。流程从514进行到516。
[0058] 在交易信息被写入在存储器的两个位置中的重叠阶段期间,在两个区段中完成写入。写入信息的冗余可以用于使用最近交易构成备份区段直到执行切换。在切换时,备份区段成为新的工作区段,且交易信息仅被写入新的工作区段。
[0059] 在516,交易信息被写入当前工作区段,并且交易被正常处理。
[0060] 如果在508确定在工作区段找到了该交易,则流程进行到518,在区块链中查找该交易。
[0061] 在520,确定在区块链中是否找到该交易。
[0062] 在522,如果在520处在区块链中找到该交易,则认为该交易是重复交易,在522该交易被跳过。否则,在516交易信息被写入当前工作区段,并且交易被正常处理。
[0063] 在一些实施例中,系统500顺利且高效地运行,是因为系统500的存储空间可以被分成对等的可替换地用于执行重找操作的部分(例如,区段A和区段B)。存储空间可以存储交易信息(例如,交易ID),该信息可用于重找操作。在任何给定的时间,仅其中一个区段作为存储器中的工作区段,且另一个区段是存储器中的备份区段。在重找操作期间在508执行的搜索仅在存储器的一半上、具体为在工作区段上执行。在当前示例中,区段A最初是存储器中的工作区段,且区段B最初是存储器中的备份区段。当区段A是工作区段时,重找操作仅搜索区段A。
[0064] 一段时间后,区段A中的存储空间可能写满交易信息。在某个时间点,例如达到阈值条件,需要准备好在某时间将发生存储器区段的切换。在完成切换时,区段A(在当前示例中最初为工作区段)将停止作为工作区段并将成为备份区段。在同时,区段B将停止作为备份区段并将成为工作区段。
[0065] 在准备切换时,可以存在重叠阶段,在重叠阶段期间被写入工作区段的交易信息可以被冗余地写入备份区段。例如,在切换将要发生时,交易信息可以被写入区段A和区段B。例如,这发生在区段A还是工作区段、且区段B(当前为备份区段)即将成为工作区段时。区段B至少需要较少数量的交易的交易信息,使得当区段A不再是工作区段,有用数量的交易的交易信息将被写入区段B(例如,用于重找操作中的搜索)。
[0066] 在正常操作期间,系统500的工作流跳过步骤512和514。然而,在切换期间(在510确定超过了阈值),执行步骤512和514。在切换时,或更具体地在重叠阶段的开始,清空(clear)备份区段以准备写入交易信息。
[0067] 在一些实施例中,在510可以使用各种阈值。例如,除了使用的工作区的百分比(例如,95%)阈值,还可以在工作区段的误判率超过10%时发起切换。
[0068] 优点可以包括以下中的一个或多个。首先,系统运行期间用于确定防重放的存储器开销保持稳定,其次,将存储器分成完全相同的两个分区(工作区段和备份区段)可以提高防重放算法的效率。例如,哈希映射算法可能遭受使用空间之间的冲突,且布隆过滤器可以造成与分配空间和历史数据的总和成正比的误判概率。另外,在切换期间的双写机制可以提供工作区段和备份区段之间的无缝切换。
[0069] 图6是描述用于检测和禁止重放攻击的方法600的示例的流程图。为了方便起见,方法600将被描述为由位于一个或多个位置并根据本文适当地编程的一个或多个计算机的系统执行。例如,适当编程的检测和禁止重放攻击的系统(例如,图5的系统500)可以执行方法600。
[0070] 在602,接收要在区块链中完成的交易。例如,客户端402可以发起可被服务器404接收的交易请求408。在一些实施例中,交易请求可以是可在区块链内发送的交易。方法600从602进行到604。
[0071] 在604,确定用于存储交易信息的存储器中的当前工作区段,所述当前工作区段被指定用于识别已处理的历史交易。所述存储器还存储有备份区段,所述备份区段在与当前工作区段组合使用时为交易信息提供替换存储区段存储方案。例如,系统500(例如,在502)可以确定存储器中的当前工作区段是区段A还是区段B。方法600从604进行到606。
[0072] 在606,使用当前工作区段确定交易先前是否已被处理。例如,系统500可以访问(例如,在506)区段A中的交易信息并确定(例如,在508)交易已经被处理。在一些实施例中,数据库标记或其他指示可以指示存储器中的哪个区段例如区段A或区段B是当前工作区段。方法600从606进行到608.
[0073] 在608,当确定交易先前已被处理时,跳过所述交易。作为示例,系统500(例如,在516)可以正常处理交易。此外,系统500可以将交易信息写入当前工作区段。方法600从608进行到610。
[0074] 在610,当确定交易先前未被处理过时,处理所述交易并且将所述交易的交易信息写入当前工作区段。作为示例,系统500可以在516跳过该交易,例如,将交易信息写入区段A并正常处理该交易。在610之后,方法600可以停止。
[0075] 在一些实施例中,方法600还包括用于执行切换当前工作区段和备份区段的步骤,例如,系统500可以确定是否满足用于发起在当前工作区段和备份区段之间的切换的阈值条件,在一些实施例中,阈值条件是关于当前工作区段的已使用存储容量的预设百分比(例如,95%)的指示。在一些实施例中,阈值条件是关于当前工作区段的误判率超过预设率(例如,10%)的指示。当确定满足阈值条件时,发起所述切换,包括开启重叠阶段,在该重叠阶段中,所述交易信息被写入当前工作区段和备份区段。当开启重叠阶段时,清空备份区段。在重叠阶段期间,交易信息被写入备份区段。
[0076] 在一些实施例中,方法600还可以包括在重叠阶段末端发生的步骤,例如,系统500可以确定是否到达重叠阶段的末端。在该时刻,系统500可以停止(cease)将交易信息写入当前工作区段,并且系统500可以指定备份区段作为当前工作区段。
[0077] 在一些实施例中,方法600还包括用于确定交易是否在区块链中的步骤,例如,系统500可以搜索区块链以确定交易是否在区块链中。在确定交易在区块链中时,系统500可以跳过该交易。
[0078] 在一些实施例中,方法600还包括使用用于确定交易已经存在的概率的布隆过滤器。例如,在确定交易先前已被处理之前,系统500可以使用布隆过滤器确定交易先前已被处理的概率。高概率可以指示交易先前已被处理。
[0079] 图7描绘了根据本文实施例的装置700的模块的示例。
[0080] 装置700可以是用于检测和禁止重放攻击的装置的实施例的示例。装置700可以对应于以上描述的实施例,且装置700包括以下:接收模块702,用于接收要在区块链中完成的交易;第一确定模块704,用于确定用于存储交易信息的存储器中的当前工作区段,所述当前工作区段被指定用于识别已处理的历史交易,所述存储器还存储有备份区段,所述备份区段在与所述当前工作区段组合使用时为所述交易信息提供替换存储区段存储方案;第二确定模块706,用于根据当前工作区段确定交易先前是否已被处理;跳过模块708,用于当确定所述交易先前已被处理时,跳过所述交易;当确定所述交易先前未被处理时:处理模块710,用于处理交易;以及写入模块712,用于将交易的交易信息写入当前工作区段。
[0081] 在可选实施例中,装置700还包括确定模块(例如,第一确定模块704、第二确定模块706或另一确定模块),用于确定是否满足用于发起在当前工作区段和备份区段之间的切换的阈值条件。
[0082] 在可选实施例中,装置700还包括,当确定满足阈值条件时:发起模块,用于发起切换,包括开启重叠阶段,在该重叠阶段中,交易信息被写入当前工作区段和备份区段;清空模块,用于清空备份区段;以及写入模块(例如,写入模块712或另一写入模块),用于将交易信息写入备份区段。
[0083] 在可选实施例中,装置700还包括:确定模块(例如,第一确定模块704、第二确定模块706或另一确定模块),用于确定已经到达重叠阶段的末端;停止模块,用于停止将交易信息写入当前工作区段;以及指定模块,用于指定所述备份区段为当前工作区段。
[0084] 在可选实施例中,阈值条件是关于所述当前工作区段的已使用存储容量的预设百分比的指示,或是关于所述当前工作区段的误判率超过预设率的指示。
[0085] 在可选实施例中,装置700还包括确定模块(例如,第一确定模块704、第二确定模块706或另一确定模块),用于确定交易是否在所述区块链中;以及跳过模块(例如,跳过模块710或另一跳过模块),用于在确定所述交易在区块链中时,跳过该交易。
[0086] 在可选实施例中,装置700还包括:确定模块(例如,第一确定模块704、第二确定模块706或另一确定模块),用于在确定交易先前是否已被处理之前,使用布隆过滤器确定交易先前已被处理的概率。
[0087] 在先前实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
[0088] 对于装置中每个模块的功能和色的实施例,可以参考前一方法中相应步骤的实施例。为简单起见,这里省略了细节。
[0089] 由于装置实施例基本上对应于方法实施例,对于相关部分,可以参考方法实施例中的相关描述。先前描述的装置实施例仅是示例。被描述为单独部分的模块可以是或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本申请的实施例。
[0090] 再次参考图7,其可以被解释为示出了检测和禁止重放攻击的装置的内部功能模块和结构。本质上,执行主体可以是电子设备,所述电子设备包括:一个或多个处理器;被配置为存储一个或多个处理器的可执行指令的存储器。
[0091] 一个或多个处理器被配置为接收要在区块链中完成的交易;确定用于存储交易信息的存储器中的当前工作区段,所述当前工作区段被指定用于识别已处理的历史交易,所述存储器还存储有备份区段,所述备份区段在与所述当前工作区段组合使用时为所述交易信息提供替换存储区段存储方案。根据所述当前工作区段确定所述交易先前是否已被处理;当确定所述交易先前已被处理时,跳过所述交易;以及当确定所述交易先前未被处理时:处理所述交易;以及将所述交易的交易信息写入所述当前工作区段。
[0092] 本文描述的技术可以产生一个或多个技术效果。在一些实施例中,用于存储交易信息的存储器被分成当前工作区段和备份区段。在其他实施例中,当在存储器中执行搜索时,仅需要搜索包括当前工作区段的存储器的一半,这节省了计算资源并加快了总体搜索时间。在其他实施例中,当阈值条件指示要切换存储器中的区段时(即,当前工作区段和备份区段之间的切换),备份区段成为新的当前工作区段,并且已经是当前工作区段的区段被指定为新的备份区段。
[0093] 所描述的主题的实施例可以包括单独或组合的一个或多个特征。
[0094] 例如,在第一实施例中,一种计算机实现的用于检测和禁止重放攻击的方法,所述方法包括:接收要在区块链中完成的交易;确定用于存储交易信息的存储器中的当前工作区段,所述当前工作区段被指定用于识别已处理的历史交易,所述存储器还存储有备份区段,所述备份区段在与所述当前工作区段组合使用时为所述交易信息提供替换存储区段存储方案;根据所述当前工作区段确定所述交易先前是否已被处理;当确定所述交易先前已被处理时,跳过所述交易;以及当确定所述交易先前未被处理时:处理所述交易;以及将所述交易的交易信息写入所述当前工作区段。先前或其他描述的实施例可以各自可选地包括以下特征中的一个或多个:
[0095] 第一特征,可与以下任意特征组合,还包括:确定是否满足用于发起在所述当前工作区段和所述备份区段之间的切换的阈值条件。
[0096] 第二特征,可与任意先前或以下特征组合,还包括:当确定满足所述阈值条件时:发起所述切换,包括开启重叠阶段,在该重叠阶段中,所述交易信息被写入所述当前工作区段和所述备份区段;清空所述备份区段;以及将所述交易信息写入所述备份区段。
[0097] 第三特征,可与任意先前或以下特征组合,还包括:确定已经到达所述重叠阶段的末端;停止将所述交易信息写入所述当前工作区段;以及指定所述备份区段作为所述当前工作区段。
[0098] 第四特征,可与任意先前或以下特征组合,指定所述阈值条件是关于所述当前工作区段的已使用存储容量的预设百分比的指示。
[0099] 第五特征,可与任意先前或以下特征组合,指定所述阈值条件是关于所述当前工作区段的误判率超过预设率的指示。
[0100] 第六特征,可与任意先前或以下特征组合,还包括:确定所述交易是否在所述区块链中;以及在确定所述交易在所述区块链中时,跳过所述交易。
[0101] 第七特征,可与任意先前或以下特征组合,还包括:在确定所述交易先前是否已被处理之前,使用布隆过滤器确定所述交易先前已被处理的概率。
[0102] 本文中描述的主题、动作以及操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施例可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括其上编码有或存储有指令的一个或多个计算机可读存储介质。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或光盘、固态驱动器随机存取存储器(RAM)、只读存储器(ROM)或其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以部分是可机读存储设备、可机读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
[0103] 计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或演绎性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。
[0104] 计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
[0105] 用于执行计算机程序的处理器包括,例如,通用和专用微型处理器两者,和任意种类的数字计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接至处理器的非暂态计算机可读介质的数据。
[0106] 术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈,数据库管理系统操作系统或者它们中一个或多个的组合的代码。
[0107] 本文中描述的处理和逻辑流程可由执行一个或多个计算机程序的一台或多台计算机或处理器执行,以通过对输入数据进行操作并生成输出来执行操作。处理和逻辑流程也可以由例如FPGA、ASIC、GPU等的专用逻辑电路,或专用逻辑电路与一个或多个编程计算机的组合来执行。
[0108] 适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元,以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
[0109] 通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如,磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机非必需这样的设备。因此,计算机可以耦接至诸如一个或多个存储器的、本地和/或远程的一个或多个存储设备。例如,计算机可以包括作为计算机组成部件的一个或多个本地存储器,或者计算机可以耦接至云网络中的一个或多个远程存储器。此外,计算机可嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,这里仅举几例。
[0110] 组件之间可以通过直接或经由一个或多个中间件进行诸如电连接或光连接地彼此连接通信而彼此“耦接”。如果组件中的一个组件被集成到另一个中,则组件也可以被彼此“耦接”。例如,集成到处理器中的存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
[0111] 为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标轨迹球触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应于从web浏览器收到的请求,或者通过与在例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息收发应用的智能手机)轮流发送文本消息或其他形式的消息,并从用户接收响应消息来与用户交互。
[0112] 本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在操作中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
[0113] 虽然本文包含许多具体实施例细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中的组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
[0114] 类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。
[0115] 已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈