CN112367165A - 串口通信方法、装置、电子设备和计算机可读介质 - Google Patents
串口通信方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN112367165A CN112367165A CN202011120573.XA CN202011120573A CN112367165A CN 112367165 A CN112367165 A CN 112367165A CN 202011120573 A CN202011120573 A CN 202011120573A CN 112367165 A CN112367165 A CN 112367165A
- Authority
- CN
- China
- Prior art keywords
- public key
- key
- fingerprint information
- encrypted
- serial port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000005540 biological transmission Effects 0.000 claims abstract description 26
- 238000012795 verification Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 230000002452 interceptive effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 101100277598 Sorghum bicolor DES3 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本申请提出了一种串口通信方法、装置和电子设备,属于信息技术领域,该方法包括:利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备;基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证;若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。本申请能够有效保障串口通信双方传输数据的高效性。
Description
技术领域
本申请属于通信设备的技术领域,具体涉及串口通信方法、装置、电子设备和计算机可读介质。
背景技术
现有串口通信存在传输速率低、抗干扰能力差、数据通信不安全等问题;而有的虽然采用安全机制,但都是一些简单的加密方法,容易被发现和破解。
在现有技术中,可以通过串口通信转网络通信实现身份的验证和数据的加密,由于涉及协议转换,增加了时延,系统响应慢,用户体验不好。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供串口通信方法、装置、电子设备和计算机可读介质,能够有效保障串口通信双方传输数据的高效性。
为实现以上目的,本申请采用如下技术方案:
第一方面,本申请提供一种串口通信方法,包括:利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备;基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证;若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。
进一步地,利用非对称密钥算法生成设备认证数据包括:通过所述非对称密钥算法生成根密钥对,其中,所述根密钥对包括:根公钥和根私钥;通过所述非对称密钥算法生成所述第一设备的密钥对和所述第二设备的密钥对;其中,所述第一设备的密钥对包括:第一设备的公钥和私钥,所述第二设备的密钥对包括:第二设备的公钥和私钥;通过哈希算法获取所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息;通过所述根密钥对中的根私钥对所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息进行加密,分别得到所述第一设备的加密后的公钥指纹信息和所述第二设备的加密后的公钥指纹信息。
进一步地,基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证包括:获取所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息;利用根公钥对所述第二设备的加密后的公钥指纹信息进行解密操作,得到第一公钥指纹信息;通过哈希算法获取所述第二设备的公钥的指纹信息,得到第二公钥指纹信息;若所述第一公钥指纹信和所述第二公钥指纹信息相同,则对所述第一设备和所述第二设备进行身份验证成功。
进一步地,获取所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息包括:向所述第二设备发送第一数据请求;获取所述第二设备根据所述第一数据请求反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息。
进一步地,所述方法还包括:若所述第一设备在向所述第二设备发送所述第一数据请求的预设时间段内,未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则重新向所述第二设备发送所述第一数据请求。
进一步地,所述方法还包括:若所述第一设备连续多次向所述第二设备发送所述第一数据请求,且未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则关闭所述第一设备的通信串口。
进一步地,通过对称密钥算法在所述第一设备和所述第二设备之间进行数据传输包括:通过对称密钥算法生成公共密钥,并通过所述第二设备的公钥对所述公共密钥进行加密,得到加密的公共密钥;向所述第二设备发送所述加密的公共密钥,并获取所述第二设备基于所述加密的公共密钥反馈的加密应用数据;通过所述公共密钥对所述加密应用数据进行解密,得到目标应用数据;其中,所述第二设备在获取到所述加密的公共密钥之后,通过所述第二设备的私钥对所述加密的公共密钥进行解密,得到公共密钥,并通过所述公共密钥对目标应用数据进行加密,得到所述加密应用数据。
进一步地,所述方法还包括:在向所述第二设备发送第一数据请求的同时,获取所述第二设备发送的第二数据请求,并向所述第二设备反馈所述第一设备发送所述第一设备的公钥和所述第一设备加密后的公钥指纹信息的请求;或者,在对所述第一设备和所述第二设备进行身份验证成功之后,向所述第二设备反馈所述第一设备发送所述第一设备的公钥和所述第一设备加密后的公钥指纹信息的请求。
第二方面,本申请提供一种串口通信装置,包括:获取单元,用于利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备;验证单元,用于基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证;传输单元,用于若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。
第三方面,本申请提供一种电子设备,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面任一项所述的方法。
第四方面,本申请提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行如第一方面任一项所述的方法。
本申请提供的上述串口通信方法、装置、电子设备和计算机可读介质,首先,利用非对称密钥算法生成设备认证数据,然后,基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证,若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。在本申请中,采用非对称加密技术,验证串口通信双方的身份,可根据系统性能自定义密钥长度;采用对称加密技术,减少了处理时延,提高了系统响应速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种串口通信方法的流程图;
图2是根据一示例性实施例示出的一种设备认证数据的生成方法的流程图;
图3是根据一示例性实施例示出的一种全双工模式下第一设备和第二设备之间的流程交互图;
图4是根据一示例性实施例示出的一种半双工模式下第一设备和第二设备之间的流程交互图;
图5是根据一示例性实施例示出的一种串口通信装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
考虑到现有串口通信存在传输速率低、抗干扰能力差、数据通信不安全等问题,本申请提供了一种串口通信方法、装置和电子设备,能够有效保障串口通信双方传输数据的高效性,为便于理解,以下对本申请进行详细介绍。
首先参见图1所示的一种串口通信方法的流程图,主要包括如下步骤S102至步骤S106:
步骤S102,利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备。
在本申请中,设备认证数据中根密钥对包括根公钥root.pub.key和根私钥root.priv.key;第一设备密钥对包括公钥和私钥,第二设备密钥对包括公钥和私钥。若第一设备记为A设备,第二设备记为B设备,那么第一设备密钥对包括公钥和私钥分别可以表示为:A.pub.key和A.priv.key,第二设备密钥对包括公钥和私钥分别可以表示为:B.pub.key和B.priv.key。第一设备的公钥指纹信息可以表示为:A.pub.fingerprint,第二设备的公钥指纹信息可以表示为:B.pub.fingerprint。第一设备加密的公钥指纹信息可以表示为:A.pub.sign,第二设备加密的公钥指纹信息可以表示为:B.pub.sign。
步骤S104,基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证。
具体地,在本申请中,在生成设备认证数据之后,就可以对第一设备和第二设备进行身份验证的目的是为了验证串口通信双方的身份是否可信任。
步骤S106,若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。
在本申请中,通过对称加密算法进行数据传输可以实现串口通信双方传输数据的安全性和高效性。
需要说明的是,非对称密钥算法使用RSA或ECC,对称密钥算法使用AES、DES或DES3,本申请对此不作具体限定。
进一步需要说明的是,在本申请中,第一设备和第二设备可以为支持串口通信的设备,包括全双工和半双工串口通信设备。例如:嵌入式智能硬件设备与PC,嵌入式智能硬件设备A与嵌入式智能硬件设备B。
本申请提供的上述串口通信方法、装置和电子设备,首先,利用非对称密钥算法生成设备认证数据,然后,基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证,若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。在本申请中,采用非对称加密技术,验证串口通信双方的身份,可根据系统性能自定义密钥长度;采用对称加密技术,减少了处理时延,提高了系统响应速度。
通过上述描述可知,在本申请中,首先需要生成第一设备和第二设备所需的设备认证数据,如图2所示,步骤S102,利用非对称密钥算法生成设备认证数据包括如下过程:
步骤S201,通过所述非对称密钥算法生成根密钥对,其中,所述根密钥对包括:根公钥和根私钥。
具体地,在本申请中,可以使用非对称密钥算法生成根密钥对,其中,根密钥对包括:根公钥(root.pub.key)和根私钥(root.priv.key)。
步骤S202,通过所述非对称密钥算法生成所述第一设备的密钥对和所述第二设备的密钥对;其中,所述第一设备的密钥对包括:第一设备的公钥和私钥,所述第二设备的密钥对包括:第二设备的公钥和私钥。
具体地,在本申请中,可以使用非对称密钥算法生成设备A(即,第一设备)和设备B(即,第二设备)的密钥对,第一设备的密钥对包括:A公钥(A.pub.key)、A私钥(A.priv.key)、第二设备的密钥对包括:B公钥(B.pub.key)和B私钥(B.priv.key)。
步骤S203,通过哈希算法获取所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息。
具体地,在本申请中,可以使用哈希算法获取A公钥(A.pub.key)和B公钥(B.pub.key)的指纹信息,得到A公钥指纹(A.pub.fingerprint)(也即,第一设备的公钥指纹信息)和B公钥指纹(B.pub.fingerprint)(也即,第二设备的公钥指纹信息)。
步骤S204,通过所述根密钥对中的根私钥对所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息进行加密,分别得到所述第一设备的加密后的公钥指纹信息和所述第二设备的加密后的公钥指纹信息。
具体地,在本申请中,可以使用根私钥(root.priv.key)加密A公钥指纹(A.pub.fingerprint)和B公钥指纹(B.pub.fingerprint),得到加密的A公钥指纹(A.pub.sign)(即,第一设备的加密后的公钥指纹信息)和加密的B公钥指纹(B.pub.sign)(即,第二设备的加密后的公钥指纹信息)。
在利用非对称密钥算法生成设备认证数据之后,就可以基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证,具体验证过程可以描述为以下过程。其中,在本申请实施例中,以第一设备为设备A,第二设备为设备B为例来进行介绍:
(1)、获取所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息;
具体地,在本申请中,设备A首先加载根公钥(root.pub.key)、A公钥(A.pub.key)、A私钥(A.priv.key)和加密的A公钥指纹(A.pub.sign),生成随机数(100)。同时,设备B可以加载根公钥(root.pub.key)、B公钥(B.pub.key)、B私钥(B.priv.key)和加密的B公钥指纹(B.pub.sign),生成随机数(200)。
接下来,设备A向设备B发送第一数据请求;第一数据请求表示设备A请求获取设备B的公钥(B.pub.key)和加密的公钥指纹(B.pub.sign),此时,设备A向设备B发送序列号seq=100。
需要说明的是,在全双工模式下,设备B还可以同时请求获取设备A的公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),并发送序列号seq=200。在半双工模式下,设备B还可以在设备A验证结束之后,请求获取设备A的公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),并发送序列号seq=200。
设备A在向设备B发送第一数据请求之后,设备B就可以向设备A发送公钥(B.pub.key)和加密的公钥指纹(B.pub.sign),并发送序列号seq=101。序列号在请求序列号seq=100基础上加一,用于确认请求已答复。此时,设备A就可以获取设备B根据第一数据请求反馈的设备B的公钥(B.pub.key)和设备B的加密后的公钥指纹信息(B.pub.sign)。
需要说明的是,在本申请中,设备A未收到设备B的答复,根据超时重传机制进行重发请求获取设备B的相关数据。
具体地,在本申请中,若所述第一设备在向所述第二设备发送所述第一数据请求的预设时间段内,未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则重新向所述第二设备发送所述第一数据请求。其中,上述预设时间段可以理解为超时时长,下一次时长为前一次时长的平方。
若所述第一设备连续多次向所述第二设备发送所述第一数据请求,且未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则关闭所述第一设备的通信串口。
例如,在本申请中,若设备A连续3次未获取到设备B反馈的数据,则关闭串口,结束流程。
也就是说,在本申请中,设置了一种超时重传机制:默认超时时长为50ms,下一次时长为前一次的时长的平方,超过3次后,关闭串口,结束交互流程。通过该超时重传机制来实现相关数据的获取。在本申请中,通过确认应答机制和超时重传机制,能够实现串口通信的可靠传输。
需要说明的是,在全双工模式下,设备A可同时向设备B发送公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),发送序列号seq=201。序列号在请求序列号seq=200基础上加一,用于确认请求已答复。若设备B未收到设备A的答复,根据超时重传机制进行重发请求获取设备A的相关数据。在半双工模式下,还可以在设备A验证结束之后,设备A可同时向设备B发送公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),发送序列号seq=201。
(2)、利用根公钥对所述第二设备的加密后的公钥指纹信息进行解密操作,得到第一公钥指纹信息。
(3)、通过哈希算法获取所述第二设备的公钥的指纹信息,得到第二公钥指纹信息;
(4)、若所述第一公钥指纹信和所述第二公钥指纹信息相同,则对所述第一设备和所述第二设备进行身份验证成功。
具体地,在本申请中,设备A可以使用根公钥(root.pub.key)解密设备B的加密的公钥指纹(B.pub.sign)得到B.pub.fingerprint,并使用相同的哈希算法获取B.pub.key的指纹信息得到B1.pub.fingerprint,比较B.pub.fingerprint和B1.pub.fingerprint是否相同。若不同则关闭串口,结束交互流程。若相同,则身份验证成功。
需要说明的是,在全双工模式下,设备B可同时使用根公钥(root.pub.key)解密设备A的加密的公钥指纹(A.pub.sign)得到A.pub.fingerprint,使用相同的哈希算法获取A.pub.key的指纹信息得到A1.pub.fingerprint,比较A.pub.fingerprint和A1.pub.fingerprint是否相同。若不同则关闭串口,结束交互流程。若相同,则身份验证成功。
在本申请的一个可选实施方式中,通过对称密钥算法在所述第一设备和所述第二设备之间进行数据传输包括如下步骤:
(1)、通过对称密钥算法生成公共密钥,并通过所述第二设备的公钥对所述公共密钥进行加密,得到加密的公共密钥;
(2)、向所述第二设备发送所述加密的公共密钥,并获取所述第二设备基于所述加密的公共密钥反馈的加密应用数据;
(3)、通过所述公共密钥对所述加密应用数据进行解密,得到目标应用数据;
其中,所述第二设备在获取到所述加密的公共密钥之后,通过所述第二设备的私钥对所述加密的公共密钥进行解密,得到公共密钥,并通过所述公共密钥对目标应用数据进行加密,得到所述加密应用数据。
设备A生成公共密钥(general.key),使用B.pub.key加密得到general.sign加密的公共密钥。设备A发送general.sign,发送序列号seq=101,同理超时重传机制。设备B使用B.priv.key解密genera.sign加密的公共密钥得到general.key公共密钥,并向设备A答复ok,seq=102,序列号在上一步seq=101的基础上加一,用于确认请求已答复。设备B使用公共密钥general.key加密应用数据(appdata)得到appdata.sign。设备B发送appdata.sign,seq=201,同理超时重传机制。设备A使用公共密钥(general.key)解密应用数据(appdata.sign)得到appdata。并向设备B答复ok,seq=202,序列号在上一步seq=201的基础上加一,用于确认请求已答复。
参见图3所示的全双工模式下一种串口通信方法的流程图。如图3所示,该方法的交互流程描述如下:
1、设备A加载根公钥(root.pub.key)、A公钥(A.pub.key)、A私钥(A.priv.key)和加密的A公钥指纹(A.pub.sign),生成随机数(100)。
2、设备B加载根公钥(root.pub.key)、B公钥(B.pub.key)、B私钥(B.priv.key)和加密的B公钥指纹(B.pub.sign),生成随机数(200)。
3、设备A请求获取设备B的公钥(B.pub.key)和加密的公钥指纹(B.pub.sign),发送序列号seq=100。
4、在全双工模式下,设备B可同时请求获取设备A的公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),发送序列号seq=200。
5、设备B向设备A发送公钥(B.pub.key)和加密的公钥指纹(B.pub.sign),发送序列号seq=101。序列号在请求序列号seq=100基础上加一,用于确认请求已答复。若设备A未收到设备B的答复,根据超时重传机制进行重发请求获取设备B的相关数据。
超时重传机制:默认超时时长为50ms,下一次时长为前一次的时长的平方,超过3次后,关闭串口,结束交互流程。
6、在全双工模式下,设备A可同时向设备B发送公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),发送序列号seq=201。序列号在请求序列号seq=200基础上加一,用于确认请求已答复。若设备B未收到设备A的答复,根据超时重传机制进行重发请求获取设备A的相关数据。
7、设备A使用根公钥(root.pub.key)解密设备B的加密的公钥指纹(B.pub.sign)得到B.pub.fingerprint,使用相同的哈希算法获取B.pub.key的指纹信息得到B1.pub.fingerprint,比较B.pub.fingerprint和B1.pub.fingerprint是否相同。若不同则关闭串口,结束交互流程。
8、在全双工模式下,设备B可同时使用根公钥(root.pub.key)解密设备A的加密的公钥指纹(A.pub.sign)得到A.pub.fingerprint,使用相同的哈希算法获取A.pub.key的指纹信息得到A1.pub.fingerprint,比较A.pub.fingerprint和A1.pub.fingerprint是否相同。若不同则关闭串口,结束交互流程。
9、设备A生成公共密钥(general.key),使用B.pub.key加密得到general.sign加密的公共密钥。设备A发送general.sign,发送序列号seq=101,同理超时重传。
10、设备B使用B.priv.key解密genera.sign加密的公共密钥得到general.key公共密钥。答复ok,seq=102,序列号在上一步seq=101的基础上加一,用于确认请求已答复。
11、设备B使用公共密钥general.key加密应用数据(appdata)得到appdata.sign。设备B发送appdata.sign,seq=201,同理超时重传。
12、设备A使用公共密钥(general.key)解密应用数据(appdata.sign)得到appdata。答复ok,seq=202,序列号在上一步seq=201的基础上加一,用于确认请求已答复。
在本申请实施例中,步骤3和4同时进行,步骤5和6同时进行,步骤7和8同时进行。
参见图4所示的半双工模式下一种串口通信方法的流程图。如图4所示,该方法的交互流程描述如下:
1、设备A加载根公钥(root.pub.key)、A公钥(A.pub.key)、A私钥(A.priv.key)和加密的A公钥指纹(A.pub.sign),生成随机数(100)。
2、设备B加载根公钥(root.pub.key)、B公钥(B.pub.key)、B私钥(B.priv.key)和加密的B公钥指纹(B.pub.sign),生成随机数(200)。
3、设备A请求获取设备B的公钥(B.pub.key)和加密的公钥指纹(B.pub.sign),发送序列号seq=100。
4、设备B向设备A发送公钥(B.pub.key)和加密的公钥指纹(B.pub.sign),发送序列号seq=101。序列号在请求序列号seq=100基础上加一,用于确认请求已答复。若设备A未收到设备B的答复,根据超时重传机制进行重发请求获取设备B的相关数据。
超时重传机制:默认超时时长为50ms,下一次时长为前一次的时长的平方,超过3次后,关闭串口,结束交互流程。
5、设备A使用根公钥(root.pub.key)解密设备B的加密的公钥指纹(B.pub.sign)得到B.pub.fingerprint,使用相同的哈希算法获取B.pub.key的指纹信息得到B1.pub.fingerprint,比较B.pub.fingerprint和B1.pub.fingerprint是否相同。若不同则关闭串口,结束交互流程。
6、设备A向设备B发送公钥(A.pub.key)和加密的公钥指纹(A.pub.sign),发送序列号seq=101。
7、设备B使用根公钥(root.pub.key)解密设备A的加密的公钥指纹(A.pub.sign)得到A.pub.fingerprint,使用相同的哈希算法获取A.pub.key的指纹信息得到A1.pub.fingerprint,比较A.pub.fingerprint和A1.pub.fingerprint是否相同。若不同则关闭串口,结束交互流程。
8、设备B答复ok,seq=102。
9、设备A生成公共密钥(general.key),使用B.pub.key加密得到general.sign。设备A发送general.sign,发送序列号seq=102,同理超时重传机制。
10、设备B使用B.priv.key解密genera.sign得到general.key。答复ok,seq=103,序列号在上一步seq=102的基础上加一,用于确认请求已答复。
11、设备B使用公共密钥general.key加密应用数据(appdata)得到appdata.sign。设备B发送appdata.sign,seq=201,同理超时重传机制。
12、设备A使用公共密钥(general.key)解密应用数据(appdata.sign)得到appdata。答复ok,seq=202,序列号在上一步seq=201的基础上加一,用于确认请求已答复。
对应于前述串口通信方法,本申请进一步提供了一种串口通信装置,参见图5所示的一种串口通信装置的结构框图,主要包括如下模块:
获取单元51,用于利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备;
验证单元52,用于基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证;
传输单元53,用于若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。
本申请提供的上述串口通信方法、装置、电子设备和计算机可读介质,首先,利用非对称密钥算法生成设备认证数据,然后,基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证,若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。在本申请中,采用非对称加密技术,验证串口通信双方的身份,可根据系统性能自定义密钥长度;采用对称加密技术,减少了处理时延,提高了系统响应速度。
进一步地,获取单元用于:通过所述非对称密钥算法生成根密钥对,其中,所述根密钥对包括:根公钥和根私钥;通过所述非对称密钥算法生成所述第一设备的密钥对和所述第二设备的密钥对;其中,所述第一设备的密钥对包括:第一设备的公钥和私钥,所述第二设备的密钥对包括:第二设备的公钥和私钥;通过哈希算法获取所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息;通过所述根密钥对中的根私钥对所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息进行加密,分别得到所述第一设备的加密后的公钥指纹信息和所述第二设备的加密后的公钥指纹信息。
进一步地,验证单元用于:获取所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息;利用根公钥对所述第二设备的加密后的公钥指纹信息进行解密操作,得到第一公钥指纹信息;通过哈希算法获取所述第二设备的公钥的指纹信息,得到第二公钥指纹信息;若所述第一公钥指纹信和所述第二公钥指纹信息相同,则对所述第一设备和所述第二设备进行身份验证成功。
进一步地,验证单元还用于:向所述第二设备发送第一数据请求;获取所述第二设备根据所述第一数据请求反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息。
进一步地,该装置还用于:若所述第一设备在向所述第二设备发送所述第一数据请求的预设时间段内,未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则重新向所述第二设备发送所述第一数据请求。
进一步地,该装置还用于:若所述第一设备连续多次向所述第二设备发送所述第一数据请求,且未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则关闭所述第一设备的通信串口。
进一步地,传输单元用于:通过对称密钥算法生成公共密钥,并通过所述第二设备的公钥对所述公共密钥进行加密,得到加密的公共密钥;向所述第二设备发送所述加密的公共密钥,并获取所述第二设备基于所述加密的公共密钥反馈的加密应用数据;通过所述公共密钥对所述加密应用数据进行解密,得到目标应用数据;其中,所述第二设备在获取到所述加密的公共密钥之后,通过所述第二设备的私钥对所述加密的公共密钥进行解密,得到公共密钥,并通过所述公共密钥对目标应用数据进行加密,得到所述加密应用数据。
进一步,本实施例还提供了一种电子设备,包括:处理器和存储装置;其中,存储装置上存储有计算机程序,计算机程序在被处理器运行时执行前述串口通信方法。
进一步,本实施例还提供了一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述串口通信方法。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。
应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种串口通信方法,其特征在于,应用于第一设备,包括:
利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备;
基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证;
若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。
2.根据权利要求1所述的方法,其特征在于,利用非对称密钥算法生成设备认证数据包括:
通过所述非对称密钥算法生成根密钥对,其中,所述根密钥对包括:根公钥和根私钥;
通过所述非对称密钥算法生成所述第一设备的密钥对和所述第二设备的密钥对;其中,所述第一设备的密钥对包括:第一设备的公钥和私钥,所述第二设备的密钥对包括:第二设备的公钥和私钥;
通过哈希算法获取所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息;
通过所述根密钥对中的根私钥对所述第一设备的公钥指纹信息和所述第二设备的公钥指纹信息进行加密,分别得到所述第一设备的加密后的公钥指纹信息和所述第二设备的加密后的公钥指纹信息。
3.根据权利要求1所述的方法,其特征在于,基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证包括:
获取所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息;
利用根公钥对所述第二设备的加密后的公钥指纹信息进行解密操作,得到第一公钥指纹信息;
通过哈希算法获取所述第二设备的公钥的指纹信息,得到第二公钥指纹信息;
若所述第一公钥指纹信和所述第二公钥指纹信息相同,则对所述第一设备和所述第二设备进行身份验证成功。
4.根据权利要求3所述的方法,其特征在于,获取所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息包括:
向所述第二设备发送第一数据请求;
获取所述第二设备根据所述第一数据请求反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述第一设备在向所述第二设备发送所述第一数据请求的预设时间段内,未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则重新向所述第二设备发送所述第一数据请求。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述第一设备连续多次向所述第二设备发送所述第一数据请求,且未获取到所述第二设备反馈的所述第二设备的公钥和所述第二设备的加密后的公钥指纹信息,则关闭所述第一设备的通信串口。
7.根据权利要求1所述的方法,其特征在于,通过对称密钥算法在所述第一设备和所述第二设备之间进行数据传输包括:
通过对称密钥算法生成公共密钥,并通过所述第二设备的公钥对所述公共密钥进行加密,得到加密的公共密钥;
向所述第二设备发送所述加密的公共密钥,并获取所述第二设备基于所述加密的公共密钥反馈的加密应用数据;
通过所述公共密钥对所述加密应用数据进行解密,得到目标应用数据;
其中,所述第二设备在获取到所述加密的公共密钥之后,通过所述第二设备的私钥对所述加密的公共密钥进行解密,得到公共密钥,并通过所述公共密钥对目标应用数据进行加密,得到所述加密应用数据。
8.一种串口通信装置,其特征在于,设置于第一设备,所述装置包括:
获取单元,用于利用非对称密钥算法生成设备认证数据,其中,所述设备认证数据包括:根密钥对,第一设备密钥对和第二设备的密钥对,第一设备加密的公钥指纹信息,第二设备加密的公钥指纹信息;所述第一设备和所述第二设备为相互通信的设备;
验证单元,用于基于所述设备认证数据对所述第一设备和所述第二设备进行身份验证;
传输单元,用于若身份验证通过,则通过对称密钥算法在所述第一设备的通信串口和所述第二设备的通信串口之间进行数据传输。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行如权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011120573.XA CN112367165A (zh) | 2020-10-19 | 2020-10-19 | 串口通信方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011120573.XA CN112367165A (zh) | 2020-10-19 | 2020-10-19 | 串口通信方法、装置、电子设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112367165A true CN112367165A (zh) | 2021-02-12 |
Family
ID=74507267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011120573.XA Pending CN112367165A (zh) | 2020-10-19 | 2020-10-19 | 串口通信方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367165A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641535A (zh) * | 2021-07-09 | 2021-11-12 | 荣耀终端有限公司 | 数据备份系统、数据备份方法、电子设备及存储介质 |
CN115277194A (zh) * | 2022-07-27 | 2022-11-01 | 歌尔科技有限公司 | 产品认证方法、穿戴设备、表带及存储介质 |
CN116015812A (zh) * | 2022-12-16 | 2023-04-25 | 迈普通信技术股份有限公司 | 服务器指纹认证方法、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050054448A1 (en) * | 2003-09-08 | 2005-03-10 | Aristocrat Technologies Australia Pty, Ltd. | N-tier architecture for a casino management system and method |
CN103380589A (zh) * | 2011-06-13 | 2013-10-30 | 松下电器产业株式会社 | 终端装置、服务器装置、内容记录控制系统、记录方法以及记录许可与否控制方法 |
CN104378208A (zh) * | 2014-11-03 | 2015-02-25 | 江苏林洋电子股份有限公司 | 一种采用混合加密算法实现数据安全传输的分体预付费表 |
CN105763542A (zh) * | 2016-02-02 | 2016-07-13 | 国家电网公司 | 一种用于配电终端串口通信的加密认证装置及其方法 |
US20160330027A1 (en) * | 2015-05-05 | 2016-11-10 | ShoCard, Inc. | Identity Management Service Using A Blockchain Providing Certifying Transactions Between Devices |
CN109508560A (zh) * | 2018-11-20 | 2019-03-22 | 孟凡富 | 电子标签离线认证系统及方法 |
CN111264044A (zh) * | 2018-10-09 | 2020-06-09 | 华为技术有限公司 | 芯片、生成私钥的方法和可信证明的方法 |
-
2020
- 2020-10-19 CN CN202011120573.XA patent/CN112367165A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050054448A1 (en) * | 2003-09-08 | 2005-03-10 | Aristocrat Technologies Australia Pty, Ltd. | N-tier architecture for a casino management system and method |
CN103380589A (zh) * | 2011-06-13 | 2013-10-30 | 松下电器产业株式会社 | 终端装置、服务器装置、内容记录控制系统、记录方法以及记录许可与否控制方法 |
CN104378208A (zh) * | 2014-11-03 | 2015-02-25 | 江苏林洋电子股份有限公司 | 一种采用混合加密算法实现数据安全传输的分体预付费表 |
US20160330027A1 (en) * | 2015-05-05 | 2016-11-10 | ShoCard, Inc. | Identity Management Service Using A Blockchain Providing Certifying Transactions Between Devices |
CN105763542A (zh) * | 2016-02-02 | 2016-07-13 | 国家电网公司 | 一种用于配电终端串口通信的加密认证装置及其方法 |
CN111264044A (zh) * | 2018-10-09 | 2020-06-09 | 华为技术有限公司 | 芯片、生成私钥的方法和可信证明的方法 |
CN109508560A (zh) * | 2018-11-20 | 2019-03-22 | 孟凡富 | 电子标签离线认证系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641535A (zh) * | 2021-07-09 | 2021-11-12 | 荣耀终端有限公司 | 数据备份系统、数据备份方法、电子设备及存储介质 |
CN113641535B (zh) * | 2021-07-09 | 2022-10-25 | 荣耀终端有限公司 | 数据备份系统、数据备份方法、电子设备及存储介质 |
CN115277194A (zh) * | 2022-07-27 | 2022-11-01 | 歌尔科技有限公司 | 产品认证方法、穿戴设备、表带及存储介质 |
CN116015812A (zh) * | 2022-12-16 | 2023-04-25 | 迈普通信技术股份有限公司 | 服务器指纹认证方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10785019B2 (en) | Data transmission method and apparatus | |
CN110519046B (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN112367165A (zh) | 串口通信方法、装置、电子设备和计算机可读介质 | |
CN105162599B (zh) | 一种数据传输系统及其传输方法 | |
US20180219688A1 (en) | Information Transmission Method and Mobile Device | |
CN104821944A (zh) | 一种混合加密的网络数据安全方法及系统 | |
CN105553654B (zh) | 密钥信息处理方法和装置、密钥信息管理系统 | |
CN103685323A (zh) | 一种基于智能云电视网关的智能家居安全组网实现方法 | |
CN109714360B (zh) | 一种智能网关及网关通信处理方法 | |
CN104202170B (zh) | 一种基于标识的身份认证系统和方法 | |
KR20150079489A (ko) | 실시간 통신 방법 및 시스템 | |
CN111181723B (zh) | 物联网设备间离线安全认证的方法和装置 | |
CN107483429B (zh) | 一种数据加密方法和装置 | |
CN109495251A (zh) | 基于密钥卡的抗量子计算智能家庭云存储方法和系统 | |
CN104836784A (zh) | 一种信息处理方法、客户端和服务器 | |
CN113630407A (zh) | 使用对称密码技术增强mqtt协议传输安全的方法和系统 | |
CN110690969B (zh) | 一种多方协同完成双向ssl/tls认证的方法和系统 | |
KR101481403B1 (ko) | 차량용 데이터의 인증 및 획득 방법 | |
CN103401872A (zh) | 基于rdp改进协议的防止和检测中间人攻击的方法 | |
CN107104888B (zh) | 一种安全的即时通信方法 | |
WO2020042023A1 (zh) | 一种即时通信的数据加密方法及装置 | |
CN102739660B (zh) | 一种单点登录系统的密钥交换方法 | |
CN110213056B (zh) | 一种抗量子计算节能通信方法和系统、以及计算机设备 | |
CN106487761B (zh) | 一种消息传输方法和网络设备 | |
CN107682380B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210212 |