CN111711646A - 一种确保区块链p2p网络节点通信安全性的方法和设备 - Google Patents

一种确保区块链p2p网络节点通信安全性的方法和设备 Download PDF

Info

Publication number
CN111711646A
CN111711646A CN202010840494.XA CN202010840494A CN111711646A CN 111711646 A CN111711646 A CN 111711646A CN 202010840494 A CN202010840494 A CN 202010840494A CN 111711646 A CN111711646 A CN 111711646A
Authority
CN
China
Prior art keywords
node
public key
key certificate
verification
random number
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.)
Granted
Application number
CN202010840494.XA
Other languages
English (en)
Other versions
CN111711646B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN202010840494.XA priority Critical patent/CN111711646B/zh
Publication of CN111711646A publication Critical patent/CN111711646A/zh
Application granted granted Critical
Publication of CN111711646B publication Critical patent/CN111711646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种确保区块链P2P网络节点通信安全性的方法和设备,涉及通信领域。第一节点通过服务接口传入的参数确定第一节点为源节点或目标节点,如为源节点,则生成第一随机数,当接收到目标节点发送的第二随机数和公钥证书时,将第一节点公钥证书和生成的第三随机数发送给目标节点,根据第一随机数、第二随机数和第三随机数生成通讯密钥;如为目标节点,则当接收到源节点发送的第四随机数时,向源节点发送第一节点公钥证书和生成的第五随机数,当接收到源节点发送的源节点公钥证书和第六随机数时,根据第四随机数、第五随机数和第六随机数生成通讯密钥。本发明确保了区块链P2P网络中节点的可信性,确保了数据来源的安全性。

Description

