CN111814201B - 网络靶机数据记录方法、装置、系统和电子设备 - Google Patents
网络靶机数据记录方法、装置、系统和电子设备 Download PDFInfo
- Publication number
- CN111814201B CN111814201B CN202010692376.9A CN202010692376A CN111814201B CN 111814201 B CN111814201 B CN 111814201B CN 202010692376 A CN202010692376 A CN 202010692376A CN 111814201 B CN111814201 B CN 111814201B
- Authority
- CN
- China
- Prior art keywords
- node
- target
- drone
- data
- nodes
- 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
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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种网络靶机数据记录方法、装置、系统和电子设备,该方法包括接收来自靶机节点的靶机数据,靶机数据包括靶机节点的靶机私钥签名;确定与靶机节点对应的靶机公钥;利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种网络靶机数据记录方法、装置、系统和电子设备。
背景技术
随着计算机网络技术的快速发展,各类信息安全问题也随之增多,各国各界也越来越重视网络空间的安全问题。于是出现了网络攻防靶场系统,通过搭建含有漏洞的靶机环境,提供藏有标记(Flag)的夺旗赛(Capture The Flag,简称CTF)题目,模拟真实的网络环境。供安全从业人员进行网络攻防演练、渗透测试和安全比赛,可以有效提高相关人员的技术水平的有效途径。
在实现本公开构思的过程中,发明人发现相关技术至少存在如下问题:由于题目中标记可被选手销毁或补修,并且选手可以删除靶机的操作日志等,导致演练、测试和比赛等的效果无法满足用户需求。
发明内容
本公开的一个方面提供了一种由区块链网络执行的网络靶机数据记录方法,区块链网络与靶机节点相连,该方法包括:接收来自靶机节点的靶机数据,靶机数据包括靶机节点的靶机私钥签名;确定与靶机节点对应的靶机公钥;利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的一个方面提供了一种由靶机节点执行的网络靶机数据记录方法,靶机节点与区块链网络相连,该方法包括:接收来自选手节点的操作指令;响应于操作指令生成靶机数据;以及将包括靶机私钥签名的靶机数据发送给区块链网络,以便于区块链网络利用靶机节点的靶机公钥对靶机私钥签名进行靶机公钥验签,并且在靶机公钥验签的结果是通过之后,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的另一方面提供了一种网络靶机数据记录方法,包括:靶机节点接收来自选手节点的操作指令;靶机节点响应于操作指令生成靶机数据;靶机节点将包括靶机私钥签名的靶机数据发送给区块链网络,靶机数据包括靶机节点的靶机私钥签名;区块链网络确定与靶机节点对应的靶机公钥;区块链网络利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及区块链网络响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的另一方面提供了一种由区块链网络执行的网络靶机数据记录装置,区块链网络与靶机节点相连,该装置包括:靶机数据接收模块,用于接收来自靶机节点的靶机数据,靶机数据包括靶机节点的靶机私钥签名;靶机公钥模块,用于确定与靶机节点对应的靶机公钥;验签模块,用于利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及发布模块,用于响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的另一方面提供了一种由靶机节点执行的网络靶机数据记录装置,靶机节点与区块链网络相连,该装置包括:操作指令接收模块,用于接收来自选手节点的操作指令;靶机数据生成模块,用于响应于操作指令生成靶机数据;以及靶机数据发送模块,用于将包括靶机私钥签名的靶机数据发送给区块链网络,以便于区块链网络利用靶机节点的靶机公钥对靶机私钥签名进行靶机公钥验签,并且在靶机公钥验签结果是通过之后将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的另一方面提供了一种网络靶机数据记录系统,包括:靶机模块,用于获取靶机数据,并且发送给共识模块,靶机数据包括靶机私钥签名;以及共识模块,用于利用与靶机节点对应的靶机公钥对靶机私钥签名进行靶机公钥验签,在验签成功后将靶机数据打包至区块,并将区块发布到靶机数据区块链。
本公开的另一方面提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,利用区块链保存来自靶机节点的靶机数据,使得记录的靶机数据具有防篡改和可溯源的特性。靶机数据包括靶机节点的靶机私钥签名,并在验签通过后打包至区块并且广播上链,用户难以篡改或删除自己对靶机的任何操作,提高了靶场系统的安全性和可用性。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的适用于网络靶机数据记录方法、装置、系统和电子设备的应用场景的示意图;
图2示意性示出了根据本公开实施例的应用网络靶机数据记录方法、装置的示例性系统架构;
图3示意性示出了根据本公开实施例的网络靶机数据记录方法的流程图;
图4示意性示出了根据本公开实施例的靶机数据的示意图;
图5示意性示出了根据本公开实施例的靶机数据区块链的示意图;
图6示意性示出了根据本公开实施例的区块结构示意图;
图7示意性示出了根据本公开另一实施例的网络靶机数据记录方法的流程图;
图8示意性示出了根据本公开另一实施例的网络靶机数据记录方法的流程图;
图9示意性示出了根据本公开实施例的网络靶机数据记录装置的方框图;
图10示意性示出了根据本公开另一实施例的网络靶机数据记录装置的方框图;
图11示意性示出了根据本公开实施例的网络靶机数据记录系统的方框图;
图12示意性示出了根据本公开实施例的网络靶机数据记录方法的逻辑图;以及
图13示意性示出了根据本公开实施例的适于实现网络靶机数据记录方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
为了便于理解本公开的技术方案,首先对相关技术中网络靶机数据记录场景及其问题进行说明。
在相关技术的网络靶场系统中,尤其是在采用靶场形式的网络安全比赛中,裁判在监查选手的操作和数据流量时均存在局限性,导致恶意的选手可通过0day漏洞等违规方法把公共靶机上的Flag销毁或修补提前预留的漏洞,致使其他选手无法获取Flag或利用漏洞得分。同时进一步的删除靶机的操作日志,抹除自己的作弊痕迹,导致裁判无迹可寻。这种行为的出现将严重影响比赛的公平性和靶场系统的可用性,所以亟需一种能有效地监控选手的操作并防止日志和记录被篡改的网络靶场数据记录方法。
本公开的实施例提供了一种网络靶机数据记录方法、装置以及电子设备。该方法可以应用于区块链网络,区块链网络与靶机节点相连,该方法可以包括验签过程和发布过程。在验签过程中,首先,接收来自靶机节点的靶机数据,靶机数据包括靶机节点的靶机私钥签名,然后,确定与靶机节点对应的靶机公钥,然后,利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果。在完成验签过程之后进入发布过程,响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
图1示意性示出了根据本公开实施例的适用于网络靶机数据记录方法、装置、系统和电子设备的应用场景的示意图。
如图1所示,XX网络技术比赛包括多种竞赛形式:如靶场渗透项目、混战攻防项目、攻防演练项目、理论知识竞赛、红蓝对抗项目、闯关解题项目等。其中,至少部分项目,如靶场渗透项目、混战攻防项目、攻防演练项目和红蓝对抗项目可以分别设置Flag成为CTF题目,参赛选手通过获取Flag来获取分数,以争取拿到高分而赢取比赛。但是,在进行比赛的过程中,由于多个参赛选手都可以调用同一个靶机以完成靶机中存储的CTF题目,先完成CTF题目的参赛选手可以通过非预期解或者未知0day漏洞进行提权操作,删除系统预置Flag,并修补提前预留的漏洞,致使其他选手无法完成该CTF题目,有失比赛的公平性。本公开实施例提供的网络靶机数据记录方法、装置、系统和电子设备,将参赛选手针对CTF题目的产生的靶机信息进行验签后,存储在区块链中,使得选手无法删除靶机的操作日志,并且裁判可以对靶机信息进行回溯以确定存在作弊行为的选手,提升比赛的公平性。
图2示意性示出了根据本公开实施例的应用网络靶机数据记录方法、装置的示例性系统架构。需要注意的是,图2所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图2所示,根据该实施例的系统架构200可以包括终端设备201、202、203,网络204、服务器205和区块链网络(Blockchain Network)206。网络204用以在终端设备201、202、203,服务器205和区块链网络206之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备201、202、203上可以安装有各种客户端应用,例如网络安全技术比赛应用、网络安全模拟训练应用、银行类应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。终端设备201、202、203可以通过以上各种客户端应用与服务器205进行交互,如作答CTF题目等,以向服务器205发送各种请求或接收服务器205返回的结果。
终端设备201、202、203可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器205可以是提供各种服务支持的服务器,例如靶机节点,该服务器205中可以安装有网络技术对抗赛所需的渗透环境、隐写工具、逆向工具等。服务器205可以是一个或多个,每个服务器205可以分别作为一个靶机节点,或者每个服务器205中可以包括多个虚拟靶机。服务器205可以将用户针对其存储的CTF题目的操作相关信息发送给区块链206以实现操作相关信息记录,并防止用户对操作相关信息记录进行篡改。
区块链网络206是执行给定区块链协议的节点集。整个网络以完全联合、去中心化和分布式的方式编排和协调每个用户在网络中所做的操作。区块链节点上可以下载了相关区块链应用(如网络安全比赛应用、网络靶机数据记录软件等),以参与对等网络的计算机。区块链节点的类型可以包括全节点、轻节点、简单支付验证节点(Simplified PaymentVerification,简称SPV)等。区块链节点中全节点的特性可以包括:参与区块链网络的计算机彼此地位相等。SPV节点的目的是验证一笔交易是否上链、是否得到多个确认。轻节点是节点本地保存与其自身相关的交易数据,目的不仅仅是验证交易,还有管理节点自身的资产收入、支付等信息。SPV节点和轻节点的共同点:无需在本地保存全部数据。SPV是支付验证(简单),验证交易是否得到其他节点的共识验证,即是否上链(如验证得到多少确认数)。全节点存储有全量数据,因此,全节点相对于轻节点占用的存储空间更大。例如,裁判节点是全节点,打包节点是轻节点,共识节点是SPV节点等。
如图2所示,该区块链网络可以包括多个节点(Node),节点中至少部分节点共同维护区块链(Blockchain)。节点可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器、智能手机等等,在此不做限定。节点中任意两个节点之间都可进行点对点通信。
区块链是通过散列指针按时间顺序链接的区块(Block)的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各节点允许当前节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的节点从区块链上获取的当前最新区块是相同的。一个区块链网络可以维护一条区块链,或者可以同时维护多条区块链,如图2中同时维护了第一区块链和第二区块链,其中,每个区块链可以用于记录一个服务器205的全量信息以及其它服务器205的区块头信息,这样有助于降低对存储资源的消耗等。
应该理解,图2中的客户端、服务器、区块链网络的规模和类型、节点的数量、区块链的长度、区块的数量等仅仅是示意性的。根据实际需要,可以具有任意规模和类型的区块链网络、任意数量的节点、任意长度的区块链、任意数量的区块等,在此不做限制。
图3示意性示出了根据本公开实施例的网络靶机数据记录方法的流程图。该流程可以由区块链网络执行,该区块链网络可以与靶机节点相连。
如图3所示,该方法可以包括以下操作S301~S307。
在操作S301,接收来自靶机节点的靶机数据,靶机数据包括靶机节点的靶机私钥签名。
在本实施例中,用户(如选手等)在选手节点上对靶机节点进行操作,如漏洞利用、系统提权、日志清除、痕迹销毁、Flag销毁、漏洞修复等,在用户针对靶机节点进行操作的过程中生成了靶机数据,如靶机的操作日志等。该靶机数据中可以包括用户的合法操作信息(如针对Flag题目的作答相关信息)和用户的非法操作信息(如Flag销毁等)。需要说明的是,靶机数据中还可以包括用于表征选手身份的信息,如可以包括选手节点标识、选手姓名、选手编号、手机号码、证件号码、邮箱地址、银行卡号码、选手节点的部件标识等至少一项。靶机数据可以是以数据包的形式进行传输。
为了提升靶机数据的可信度和安全性,可以由靶机节点利用自身的私钥对靶机数据进行私钥签名,同时可以把与该私钥对应的公钥发送给区块链网络,以便于对该签名进行验签。
图4示意性示出了根据本公开实施例的靶机数据的示意图。
如图4所示,为了减少网络负担,该签名后的靶机数据已尽可能精简,仅包括原数据包哈希,靶机节点私钥签名和原始数据包。
在操作S303,确定与靶机节点对应的靶机公钥。
在本实施例中,可以由靶机节点将自身的公钥发送给区块链网络。也是也是由靶机节点将自身的公钥发送给指定的服务器,区块链节点从该指定的服务器中获取该公钥。
在一个实施例中,考虑到用靶机公钥很长,在区块头中包含该字段会耗费部分网络带宽,可以由区块链的节点共同维护一份带有靶机节点索引的公共靶机的节点列表。节点索引记录了每个靶机公钥在这个列表中的位置,打包区块时,只需要带上节点索引,其他区块链的节点即可以从公共靶机的节点列表中索引出靶机节点的公钥,以便对靶机数据的私钥签名进行验签。同时可以利用节点索引对一个区块进行标识,标识此区块中靶机数据包属于哪个靶机节点。方便后续溯源、追踪和分析。
在操作S305,利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果。
其中,利用靶机公钥对靶机私钥签名进行验签的过程可以采用相关验签技术,在此不做限定。例如,验证签名算法可以包括:RSA算法解密得到签名者的消息摘要,验证者对原消息计算摘要,比较两个消息摘要。验证签名的输入为消息,签名者的公钥,签名;输出为验证结果,即是否是正确的签名。其中,对于RSA算法解密,签名实际是加密的字符串,用于解密算法采用签名者的共有对这个加密的字符串解密。解密的结果应该为128的消息摘要。在解密过程中若出现得到的加密块的类型不是01,则解密失败,签名不正确。对于消息摘要计算和比较。验证者对消息用MD5算法重新计算,得到验证者自己的消息摘要。验证者比较解密得到的消息摘要和自己的消息摘要,如果两种相同,则验证成功,可以确认消息的完整性和签名确实为签名者的,否则验证失败。
在操作S307,响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
在本实施例中,可以由打包节点对靶机数据进行打包,然后广播至区块链网络以实现区块上链。其中,打包节点可以是固定的数个区块链节点,也可以是轮换的数个区块链节点。
例如,打包节点通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,并从其他打包节点接收广播信息,以同步区块链信息。
本公开实施例提供的网络靶机数据记录方法,通过区块链技术,利用区块链的防篡改和可溯源的特性,靶机抓取的原数据流量包经过签名,在验签通过后打包成区块以上链,可以有效地监控和记录选手对于靶机的操作,选手难以篡改或删除自己对靶机的任何操作,提高了靶场系统的安全性和可用性。
在一个实施例中,区块链网络包括打包节点。相应地,接收来自靶机节点的靶机数据可以包括如下操作。
打包节点从与打包节点对应的消息队列中接收靶机数据,其中,靶机节点的靶机节点标识与消息队列的消息队列标识之间存在一对一的第一映射关系,打包节点的打包节点标识与消息队列的消息队列标识之间存在一对一的第二映射关系。
例如,消息队列的数量与靶机节点数量相同,主要功能为把靶机节点获取的签名的靶机数据加入消息队列并异步转发给打包节点,利用削峰平谷的特性让打包节点平稳地接收靶机节点发送的签名数据流量包,防止因爆发式增长造成签名数据流量包丢失。消息队列的生产者为对应的靶机节点,消费者为对应的打包节点。此处所指的对应为,靶机节点、消息队列和打包节点之间一一对应。即同一个靶机节点的签名数据流量包只会加入到一个提前指定的消息队列,并不会加入到别的消息队列,且在同一任期内的打包节点只会从同一个消息队列里接收靶机数据。
具体地,区块链网络还包括共识节点,共识节点中存储有节点列表,节点列表包括靶机节点标识和靶机公钥之间的第三映射关系。
相应地,确定与靶机节点对应的靶机公钥包括如下操作。
首先,打包节点基于自身的打包节点标识和第二映射关系确定消息队列标识。然后,打包节点基于消息队列标识和第一映射关系确定靶机节点标识。接着,打包节点基于靶机节点标识和第三映射关系确定靶机公钥。
例如,区块链网络中可以维护有节点列表(如由共识节点共同维护该节点列表),该节点列表中可以存储有个靶机节点的靶机公钥。节点列表中节点索引记录了每个靶机公钥在节点列表中的位置,在打包区块头时,只需要打包节点索引即可,无需打包完整的靶机公钥,区块链网络中其他节点即可以从公共的节点列表中索引出靶机节点的公钥,进而利用索引得到的公钥对签名数据流量包进行验签。此外,可以利用节点索引对一个区块进行标识,标识此区块中数据流量包属于哪个靶机节点,便于后续溯源、追踪和分析。
本公开实施例通过消息队列技术,利用消息队列的削峰平谷的特性让打包节点平稳地接收由靶机节点发送的签名的靶机数据,降低因爆发式增长造成的靶机数据丢失,还能为流量控制提供重要的参考依据,提高了区块链网络中如共识节点和打包节点的性能水平。
在一个实施例中,区块链网络包括多个轻节点类型的节点。相应地多个轻节点类型的节点中至少部分节点作为打包节点,多个轻节点类型的节点中剩余节点作为共识节点,其中,打包节点是由多个轻节点类型的节点共同投票来确定的,投票是按照预设周期进行的。
预设周期可以是由用户自行设定的固定周期,也可以是动态的周期,如当某个消息队列的消息积压过多(如超过预设个数阈值)时,或者消息处理用户过长时,则可以启动一个新的投票周期。
具体地,共识节点和打包节点是功能不同的节点。在共识算法开始前,区块链网络中可以只包含共识节点,不包含共识节点。在共识算法开始时会投票选出与靶机节点数量相同的打包节点,剩下的节点仍作为共识节点。其中,共识节点主要负责接收由打包节点广播的区块信息,只负责同步区块头信息,不同步区块体信息。打包节点即拥有出块权的节点,负责从消息队列中接收若干签名数据流量包,基于从节点列表获取的靶机公钥进行签名数据流量包的签名验证,并在验证成功后将其打包成区块,链接至该打包节点负责的靶机节点链的链尾,并写入底层存储,然后广播给其他共识节点、打包节点和裁判节点,使其他节点同步该靶机节点链信息。
在一个实施例中,为了提升验签效率并降低存储资源占用,该方法还可以包括如下操作。
在按照预设周期进行投票之后,如果投票结果表征当前轻节点类型的节点作为与指定靶机节点对应的打包节点,则从节点列表中获取并本地存储指定靶机节点的靶机公钥。例如,当共识节点作为打包节点时,缓存对应的靶机公钥。
在按照预设周期进行投票之后,如果投票结果表征打包节点转变为共识节点,则打包节点删除从节点列表中获取并本地存储的靶机公钥。例如,当打包节点转变为共识节点时,删除上一任期内作为打包节点时,缓存的对应的靶机公钥。
在一个实施例中,区块链网络包括打包节点。相应地,将区块发布到靶机数据区块链包括:当前打包节点向区块链广播区块,以使区块链网络中除当前打包节点之外的节点分别记录区块。其中,当前打包节点向区块链广播区块时,各节点接收到的区块可以是相同的,但是不同的节点可以根据自身的节点类型确定自身需要记录的信息。如共识节点只需要记录区块头以降低存储资源占用。又例如,裁判节点可以记录全量数据,如包括区块头和区块体。
例如,区块链网络还包括裁判节点,区块包括区块头和区块体。相应地,裁判节点可以记录区块中的区块头和区块体。区块链网络中除当前打包节点和裁判节点之外的节点可以只记录区块中的区块头。
在一个实施例中,靶机数据区块链包括与靶机节点的数量相同的区块链,每个靶机节点对应于一条区块链。相应地,对于靶机数据区块链中每一条区块链,该区块链的各区块是分别由在该区块形成时针对该区块链的打包节点进行区块上链的。
图5示意性示出了根据本公开实施例的靶机数据区块链的示意图。
如图5所示,以一个实施例对靶机节点、消息队列、共识节点、打包节点和靶机数据区块链之间的对应关系进行示例性说明。以某个共识节点A进行详细说明。该共识节点A在上一任期当选为打包节点a,即负责从消息队列a获取靶机节点a的数据流量包,并进行验签打包成区块以加入到靶机节点链a(针对靶机节点a的靶机数据区块链)的链尾,并从其他打包节点接收广播信息同步除a以外其他靶机节点链信息。该共识节点A在当前任期内未当选为打包节点,仍为共识节点,即只负责从其他打包节点接收广播信息同步其他靶机节点链信息。该共识节点A在下一任期又当选为打包节点b,即负责从消息队列b获取靶机节点b的数据流量包,并在验签成功后将其打包成区块加入到靶机节点链b(针对靶机节点b的靶机数据区块链)的链尾,并从其他打包节点接收广播信息同步除b以外其他靶机节点链信息。同时可以从该共识节点A的本地存储的区块链信息看出,该节点本地存储了所有的靶机节点链,但是对于靶机节点链a来说,该共识节点A只存有区块n-1(对应上一任期)的全量区块信息,即区块头和区块体,区块n(对应当前任期)和区块n+1只存有区块头信息。同理,该共识节点A只存有靶机节点链b的区块n+1(对应下一任期)的全量区块信息,区块n-1和区块n只存有区块头信息。需要说明的是,裁判节点(可以作为全节点)在每一个任期内都可以全量同步所有靶机节点链的区块信息,即区块头信息和区块体信息,以便进行信息回溯等。
在一个实施例中,区块头包括前区块哈希、区块高度、时间戳、根哈希和靶机节点标识中至少一种。
图6示意性示出了根据本公开实施例的区块结构示意图。
如图6所示,区块主要包括区块头和区块体。例如,区块头可以主要包含以下关键字段,前区块哈希、区块高度、时间戳、根哈希、靶机节点索引等。区块体中包括所有签名数据流量包和其哈希值的信Merkle可信树(Merkle authentication tree),用于计算Merkle树根,并进行签名数据流量包的全量储存,和可进行快速验证。Merkle可信树结构具有一次签名大量认证的优点,在认证方法具有显著的优势。
进一步的,区块头中前区块哈希为区块成链的重要字段,使此区块可以指向上一个区块。区块高度为此区块在该靶机节点链的位置。时间戳为打包生成该区块的时间,后续区块头中此数值递增,且方便裁判进行区块定位。根哈希(即Merkle树根),其值为区块体中所有签名数据流量包的哈希递归计算生成,其好处为方便网络同步区块信息,不关注具体签名数据流量包的节点,只需同步区块头信息即可。靶机节点索引为该区块进行标识,标识此区块中数据流量包属于哪个靶机节点。
在一个实施例中,区块链网络包括裁判节点。该方法还可以包括如下操作。响应于靶机公钥验签结果是失败,将靶机数据发送给裁判节点以进行靶机数据分析。
其中,裁判节点主要负责接收打包节点广播的任何区块,并准实时进行同步区块信息,包括区块头信息和区块体信息,并存入本地数据库。同时当打包节点验签出错时,裁判节点会接收该签名数据流量包并进行具体流量分析。
例如,靶机数据包括选手节点的地址信息。进行靶机数据分析包括确定基于选手节点的地址信息确定异常选手。
本公开的实施例,根据不同靶机节点生成多条靶机节点链,将不同靶机的数据流量包分开打包在不同区块链上,投票选出的打包节点只负责打包指定靶机节点的数据流量包。相比把所有靶机节点的数据流量包打包的同一条区块链上,不仅提高了共识模块的打包、广播和同步速度,同时方便裁判在某个靶机出现问题时,直接根据相应靶机节点的靶机节点链,利用时间戳快速定位问题所在的区块,对区块体中的流量数据包进行分析,减少了裁判工作量,提高了溯源的效率。
图7示意性示出了根据本公开另一实施例的网络靶机数据记录方法的流程图。
如图7所示,由靶机节点执行的网络靶机数据记录方法,靶机节点与区块链网络相连,该方法包括操作S701~操作S705。
在操作S701,接收来自选手节点的操作指令。
在本实施例中,参考图2所示,每个选手使用的终端设备可以分别作为一个选手节点。选手可以在选手节点上针对靶机节点进行操作,以完成CTF题目。此外,可能存在选手会对公共靶机进行非法操作,如对公共靶机上的Flag销毁或修补提前预留的漏洞,以打败其他参赛选手。
在操作S703,响应于操作指令生成靶机数据。
例如,靶机节点可以记录选手标识、记录选手节点标识、记录选手执行过的操作及其操作结果、操作时间等信息。
在操作S705,将包括靶机私钥签名的靶机数据发送给区块链网络,以便于区块链网络利用靶机节点的靶机公钥对靶机私钥签名进行靶机公钥验签,并且在靶机公钥验签的结果是通过之后,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
例如,靶机私钥签名采用的签名算法可以包括消息摘要计算和RSA加密。其中,关于消息摘要计算,消息在签名前可以首先通过MD5计算,生128位的消息摘要。关于对摘要进行RSA计算,可以用加密算法,采用签名者的私钥加密消息摘要,得到加密后的字符串。加密算法中使用的加密块为01类型。
需要说明的是,区块链网络对靶机数据进行验签、打包和发布等操作,以及节点列表等内容可以参考上述相关实施例部分,在此不再赘述。
在一个实施例中,靶机数据包括选手节点地址信息,以便区块链网络基于选手节点地址信息确定异常选手。例如,选手节点在某个时间段被某个选手使用,则可以基于该信息确定对应的选手,以便于在确定存在作弊时,确定实施该作弊的选手。
本公开的实施例,有效改善了相关技术中裁判无法有效监控和记录选手对于靶机的操作、无法防止其操作日志被篡改或删除、无法溯源选手操作等困难。
图8示意性示出了根据本公开另一实施例的网络靶机数据记录方法的流程图。
如图8所示,该网络靶机数据记录方法可以包括操作S801~操作S811。
在操作S801,靶机节点接收来自选手节点的操作指令。
在操作S803,靶机节点响应于操作指令生成靶机数据。
在操作S805,靶机节点将包括靶机私钥签名的靶机数据发送给区块链网络,靶机数据包括靶机节点的靶机私钥签名。
在操作S807,区块链网络确定与靶机节点对应的靶机公钥。
在操作S809,区块链网络利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果。
在操作S811,区块链网络响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
其中,关于靶机私钥签名、靶机公钥验签、打包区块和区块上链等相关内容参考如上相关实施例,在此不再赘述。
本公开实施例提供的基于区块链的网络靶机数据记录方法,将区块链应用到网络攻防靶场系统,以有效监控选手的操作并防止操作日志被篡改或删除。此外,采用了消息队列技术和多链技完善和提高系统整体性能水平。
本公开的另一方面提供了一种网络靶机数据记录装置。
图9示意性示出了根据本公开实施例的培训管理网络靶机数据记录装置的方框图。
如图9所示,该由区块链网络执行的网络靶机数据记录装置900包括:靶机数据接收模块910、靶机公钥模块920、验签模块930和发布模块940。
其中,靶机数据接收模块910用于接收来自靶机节点的靶机数据,靶机数据包括靶机节点的靶机私钥签名。
靶机公钥模块920用于确定与靶机节点对应的靶机公钥。
验签模块930用于利用靶机公钥对靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果。
发布模块940用于响应于靶机公钥验签结果是通过,将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的另一方面提供了一种网络靶机数据记录装置。
图10示意性示出了根据本公开另一实施例的培训管理网络靶机数据记录装置的方框图。
该由靶机节点执行的网络靶机数据记录装置1000包括:操作指令接收模块1010、靶机数据生成模块1020和靶机数据发送模块1030。
操作指令接收模块1010用于接收来自选手节点的操作指令。
靶机数据生成模块1020用于响应于操作指令生成靶机数据。
靶机数据发送模块1030用于将包括靶机私钥签名的靶机数据发送给区块链网络,以便于区块链网络利用靶机节点的靶机公钥对靶机私钥签名进行靶机公钥验签,并且在靶机公钥验签结果是通过之后将靶机数据打包至区块,以将区块发布到靶机数据区块链。
本公开的另一方面提供了一种网络靶机数据记录系统。
图11示意性示出了根据本公开实施例的网络靶机数据记录系统的方框图。
如图11所示,该网络靶机数据记录系统包括:靶机模块1110和共识模块1120。
其中,靶机模块1110用于获取靶机数据,并且发送给共识模块,靶机数据包括靶机私钥签名。
共识模块1120用于利用与靶机节点对应的靶机公钥对靶机私钥签名进行靶机公钥验签,在验签成功后将靶机数据打包至区块,并将区块发布到靶机数据区块链。
在一个实施例中,该系统还可以包括:消息队列模块1130。
其中,消息队列模块1130用于从靶机模块接收靶机数据,并且异步转发到共识模块。
此外,该系统还可以包括:裁判模块1140。
其中,裁判模块1140用于将从共识模块获取的区块的全量信息写入底层储存,以及在验签失败后,进行靶机数据分析。
在一个实施例中,该系统可以包括靶机模块1110、消息队列模块1130、共识模块1120和裁判模块1140。靶机模块1110主要功能是提供靶机节点(可以是实体节点或虚拟节点)供选手在此模块进行攻防演练比赛,并将获取的靶机数据发送到消息队列模块1130。消息队列模块1130主要功能是从靶机模块1110接收靶机数据,进行异步转发到共识模块1120。共识模块1120主要功能是从消息队列模块接收靶机数据,并通过共识算法,在若干任期内,将不同靶机的所有靶机数据进行验签,并打包成区块以加入到该靶机节点的靶机节点链中,并广播同步给所有共识节点,达到去中心化、防篡改和可溯源的数据储存。最后将区块链的全量信息同步到裁判模块1140。裁判模块1140主要功能是从共识模块1120获取区块链全量信息并写入底层储存,并在有必要时对区块链中的流量数据包进行流量分析。
例如,靶机模块1110包括选手节点和靶机节点,选手节点主要供选手操作进行攻防演练,靶机节点用于抓取自己接受和发送出的原始数据流量包,同时将原始数据流量数据包用自己靶机私钥进行签名生成签名流量数据包。因此每个靶机节点均拥有一份提前分配好的公私钥对,私钥用于对发送的原始数据流量数据包进行签名,公钥用于验签。
以下对共识模块执行的操作进行示例性说明。
共识模块基于共识算法将时间划分为不定长度的任期,任期为连续的数字。每个任期以票选开始,由票选成功的共识节点升级成为打包节点,负责出块。
具体地,首先,共识模块开始运作,开始打包节点票选阶段。所有节点均为共识节点,所有共识节点通过票选选出下一任期与靶机节点数量相同的打包节点。
然后,进入靶机节点分配阶段。所有选出来的打包节点,随机分配在下一任期中负责的靶机节点,并根据自己分配的靶机节点索引,在靶机节点列表获取相应靶机节点的公钥,存储在自己的内存中。同时连入对应靶机节点的消息队列成为消费者。
接着,进入打包验签阶段,在当前任期中,打包节点不断从已连接的消息队列中获取该节点负责的靶机节点的数据流量包,用存储在内存中的靶机节点公钥对每一个数据流量包里的签名进行验签,计算哈希值生成Merkle树和Merkle树根,最终打包成区块。对除自己以外的打包节点、共识节点和裁判节点进行广播。使其他节点同步自己负责的靶机节点链的区块信息。
然后,当前任期结束后,所有打包节点退化为共识节点,并删除内存中存储的公钥,进入下一轮任期和票选阶段。
图12示意性示出了根据本公开实施例的网络靶机数据记录方法的逻辑图。
如图12所示,通过以一个靶机节点a的靶机数据处理流程为示例来对系统的数据处理流程进行示例性说明。其中,在一轮任期中其他打包节点的数据流量包处理流程一致。
首先,靶机节点a通过抓包获取靶机数据,作为待由区块链网络进行记录的数据流量包。
然后,靶机节点a准实时使用自己的私钥对原始数据流量包进行签名生成签名数据流量包。
接着,靶机节点a发送签名数据流量包到提前分配好的对应消息队列a,此消息队列a只会受到收到靶机节点a的签名数据流量包。
然后,共识模块已经选出当前任期的打包节点a,该打包节点a从消息队列a中获取靶机节点a的签名数据流量包,负责验签和打包。
接着,打包节点a对该签名数据流量包进行验签,公钥从靶机节点列表依靠靶机节点索引获取。
然后,验签通过时,则把该签名数据流量包与其他通过验签的签名数据流量包一起计算哈希,生成Merkle树和Merkle树根,并在区块头中加入相关关键字段,包括但不限于前区块哈希、区块高度、时间戳、根哈希、靶机节点a索引等。将包含此数据流量包的区块接到对应靶机节点链a尾部,写入底层存储。
接着,验签不通过时,打包节点a则直接把此签名数据流量包发送给裁判模块进行流量分析,并结束该靶机数据的处理过程。
然后,打包节点a在共识模块内广播区块头信息,其他打包节点和共识节点均复制区块头信息,并在靶机节点a链尾接上此区块头,写入底层存储。同时向裁判模块广播区块头和区块体信息,裁判节点复制整体区块信息,并在靶机节点a链尾接上此区块,写入底层存储。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,靶机数据接收模块910、靶机公钥模块920、验签模块930和发布模块940中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,靶机数据接收模块910、靶机公钥模块920、验签模块930和发布模块940中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,靶机数据接收模块910、靶机公钥模块920、验签模块930和发布模块940中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图13示意性示出了根据本公开实施例的适于实现网络靶机数据记录方法的电子设备的框图。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,根据本公开实施例的电子设备1300包括处理器1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有系统1300操作所需的各种程序和数据。处理器1301、ROM1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM 1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。系统1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (19)
1.一种由区块链网络执行的网络靶机数据记录方法,所述区块链网络与靶机节点相连,所述区块链网络包括打包节点,所述方法包括:
接收来自所述靶机节点的靶机数据,所述靶机数据包括所述靶机节点的靶机私钥签名;
确定与所述靶机节点对应的靶机公钥;
利用所述靶机公钥对所述靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及
响应于所述靶机公钥验签结果是通过,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,
其中,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,包括:通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,当前打包节点向所述区块链广播所述区块,以使所述区块链网络中除所述当前打包节点之外的节点分别记录所述区块。
2.根据权利要求1所述的方法,其中,
所述接收来自所述靶机节点的靶机数据包括:
所述打包节点从与所述打包节点对应的消息队列中接收靶机数据,其中,所述靶机节点的靶机节点标识与所述消息队列的消息队列标识之间存在一对一的第一映射关系,所述打包节点的打包节点标识与所述消息队列的消息队列标识之间存在一对一的第二映射关系。
3.根据权利要求2所述的方法,其中,所述区块链网络还包括共识节点,所述共识节点中存储有节点列表,所述节点列表包括靶机节点标识和靶机公钥之间的第三映射关系;
所述确定与所述靶机节点对应的靶机公钥包括:
所述打包节点基于自身的打包节点标识和所述第二映射关系确定消息队列标识;
所述打包节点基于所述消息队列标识和所述第一映射关系确定靶机节点标识;以及
所述打包节点基于所述靶机节点标识和所述第三映射关系确定所述靶机公钥。
4.根据权利要求1所述的方法,其中,所述区块链网络包括多个轻节点类型的节点;
多个所述轻节点类型的节点中至少部分节点作为打包节点,多个所述轻节点类型的节点中剩余节点作为共识节点,其中,所述打包节点是由多个所述轻节点类型的节点共同投票来确定的,所述投票是按照预设周期进行的。
5.根据权利要求4所述的方法,还包括:在按照预设周期进行投票之后,
如果投票结果表征当前轻节点类型的节点作为与指定靶机节点对应的打包节点,则从节点列表中获取并本地存储所述指定靶机节点的靶机公钥;以及
如果所述投票结果表征打包节点转变为共识节点,则所述打包节点删除从所述节点列表中获取并本地存储的靶机公钥。
6.根据权利要求1所述的方法,其中,所述区块链网络还包括裁判节点,所述区块包括区块头和区块体;
所述裁判节点记录所述区块中的区块头和区块体;以及
所述区块链网络中除所述当前打包节点和所述裁判节点之外的节点记录所述区块中的区块头。
7.根据权利要求6所述的方法,其中,所述区块头包括前区块哈希、区块高度、时间戳、根哈希和靶机节点标识中至少一种。
8.根据权利要求1所述的方法,其中,所述区块链网络包括裁判节点;
所述方法还包括:
响应于所述靶机公钥验签结果是失败,将所述靶机数据发送给所述裁判节点以进行靶机数据分析。
9.根据权利要求8所述的方法,其中,所述靶机数据包括选手节点的地址信息;以及
所述进行靶机数据分析包括确定基于所述选手节点的地址信息确定异常选手。
10.根据权利要求1~9任一项所述的方法,其中:
所述靶机数据区块链包括与所述靶机节点的数量相同的区块链,每个靶机节点对应于一条区块链;
对于所述靶机数据区块链中每一条区块链,该区块链的各区块是分别由在该区块形成时针对该区块链的打包节点进行区块上链的。
11.一种由靶机节点执行的网络靶机数据记录方法,所述靶机节点与区块链网络相连,所述区块链网络包括打包节点,所述方法包括:
接收来自选手节点的操作指令;
响应于所述操作指令生成靶机数据;以及
将包括靶机私钥签名的靶机数据发送给所述区块链网络,以便于所述区块链网络利用所述靶机节点的靶机公钥对所述靶机私钥签名进行靶机公钥验签,并且在靶机公钥验签的结果是通过之后,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,
其中,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,包括:通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,当前打包节点向所述区块链广播所述区块,以使所述区块链网络中除所述当前打包节点之外的节点分别记录所述区块。
12.根据权利要求11所述的方法,还包括:
生成成对的靶机公钥和靶机私钥;以及
将所述靶机公钥和靶机节点标识发送给所述区块链网络,以便所述区块链网络将所述靶机公钥和所述靶机节点标识关联地存储在节点列表中。
13.根据权利要求11或12所述的方法,其中,所述靶机数据包括选手节点地址信息,以便所述区块链网络基于所述选手节点地址信息确定异常选手。
14.一种网络靶机数据记录方法,包括:
靶机节点接收来自选手节点的操作指令;
所述靶机节点响应于所述操作指令生成靶机数据;
所述靶机节点将包括靶机私钥签名的靶机数据发送给区块链网络,所述靶机数据包括所述靶机节点的靶机私钥签名;
所述区块链网络确定与所述靶机节点对应的靶机公钥;
所述区块链网络利用所述靶机公钥对所述靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及
所述区块链网络响应于所述靶机公钥验签结果是通过,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,其中,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,包括:通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,当前打包节点向所述区块链广播所述区块,以使所述区块链网络中除所述当前打包节点之外的节点分别记录所述区块。
15.一种由区块链网络执行的网络靶机数据记录装置,所述区块链网络与靶机节点相连,所述区块链网络包括打包节点,所述装置包括:
靶机数据接收模块,用于接收来自所述靶机节点的靶机数据,所述靶机数据包括所述靶机节点的靶机私钥签名;
靶机公钥模块,用于确定与所述靶机节点对应的靶机公钥;
验签模块,用于利用所述靶机公钥对所述靶机私钥签名进行靶机公钥验签,得到靶机公钥验签结果;以及
发布模块,用于响应于所述靶机公钥验签结果是通过,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,其中,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,包括:通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,当前打包节点向所述区块链广播所述区块,以使所述区块链网络中除所述当前打包节点之外的节点分别记录所述区块。
16.一种由靶机节点执行的网络靶机数据记录装置,所述靶机节点与区块链网络相连,所述区块链网络包括打包节点,所述装置包括:
操作指令接收模块,用于接收来自选手节点的操作指令;
靶机数据生成模块,用于响应于所述操作指令生成靶机数据;以及
靶机数据发送模块,用于将包括靶机私钥签名的靶机数据发送给所述区块链网络,以便于所述区块链网络利用所述靶机节点的靶机公钥对所述靶机私钥签名进行靶机公钥验签,并且在靶机公钥验签结果是通过之后将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,其中,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,包括:通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,当前打包节点向所述区块链广播所述区块,以使所述区块链网络中除所述当前打包节点之外的节点分别记录所述区块。
17.一种网络靶机数据记录系统,包括:
靶机模块,用于获取靶机数据,并且发送给共识模块,所述靶机数据包括靶机私钥签名;以及
共识模块,用于利用与靶机节点对应的靶机公钥对所述靶机私钥签名进行靶机公钥验签,在验签成功后将所述靶机数据打包至区块,并将所述区块发布到靶机数据区块链,其中,将所述靶机数据打包至区块,以将所述区块发布到靶机数据区块链,包括:通过共识算法将验签通过的靶机数据打包成区块加入到靶机数据区块链的链尾,当前打包节点向所述区块链广播所述区块,以使所述区块链网络中除所述当前打包节点之外的节点分别记录所述区块。
18.根据权利要求17所述的系统,还包括:
消息队列模块,用于从靶机模块接收靶机数据,并且异步转发到所述共识模块;并且/或者
裁判模块,用于将从所述共识模块获取的所述区块的全量信息写入底层储存,以及在所述验签失败后,进行靶机数据分析。
19.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如权利要求1~14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010692376.9A CN111814201B (zh) | 2020-07-17 | 2020-07-17 | 网络靶机数据记录方法、装置、系统和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010692376.9A CN111814201B (zh) | 2020-07-17 | 2020-07-17 | 网络靶机数据记录方法、装置、系统和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111814201A CN111814201A (zh) | 2020-10-23 |
CN111814201B true CN111814201B (zh) | 2023-09-22 |
Family
ID=72866516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010692376.9A Active CN111814201B (zh) | 2020-07-17 | 2020-07-17 | 网络靶机数据记录方法、装置、系统和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111814201B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114282795B (zh) * | 2021-12-21 | 2022-09-16 | 北京永信至诚科技股份有限公司 | 网络靶场人员技能评估方法、装置、设备及可读存储介质 |
CN115150300A (zh) * | 2022-07-22 | 2022-10-04 | 中汽创智科技有限公司 | 车辆安全攻防的管理系统及方法 |
CN116455645B (zh) * | 2023-04-24 | 2024-02-02 | 中国工程物理研究院计算机应用研究所 | 一种用于网络靶场数据的细粒度隔离防护方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111342963A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 数据上链方法、数据存储方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11005653B2 (en) * | 2017-02-28 | 2021-05-11 | Airbus Helicopters | Integrated method and device for storing and sharing data |
-
2020
- 2020-07-17 CN CN202010692376.9A patent/CN111814201B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111342963A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 数据上链方法、数据存储方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于环映射的去中心化身份认证方案;马超宇;;网络安全技术与应用(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111814201A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111814201B (zh) | 网络靶机数据记录方法、装置、系统和电子设备 | |
CN107295002B (zh) | 一种云端存储数据的方法及服务器 | |
CN109409122B (zh) | 文件存储方法及其电子设备、存储介质 | |
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
US10630463B2 (en) | Meta block chain | |
CN109542888B (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
CN115210741B (zh) | 部分有序的区块链 | |
CN106254374B (zh) | 一种具备去重功能的云数据公开审计方法 | |
CN108924130B (zh) | 一种区块数据的验证方法、装置、设备和存储介质 | |
CN108985100B (zh) | 基于区块链的元素安全性证明方法、装置、设备和介质 | |
KR100823738B1 (ko) | 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 | |
CN110286849B (zh) | 数据存储系统的数据处理方法和装置 | |
CN112257095B (zh) | 一种联盟链共识节点的选择方法 | |
CN112115205B (zh) | 基于数字证书认证的跨链信任方法、装置、设备以及介质 | |
CN112968883B (zh) | 一种安全性高的区块链异构共识方法及终端 | |
CN108880820B (zh) | 代码管理方法和装置 | |
CN114139203B (zh) | 基于区块链的异构身份联盟风险评估系统、方法及终端 | |
CN110177124A (zh) | 基于区块链的身份认证方法及相关设备 | |
CN109242404B (zh) | 履历信息管理方法、装置、计算机设备与可读存储介质 | |
CN110458673A (zh) | 基于区块链的投标方法、设备及计算机可读存储介质 | |
JP2023504492A (ja) | データ・オブジェクトの効率的しきい値ストレージ | |
CN111881109B (zh) | 数据库可合并分类账 | |
Ajayi et al. | Secured cyber-attack signatures distribution using blockchain technology | |
Duan et al. | Multiple-layer security threats on the ethereum blockchain and their countermeasures | |
CN111585995B (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 |
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 |