一种确保区块链P2P网络节点通信安全性的方法和设备
技术领域
本发明涉及通信领域,尤其涉及一种确保区块链P2P网络节点通信安全性的方法和设备。
背景技术
点对点网络(peer-to-peer,简称P2P网络),是无中心服务器、依靠用户群(peers)交换信息的互联网体系,其作用在于可以减少区块链网络传输中的节点,以降低资料泄露的风险。P2P节点能遍布整个互联网,在网络隐私要求高和文件共享领域中,得到了广泛的应用。现有技术中,包括比特币、以太坊、超级记账本等区块链项目均采用P2P网络通信。
区块链的P2P网络通信主要依赖于节点传递数据,各节点只要满足相同的通信协议即可进行通信,但是,在这种通信模式下,一方面,各节点无法确认接收到的数据是否来自于自身信任的节点,从而导致数据来源的安全性无法得到保证,另一方面,由于区块链的P2P网络通信中的节点可以遍布整个互联网,在传递数据过程中,也存在数据被其它节点篡改的风险。因此在区块链的P2P网络通信过程中,如何确保通信数据的安全性成为一个亟待解决的问题。
发明内容
为解决现有技术的不足,提供了一种确保区块链P2P网络节点通信安全性的方法和设备。
第一方面,本发明提供了一种确保区块链P2P网络节点通信安全性的方法,包括如下步骤:
步骤100:当第一节点的服务接口被调用时,判断被调用的服务接口的类型,如为发起连接服务接口,执行步骤101,如为接收连接服务接口,执行步骤105;
步骤101:所述第一节点根据发起连接服务接口传入的参数确定目标节点,与所述目标节点建立TCP连接;
步骤102:所述第一节点生成第一随机数并保存,获取第一预置信息,向所述目标节点发送包含所述第一随机数和所述第一预置信息加密通信请求;
步骤103:当所述第一节点接收到所述目标节点发送的获取第一节点公钥证书请求时,校验所述获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书,当校验通过时,保存所述获取第一节点公钥证书请求中的第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向所述目标节点发送所述第三随机数和所述第一节点公钥证书;
步骤104:所述第一节点根据所述第一随机数、所述第二随机数和所述第三随机数生成通讯密钥并保存,向所述目标节点发送生成通讯密钥完成信息,当接收到所述目标节点发送生成通讯密钥完成信息时,与所述目标节点建立通讯连接;
步骤105:所述第一节点根据接收连接服务接口传入的参数确定源节点,与所述源节点建立TCP连接;当所述第一节点接收到所述源节点发送加密通信请求时,解析所述源节点发送的加密通信请求得到加密通信请求数据;
步骤106:当所述加密通信请求数据为第四随机数和第三预置信息时,所述第一节点校验所述第三预置信息,当校验通过时,保存所述第四随机数,生成第五随机数并保存,获取第一节点公钥证书,向所述源节点发送包含所述第五随机数、所述第一节点公钥证书和所述第一预置信息的获取源节点公钥证书请求;
步骤107:当所述第一节点接收到所述源节点发送的第六随机数和源节点公钥证书时,校验所述源节点公钥证书,当校验通过时,根据所述第四随机数、所述第五随机数和所述第六随机数生成通讯密钥并保存,向所述源节点发送生成通讯密钥完成信息,当接收到所述源节点发送生成通讯密钥完成信息时,与所述源节点建立通讯连接。
第二方面,本发明提供了一种确保区块链P2P网络节点通信安全性的系统,包括:第一判断模块、第一确定模块、第一生成获取发送模块、接收获取校验生成模块、生成发送接收连接模块、确定接收解析模块、校验获取生成发送模块和接收校验生成连接模块;
所述第一判断模块,用于当服务接口被调用时,判断被调用的服务接口的类型;
所述第一确定模块,用于当所述第一判断模块判断被调用的服务接口为发起连接服务接口时,根据发起连接服务接口传入的参数确定目标节点,与所述目标节点建立TCP连接;
所述第一生成获取发送模块,用于生成第一随机数并保存,获取第一预置信息,向所述目标节点发送包含所述第一随机数和所述第一预置信息加密通信请求;
所述接收获取校验生成模块,用于当接收到所述目标节点发送的获取第一节点公钥证书请求时,校验所述获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书,当校验通过时,保存所述获取第一节点公钥证书请求中的第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向所述目标节点发送所述第三随机数和所述第一节点公钥证书;
所述生成发送接收连接模块,用于根据所述第一随机数、所述第二随机数和所述第三随机数生成通讯密钥并保存,向所述目标节点发送生成通讯密钥完成信息,当接收到所述目标节点发送生成通讯密钥完成信息时,与所述目标节点建立通讯连接;
所述确定接收解析模块,用于当所述第一判断模块判断被调用的服务接口为接收连接服务接口时,根据所述接收连接服务接口传入的参数确定源节点,与所述源节点建立TCP连接;当所述第一节点接收到所述源节点发送加密通信请求时,解析所述源节点发送的加密通信请求得到加密通信请求数据;
所述校验获取生成发送模块,用于当所述加密通信请求数据为第四随机数和第三预置信息时,校验所述第三预置信息,当校验通过时,保存所述第四随机数,生成第五随机数并保存,获取第一节点公钥证书,向所述源节点发送包含所述第五随机数、所述第一节点公钥证书和所述第一预置信息的获取源节点公钥证书请求;
所述接收校验生成连接模块,用于当接收到所述源节点发送的第六随机数和源节点公钥证书时,校验所述源节点公钥证书,当校验通过时,根据所述第四随机数、所述第五随机数和所述第六随机数生成通讯密钥并保存,向所述源节点发送生成通讯密钥完成信息,当接收到所述源节点发送生成通讯密钥完成信息时,与所述源节点建立通讯连接。
本发明与现有技术相比,至少具有以下优点:
本发明提供的一种确保区块链P2P网络节点通信安全性的方法和设备,需要建立P2P通信的节点通过校验彼此的节点信息,确保了建立P2P网络通信中的节点均为可信任的节点,从而确保了数据来源的安全性,同时,生成了用于对后续通信数据进行加密处理的通讯密钥对,确保了通信数据的安全性。
附图说明
图1为本发明实施例1提供的一种确保区块链P2P网络节点通信安全性的方法流程图;
图2为本发明实施例2提供的一种确保区块链P2P网络节点通信安全性的方法流程图;
图3为本发明实施例3提供的一种确保区块链P2P网络节点通信安全性的方法流程图;
图4为本发明实施例3提供的一种确保区块链P2P网络节点通信安全性的设备的模块框图。
具体实施方式
本申请提出一种确保区块链P2P网络节点通信安全性的方法和设备,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例1提供了一种确保区块链P2P网络节点通信安全性的方法,如图1所示,包括如下步骤:
步骤100:当第一节点的服务接口被调用时,判断被调用的服务接口的类型,如为发起连接服务接口,执行步骤101,如为接收连接服务接口,执行步骤105;
步骤101:第一节点根据发起连接服务接口传入的参数确定目标节点,与目标节点建立TCP连接;
步骤102:第一节点生成第一随机数并保存,获取第一预置信息,向目标节点发送包含第一随机数和第一预置信息加密通信请求;
步骤103:当第一节点接收到目标节点发送的获取第一节点公钥证书请求时,校验获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书,当校验通过时,保存获取第一节点公钥证书请求中的第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向目标节点发送第三随机数和第一节点公钥证书;
步骤104:第一节点根据第一随机数、第二随机数和第三随机数生成通讯密钥并保存,向目标节点发送生成通讯密钥完成信息,当接收到目标节点发送生成通讯密钥完成信息时,与目标节点建立通讯连接;
步骤105:第一节点根据接收连接服务接口传入的参数确定源节点,与源节点建立TCP连接;当第一节点接收到源节点发送加密通信请求时,解析源节点发送的加密通信请求得到加密通信请求数据;
步骤106:当加密通信请求数据为第四随机数和第三预置信息时,第一节点校验第三预置信息,当校验通过时,保存第四随机数,生成第五随机数并保存,获取第一节点公钥证书,向源节点发送包含第五随机数、第一节点公钥证书和第一预置信息的获取源节点公钥证书请求;
步骤107:当第一节点接收到源节点发送的第六随机数和源节点公钥证书时,校验源节点公钥证书,当校验通过时,根据第四随机数、第五随机数和第六随机数生成通讯密钥并保存,向源节点发送生成通讯密钥完成信息,当接收到源节点发送生成通讯密钥完成信息时,与源节点建立通讯连接。
本发明提供的一种确保区块链P2P网络节点通信安全性的方法,需要建立P2P通信的节点通过校验彼此的节点信息,确保了建立P2P网络通信中的节点均为可信任的节点,从而确保了数据来源的安全性,同时,生成了用于对后续通信数据进行加密处理的通讯密钥对,确保了通信数据的安全性。
实施例2
本发明实施例2提供了一种确保区块链P2P网络节点通信安全性的方法,如图2所示,包括如下步骤:
步骤200:当第一节点的服务接口被调用时,判断被调用的服务接口的类型,如为发起连接服务接口,执行步骤201,如为接收连接服务接口,执行步骤207;
步骤201:第一节点根据发起连接服务接口传入的参数确定目标节点,向目标节点发送TCP连接请求;
可选地,本实施例中,发起连接服务接口传入的参数具体为:IP地址和/或域名;
例如:发起连接服务接口传入的参数为:example.com
TCP连接请求为:
0000 01 bb cb f6 44 8c dc 28 d9 3d ac 9a a0 12 20 00
0010 77 f0 00 00 02 04 05 ac 04 02 01 01 01 01 01 01
0020 01 01 01 01 01 03 03 05;
步骤202:当第一节点接收到目标节点发送的TCP连接响应时,与目标节点建立TCP连接;
例如:TCP连接响应为:
0000 cb f6 01 bb d9 3d ac 9a 44 8c dc 29 50 10 01 f6
0010 3e ea 00 00;
步骤203:第一节点生成第一随机数并保存,获取第一预置信息,根据第一随机数和第一预置信息生成加密通信请求,向目标节点发送加密通信请求;
例如:第一节点生成的第一随机数为:
0000 87 d9 e0 b4 a9 05 4a 2b 11 74 7f b0 c6 e6 0c ae
0010 03 f8 23 42 72 c8 ea 88 7a 20 87 8a b4 df dc 04;
第一预置信息为: example.com;
加密通信请求为:
0000 16 03 01 00 87 01 00 00 83 03 03 87 d9 e0 b4 a9
0010 05 4a 2b 11 74 7f b0 c6 e6 0c ae 03 f8 23 42 72
0020 c8 ea 88 7a 20 87 8a b4 df dc 04 00 00 20 cc a8
0030 cc a9 c0 2f c0 30 c0 2b c0 2c c0 13 c0 09 c0 14
0040 c0 0a 00 9c 00 9d 00 2f 00 35 c0 12 00 0a 01 00
0050 00 3a 00 05 00 05 01 00 00 00 00 00 0a 00 0c 00
0060 0a 00 1d 00 17 00 18 00 19 00 1f 00 0b 00 02 01
0070 00 00 0d 00 0e 00 0c 04 01 04 03 05 01 05 03 02
0080 01 02 03 ff 01 00 01 00 00 12 00 00;
可选地,本实施例中,步骤203之前还包括:第一节点判断自身是否为孤立节点,当第一节点判断自身是孤立节点时,执行步骤203;
可选地,本实施例中,第一预置信息包括:第一节点支持的协议版本信息、第一节点支持的加密算法和压缩算法;
可选地,本实施例中,第一节点可以有多个支持的协议版本信息,各协议版本信息按照优先级排列,生成第一节点支持的协议版本列表;
可选地,第一节点可以有多个支持的加密算法,各加密算法按照优先级排列,生成第一节点支持的加密算法列表;
步骤204:当第一节点接收到目标节点发送的获取第一节点公钥证书请求时,解析获取第一节点公钥证书请求得到第二随机数、目标节点公钥证书和第二预置信息,校验目标节点公钥证书和第二预置信息,当校验通过时,执行步骤205;
例如:获取第一节点公钥证书请求为:
0000 16 03 03 00 88 0d 00 00 84 02 01 40 00 0c 04 01
0010 04 03 05 01 05 03 02 01 02 03 00 71 00 6f 30 6d
0020 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10 30
0030 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31
0040 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65
0050 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64
0060 65 72 6d 69 6e 74 20 74 65 73 74 31 20 30 1e 06
0070 03 55 04 03 13 17 54 65 6e 64 65 72 6d 69 6e 74
0080 20 54 65 73 74 20 52 6f 6f 74 20 43 41;
第二随机数为:
0000 29 07 70 75 5d 5e 59 2f c2 0e b3 a7 88 ba 5c 58
0010 8c e9 e6 f9 ae 38 83 c1 40 08 8b 95 2d cc 04 48;
目标节点公钥证书为:
0000 00 01 ea 30 82 01 e6 30 82 01 8b a0 03 02 01 02
0010 02 14 47 7f 31 7f fd 26 72 f9 a3 d1 ac a9 76 76
0020 c4 25 7b dc 03 52 30 0a 06 08 2a 81 1c cf 55 01
0030 83 77 30 6d 31 0b 30 09 06 03 55 04 06 13 02 43
0040 4e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a
0050 69 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75
0060 62 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f
0070 54 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31
0080 20 30 1e 06 03 55 04 03 13 17 54 65 6e 64 65 72
0090 6d 69 6e 74 20 54 65 73 74 20 52 6f 6f 74 20 43
00a0 41 30 1e 17 0d 32 30 30 37 30 33 30 37 35 36 33
00b0 34 5a 17 0d 32 30 30 38 31 33 32 33 35 36 33 34
00c0 5a 30 63 31 0b 30 09 06 03 55 04 06 13 02 43 4e
00d0 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a 69
00e0 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75 62
00f0 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f 54
0100 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31 16
0110 30 14 06 03 55 04 03 13 0d 31 39 32 2e 31 36 38
0120 2e 31 37 2e 36 30 30 59 30 13 06 07 2a 86 48 ce
0130 3d 02 01 06 08 2a 81 1c cf 55 01 82 2d 03 42 00
0140 04 a4 85 bc 46 17 5d e1 60 ae 84 8e 28 df 3b f7
0150 9a 04 20 7b fc 2f 3a 4f b4 ea dd 4b ec 2f a9 83
0160 70 0d 88 4d 94 ba 15 d8 d1 c7 7e 92 44 fe 9e 9f
0170 9f 57 3f f5 e4 9f 1c e5 31 9c 3f 68 95 c7 3a 20
0180 db a3 13 30 11 30 0f 06 03 55 1d 11 04 08 30 06
0190 87 04 c0 a8 11 3c 30 0a 06 08 2a 81 1c cf 55 01
01a0 83 77 03 49 00 30 46 02 21 00 8c 18 ad f6 0a b3
01b0 9a 19 d7 c3 18 d9 c7 ca 3f 1e e2 ab 55 a5 a4 8c
01c0 2c a8 0b 4b 31 a4 0b 53 5c ac 02 21 00 c8 a4 84
01d0 89 82 d6 88 d9 bb 25 6a b6 60 1b 2f 5d eb c7 4e
01e0 a7 48 fb 38 3e 1a d7 29 ae 4c 15 45 8e;
第二预置信息为:example.com;
可选地,本实施例中,第一节点需先向CA认证机构注册,由CA认证机构签发第一节点公钥证书,同时CA机构将CA公钥证书下发给第一节点;
可选地,本实施例中,校验目标节点公钥证书和第二预置信息具体包括:
步骤D1:第一节点根据第二预置信息中的目标节点支持的协议版本信息、支持的加密算法和压缩算法分别与第一预置信息中的第一节点支持的协议版本信息、支持的加密算法和压缩算法进行匹配,如均匹配成功,执行步骤D2,否则,结束;
步骤D2:第一节点根据CA公钥证书校验目标节点公钥证书,如校验通过,执行步骤D3,否则,结束;
步骤D3:第一节点从目标节点公钥证书中获取目标节点的域名和/或IP地址,校验目标节点的域名和/或IP地址,当校验通过时,执行步骤205,否则,结束;
可选地,本实施例中,目标节点公钥证书包括:目标节点的域名和/或IP地址;校验域名和/或IP地址具体为:第一节点判断从目标节点公钥证书中获取的目标节点的域名和/或IP地址是否与自身想要连接的目标节点的域名和/或IP地址一致,如一致,则校验通过,如不一致,则校验未通过;
步骤205:第一节点保存第二随机数,生成第三随机数并保存,从目标节点公钥证书中获取目标节点公钥,使用目标节点公钥对第三随机数进行加密得到第三随机数密文数据,获取第一节点公钥证书,向目标节点发送第三随机数密文数据和第一节点公钥证书;
例如:生成的第三随机数为:
0000 a5 e7 7f da d6 01 1a 43 26 fa 58 3d 18 9d df d4
0010 20 17 e6 61 a2 eb 4e e4 a3 3e 5c d6 bf 87 ed 06;
从目标节点公钥证书中获取目标节点公钥为:
0000 30 59 30 13 06 07 2a 86 48 ce 3d 02 01 06 08 2a
0010 81 1c cf 55 01 82 2d 03 42 00 04 a4 85 bc 46 17
0020 5d e1 60 ae 84 8e 28 df 3b f7 9a 04 20 7b fc 2f
0030 3a 4f b4 ea dd 4b ec 2f a9 83 70 0d 88 4d 94 ba
0040 15 d8 d1 c7 7e 92 44 fe 9e 9f 9f 57 3f f5 e4 9f
0050 1c e5 31 9c 3f 68 95 c7 3a 20 db;
第三随机数密文数据为:
0000 20 70 e3 03 05 a9 68 fb 5d cf 21 ee 16 97 1b a5
0010 43 fc cf f0 e9 1e 9e 59 4a 16 46 66 3f ec f2 7a
0020 19;
可选地,本实施例中,步骤205替换为:第一节点保存第二随机数,生成第三随机数并保存,获取第一节点公钥证书对应的私钥,使用第一节点公钥证书对应的私钥对第三随机数进行签名得到第一签名数据,从目标节点公钥证书中获取目标节点公钥,使用目标节点公钥对第三随机数和第一签名数据进行加密得到第三随机数和第一签名数据的密文数据,获取第一节点公钥证书,向目标节点发送第三随机数和第一签名数据的密文数据和第一节点公钥证书;
步骤206:第一节点根据第一随机数、第二随机数和第三随机数生成通讯密钥,向目标节点发送生成通讯密钥完成信息,当接收到目标节点发送生成通讯密钥完成信息时,与目标节点建立通讯连接;
例如:生成的通讯密钥为:
向目标节点发送的生成通讯密钥完成信息为:
0000 16 03 03 00 20 84 a3 b8 05 e1 8d 27 b1 ae 3c 68
0010 ed f5 2a 91 32 8f 63 0a ae 22 70 f9 db c6 46 ab
0020 46 ed 76 92 8c;
目标节点发送的生成通讯密钥完成信息为:
0000 16 03 03 00 20 68 39 7a f9 f7 92 61 34 54 c3 b8
0010 a8 95 03 a3 c7 b4 8a 23 76 1e 24 5e cf 5b 35 e8
0020 af 0f d0 6b c2;
步骤207:第一节点根据接收连接服务接口传入的参数确定源节点,接收源节点发起的TCP连接请求,向源节点发送TCP连接响应;
步骤208:当第一节点接收到源节点发送的加密通信请求时,解析源节点发送的加密通信请求得到加密通信请求数据,如所述加密通信请求数据为第四随机数和第三预置信息,校验第三预置信息,当校验通过时,执行步骤209;
可选地,本实施例中,第三预置信息包括:源节点支持的协议版本信息、支持的加密算法和压缩算法;
可选地,本实施例中,校验第三预置信息具体为:第一节点根据第一预置信息中的第一节点支持的协议版本信息、支持的加密算法和压缩算法分别与第三预置信息中的源节点支持的协议版本信息、支持的加密算法和压缩算法进行匹配,如均匹配成功,则校验通过,否则,校验未通过;
可选地,本实施例中,当校验通过时,第一节点向源节点发送加密通讯失败响应;
可选地,在一种可能的实施方式中,源节点支持的协议版本信息、支持的加密算法和压缩算法具体为:源节点支持的协议版本列表和源节点支持的加密算法和压缩算法列表;校验第三预置信息具体为:第一节点判断源节点支持的协议版本列表和源节点支持的加密算法和压缩算法列表中是否存储有第一节点支持的协议版本信息、支持的加密算法和压缩算法,如果是,则校验通过,否则,校验未通过;
步骤209:第一节点保存第四随机数,生成第五随机数并保存,获取第一节点公钥证书,根据第五随机数、第一节点公钥证书和第一预置信息,向源节点发送获取源节点公钥证书请求;
步骤210:当第一节点接收到源节点发送的第六随机数密文数据和源节点公钥证书时,使用第一节点公钥证书对应的私钥解密第六随机数密文数据得到第六随机数,校验源节点公钥证书,当校验通过时,执行步骤211;
可选地,本实施例中,步骤210替换为:
步骤A1:当第一节点接收到源节点发送的第六随机数和第一签名数据的密文数据和第一节点公钥证书时,使用第一节点公钥证书对应的私钥解密第六随机数和第一签名数据的密文数据得到第六随机数和第一签名数据,从源节点公钥证书中获取源节点公钥,使用源节点公钥和第六随机数对第一签名数据进行验签,当验签通过时,执行步骤A2;
步骤A2:第一节点对源节点公钥证书进行校验,当校验通过时,执行步骤211;
可选地,本实施例中,校验源节点公钥证书具体为:第一节点判断源节点公钥证书是否为指定认证机构签发的证书,如果是,校验通过,否则,检验不通过;
可选地,指定认证机构证书为:CA机构证书;
可选地,在一个可能的实施方式中,校验源节点公钥证书具体为:具体为:第一节点判断源节点公钥证书的属性信息是否在预置的证书属性信息列表中,如果是,校验通过,否则,检验不通过;
可选地,源节点公钥证书的属性信息包括:签署者名称、主题(subject)、通用名(common name)等;
可选地,在一个可能的实施方式中,源节点公钥证书中包括扩展信息,校验源节点公钥证书具体为:第一节点从源节点公钥证书中获取扩展信息,判断扩展信息是否与预置信息匹配,如匹配,校验通过,如不匹配,检验不通过;
可选地,源节点公钥证书中包括的扩展信息具体为:源节点的域名、源节点的IP地址等;
步骤211:第一节点根据第四随机数、第五随机数和第六随机数生成通讯密钥并保存,向源节点发送生成通讯密钥完成信息,当接收到源节点发送生成通讯密钥完成信息时,与源节点建立通讯连接;
本发明提供的一种确保区块链P2P网络节点通信安全性的方法,需要建立P2P通信的节点通过校验彼此的节点信息,确保了建立P2P网络通信中的节点均为可信任的节点,从而确保了数据来源的安全性,同时,生成了用于对后续通信数据进行加密处理的通讯密钥对,确保了通信数据的安全性。
实施例3
本发明实施例3提供了一种确保区块链P2P网络节点通信安全性的方法,如图3所示,包括如下步骤:
步骤300:当第一节点的服务接口被调用时,判断被调用的服务接口的类型,如为发起连接服务接口,执行步骤301,如为接收连接服务接口,执行步骤306,如为验证连接服务接口,执行步骤310;
步骤301:第一节点根据发起连接服务接口传入的参数确定目标节点,向目标节点发送TCP连接请求;
步骤302: 当第一节点接收到目标节点发送的TCP连接响应时,与目标节点建立TCP连接;
步骤303:第一节点获取保存的第一节点公钥证书和第一预设列表,向目标节点发送第一节点公钥证书和第一预设列表;所述第一预设列表用于存储与第一节点建立TCP连接的节点信息;
例如:第一节点公钥证书为:
0000 30 82 01 e6 30 82 01 8b a0 03 02 01 02 02 14 47
0010 7f 31 7f fd 26 72 f9 a3 d1 ac a9 76 76 c4 25 7b
0020 dc 03 52 30 0a 06 08 2a 81 1c cf 55 01 83 77 30
0030 6d 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10
0040 30 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67
0050 31 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74
0060 65 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e
0070 64 65 72 6d 69 6e 74 20 74 65 73 74 31 20 30 1e
0080 06 03 55 04 03 13 17 54 65 6e 64 65 72 6d 69 6e
0090 74 20 54 65 73 74 20 52 6f 6f 74 20 43 41 30 1e
00a0 17 0d 32 30 30 37 30 33 30 37 35 36 33 34 5a 17
00b0 0d 32 30 30 38 31 33 32 33 35 36 33 34 5a 30 63
00c0 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10 30
00d0 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31
00e0 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65
00f0 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64
0100 65 72 6d 69 6e 74 20 74 65 73 74 31 16 30 14 06
0110 03 55 04 03 13 0d 31 39 32 2e 31 36 38 2e 31 37
0120 2e 36 30 30 59 30 13 06 07 2a 86 48 ce 3d 02 01
0130 06 08 2a 81 1c cf 55 01 82 2d 03 42 00 04 a4 85
0140 bc 46 17 5d e1 60 ae 84 8e 28 df 3b f7 9a 04 20
0150 7b fc 2f 3a 4f b4 ea dd 4b ec 2f a9 83 70 0d 88
0160 4d 94 ba 15 d8 d1 c7 7e 92 44 fe 9e 9f 9f 57 3f
0170 f5 e4 9f 1c e5 31 9c 3f 68 95 c7 3a 20 db a3 13
0180 30 11 30 0f 06 03 55 1d 11 04 08 30 06 87 04 c0
0190 a8 11 3c 30 0a 06 08 2a 81 1c cf 55 01 83 77 03
01a0 49 00 30 46 02 21 00 8c 18 ad f6 0a b3 9a 19 d7
01b0 c3 18 d9 c7 ca 3f 1e e2 ab 55 a5 a4 8c 2c a8 0b
01c0 4b 31 a4 0b 53 5c ac 02 21 00 c8 a4 84 89 82 d6
01d0 88 d9 bb 25 6a b6 60 1b 2f 5d eb c7 4e a7 48 fb
01e0 38 3e 1a d7 29 ae 4c 15 45 8e;
第一预设列表为:
0000 00 00 06 23 02 05 0d 31 39 32 2e 31 36 38 2e 30
0010 2e 31 33 34 04 00 00 00 00 00 00 00 00 00 00 ff
0020 ff c0 a8 00 86 01 e8 30 82 01 e4 30 82 01 8b a0
0030 03 02 01 02 02 14 55 56 f3 d2 2b 40 8f e8 5f d9
0040 a8 a1 fd 0c 16 f4 84 d4 1e 2b 30 0a 06 08 2a 81
0050 1c cf 55 01 83 77 30 6d 31 0b 30 09 06 03 55 04
0060 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07
0070 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a
0080 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55
0090 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74
00a0 65 73 74 31 20 30 1e 06 03 55 04 03 13 17 54 65
00b0 6e 64 65 72 6d 69 6e 74 20 54 65 73 74 20 52 6f
00c0 6f 74 20 43 41 30 1e 17 0d 32 30 30 36 31 32 31
00d0 30 30 30 32 31 5a 17 0d 32 30 30 37 32 34 30 32
00e0 30 30 32 31 5a 30 63 31 0b 30 09 06 03 55 04 06
00f0 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07 42
0100 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a 13
0110 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55 04
0120 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74 65
0130 73 74 31 16 30 14 06 03 55 04 03 13 0d 31 39 32
0140 2e 31 36 38 2e 30 2e 31 33 34 30 59 30 13 06 07
0150 2a 86 48 ce 3d 02 01 06 08 2a 81 1c cf 55 01 82
0160 2d 03 42 00 04 dd b3 6f 2e 20 7a 2b 69 27 c3 20
0170 51 8b e4 fd d7 8c 09 9c 68 49 17 87 b9 ff 6c eb
0180 e6 25 64 0a b0 f1 c3 66 fb 18 96 aa df 33 b9 e7
0190 b1 61 71 f3 00 94 1b a0 ca 0a 18 80 f4 6b 2a 3a
01a0 4a e2 18 94 60 a3 13 30 11 30 0f 06 03 55 1d 11
01b0 04 08 30 06 87 04 c0 a8 00 86 30 0a 06 08 2a 81
01c0 1c cf 55 01 83 77 03 47 00 30 44 02 20 61 75 6e
01d0 35 cd f8 4c 5c e9 73 f8 f9 af 8d fc a1 7a d1 5a
01e0 e4 9b 00 5a a8 9a 8f 1c c6 cf 8d 0c 1d 02 20 36
01f0 84 57 00 27 50 2f c5 96 2b 1c 6d 26 93 42 88 e7
0200 54 87 79 f2 37 91 6e 9e b2 ca 30 bb 6b 47 e6 02
0210 06 0d 31 39 32 2e 31 36 38 2e 30 2e 31 33 35 04
0220 00 00 00 00 00 00 00 00 00 00 ff ff c0 a8 00 87
0230 01 e9 30 82 01 e5 30 82 01 8b a0 03 02 01 02 02
0240 14 2c e9 de 44 bf b6 8f 4d a3 03 d2 c1 f7 0a 50
0250 f9 ea 97 f9 ae 30 0a 06 08 2a 81 1c cf 55 01 83
0260 77 30 6d 31 0b 30 09 06 03 55 04 06 13 02 43 4e
0270 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a 69
0280 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75 62
0290 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f 54
02a0 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31 20
02b0 30 1e 06 03 55 04 03 13 17 54 65 6e 64 65 72 6d
02c0 69 6e 74 20 54 65 73 74 20 52 6f 6f 74 20 43 41
02d0 30 1e 17 0d 32 30 30 36 31 32 31 30 30 30 32 31
02e0 5a 17 0d 32 30 30 37 32 34 30 32 30 30 32 31 5a
02f0 30 63 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31
0300 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e
0310 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69
0320 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65
0330 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31 16 30
0340 14 06 03 55 04 03 13 0d 31 39 32 2e 31 36 38 2e
0350 30 2e 31 33 35 30 59 30 13 06 07 2a 86 48 ce 3d
0360 02 01 06 08 2a 81 1c cf 55 01 82 2d 03 42 00 04
0370 89 d5 23 9c a6 26 0d d0 70 89 e5 ea 62 1e 54 20
0380 e1 33 e4 90 8e ce 0f 8d a4 50 11 dc 35 84 91 f4
0390 fe 44 14 2b 6a 89 1c 28 ce c4 5e 1e 82 64 e1 72
03a0 16 e2 90 d4 31 35 9d f6 92 cf 4c d2 13 63 66 90
03b0 a3 13 30 11 30 0f 06 03 55 1d 11 04 08 30 06 87
03c0 04 c0 a8 00 87 30 0a 06 08 2a 81 1c cf 55 01 83
03d0 77 03 48 00 30 45 02 21 00 f8 d8 c2 bc 5b 3d 47
03e0 53 c8 b4 fc 3d ac 8f e8 52 74 8e 01 96 3b 37 62
03f0 aa 55 86 e7 ef fd e7 49 d4 02 20 09 06 2d f8 7f
0400 43 4e c3 d8 ef 1d 4d 3d 3d 0a c6 8c 42 09 7a e0
0410 2c f8 c0 53 cc 86 0d 74 73 01 62 02 06 0d 31 39
0420 32 2e 31 36 38 2e 30 2e 31 33 36 04 00 00 00 00
0430 00 00 00 00 00 00 ff ff c0 a8 00 88 01 e9 30 82
0440 01 e5 30 82 01 8b a0 03 02 01 02 02 14 0a 6f 37
0450 64 dd 30 f9 47 80 4c 1e e3 47 28 fa 7f 28 5f b1
0460 49 30 0a 06 08 2a 81 1c cf 55 01 83 77 30 6d 31
0470 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10 30 0e
0480 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31 10
0490 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65 72
04a0 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64 65
04b0 72 6d 69 6e 74 20 74 65 73 74 31 20 30 1e 06 03
04c0 55 04 03 13 17 54 65 6e 64 65 72 6d 69 6e 74 20
04d0 54 65 73 74 20 52 6f 6f 74 20 43 41 30 1e 17 0d
04e0 32 30 30 36 31 32 31 30 30 30 32 32 5a 17 0d 32
04f0 30 30 37 32 34 30 32 30 30 32 32 5a 30 63 31 0b
0500 30 09 06 03 55 04 06 13 02 43 4e 31 10 30 0e 06
0510 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31 10 30
0520 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65 72 31
0530 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64 65 72
0540 6d 69 6e 74 20 74 65 73 74 31 16 30 14 06 03 55
0550 04 03 13 0d 31 39 32 2e 31 36 38 2e 30 2e 31 33
0560 36 30 59 30 13 06 07 2a 86 48 ce 3d 02 01 06 08
0570 2a 81 1c cf 55 01 82 2d 03 42 00 04 10 b8 a6 9e
0580 e4 70 20 ac 2b 11 6f 51 53 0a ae ec 17 e7 c8 74
0590 ac 62 56 66 d3 e1 c8 55 62 dd 91 3b e9 40 7b f8
05a0 22 a4 89 c7 b6 e4 a8 1e 01 a3 17 c8 2c f8 f7 ea
05b0 5e b6 73 67 d9 da 1a b6 e6 bc 00 ab a3 13 30 11
05c0 30 0f 06 03 55 1d 11 04 08 30 06 87 04 c0 a8 00
05d0 88 30 0a 06 08 2a 81 1c cf 55 01 83 77 03 48 00
05e0 30 45 02 20 2d d1 b5 d7 35 9c 6a 31 70 80 0a 74
05f0 74 c2 ec ba ca 2a 87 dd 86 77 3a 29 c7 ac 0c 05
0600 e2 de 9d 8d 02 21 00 f6 18 3c 12 50 f9 d7 27 5c
0610 7a 81 73 a7 f6 06 71 18 17 ae fe 49 a8 30 74 5d
0620 30 54 5c 6d 28 11 47 ;
可选地,本实施例中,步骤303之前还包括:第一节点判断自身是否为孤立节点,当第一节点判断自身不是孤立节点时,执行步骤303;
步骤304:当第一节点接收到目标节点发送的目标节点公钥证书和第二预设列表时,保存目标节点公钥证书,根据第一预设列表和第二预设列表确定共有节点,向共有节点发送验证信息;所述共有节点为与第一节点和目标节点均建立连接的节点;所述第二预设列表用于存储与目标节点建立TCP连接的节点信息;
例如:目标节点公钥证书为:
0000 30 82 01 e6 30 82 01 8b a0 03 02 01 02 02 14 47
0010 7f 31 7f fd 26 72 f9 a3 d1 ac a9 76 76 c4 25 7b
0020 dc 03 52 30 0a 06 08 2a 81 1c cf 55 01 83 77 30
0030 6d 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10
0040 30 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67
0050 31 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74
0060 65 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e
0070 64 65 72 6d 69 6e 74 20 74 65 73 74 31 20 30 1e
0080 06 03 55 04 03 13 17 54 65 6e 64 65 72 6d 69 6e
0090 74 20 54 65 73 74 20 52 6f 6f 74 20 43 41 30 1e
00a0 17 0d 32 30 30 37 30 33 30 37 35 36 33 34 5a 17
00b0 0d 32 30 30 38 31 33 32 33 35 36 33 34 5a 30 63
00c0 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10 30
00d0 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31
00e0 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65
00f0 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64
0100 65 72 6d 69 6e 74 20 74 65 73 74 31 16 30 14 06
0110 03 55 04 03 13 0d 31 39 32 2e 31 36 38 2e 31 37
0120 2e 36 30 30 59 30 13 06 07 2a 86 48 ce 3d 02 01
0130 06 08 2a 81 1c cf 55 01 82 2d 03 42 00 04 a4 85
0140 bc 46 17 5d e1 60 ae 84 8e 28 df 3b f7 9a 04 20
0150 7b fc 2f 3a 4f b4 ea dd 4b ec 2f a9 83 70 0d 88
0160 4d 94 ba 15 d8 d1 c7 7e 92 44 fe 9e 9f 9f 57 3f
0170 f5 e4 9f 1c e5 31 9c 3f 68 95 c7 3a 20 db a3 13
0180 30 11 30 0f 06 03 55 1d 11 04 08 30 06 87 04 c0
0190 a8 11 3c 30 0a 06 08 2a 81 1c cf 55 01 83 77 03
01a0 49 00 30 46 02 21 00 8c 18 ad f6 0a b3 9a 19 d7
01b0 c3 18 d9 c7 ca 3f 1e e2 ab 55 a5 a4 8c 2c a8 0b
01c0 4b 31 a4 0b 53 5c ac 02 21 00 c8 a4 84 89 82 d6
01d0 88 d9 bb 25 6a b6 60 1b 2f 5d eb c7 4e a7 48 fb
01e0 38 3e 1a d7 29 ae 4c 15 45 8e;
第二预设列表为:
0000 00 00 06 24 02 06 0d 31 39 32 2e 31 36 38 2e 30
0010 2e 31 33 35 04 00 00 00 00 00 00 00 00 00 00 ff
0020 ff c0 a8 00 87 01 e9 30 82 01 e5 30 82 01 8b a0
0030 03 02 01 02 02 14 2c e9 de 44 bf b6 8f 4d a3 03
0040 d2 c1 f7 0a 50 f9 ea 97 f9 ae 30 0a 06 08 2a 81
0050 1c cf 55 01 83 77 30 6d 31 0b 30 09 06 03 55 04
0060 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07
0070 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a
0080 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55
0090 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74
00a0 65 73 74 31 20 30 1e 06 03 55 04 03 13 17 54 65
00b0 6e 64 65 72 6d 69 6e 74 20 54 65 73 74 20 52 6f
00c0 6f 74 20 43 41 30 1e 17 0d 32 30 30 36 31 32 31
00d0 30 30 30 32 31 5a 17 0d 32 30 30 37 32 34 30 32
00e0 30 30 32 31 5a 30 63 31 0b 30 09 06 03 55 04 06
00f0 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07 42
0100 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a 13
0110 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55 04
0120 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74 65
0130 73 74 31 16 30 14 06 03 55 04 03 13 0d 31 39 32
0140 2e 31 36 38 2e 30 2e 31 33 35 30 59 30 13 06 07
0150 2a 86 48 ce 3d 02 01 06 08 2a 81 1c cf 55 01 82
0160 2d 03 42 00 04 89 d5 23 9c a6 26 0d d0 70 89 e5
0170 ea 62 1e 54 20 e1 33 e4 90 8e ce 0f 8d a4 50 11
0180 dc 35 84 91 f4 fe 44 14 2b 6a 89 1c 28 ce c4 5e
0190 1e 82 64 e1 72 16 e2 90 d4 31 35 9d f6 92 cf 4c
01a0 d2 13 63 66 90 a3 13 30 11 30 0f 06 03 55 1d 11
01b0 04 08 30 06 87 04 c0 a8 00 87 30 0a 06 08 2a 81
01c0 1c cf 55 01 83 77 03 48 00 30 45 02 21 00 f8 d8
01d0 c2 bc 5b 3d 47 53 c8 b4 fc 3d ac 8f e8 52 74 8e
01e0 01 96 3b 37 62 aa 55 86 e7 ef fd e7 49 d4 02 20
01f0 09 06 2d f8 7f 43 4e c3 d8 ef 1d 4d 3d 3d 0a c6
0200 8c 42 09 7a e0 2c f8 c0 53 cc 86 0d 74 73 01 62
0210 02 06 0d 31 39 32 2e 31 36 38 2e 30 2e 31 33 36
0220 04 00 00 00 00 00 00 00 00 00 00 ff ff c0 a8 00
0230 88 01 e9 30 82 01 e5 30 82 01 8b a0 03 02 01 02
0240 02 14 0a 6f 37 64 dd 30 f9 47 80 4c 1e e3 47 28
0250 fa 7f 28 5f b1 49 30 0a 06 08 2a 81 1c cf 55 01
0260 83 77 30 6d 31 0b 30 09 06 03 55 04 06 13 02 43
0270 4e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a
0280 69 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75
0290 62 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f
02a0 54 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31
02b0 20 30 1e 06 03 55 04 03 13 17 54 65 6e 64 65 72
02c0 6d 69 6e 74 20 54 65 73 74 20 52 6f 6f 74 20 43
02d0 41 30 1e 17 0d 32 30 30 36 31 32 31 30 30 30 32
02e0 32 5a 17 0d 32 30 30 37 32 34 30 32 30 30 32 32
02f0 5a 30 63 31 0b 30 09 06 03 55 04 06 13 02 43 4e
0300 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a 69
0310 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75 62
0320 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f 54
0330 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31 16
0340 30 14 06 03 55 04 03 13 0d 31 39 32 2e 31 36 38
0350 2e 30 2e 31 33 36 30 59 30 13 06 07 2a 86 48 ce
0360 3d 02 01 06 08 2a 81 1c cf 55 01 82 2d 03 42 00
0370 04 10 b8 a6 9e e4 70 20 ac 2b 11 6f 51 53 0a ae
0380 ec 17 e7 c8 74 ac 62 56 66 d3 e1 c8 55 62 dd 91
0390 3b e9 40 7b f8 22 a4 89 c7 b6 e4 a8 1e 01 a3 17
03a0 c8 2c f8 f7 ea 5e b6 73 67 d9 da 1a b6 e6 bc 00
03b0 ab a3 13 30 11 30 0f 06 03 55 1d 11 04 08 30 06
03c0 87 04 c0 a8 00 88 30 0a 06 08 2a 81 1c cf 55 01
03d0 83 77 03 48 00 30 45 02 20 2d d1 b5 d7 35 9c 6a
03e0 31 70 80 0a 74 74 c2 ec ba ca 2a 87 dd 86 77 3a
03f0 29 c7 ac 0c 05 e2 de 9d 8d 02 21 00 f6 18 3c 12
0400 50 f9 d7 27 5c 7a 81 73 a7 f6 06 71 18 17 ae fe
0410 49 a8 30 74 5d 30 54 5c 6d 28 11 47 02 06 0d 31
0420 39 32 2e 31 36 38 2e 30 2e 31 33 37 04 00 00 00
0430 00 00 00 00 00 00 00 ff ff c0 a8 00 89 01 e9 30
0440 82 01 e5 30 82 01 8b a0 03 02 01 02 02 14 15 8e
0450 a9 13 af 55 17 f4 cf b5 6c 99 59 11 9b 0d 97 b1
0460 6c eb 30 0a 06 08 2a 81 1c cf 55 01 83 77 30 6d
0470 31 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10 30
0480 0e 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31
0490 10 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65
04a0 72 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64
04b0 65 72 6d 69 6e 74 20 74 65 73 74 31 20 30 1e 06
04c0 03 55 04 03 13 17 54 65 6e 64 65 72 6d 69 6e 74
04d0 20 54 65 73 74 20 52 6f 6f 74 20 43 41 30 1e 17
04e0 0d 32 30 30 36 31 32 31 30 30 30 32 32 5a 17 0d
04f0 32 30 30 37 32 34 30 32 30 30 32 32 5a 30 63 31
0500 0b 30 09 06 03 55 04 06 13 02 43 4e 31 10 30 0e
0510 06 03 55 04 08 13 07 42 65 69 4a 69 6e 67 31 10
0520 30 0e 06 03 55 04 0a 13 07 4a 75 62 69 74 65 72
0530 31 18 30 16 06 03 55 04 0b 13 0f 54 65 6e 64 65
0540 72 6d 69 6e 74 20 74 65 73 74 31 16 30 14 06 03
0550 55 04 03 13 0d 31 39 32 2e 31 36 38 2e 30 2e 31
0560 33 37 30 59 30 13 06 07 2a 86 48 ce 3d 02 01 06
0570 08 2a 81 1c cf 55 01 82 2d 03 42 00 04 75 91 00
0580 5e 35 85 9d bb 8a d6 9c 6c 0d b6 e4 6d 1f 77 a3
0590 1f 37 82 f3 8b 99 84 fe 5d 13 ea cd 9e 43 ce 88
05a0 52 d5 de d4 57 f7 85 04 d7 a8 93 bc c0 5c 78 bb
05b0 55 2d 2c c0 36 16 50 a9 98 e8 47 46 df a3 13 30
05c0 11 30 0f 06 03 55 1d 11 04 08 30 06 87 04 c0 a8
05d0 00 89 30 0a 06 08 2a 81 1c cf 55 01 83 77 03 48
05e0 00 30 45 02 20 19 86 df 9e 4f 77 26 f9 a8 a7 f3
05f0 bb 32 02 b1 07 a4 55 14 0f f5 a9 5f 2f 63 f7 9d
0600 55 7b d3 f0 87 02 21 00 85 1d b6 da a0 06 ec d8
0610 0c 19 63 50 e2 64 87 5a e9 a9 52 7e be 85 50 13
0620 33 0c 82 b3 20 96 6e 32;
向共有节点发送的验证信息为:
0000 1f 03 03 00 00 04 66 04 03 48 30 46 02 21 00 ea
0010 52 eb fd cc 67 8b ef be 77 56 ee 0b 5b 1c ef cb
0020 db 5a 98 9c e3 64 ab c7 3f ce 80 0d 63 b9 c7 02
0030 21 00 a2 e6 14 0f d1 b1 32 bd a0 0d d3 b2 ee a8
0040 c2 e0 dc 35 ea 07 0b 45 c9 97 a5 2d 40 10 a9 ef
0050 d3 43 00 00 04 17 02 05 0d 31 39 32 2e 31 36 38
0060 2e 30 2e 31 33 34 04 00 00 00 00 00 00 00 00 00
0070 00 ff ff c0 a8 00 86 01 e8 30 82 01 e4 30 82 01
0080 8b a0 03 02 01 02 02 14 55 56 f3 d2 2b 40 8f e8
0090 5f d9 a8 a1 fd 0c 16 f4 84 d4 1e 2b 30 0a 06 08
00a0 2a 81 1c cf 55 01 83 77 30 6d 31 0b 30 09 06 03
00b0 55 04 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08
00c0 13 07 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55
00d0 04 0a 13 07 4a 75 62 69 74 65 72 31 18 30 16 06
00e0 03 55 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74
00f0 20 74 65 73 74 31 20 30 1e 06 03 55 04 03 13 17
0100 54 65 6e 64 65 72 6d 69 6e 74 20 54 65 73 74 20
0110 52 6f 6f 74 20 43 41 30 1e 17 0d 32 30 30 36 31
0120 32 31 30 30 30 32 31 5a 17 0d 32 30 30 37 32 34
0130 30 32 30 30 32 31 5a 30 63 31 0b 30 09 06 03 55
0140 04 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13
0150 07 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04
0160 0a 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03
0170 55 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20
0180 74 65 73 74 31 16 30 14 06 03 55 04 03 13 0d 31
0190 39 32 2e 31 36 38 2e 30 2e 31 33 34 30 59 30 13
01a0 06 07 2a 86 48 ce 3d 02 01 06 08 2a 81 1c cf 55
01b0 01 82 2d 03 42 00 04 dd b3 6f 2e 20 7a 2b 69 27
01c0 c3 20 51 8b e4 fd d7 8c 09 9c 68 49 17 87 b9 ff
01d0 6c eb e6 25 64 0a b0 f1 c3 66 fb 18 96 aa df 33
01e0 b9 e7 b1 61 71 f3 00 94 1b a0 ca 0a 18 80 f4 6b
01f0 2a 3a 4a e2 18 94 60 a3 13 30 11 30 0f 06 03 55
0200 1d 11 04 08 30 06 87 04 c0 a8 00 86 30 0a 06 08
0210 2a 81 1c cf 55 01 83 77 03 47 00 30 44 02 20 61
0220 75 6e 35 cd f8 4c 5c e9 73 f8 f9 af 8d fc a1 7a
0230 d1 5a e4 9b 00 5a a8 9a 8f 1c c6 cf 8d 0c 1d 02
0240 20 36 84 57 00 27 50 2f c5 96 2b 1c 6d 26 93 42
0250 88 e7 54 87 79 f2 37 91 6e 9e b2 ca 30 bb 6b 47
0260 e6 02 06 0d 31 39 32 2e 31 36 38 2e 30 2e 31 33
0270 35 04 00 00 00 00 00 00 00 00 00 00 ff ff c0 a8
0280 00 87 01 e9 30 82 01 e5 30 82 01 8b a0 03 02 01
0290 02 02 14 2c e9 de 44 bf b6 8f 4d a3 03 d2 c1 f7
02a0 0a 50 f9 ea 97 f9 ae 30 0a 06 08 2a 81 1c cf 55
02b0 01 83 77 30 6d 31 0b 30 09 06 03 55 04 06 13 02
02c0 43 4e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69
02d0 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a
02e0 75 62 69 74 65 72 31 18 30 16 06 03 55 04 0b 13
02f0 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74
0300 31 20 30 1e 06 03 55 04 03 13 17 54 65 6e 64 65
0310 72 6d 69 6e 74 20 54 65 73 74 20 52 6f 6f 74 20
0320 43 41 30 1e 17 0d 32 30 30 36 31 32 31 30 30 30
0330 32 31 5a 17 0d 32 30 30 37 32 34 30 32 30 30 32
0340 31 5a 30 63 31 0b 30 09 06 03 55 04 06 13 02 43
0350 4e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a
0360 69 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75
0370 62 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f
0380 54 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31
0390 16 30 14 06 03 55 04 03 13 0d 31 39 32 2e 31 36
03a0 38 2e 30 2e 31 33 35 30 59 30 13 06 07 2a 86 48
03b0 ce 3d 02 01 06 08 2a 81 1c cf 55 01 82 2d 03 42
03c0 00 04 89 d5 23 9c a6 26 0d d0 70 89 e5 ea 62 1e
03d0 54 20 e1 33 e4 90 8e ce 0f 8d a4 50 11 dc 35 84
03e0 91 f4 fe 44 14 2b 6a 89 1c 28 ce c4 5e 1e 82 64
03f0 e1 72 16 e2 90 d4 31 35 9d f6 92 cf 4c d2 13 63
0400 66 90 a3 13 30 11 30 0f 06 03 55 1d 11 04 08 30
0410 06 87 04 c0 a8 00 87 30 0a 06 08 2a 81 1c cf 55
0420 01 83 77 03 48 00 30 45 02 21 00 f8 d8 c2 bc 5b
0430 3d 47 53 c8 b4 fc 3d ac 8f e8 52 74 8e 01 96 3b
0440 37 62 aa 55 86 e7 ef fd e7 49 d4 02 20 09 06 2d
0450 f8 7f 43 4e c3 d8 ef 1d 4d 3d 3d 0a c6 8c 42 09
0460 7a e0 2c f8 c0 53 cc 86 0d 74 73 01 62;
可选地,本实施例中,步骤304之前还包括:第一节点判断预设时间内是否接收到目标节点返回的目标节点公钥证书和第二预设列表,如果是,执行步骤304;
可选地,在第一预设列表中,每一个与第一节点建立连接的节点存在唯一的一个节点信息条目;在第二预设列表中,每一个与目标节点建立连接的节点存在唯一的一个节点信息条目;
可选地,本实施例中,根据第一预设列表和第二预设列表确定共有节点具体为:第一节点将第一预设列表中存储的节点信息条目与第二预设列表中存储的节点信息条目进行逐一匹配,提取第一预设列表和第二预设列表共有的节点信息条目,将所述共有的节点信息条目对应的节点作为共有节点;
可选地,向共有节点发送第一验证信息之前还包括:第一节点判断与目标节点是否存在共有节点;如存在,向共有节点发送第一验证信息,如不存在,结束;
可选地,本实施例中,第一验证信息包括:目标节点公钥证书和目标节点IP地址;向共有节点发送第一验证信息具体为:第一节点将目标节点公钥证书和目标节点IP地址发送给共有节点;
可选地,本实施例中,向共有节点发送第一验证信息具体为:第一节点从共有节点中随机获取几个共有节点,向获取的共有节点发送第一验证信息;
步骤305:当第一节点接收到共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和目标节点公钥证书,根据第一节点公钥证书对应的私钥和目标节点公钥证书生成通讯密钥,向目标节点发送生成通讯密钥完成信息,当接收到目标节点发送生成通讯密钥完成信息时,与目标节点建立通讯连接;
例如:共有节点返回的验证成功响应为:
0000 20 03 03 00 00 04 67 04 03 47 30 45 02 21 00 ec
0010 61 66 ca bb ae f6 0a c1 4e 31 67 ba b9 de 0c b8
0020 e8 8c ea e7 a7 e0 aa 3d 65 da db 3e 8b ac cb 02
0030 20 50 03 1b 84 31 06 48 e7 be 6b 3a 61 19 21 b3
0040 3f b9 93 76 39 4f 2b 75 14 97 0e b8 1a 31 0c 19
0050 ef 00 00 04 19 02 05 0d 31 39 32 2e 31 36 38 2e
0060 30 2e 31 33 34 04 00 00 00 00 00 00 00 00 00 00
0070 ff ff c0 a8 00 86 01 e8 30 82 01 e4 30 82 01 8b
0080 a0 03 02 01 02 02 14 55 56 f3 d2 2b 40 8f e8 5f
0090 d9 a8 a1 fd 0c 16 f4 84 d4 1e 2b 30 0a 06 08 2a
00a0 81 1c cf 55 01 83 77 30 6d 31 0b 30 09 06 03 55
00b0 04 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13
00c0 07 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04
00d0 0a 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03
00e0 55 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20
00f0 74 65 73 74 31 20 30 1e 06 03 55 04 03 13 17 54
0100 65 6e 64 65 72 6d 69 6e 74 20 54 65 73 74 20 52
0110 6f 6f 74 20 43 41 30 1e 17 0d 32 30 30 36 31 32
0120 31 30 30 30 32 31 5a 17 0d 32 30 30 37 32 34 30
0130 32 30 30 32 31 5a 30 63 31 0b 30 09 06 03 55 04
0140 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07
0150 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a
0160 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55
0170 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74
0180 65 73 74 31 16 30 14 06 03 55 04 03 13 0d 31 39
0190 32 2e 31 36 38 2e 30 2e 31 33 34 30 59 30 13 06
01a0 07 2a 86 48 ce 3d 02 01 06 08 2a 81 1c cf 55 01
01b0 82 2d 03 42 00 04 dd b3 6f 2e 20 7a 2b 69 27 c3
01c0 20 51 8b e4 fd d7 8c 09 9c 68 49 17 87 b9 ff 6c
01d0 eb e6 25 64 0a b0 f1 c3 66 fb 18 96 aa df 33 b9
01e0 e7 b1 61 71 f3 00 94 1b a0 ca 0a 18 80 f4 6b 2a
01f0 3a 4a e2 18 94 60 a3 13 30 11 30 0f 06 03 55 1d
0200 11 04 08 30 06 87 04 c0 a8 00 86 30 0a 06 08 2a
0210 81 1c cf 55 01 83 77 03 47 00 30 44 02 20 61 75
0220 6e 35 cd f8 4c 5c e9 73 f8 f9 af 8d fc a1 7a d1
0230 5a e4 9b 00 5a a8 9a 8f 1c c6 cf 8d 0c 1d 02 20
0240 36 84 57 00 27 50 2f c5 96 2b 1c 6d 26 93 42 88
0250 e7 54 87 79 f2 37 91 6e 9e b2 ca 30 bb 6b 47 e6
0260 02 02 06 0d 31 39 32 2e 31 36 38 2e 30 2e 31 33
0270 35 04 00 00 00 00 00 00 00 00 00 00 ff ff c0 a8
0280 00 87 01 e9 30 82 01 e5 30 82 01 8b a0 03 02 01
0290 02 02 14 2c e9 de 44 bf b6 8f 4d a3 03 d2 c1 f7
02a0 0a 50 f9 ea 97 f9 ae 30 0a 06 08 2a 81 1c cf 55
02b0 01 83 77 30 6d 31 0b 30 09 06 03 55 04 06 13 02
02c0 43 4e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69
02d0 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a
02e0 75 62 69 74 65 72 31 18 30 16 06 03 55 04 0b 13
02f0 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74
0300 31 20 30 1e 06 03 55 04 03 13 17 54 65 6e 64 65
0310 72 6d 69 6e 74 20 54 65 73 74 20 52 6f 6f 74 20
0320 43 41 30 1e 17 0d 32 30 30 36 31 32 31 30 30 30
0330 32 31 5a 17 0d 32 30 30 37 32 34 30 32 30 30 32
0340 31 5a 30 63 31 0b 30 09 06 03 55 04 06 13 02 43
0350 4e 31 10 30 0e 06 03 55 04 08 13 07 42 65 69 4a
0360 69 6e 67 31 10 30 0e 06 03 55 04 0a 13 07 4a 75
0370 62 69 74 65 72 31 18 30 16 06 03 55 04 0b 13 0f
0380 54 65 6e 64 65 72 6d 69 6e 74 20 74 65 73 74 31
0390 16 30 14 06 03 55 04 03 13 0d 31 39 32 2e 31 36
03a0 38 2e 30 2e 31 33 35 30 59 30 13 06 07 2a 86 48
03b0 ce 3d 02 01 06 08 2a 81 1c cf 55 01 82 2d 03 42
03c0 00 04 89 d5 23 9c a6 26 0d d0 70 89 e5 ea 62 1e
03d0 54 20 e1 33 e4 90 8e ce 0f 8d a4 50 11 dc 35 84
03e0 91 f4 fe 44 14 2b 6a 89 1c 28 ce c4 5e 1e 82 64
03f0 e1 72 16 e2 90 d4 31 35 9d f6 92 cf 4c d2 13 63
0400 66 90 a3 13 30 11 30 0f 06 03 55 1d 11 04 08 30
0410 06 87 04 c0 a8 00 87 30 0a 06 08 2a 81 1c cf 55
0420 01 83 77 03 48 00 30 45 02 21 00 f8 d8 c2 bc 5b
0430 3d 47 53 c8 b4 fc 3d ac 8f e8 52 74 8e 01 96 3b
0440 37 62 aa 55 86 e7 ef fd e7 49 d4 02 20 09 06 2d
0450 f8 7f 43 4e c3 d8 ef 1d 4d 3d 3d 0a c6 8c 42 09
0460 7a e0 2c f8 c0 53 cc 86 0d 74 73 01 62 01;
第一节点公钥证书对应的私钥为:
0000 65 b5 5f 27 96 8d f1 68 d7 30 65 e0 4e a8 82 6b
0010 1b 94 7a 45 b8 1c e7 96 2d 39 bf 1d 9e 14 64 9f;
根据第一节点公钥证书对应的私钥和目标节点公钥证书生成的通讯密钥为:
0000 04 59 9d 68 f9 f5 bf 9f 15 e8 f9 2b 6a 6f bb d8
0010 68 ff c3 51 34 5f f1 28 7c 5d 70 33 ee ab c7 03
0020 00 64 48 33 a4 5f be e8 14 f3 20 69 b2 09 e9 f7
0030 9c b9 02 b5 25 1f 2e 9f aa 90 9d 1e 1c 33 ba bf
0040 c0;
向目标节点发送的生成通讯密钥完成信息为:
0000 21 03 03 00 01 01;
接收到的目标节点发送生成通讯密钥完成信息为:
0000 21 03 03 00 01 01;
可选地,本实施例中,第一节点确定的共有节点的个数可以为一个或多个,当共有节点的个数为多个时,当第一节点接收到其中一个节点返回的验证成功响应时或接收到全部共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和目标节点公钥证书,根据第一节点公钥证书对应的私钥和目标节点公钥证书生成通讯密钥;
步骤306:第一节点根据接收连接服务接口传入的参数确定源节点,与所述源节点建立TCP连接;
步骤307:当第一节点接收到源节点发送加密通信请求时,解析源节点发送的加密通信请求得到加密通信请求数据,如所述加密通信请求数据为源节点公钥证书和第二预设列表时,保存源节点公钥证书和第二预设列表,获取保存的第一节点公钥证书和第一预设列表,向源节点发送第一节点公钥证书和第一预设列表;
步骤308:第一节点根据第一预设列表和第二预设列表确定共有节点,向共有节点发送第一验证信息;
可选地,本实施例中,步骤308之前还包括:第一节点根据第一预设列表和第二预设列表中存储的节点信息判断第一节点与目标节点是否存在共有节点,如存在,执行步骤308,如不存在,向目标节点返回不存在共有节点响应;
步骤309:当第一节点接收到共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和源节点公钥证书,根据第一节点公钥证书对应的私钥和源节点公钥证书生成通讯密钥,向源节点发送生成通讯密钥完成信息,当接收到源节点发送生成通讯密钥完成信息时,与源节点建立通讯连接;
可选地,本实施例中,步骤309之前还包括:第一节点判断在是否接收到共有节点返回的验证成功响应,如果是,执行步骤309,否则,向目标节点返回验证失败响应;
步骤310:第一节点根据验证连接服务接口传入的参数确定请求节点,校验验证连接服务接口传入的参数,当校验通过时,向请求节点返回验证成功响应。
例如:验证连接服务接口传入的参数为:
0000 00 00 02 0c 02 06 0d 31 39 32 2e 31 36 38 2e 30
0010 2e 31 33 35 04 00 00 00 00 00 00 00 00 00 00 ff
0020 ff c0 a8 00 87 01 e9 30 82 01 e5 30 82 01 8b a0
0030 03 02 01 02 02 14 2c e9 de 44 bf b6 8f 4d a3 03
0040 d2 c1 f7 0a 50 f9 ea 97 f9 ae 30 0a 06 08 2a 81
0050 1c cf 55 01 83 77 30 6d 31 0b 30 09 06 03 55 04
0060 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07
0070 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a
0080 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55
0090 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74
00a0 65 73 74 31 20 30 1e 06 03 55 04 03 13 17 54 65
00b0 6e 64 65 72 6d 69 6e 74 20 54 65 73 74 20 52 6f
00c0 6f 74 20 43 41 30 1e 17 0d 32 30 30 36 31 32 31
00d0 30 30 30 32 31 5a 17 0d 32 30 30 37 32 34 30 32
00e0 30 30 32 31 5a 30 63 31 0b 30 09 06 03 55 04 06
00f0 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07 42
0100 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a 13
0110 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55 04
0120 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74 65
0130 73 74 31 16 30 14 06 03 55 04 03 13 0d 31 39 32
0140 2e 31 36 38 2e 30 2e 31 33 35 30 59 30 13 06 07
0150 2a 86 48 ce 3d 02 01 06 08 2a 81 1c cf 55 01 82
0160 2d 03 42 00 04 89 d5 23 9c a6 26 0d d0 70 89 e5
0170 ea 62 1e 54 20 e1 33 e4 90 8e ce 0f 8d a4 50 11
0180 dc 35 84 91 f4 fe 44 14 2b 6a 89 1c 28 ce c4 5e
0190 1e 82 64 e1 72 16 e2 90 d4 31 35 9d f6 92 cf 4c
01a0 d2 13 63 66 90 a3 13 30 11 30 0f 06 03 55 1d 11
01b0 04 08 30 06 87 04 c0 a8 00 87 30 0a 06 08 2a 81
01c0 1c cf 55 01 83 77 03 48 00 30 45 02 21 00 f8 d8
01d0 c2 bc 5b 3d 47 53 c8 b4 fc 3d ac 8f e8 52 74 8e
01e0 01 96 3b 37 62 aa 55 86 e7 ef fd e7 49 d4 02 20
01f0 09 06 2d f8 7f 43 4e c3 d8 ef 1d 4d 3d 3d 0a c6
0200 8c 42 09 7a e0 2c f8 c0 53 cc 86 0d 74 73 01 62;
向请求节点返回的验证成功响应为:
0000 00 00 02 0c 02 06 0d 31 39 32 2e 31 36 38 2e 30
0010 2e 31 33 35 04 00 00 00 00 00 00 00 00 00 00 ff
0020 ff c0 a8 00 87 01 e9 30 82 01 e5 30 82 01 8b a0
0030 03 02 01 02 02 14 2c e9 de 44 bf b6 8f 4d a3 03
0040 d2 c1 f7 0a 50 f9 ea 97 f9 ae 30 0a 06 08 2a 81
0050 1c cf 55 01 83 77 30 6d 31 0b 30 09 06 03 55 04
0060 06 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07
0070 42 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a
0080 13 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55
0090 04 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74
00a0 65 73 74 31 20 30 1e 06 03 55 04 03 13 17 54 65
00b0 6e 64 65 72 6d 69 6e 74 20 54 65 73 74 20 52 6f
00c0 6f 74 20 43 41 30 1e 17 0d 32 30 30 36 31 32 31
00d0 30 30 30 32 31 5a 17 0d 32 30 30 37 32 34 30 32
00e0 30 30 32 31 5a 30 63 31 0b 30 09 06 03 55 04 06
00f0 13 02 43 4e 31 10 30 0e 06 03 55 04 08 13 07 42
0100 65 69 4a 69 6e 67 31 10 30 0e 06 03 55 04 0a 13
0110 07 4a 75 62 69 74 65 72 31 18 30 16 06 03 55 04
0120 0b 13 0f 54 65 6e 64 65 72 6d 69 6e 74 20 74 65
0130 73 74 31 16 30 14 06 03 55 04 03 13 0d 31 39 32
0140 2e 31 36 38 2e 30 2e 31 33 35 30 59 30 13 06 07
0150 2a 86 48 ce 3d 02 01 06 08 2a 81 1c cf 55 01 82
0160 2d 03 42 00 04 89 d5 23 9c a6 26 0d d0 70 89 e5
0170 ea 62 1e 54 20 e1 33 e4 90 8e ce 0f 8d a4 50 11
0180 dc 35 84 91 f4 fe 44 14 2b 6a 89 1c 28 ce c4 5e
0190 1e 82 64 e1 72 16 e2 90 d4 31 35 9d f6 92 cf 4c
01a0 d2 13 63 66 90 a3 13 30 11 30 0f 06 03 55 1d 11
01b0 04 08 30 06 87 04 c0 a8 00 87 30 0a 06 08 2a 81
01c0 1c cf 55 01 83 77 03 48 00 30 45 02 21 00 f8 d8
01d0 c2 bc 5b 3d 47 53 c8 b4 fc 3d ac 8f e8 52 74 8e
01e0 01 96 3b 37 62 aa 55 86 e7 ef fd e7 49 d4 02 20
01f0 09 06 2d f8 7f 43 4e c3 d8 ef 1d 4d 3d 3d 0a c6
0200 8c 42 09 7a e0 2c f8 c0 53 cc 86 0d 74 73 01 62
0210 01;
可选地,本实施例中,步骤310还包括:当校验未通过时,向请求节点返回验证失败响应;
可选地,本实施例中,验证连接服务接口传入的参数具体为请求节点的公钥证书;所述请求节点公钥证书包括请求节点的IP地址和域名;校验验证连接服务接口传入的参数具体为:第一节点根据保存的CA公钥证书校验请求节点的公钥证书,当校验通过时,从请求节点的公钥证书中获取请求节点的IP地址和/或域名,根据请求节点的IP地址和/或域名判断第一节点是否与请求节点建立过连接,如建立过连接,则校验通过,如未建立过连接,则校验未通过。
本发明提供的一种确保区块链P2P网络节点通信安全性的方法,需要建立P2P通信的节点通过校验彼此的节点信息,确保了建立P2P网络通信中的节点均为可信任的节点,从而确保了数据来源的安全性,同时,生成了用于对后续通信数据进行加密处理的通讯密钥对,确保了通信数据的安全性。
实施例4
本发明实施例4提供了一种确保区块链P2P网络节点通信安全性的设备,如图4所示,该设备包括:第一判断模块11、第一确定模块12、第一生成获取发送模块13、接收获取校验生成模块14、生成发送接收连接模块15、确定接收解析模块16、校验获取生成发送模块17和接收校验生成连接模块18;
第一判断模块11,用于当服务接口被调用时,判断被调用的服务接口的类型;
第一确定模块12,用于当第一判断模块11判断被调用的服务接口为发起连接服务接口时,根据发起连接服务接口传入的参数确定目标节点,与目标节点建立TCP连接;
第一生成获取发送模块13,用于生成第一随机数并保存,获取第一预置信息,向目标节点发送包含第一随机数和第一预置信息加密通信请求;
接收获取校验生成模块14,用于当接收到目标节点发送的获取第一节点公钥证书请求时,校验获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书,当校验通过时,保存获取第一节点公钥证书请求中的第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向目标节点发送第三随机数和第一节点公钥证书;
生成发送接收连接模块15,用于根据第一随机数、第二随机数和第三随机数生成通讯密钥并保存,向目标节点发送生成通讯密钥完成信息,当接收到目标节点发送生成通讯密钥完成信息时,与目标节点建立通讯连接;
确定接收解析模块16,用于当第一判断模块11判断被调用的服务接口为接收连接服务接口时,根据接收连接服务接口传入的参数确定源节点,与源节点建立TCP连接;当第一节点接收到源节点发送加密通信请求时,解析源节点发送的加密通信请求得到加密通信请求数据;
校验获取生成发送模块17,用于当加密通信请求数据为第四随机数和第三预置信息时,校验第三预置信息,当校验通过时,保存第四随机数,生成第五随机数并保存,获取第一节点公钥证书,向源节点发送包含第五随机数、第一节点公钥证书和第一预置信息的获取源节点公钥证书请求;
接收校验生成连接模块18,用于当接收到源节点发送的第六随机数和源节点公钥证书时,校验源节点公钥证书,当校验通过时,根据第四随机数、第五随机数和第六随机数生成通讯密钥并保存,向源节点发送生成通讯密钥完成信息,当接收到源节点发送生成通讯密钥完成信息时,与源节点建立通讯连接。
可选地,该设备还包括:确定校验发送模块;
确定校验发送模块,用于当第一判断模块11判断被调用的服务接口为验证连接服务接口时,根据验证连接服务接口传入的参数确定请求节点,校验验证连接服务接口传入的参数,向请求节点返回验证响应。
可选地,验证连接服务接口传入的参数具体为请求节点的公钥证书;请求节点公钥证书包括请求节点的IP地址和域名;
确定校验发送模块用于当第一判断模块11判断被调用的服务接口为验证连接服务接口时,根据验证连接服务接口传入的参数确定请求节点,具体用于根据保存的CA公钥证书校验请求节点的公钥证书,当校验通过时,从请求节点的公钥证书中获取请求节点的IP地址和/或域名,根据请求节点的IP地址和/或域名判断第一节点是否与请求节点建立过连接,如建立过连接,则校验通过,如未建立过连接,则校验未通过。
可选地,该设备还包括:第二判断模块、获取发送模块、第三判断模块、保存判断模块和接收获取生成模块;
第二判断模块,用于判断自身是否为孤立节点,如果是,触发第一生成获取发送模块13,否则,触发获取发送模块;
获取发送模块,用于获取保存的第一节点公钥证书和第一预设列表,向目标节点发送第一节点公钥证书和第一预设列表;第一预设列表用于存储与第一节点建立TCP连接的节点信息;
第三判断模块,用于判断预设时间内是否接收到目标节点返回的目标节点公钥证书和第二预设列表,如果是,触发保存判断模块,否则,触发第一生成获取发送模块13;
保存判断模块,用于保存目标节点公钥证书,根据第一预设列表和第二预设列表中存储的节点信息判断第一节点与目标节点是否存在共有节点,如存在,向共有节点发送验证信息,触发接收获取生成模块,如不存在,触发第一生成获取发送模块13;
接收获取生成模块,用于当接收到共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和目标节点公钥证书,根据第一节点公钥证书对应的私钥和目标节点公钥证书生成通讯密钥,向目标节点发送生成通讯密钥完成信息,当第一节点接收到目标节点发送的生成通讯密钥完成信息时,与目标节点建立通讯连接。
可选地,第三判断模块还用于当判断预设时间内未接收到目标节点返回的目标节点公钥证书和第二预设列表时,触发第一生成获取发送模块13;
保存判断模块还用于当根据第一预设列表和第二预设列表中存储的节点信息判断第一节点与目标节点不存在共有节点时,触发第一生成获取发送模块13。
可选地,设备还包括:第四判断模块、保存获取发送模块、第二确定模块和获取生成连接模块;
第四判断模块,用于判断加密通信请求数据的类型,如为第四随机数和第三预置信息,触发校验获取生成发送模块17,如为源节点公钥证书和第二预设列表,触发保存获取发送模块;
保存获取发送模块,用于保存源节点公钥证书,获取保存的第一节点公钥证书和第一预设列表,向目标节点发送第一节点公钥证书和第一预设列表;
第二确定模块,用于根据第一预设列表和第二预设列表中存储的节点信息确定第一节点与源节点是否存在共有节点,如确定存在,则向共有节点发送验证信息,触发获取生成连接模块;
获取生成连接模块,用于当接收到共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和源节点公钥证书,根据第一节点公钥证书对应的私钥和源节点公钥证书生成通讯密钥,向源节点发送生成通讯密钥完成信息,当接收到源节点发送生成通讯密钥完成信息时,与源节点建立通讯连接。
可选地,第一预置信息包括:第一节点支持的协议版本信息、加密算法和压缩算法;第二预置信息包括:目标节点支持的协议版本信息、加密算法和压缩算法;
接收获取校验生成模块14包括:第一匹配单元、第一校验单元、获取判断单元和保存获取发送单元;设备还包括:报错模块;
第一匹配单元,用于根据目标节点支持的协议版本信息、加密算法和压缩算法分别与第一节点支持的协议版本信息、加密算法和压缩算法进行匹配,如均匹配成功,触发第一校验单元,如均匹配失败,触发报错模块;
第一校验单元,用于根据CA公钥证书校验目标节点公钥证书,如校验通过,触发获取判断单元,如校验未通过,触发报错模块;
获取判断单元,用于从目标节点公钥证书中获取目标节点的域名和/或IP地址,判断目标节点的域名和/或IP地址是否与发起TCP连接请求时的域名和/或IP地址一致,如一致,校验通过,触发保存获取发送单元,如不一致,触发报错模块;
保存获取发送单元,用于保存第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向目标节点发送第三随机数和第一节点公钥证书;
报错模块,用于向目标节点报错。
可选地,如接收获取校验生成模块14用于生成第三随机数并保存,获取第一节点公钥证书,向目标节点发送第三随机数和第一节点公钥证书,具体用于从目标节点公钥证书中获取目标节点公钥,使用目标节点公钥对第三随机数进行加密得到第三随机数密文数据,向目标节点发送第三随机数密文数据和第一节点公钥证书。
可选地,如接收校验生成连接模块18用于校验源节点公钥证书,具体用于判断源节点公钥证书是否为指定认证机构签发的证书,如果是,校验通过,否则,检验不通过。
可选地,如接收校验生成连接模块18用于校验源节点公钥证书,具体用于判断源节点公钥证书的属性信息是否在预置的证书属性信息列表中,如果是,校验通过,否则,检验不通过。
可选地,如接收校验生成连接模块18用于校验源节点公钥证书,具体用于从源节点公钥证书中获取扩展信息,判断扩展信息是否与预置信息匹配,如匹配,校验通过,如不匹配,检验不通过。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (22)

1.一种确保区块链P2P网络节点通信安全性的方法,其特征在于,包括如下步骤:
步骤100:当第一节点的服务接口被调用时,判断被调用的服务接口的类型,如为发起连接服务接口,执行步骤101,如为接收连接服务接口,执行步骤105;
步骤101:所述第一节点根据发起连接服务接口传入的参数确定目标节点,与所述目标节点建立TCP连接;
步骤102:所述第一节点生成第一随机数并保存,获取第一预置信息,向所述目标节点发送包含所述第一随机数和所述第一预置信息加密通信请求;
步骤103:当所述第一节点接收到所述目标节点发送的获取第一节点公钥证书请求时,校验所述获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书,当校验通过时,保存所述获取第一节点公钥证书请求中的第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向所述目标节点发送所述第三随机数和所述第一节点公钥证书;
步骤104:所述第一节点根据所述第一随机数、所述第二随机数和所述第三随机数生成通讯密钥并保存,向所述目标节点发送生成通讯密钥完成信息,当接收到所述目标节点发送生成通讯密钥完成信息时,与所述目标节点建立通讯连接;
步骤105:所述第一节点根据接收连接服务接口传入的参数确定源节点,与所述源节点建立TCP连接;当所述第一节点接收到所述源节点发送加密通信请求时,解析所述源节点发送的加密通信请求得到加密通信请求数据;
步骤106:当所述加密通信请求数据为第四随机数和第三预置信息时,所述第一节点校验所述第三预置信息,当校验通过时,保存所述第四随机数,生成第五随机数并保存,获取第一节点公钥证书,向所述源节点发送包含所述第五随机数、所述第一节点公钥证书和所述第一预置信息的获取源节点公钥证书请求;
步骤107:当所述第一节点接收到所述源节点发送的第六随机数和源节点公钥证书时,校验所述源节点公钥证书,当校验通过时,根据所述第四随机数、所述第五随机数和所述第六随机数生成通讯密钥并保存,向所述源节点发送生成通讯密钥完成信息,当接收到所述源节点发送生成通讯密钥完成信息时,与所述源节点建立通讯连接。
2.如权利要求1所述的方法,其特征在于,所述步骤100还包括:如所述第一节点判断被调用的服务接口的类型为验证连接服务接口,所述方法还包括:所述第一节点根据所述验证连接服务接口传入的参数确定请求节点,校验所述验证连接服务接口传入的参数,向所述请求节点返回验证响应。
3.如权利要求2所述的方法,其特征在于,所述验证连接服务接口传入的参数具体为请求节点的公钥证书;所述请求节点的公钥证书包括所述请求节点的IP地址和域名;
所述校验所述验证连接服务接口传入的参数具体为:所述第一节点根据保存的CA公钥证书校验所述请求节点的公钥证书,当校验通过时,从所述请求节点的公钥证书中获取所述请求节点的IP地址和/或域名,根据所述请求节点的IP地址和/或域名判断所述第一节点是否与所述请求节点建立过连接,如建立过连接,则校验通过,如未建立过连接,则校验未通过。
4.如权利要求1所述的方法,其特征在于,所述步骤102之前还包括:
步骤M1:所述第一节点判断自身是否为孤立节点,如果是,执行步骤102,否则,执行步骤M2;
步骤M2:所述第一节点获取保存的第一节点公钥证书和第一预设列表,向所述目标节点发送第一节点公钥证书和第一预设列表;所述第一预设列表用于存储与第一节点建立TCP连接的节点信息;
步骤M3:所述第一节点判断预设时间内是否接收到所述目标节点返回的目标节点公钥证书和第二预设列表,如果是,执行步骤M4,否则,执行步骤102;
步骤M4:所述第一节点保存所述目标节点公钥证书,根据所述第一预设列表和所述第二预设列表中存储的节点信息判断所述第一节点与所述目标节点是否存在共有节点,如存在,向所述共有节点发送验证信息,执行步骤M5,如不存在,执行步骤102;
步骤M5:当所述第一节点接收到所述共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和所述目标节点公钥证书,根据所述第一节点公钥证书对应的私钥和所述目标节点公钥证书生成通讯密钥,向所述目标节点发送生成通讯密钥完成信息,当所述第一节点接收到所述目标节点发送的生成通讯密钥完成信息时,与所述目标节点建立通讯连接。
5.如权利要求4所述的方法,其特征在于,所述步骤M3还包括:当所述第一节点判断预设时间内未接收到所述目标节点返回的目标节点公钥证书和第二预设列表时,执行步骤102;
所述步骤M4还包括:当根据所述第一预设列表和所述第二预设列表中存储的节点信息判断所述第一节点与所述目标节点不存在共有节点时,执行步骤102。
6.如权利要求1所述的方法,其特征在于,所述步骤105之后还包括,所述第一节点判断所述加密通信请求数据的类型,如为第四随机数和第三预置信息,执行步骤106,如为源节点公钥证书和第二预设列表,执行步骤N1-步骤N3;
步骤N1:所述第一节点保存所述源节点公钥证书,获取保存的第一节点公钥证书和第一预设列表,向所述目标节点发送第一节点公钥证书和第一预设列表;
步骤N2:所述第一节点根据所述第一预设列表和所述第二预设列表中存储的节点信息确定所述第一节点与所述源节点是否存在共有节点,如确定存在,则向所述共有节点发送验证信息,执行步骤N3;
步骤N3:当所述第一节点接收到所述共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和所述源节点公钥证书,根据所述第一节点公钥证书对应的私钥和所述源节点公钥证书生成通讯密钥,向所述源节点发送生成通讯密钥完成信息,当接收到所述源节点发送生成通讯密钥完成信息时,与所述源节点建立通讯连接。
7.如权利要求1所述的方法,其特征在于,所述第一预置信息包括:所述第一节点支持的协议版本信息、加密算法和压缩算法;所述第二预置信息包括:所述目标节点支持的协议版本信息、加密算法和压缩算法;
所述步骤103中,所述校验所述获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书包括:
步骤D1:所述第一节点根据所述目标节点支持的协议版本信息、加密算法和压缩算法分别与所述第一节点支持的协议版本信息、加密算法和压缩算法进行匹配,如均匹配成功,执行步骤D2,如均匹配失败,向所述目标节点报错;
步骤D2:所述第一节点根据CA公钥证书校验所述目标节点公钥证书,如校验通过,执行步骤D3,如校验未通过,向所述目标节点报错;
步骤D3:所述第一节点从所述目标节点公钥证书中获取所述目标节点的域名和/或IP地址,判断所述目标节点的域名和/或IP地址是否与发起TCP连接请求时的域名和/或IP地址一致,如一致,校验通过,如不一致,校验未通过。
8.如权利要求1所述的方法,其特征在于,所述向所述目标节点发送所述第三随机数和所述第一节点公钥证书具体为:所述第一节点从所述目标节点公钥证书中获取目标节点公钥,使用所述目标节点公钥对所述第三随机数进行加密得到第三随机数密文数据,向所述目标节点发送所述第三随机数密文数据和所述第一节点公钥证书。
9.如权利要求1所述的方法,其特征在于,所述步骤107中,所述校验所述源节点公钥证书具体为:所述第一节点判断所述源节点公钥证书是否为指定认证机构签发的证书,如果是,校验通过,否则,检验不通过。
10.如权利要求1所述的方法,其特征在于,所述步骤107中,所述校验所述源节点公钥证书具体为:所述第一节点判断所述源节点公钥证书的属性信息是否在预置的证书属性信息列表中,如果是,校验通过,否则,检验不通过。
11.如权利要求1所述的方法,其特征在于,所述步骤107中,所述校验所述源节点公钥证书具体为:所述第一节点从所述源节点公钥证书中获取扩展信息,判断所述扩展信息是否与预置信息匹配,如匹配,校验通过,如不匹配,检验不通过。
12.一种确保区块链P2P网络节点通信安全性的设备,其特征在于,包括:第一判断模块、第一确定模块、第一生成获取发送模块、接收获取校验生成模块、生成发送接收连接模块、确定接收解析模块、校验获取生成发送模块和接收校验生成连接模块;
所述第一判断模块,用于当服务接口被调用时,判断被调用的服务接口的类型;
所述第一确定模块,用于当所述第一判断模块判断被调用的服务接口为发起连接服务接口时,根据发起连接服务接口传入的参数确定目标节点,与所述目标节点建立TCP连接;
所述第一生成获取发送模块,用于生成第一随机数并保存,获取第一预置信息,向所述目标节点发送包含所述第一随机数和所述第一预置信息加密通信请求;
所述接收获取校验生成模块,用于当接收到所述目标节点发送的获取第一节点公钥证书请求时,校验所述获取第一节点公钥证书请求中的第二预置信息和目标节点公钥证书,当校验通过时,保存所述获取第一节点公钥证书请求中的第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向所述目标节点发送所述第三随机数和所述第一节点公钥证书;
所述生成发送接收连接模块,用于根据所述第一随机数、所述第二随机数和所述第三随机数生成通讯密钥并保存,向所述目标节点发送生成通讯密钥完成信息,当接收到所述目标节点发送生成通讯密钥完成信息时,与所述目标节点建立通讯连接;
所述确定接收解析模块,用于当所述第一判断模块判断被调用的服务接口为接收连接服务接口时,根据所述接收连接服务接口传入的参数确定源节点,与所述源节点建立TCP连接;当所述第一节点接收到所述源节点发送加密通信请求时,解析所述源节点发送的加密通信请求得到加密通信请求数据;
所述校验获取生成发送模块,用于当所述加密通信请求数据为第四随机数和第三预置信息时,校验所述第三预置信息,当校验通过时,保存所述第四随机数,生成第五随机数并保存,获取第一节点公钥证书,向所述源节点发送包含所述第五随机数、所述第一节点公钥证书和所述第一预置信息的获取源节点公钥证书请求;
所述接收校验生成连接模块,用于当接收到所述源节点发送的第六随机数和源节点公钥证书时,校验所述源节点公钥证书,当校验通过时,根据所述第四随机数、所述第五随机数和所述第六随机数生成通讯密钥并保存,向所述源节点发送生成通讯密钥完成信息,当接收到所述源节点发送生成通讯密钥完成信息时,与所述源节点建立通讯连接。
13.如权利要求12所述的设备,其特征在于,所述设备还包括:确定校验发送模块;
所述确定校验发送模块,用于当所述第一判断模块判断被调用的服务接口为验证连接服务接口时,根据所述验证连接服务接口传入的参数确定请求节点,校验所述验证连接服务接口传入的参数,向所述请求节点返回验证响应。
14.如权利要求13所述的设备,其特征在于,所述验证连接服务接口传入的参数具体为请求节点的公钥证书;所述请求节点公钥证书包括所述请求节点的IP地址和域名;
所述确定校验发送模块用于当所述第一判断模块判断被调用的服务接口为验证连接服务接口时,根据所述验证连接服务接口传入的参数确定请求节点,具体用于根据保存的CA公钥证书校验所述请求节点的公钥证书,当校验通过时,从所述请求节点的公钥证书中获取所述请求节点的IP地址和/或域名,根据所述请求节点的IP地址和/或域名判断所述第一节点是否与所述请求节点建立过连接,如建立过连接,则校验通过,如未建立过连接,则校验未通过。
15.如权利要求12所述的设备,其特征在于,所述设备还包括:第二判断模块、获取发送模块、第三判断模块、保存判断模块和接收获取生成模块;
所述第二判断模块,用于判断自身是否为孤立节点,如果是,触发所述第一生成获取发送模块,否则,触发所述获取发送模块;
所述获取发送模块,用于获取保存的第一节点公钥证书和第一预设列表,向所述目标节点发送第一节点公钥证书和第一预设列表;所述第一预设列表用于存储与第一节点建立TCP连接的节点信息;
所述第三判断模块,用于判断预设时间内是否接收到所述目标节点返回的目标节点公钥证书和第二预设列表,如果是,触发所述保存判断模块,否则,触发所述第一生成获取发送模块;
所述保存判断模块,用于保存所述目标节点公钥证书,根据所述第一预设列表和所述第二预设列表中存储的节点信息判断所述第一节点与所述目标节点是否存在共有节点,如存在,向所述共有节点发送验证信息,触发所述接收获取生成模块,如不存在,触发所述第一生成获取发送模块;
所述接收获取生成模块,用于当接收到所述共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和所述目标节点公钥证书,根据所述第一节点公钥证书对应的私钥和所述目标节点公钥证书生成通讯密钥,向所述目标节点发送生成通讯密钥完成信息,当所述第一节点接收到所述目标节点发送的生成通讯密钥完成信息时,与所述目标节点建立通讯连接。
16.如权利要求15所述的设备,其特征在于,所述第三判断模块还用于当判断预设时间内未接收到所述目标节点返回的目标节点公钥证书和第二预设列表时,触发所述第一生成获取发送模块;
所述保存判断模块还用于当根据所述第一预设列表和所述第二预设列表中存储的节点信息判断所述第一节点与所述目标节点不存在共有节点时,触发所述第一生成获取发送模块。
17.如权利要求12所述的设备,其特征在于,所述设备还包括:第四判断模块、保存获取发送模块、第二确定模块和获取生成连接模块;
所述第四判断模块,用于判断所述加密通信请求数据的类型,如为第四随机数和第三预置信息,触发所述校验获取生成发送模块,如为源节点公钥证书和第二预设列表,触发所述保存获取发送模块;
所述保存获取发送模块,用于保存所述源节点公钥证书,获取保存的第一节点公钥证书和第一预设列表,向所述目标节点发送第一节点公钥证书和第一预设列表;
所述第二确定模块,用于根据所述第一预设列表和所述第二预设列表中存储的节点信息确定所述第一节点与所述源节点是否存在共有节点,如确定存在,则向所述共有节点发送验证信息,触发所述获取生成连接模块;
所述获取生成连接模块,用于当接收到所述共有节点返回的验证成功响应时,获取保存的第一节点公钥证书对应的私钥和所述源节点公钥证书,根据所述第一节点公钥证书对应的私钥和所述源节点公钥证书生成通讯密钥,向所述源节点发送生成通讯密钥完成信息,当接收到所述源节点发送生成通讯密钥完成信息时,与所述源节点建立通讯连接。
18.如权利要求12所述的设备,其特征在于,所述第一预置信息包括:所述第一节点支持的协议版本信息、加密算法和压缩算法;所述第二预置信息包括:所述目标节点支持的协议版本信息、加密算法和压缩算法;
所述接收获取校验生成模块包括:第一匹配单元、第一校验单元、获取判断单元和保存获取发送单元;所述设备还包括:报错模块;
所述第一匹配单元,用于根据所述目标节点支持的协议版本信息、加密算法和压缩算法分别与所述第一节点支持的协议版本信息、加密算法和压缩算法进行匹配,如均匹配成功,触发所述第一校验单元,如均匹配失败,触发所述报错模块;
所述第一校验单元,用于根据CA公钥证书校验所述目标节点公钥证书,如校验通过,触发所述获取判断单元,如校验未通过,触发所述报错模块;
所述获取判断单元,用于从所述目标节点公钥证书中获取所述目标节点的域名和/或IP地址,判断所述目标节点的域名和/或IP地址是否与发起TCP连接请求时的域名和/或IP地址一致,如一致,校验通过,触发所述保存获取发送单元,如不一致,触发所述报错模块;
所述保存获取发送单元,用于保存所述第二随机数,生成第三随机数并保存,获取第一节点公钥证书,向所述目标节点发送所述第三随机数和所述第一节点公钥证书;
所述报错模块,用于向所述目标节点报错。
19.如权利要求12所述的设备,其特征在于,如所述接收获取校验生成模块用于生成第三随机数并保存,获取第一节点公钥证书,向所述目标节点发送所述第三随机数和所述第一节点公钥证书,具体用于从所述目标节点公钥证书中获取目标节点公钥,使用所述目标节点公钥对所述第三随机数进行加密得到第三随机数密文数据,向所述目标节点发送所述第三随机数密文数据和所述第一节点公钥证书。
20.如权利要求12所述的设备,其特征在于,如所述接收校验生成连接模块用于校验所述源节点公钥证书,具体用于判断所述源节点公钥证书是否为指定认证机构签发的证书,如果是,校验通过,否则,检验不通过。
21.如权利要求12所述的设备,其特征在于,如所述接收校验生成连接模块用于校验所述源节点公钥证书,具体用于判断所述源节点公钥证书的属性信息是否在预置的证书属性信息列表中,如果是,校验通过,否则,检验不通过。
22.如权利要求12所述的设备,其特征在于,如所述接收校验生成连接模块用于校验所述源节点公钥证书,具体用于从所述源节点公钥证书中获取扩展信息,判断所述扩展信息是否与预置信息匹配,如匹配,校验通过,如不匹配,检验不通过。
CN202010840494.XA 2020-08-20 2020-08-20 一种确保区块链p2p网络节点通信安全性的方法和设备 Active CN111711646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010840494.XA CN111711646B (zh) 2020-08-20 2020-08-20 一种确保区块链p2p网络节点通信安全性的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010840494.XA CN111711646B (zh) 2020-08-20 2020-08-20 一种确保区块链p2p网络节点通信安全性的方法和设备

Publications (2)

Publication Number Publication Date
CN111711646A true CN111711646A (zh) 2020-09-25
CN111711646B CN111711646B (zh) 2020-11-24

Family

ID=72547184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010840494.XA Active CN111711646B (zh) 2020-08-20 2020-08-20 一种确保区块链p2p网络节点通信安全性的方法和设备

Country Status (1)

Country Link
CN (1) CN111711646B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117176347A (zh) * 2023-11-02 2023-12-05 深圳市亲邻科技有限公司 一种移动应用证书验证方法与系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108235806A (zh) * 2017-12-28 2018-06-29 深圳达闼科技控股有限公司 安全访问区块链的方法、装置、系统、存储介质及电子设备
CN108765058A (zh) * 2018-04-28 2018-11-06 中国科学院信息工程研究所 一种基于区块链的制造环节多实体安全协同方法
CN109996229A (zh) * 2019-02-28 2019-07-09 深圳前海达闼云端智能科技有限公司 基于dht网络的数据传输方法、装置、电子设备和存储介质
CN110213047A (zh) * 2019-05-30 2019-09-06 全链通有限公司 会话密钥的传输方法、设备及计算机可读存储介质
US10581805B2 (en) * 2018-06-08 2020-03-03 Gcp Ip Holdings I, Llc Blockchain overwatch
CN111526015A (zh) * 2020-04-26 2020-08-11 昆明大棒客科技有限公司 数据采集上链方法、装置、设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108235806A (zh) * 2017-12-28 2018-06-29 深圳达闼科技控股有限公司 安全访问区块链的方法、装置、系统、存储介质及电子设备
CN108765058A (zh) * 2018-04-28 2018-11-06 中国科学院信息工程研究所 一种基于区块链的制造环节多实体安全协同方法
US10581805B2 (en) * 2018-06-08 2020-03-03 Gcp Ip Holdings I, Llc Blockchain overwatch
CN109996229A (zh) * 2019-02-28 2019-07-09 深圳前海达闼云端智能科技有限公司 基于dht网络的数据传输方法、装置、电子设备和存储介质
CN110213047A (zh) * 2019-05-30 2019-09-06 全链通有限公司 会话密钥的传输方法、设备及计算机可读存储介质
CN111526015A (zh) * 2020-04-26 2020-08-11 昆明大棒客科技有限公司 数据采集上链方法、装置、设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117176347A (zh) * 2023-11-02 2023-12-05 深圳市亲邻科技有限公司 一种移动应用证书验证方法与系统
CN117176347B (zh) * 2023-11-02 2024-02-06 深圳市亲邻科技有限公司 一种移动应用证书验证方法与系统

Also Published As

Publication number Publication date
CN111711646B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
US8635445B2 (en) Method for digital identity authentication
CN105917689B (zh) 以信息为中心的网络中的安全的点对点组
US8001381B2 (en) Method and system for mutual authentication of nodes in a wireless communication network
CN104145465B (zh) 机器类型通信中基于群组的自举的方法和装置
CN108599925B (zh) 一种基于量子通信网络的改进型aka身份认证系统和方法
US8572387B2 (en) Authentication of a peer in a peer-to-peer network
CN103763356A (zh) 一种安全套接层连接的建立方法、装置及系统
US20120072717A1 (en) Dynamic identity authentication system
WO2019178942A1 (zh) 一种进行ssl握手的方法和系统
US20100235625A1 (en) Techniques and architectures for preventing sybil attacks
US10637651B2 (en) Secure systems and methods for resolving audio device identity using remote application
US20080144835A1 (en) Modeling a sensor network design to secure a network against attack
US20160373260A1 (en) Public Key Based Network
US11943213B2 (en) Device and method for mediating configuration of authentication information
CN111866881A (zh) 无线局域网认证方法与无线局域网连接方法
JP2008277956A (ja) 暗号通信処理方法及び暗号通信処理装置
CN109962781A (zh) 一种数字证书分发装置
CN111711646B (zh) 一种确保区块链p2p网络节点通信安全性的方法和设备
CN109995723B (zh) 一种域名解析系统dns信息交互的方法、装置及系统
JP2007259386A (ja) 通信システム及び通信装置
US20150188918A1 (en) Method and system of authenticating a network device in a location based verification framework
CN114501473B (zh) Mesh网络的配网方法、电子设备及计算机可读存储介质
JP2017135599A (ja) 無線基地局装置、無線通信システム、及び、無線基地局装置の制御方法
CN117395652B (zh) 无线网络两端通信的双向身份认证方法及系统
EP1722503A1 (en) Method used by an access point of a wireless LAN and related apparatus

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