数据发送、接收方法及装置与流程

文档序号:12729100阅读:346来源:国知局
数据发送、接收方法及装置与流程

本申请涉及数据安全技术领域,尤其涉及数据发送、接收方法及装置。



背景技术:

如今,各电信运营商平台、互联网应用平台以及云计算平台等都在逐步开放自身具有的能力,开发者们可以利用这些能力开放平台更好地进行创造开发。例如,电信运营商能力开放平台在整合并且利用现有电信IMS(IP多媒体子系统)、ISAG(综合业务接入网关)核心网资源的基础上,采用统一的多层级的开放接口来开放电信能力,开发者利用上述能力可以不断创造出更好的商业应用,并向用户提供更优质的服务。

针对机器人开发与设计而言,利用上述能力开放平台能够不断推动机器人技术的发展以及人工智能研究的不断深入,从而能够更高效地设计出能够完成特定任务的机器人。

在某些特定的应用场景下,为保证通信安全,机器人与能力开放平台需进行加密通信。但是,已有通信加密方式都比较常规,一旦使用的加密密钥被破解,整个通信过程就会存在安全风险。



技术实现要素:

本申请实施例提供一种数据发送、接收方法及装置,用以在机器人与云端设备之间进行通信时,提升加密通信的稳定性。

本申请实施例提供一种数据发送方法,包括:

根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥;

利用原本端私钥对第一数据包生成数字签名;所述第一数据包包括:待传输数据和所述新的本端公钥;

将所述原本端私钥替换为所述新的本端私钥;

利用随机生成的对称密钥加密所述第一数据包,并利用对端公钥加密所述对称密钥;

将所述数字签名、加密后的第一数据包以及加密后的对称密钥发送至对端。

进一步可选地,本端为机器人,所述对端为所述机器人与云端设备之间的代理服务器;或者,本端为机器人与云端设备之间的代理服务器,所述对端为所述机器人。

进一步可选地,在本端为所述代理服务器时,所述代理服务器基于默认密钥和令牌机制与所述机器人建立加密通信通道。

进一步可选地,所述代理服务器基于默认密钥和令牌机制与所述机器人建立加密通信通道,包括:所述代理服务器根据所述机器人的注册信息,将所述机器人的ID加入白名单;所述代理服务器将所述默认密钥发送至所述机器人,以供所述机器人生成第一令牌;所述代理服务器接收所述机器人发送的所述机器人的公钥以及所述机器人基于所述默认密钥生成的所述第一令牌;所述代理服务器根据所述白名单中所述机器人的ID、所述默认密钥以及所述第一令牌,确定所述机器人为合法身份,并保存所述机器人的公钥;所述代理服务器发送所述代理服务器的公钥至所述机器人,并确定所述机器人成功接收所述代理服务器的公钥。

本申请实施例提供一种数据接收方法,包括:

接收对端发送的数字签名、加密后的第一数据包以及加密后的对称密钥;

根据原对端公钥对所述数字签名进行签名验证;

若所述数字签名通过签名验证,利用原本端私钥解密所述加密后的对称密钥,以获得对称密钥;

利用所述对称密钥解密所述加密后的第一数据包,以获得第一数据包;所述第一数据包包括待传输数据和新的对端公钥;

将所述原对端公钥替换为所述新的对端公钥。

进一步可选地,所述方法还包括:根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥;以及在利用原本端私钥解密所述加密后的对称密钥之后,将所述原本端私钥替换为所述新的本端私钥。

进一步可选地,所述第一数据包还包括:验证参数;所述方法还包括:根据所述验证参数,对所述待传输数据进行合法性验证;若所述合法性验证通过,则将所述待传输数据发送至云端设备或对端。

进一步可选地,所述验证参数包括:所述对端生成的令牌、所述对端生成的随机数以及时间戳;所述根据所述验证参数,对所述待传输数据进行合法性验证,包括:验证在所述时间戳所表征的时间范围内,所述对端生成的随机数与本端生成的随机数的一致性;验证所述对端生成的令牌是否在有效期。

本申请实施例还提供一种数据发送装置,包括:

密钥更新模块,用于根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥;以及,将原本端私钥替换为所述新的本端私钥;

签名模块,用于利用原本端私钥对第一数据包生成数字签名;所述第一数据包包括:待传输数据和所述新的本端公钥;

加密模块,用于利用随机生成的对称密钥加密所述第一数据包,并利用对端公钥加密所述对称密钥;

数据发送模块,用于将所述数字签名、加密后的第一数据包以及加密后的对称密钥发送至对端。

本申请实施例还提供一种数据接收装置,包括:

数据接收模块,用于接收对端发送的数字签名、加密后的第一数据包以及加密后的对称密钥;

验签模块,用于根据原对端公钥对所述数字签名进行签名验证;

解密模块,用于在所述数字签名通过签名验证时,利用原本端私钥解密所述加密后的对称密钥,以获得对称密钥,以及利用所述对称密钥解密所述加密后的第一数据包,以获得第一数据包;所述第一数据包包括待传输数据和新的对端公钥;

密钥更新模块,用于将所述原对端公钥替换为所述新的对端公钥。

本申请实施例提供的数据发送、接收方法及装置,在数据的发送与接收过程中,动态地产生非对称的密钥,增加了通信过程中密钥被破解的难度,进而增加了通信过程被攻击的难度,提升了数据通信过程中的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一数据发送方法的流程示意图;

图2是本申请实施例提供的一数据接收方法的流程示意图;

图3是本申请实施例提供的机器人向代理服务器发送数据的流程示意图;

图4是本申请实施例提供的代理服务器向机器人发送数据的流程示意图;

图5是本申请实施例提供的机器人与代理服务器建立加密通信通道的流程示意图;

图6是本申请实施例提供的一种数据发送装置的结构示意图;

图7是本申请实施例提供的一种数据接收装置的结构示意图;

图8是本申请实施例提供的另一数据接收装置的结构示意图;

图9是本申请实施例提供的另一数据接收装置的结构示意图。

具体实施方式

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

针对现有机器人应用场景中存在的通信安全问题,本申请实施例提供一种解决方案,核心原理是:在数据的发送与接收过程中,动态地产生非对称的密钥,增加了通信过程中密钥被破解的难度,进而增加了通信过程被攻击的难度,提升了数据通信过程中的安全性。

以下部分将结合图1以及图2对机器人应用场景中的数据发送以及数据接收方法进行详细阐述。

图1是本申请实施例提供的一数据发送方法的流程示意图,结合图1,该方法包括如下的步骤:

步骤101、根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥。

步骤102、利用原本端私钥对第一数据包生成数字签名;所述第一数据包包括:待传输数据和所述新的本端公钥。

步骤103、将所述原本端私钥替换为所述新的本端私钥。

步骤104、利用随机生成的对称密钥加密所述第一数据包,并利用对端公钥加密所述对称密钥。

步骤105、将所述数字签名、加密后的第一数据包以及加密后的对称密钥发送至对端。

针对步骤101,本端与对端是通信过程中相对的两端。在数据发送过程中,本端是数据发送端,对端是数据接收端。例如,在客户端与服务端进行通信的过程中,若本端为客户端,则对端为服务端;若本端为服务端,则对端为客户端。

本端公钥以及本端私钥是本端在数据传输过程中,对所需传输的数据进行加密解密使用的非对称密钥。本端私钥,是本端的私有密钥,只有本端可以保管。本端公钥,是本端的公开密钥,可以交由对端进行保管以使得对端能够解密本端采用本端私钥加密的数据。

在本实施例中,本端每次发送数据时,可根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥。所述预设的密钥生成算法可以是RSA算法(非对称加密算法)。新的本端公钥和新的本端私钥,不同于本端保存的原本端公钥和原本端私钥。

针对步骤102,第一数据包,包括本端需要向对端传输的数据以及上一步骤中生成的新的本端公钥。为便于描述和区分,将本端需要向对端传输的数据称为待传输数据。其中,通过第一数据包将新的本端公钥发送至对端,可便于对端对下次发送的数据进行解密。为保证第一数据包在传输过程中的安全性以及完整性,本端利用原本端私钥对第一数据包生成数字签名。数字签名能够保证数据传输的完整性,同时对于数据接收者而言,也可对数据发送者进行身份认证。

在对第一数据包进行签名时,首先获取第一数据包的摘要信息,再用原本端私钥对该摘要信息进行加密。对端在接收到本端的数字签名后,采用预先保存的原本端公钥进行解密获得摘要信息;若对端能够成功解密数字签名,则对端可确定该数字签名确实是由本端生成的。

针对步骤103,采用原本端私钥对第一数据包进行签名之后,采用步骤101中生成的新的本端私钥替换原本端私钥。

在本申请实施例的技术方案中,本端私钥和本端公钥是动态更新的,每一次通信过程都会使用上一次通信过程产生的新的本端公钥和本端私钥进行数据加密和解密,并且还会产生新的本端公钥和新的本端私钥以便于在下次通信过程中使用新的公钥和私钥进行数据加密和解密,从而增加了通信过程被攻击的难度。其中,上一次通信过程产生的新的本端公钥和本端私钥,实际上为本次通信过程中的原本端公钥和原本端私钥。

针对步骤104,对称密钥是本端随机产生的,因此其它设备非法保管该随机生成的对称密钥的可能性较低,因此,采用随机产生的对称密钥对第一数据包进行加密可进一步增加数据传输过程中的安全性。对端在接收到利用随机生成的对称密钥加密的第一数据包之后,需采用随机生成的对称密钥对加密后的第一数据包进行解密。

为保证对端能成功解密加密后的第一数据包,本端需将该随机生成的对称密钥发送至对端。为防止在发送该随机生成的对称的密钥的过程中遭到恶意截获,从而使得待第一数据包遭到破坏或盗取,本端采用对端的公钥对该随机生成的对称的密钥进行加密。由于采用对端公钥加密的数据只有对端的私钥才能解密,且对端私钥仅仅由对端进行保管,因此避免了该随机生成的对称的密钥被恶意截获之后用恶意篡改或偷盗第一数据包的可能性。

针对步骤105,将数字签名、加密后的第一数据包以及加密后的对称密钥发送至对端,从而对端在接收到上述数据之后,根据数字签名进行签名验证,在验证通过之后,解密得到对称密钥进而解密第一数据包并获取第一数据包中的数据。

本申请实施例提供的数据发送方法,在数据的发送过程中,动态地产生非对称的密钥,使得每次数据发送过程都可以使用新的私钥进行数字签名,并通过随机生成的对称密钥进行数据加密,增加了非法设备破解密钥的难度,增加了通信过程被攻击的难度,提升了数据发送过程的安全性。

在本申请实施例的以上或以下实施例中,可选的,可采用RSA算法动态生成公钥和新的私钥,以下部分对RSA算法进行简单的介绍。

RSA算法是一种非对称密码算法,该算法需要一对密钥,即公钥和私钥,使用其中一个加密,并用另一个解密。在RSA算法中,若A对所述传输的数据采用私钥加密,则B只能通过与该私钥配对的公钥才能对经该私钥加密的数据进行解密,这种加密方式能够保证B接收到的数据确实是由A发送的。若A对所述传输的数据采用公钥加密,则B只能通过与该公钥配对的私钥才能对经该公钥加密的数据进行解密,这种加密方式能够保证A发送的数据只能被B接收到。

RSA的算法涉及三个参数,n、e1、e2,其中,e1和e2是一对相关的值。e1的取值可以任意取,但要求e1与(p-1)*(q-1)互质。对e2进行取值时,要求(e2*e1)mod((p-1)*(q-1))=1。其中,p、q是任意两个大质数,n是两个大质数p、q的积,n的二进制表示密钥长度。(n,e1),(n,e2)是一对秘钥,其中(n,e1)为公钥,(n,e2)为私钥。设A为明,B为密文,则私钥加密时A=B^e2mod n;公钥解密时,B=A^e1mod n,其中,mod为求余函数。

可选的,在本申请的上述实施例中,利用随机生成的对称密钥加密第一数据包,可通过序列加密算法实现。

在序列加密算法中,加密第一数据包时,首先通过密钥发生器输出一组随机位序列Kl,K2,…,Ki,该随机位序列即随机生成的对称密钥。将待加密的第一数据包的明文位序列Pl,P2,…,Pi与对称密钥Kl,K2,…,Ki进行异或运算,即可得到加密后的第一数据包的密文序列Ci=Pi+Ki。

解密时,利用加密后的第一数据包的密文序列Ci=Pi+Ki与该对称密钥Kl,K2,…,Ki进行异或运算即可得到第一数据包的明文序列Pi=Ci+Ki。本实施例中通过随机生成的对称密钥对第一数据包进行加密,不存在数据扩展和错误传播,实时性好,且加密解密容易实现。

图2是本申请实施例提供的一数据接收方法的流程示意图,结合图2,该方法包括如下的步骤:

步骤201、接收对端发送的数字签名、加密后的第一数据包以及加密后的对称密钥。

步骤202、根据原对端公钥对所述数字签名进行签名验证。

步骤203、若所述数字签名通过签名验证,利用原本端私钥解密所述加密后的对称密钥,以获得对称密钥。

步骤204、利用所述对称密钥解密所述加密后的第一数据包,以获得第一数据包;所述第一数据包包括待传输数据和新的对端公钥。

步骤205、将所述原对端公钥替换为所述新的对端公钥。

针对步骤201,本端接收到的对端发送的数据包括数字签名、加密后的第一数据以及加密后的对称的密钥。

针对步骤202,在接收到上述数据之后,本端首先应确定数据是否是对端发送的,确定方法可以通过对接收到的数字签名进行签名验证实现。

由于对端发送的数字签名是用对端的原对端私钥加密的,若本端能用保存在本地的原对端公钥对该数字签名成功解密,则可证明接收到的数据确实是由对端发送的。进一步可选地,本端还可根据接收到的第一数据包进行计算产生一个摘要信息,对比解密获得的摘要信息与计算得到的摘要信息的一致性。如果二者相同,则说明本端收到的第一数据包是完整的,在传输过程中没有被修改,否则说明第一数据包被修改过。

针对步骤203,数字签名通过验证之后,进一步需解密所接收到的加密后的第一数据包。在解密之前,需要预先获取用于解密第一数据包的对称密钥。由于接收到的加密后的对称密钥是对端利用原本端公钥进行加密的,因此,本端可以用原本端私钥进行解密得到对称密钥。

针对步骤204,利用上一步骤中获得的对称密钥,解密加密后的第一数据包。解密后得到第一数据包所包括的待传输数据和新的对端公钥。

针对步骤205,本端以解密得到的第一数据包中的新的对端公钥更新本端保存的原对端公钥,实现对端的非对称密钥的动态更新。当本端下一次向对端发送数据时,可以采用新的对端公钥对数据进行加密,当下一次接收到对端发送的加密数据时,可以用该新的对端公钥进行解密。

进一步可选地,承接于上述实施例,本端还可执行如下的步骤:

步骤206、根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥;

步骤207、在利用保存的原本端私钥解密所述加密后的对称密钥之后,将所述原本端私钥替换为所述新的本端私钥。

上述步骤中,动态生成新的本端公钥和新的本端私钥可以采用RSA算法实现。得到新的本端私钥之后,以新的本端私钥替换保存的原本端私钥。在本申请实施例的技术方案中,本端私钥和本端公钥是动态更新的,每一次通信过程都会使用上一次通信过程产生的新的本端公钥和本端私钥进行数据加密和解密,并且还会产生新的本端公钥和新的本端私钥以便于在下次通信过程中使用新的公钥和私钥进行数据加密和解密,从而增加了通信过程被攻击的难度。其中,上一次通信过程产生的新的本端公钥和本端私钥,实际上为本次通信过程中保存的原本端公钥和原本端私钥。

本申请实施例提供的数据接收方法,在数据的接收过程中,可以动态地更新对端的非对称的密钥,使得在每次数据接收过程中都可以使用新的对端公钥进行签名验证,并通过对端传输过来的随机生成的对称密钥进行数据解密,增加了非法设备破解密钥的难度,增加了通信过程被攻击的难度,提升了数据接收过程的安全性。

接续于上述实施例,在一可选的实施方式中,对端发送的第一数据包还包括:验证参数。相应地,本端可以根据所述验证参数,对所述待传输数据进行合法性验证。若合法性验证通过,则将所述待传输数据发送至云端设备或对端。

可选的,验证参数包括:对端生成的令牌(token)、对端生成的随机数以及时间戳。基于此,根据所述验证参数,对所述待传输数据进行合法性验证,包括:验证在该时间戳所表征的时间范围内,对端生成的随机数与本端生成的随机数的一致性;若一致,则继续验证对端生成的令牌(token)是否在有效期,若在有效期,则确定对端发送过来的数据是合法的;若不在有效期或随机数未通过一致性验证,则丢弃接收到的第一数据包。

在一可选的实施方式中,本申请实施例提供的数据发送方法以及数据接收方法可以应用于机器人与云端设备的数据共享过程中。

在一种可能的应用场景中,机器人集群与云端设备进行数据共享时,云端设备来自第三方。在这种情况下,来自第三方的云端设备在通信过程中属被动一方,例如,以该云端设备是能力开放平台为例,机器人集群与能力开放平台进行通信时,被动的能力开放平台可能存在配合上的难度。与此同时,为保证机器人集群与能力开放平台之间通信安全,通常采用特定的加密方式对通信数据进行加密。例如,能力开放平台采用https(Hyper Text Transfer Protocol over Secure Socket Layer,超文本传输协议通过安全套接字层)双向加密方式,在通信的过程中,双方需要不停地对证书进行维护。当机器人集群包含的机器人的数量较多时,不间断地进行证书维护的难度较大。

为解决上述缺陷,本申请实施例在机器人集群与能力开放平台之间增设代理服务器,机器人集群中的每个机器人都可通过代理服务器访问能力开放平台。在这个过程中,运维人员需维护代理服务器与能力开放平台之间的加密通信过程,以及机器人集群与代理服务器之间的加密通信过程。由于代理服务器非第三方设备,运维方便且稳定,不耗费较多运维资源。因此,运维人员的运维难度从维护机器人集群与能力开放平台之间的加密通信过程,降低至维护代理服务器与能力开放平台之间的加密通信过程,极大缩小了维护成本。与此同时,代理服务器可以监控机器人集群以及能力开放平台之间的通信过程,并对该通信过程进行分析。基于上述监控以及分析,代理服务器能够输出相关的安全通信报告和/或行为报告,更加有利于拦截外来入侵以及危险预警。

在本申请实施例中,本端与对端是相对的概念,在数据发送的场景下,数据发送端是本端,数据接收端是对端。例如,机器人向代理服务器发送数据时,机器人作为本端,代理服务器是对端。代理服务器向机器人发送数据时,代理服务器作为本端,机器人是对端。

同理,在数据接收的场景下,数据接收端是本端,数据发送端是对端。例如,代理服务器接收机器人发送的数据时,代理服务器作为本端,机器人是对端。机器人接收代理服务器发送的数据时,机器人作为本端,代理服务器是对端。以下部分将结合具体的应用场景对本申请实施例的数据发送以及数据接收方法进行详细阐述。

图3是本申请实施例提供的机器人向代理服务器发送数据的流程示意图,结合图3,该数据发送过程包括如下的步骤:

步骤301、机器人根据预设的密钥生成算法动态生成新的机器人公钥和新的机器人私钥。

步骤302、机器人利用原机器人私钥对第一数据包生成数字签名;第一数据包包括:待传输数据和新的机器人公钥。

其中,待传输数据可以是机器人欲通过代理服务器向云端设备发送的数据,也可以是机器人在接收到云端设备通过代理服务器发送的数据,向代理服务器反馈回执数据等。

步骤303、机器人将原机器人私钥替换为新的机器人私钥。

步骤304、机器人利用随机生成的对称密钥加密第一数据包,并利用代理服务器公钥加密对称密钥。

步骤305、机器人将数字签名、加密后的第一数据包以及加密后的对称密钥发送至代理服务器。

步骤306、代理服务器接收机器人发送的数字签名、加密后的第一数据包以及加密后的对称密钥。

步骤307、代理服务器根据原机器人公钥对数字签名进行签名验证。

由于机器人发送的数字签名是用机器人的原机器人私钥加密的,若代理服务器用保存在本地的原机器人公钥对该数字签名成功解密,则可证明接收到的数据确实是由机器人发送的。进一步可选地,代理服务器还可根据接收到的第一数据包进行计算产生一个摘要信息,对比解密获得的摘要信息与计算得到的摘要信息的一致性。如果二者相同,则说明代理服务器收到的第一数据包是完整的,在传输过程中没有被修改,否则说明第一数据包被修改过。

可选的,在本申请实施例中,代理服务器还可以进一步根据机器人发送数据时携带的其他信息进一步进行验证。例如,代理服务器接收机器人发送的数据时,获取机器人的ID号和/或机器人的IP地址等。代理服务器根据机器人的ID号,查询机器人注册时生成的白名单,若该机器人的ID号存在于该白名单内,则确定该机器人有权限与代理服务器之间进行通信。代理服务器进一步还可根据机器人的IP地址,查看该IP地址是否与代理服务器预先配置的IP地址一致或是否在某一设定的IP段内,若一致或在设定的IP段内,则确定该机器人有权限与代理服务器之间进行通信。

步骤308、代理服务器在数字签名通过签名验证时,利用原代理服务器私钥解密加密后的对称密钥,以获得对称密钥。

步骤309、代理服务器利用对称密钥解密加密后的第一数据包,以获得第一数据包;第一数据包包括待传输数据和新的机器人公钥。

步骤310、代理服务器将原机器人公钥替换为新的机器人公钥。

步骤312、代理服务器以云端设备许可的加密方式加密待传输数据,并将加密后的所述待传输数据发送至云端设备。

在本申请实施例中,机器人发送至代理服务器的第一数据包中还包括验证参数,其中验证参数包括机器人生成的令牌、机器人生成的随机数以及时间戳;代理服务器需根据上述验证参数,对接收到的待传输数据进行合法性验证。可选的,代理服务器可验证在该时间戳所表征的时间范围内,机器人生成的随机数与代理服务器生成的随机数的一致性,若一致,则接下来验证机器人生成的令牌是否在有效期。若在有效期,则将所述待传输数据发送至云端设备或机器人。若不在有效期或随机数未通过一致性验证,则丢弃该待传输数据。

可选的,确定机器人发送的数据的合法性之后,若确定该待传输数据是机器人欲通过代理服务器发送至云端设备的数据,则代理服务器按照云端设备许可的加密方式加密该待传输数据,并将加密后的待传输数据发送至云端设备。例如,该云端设备为能力平台时,代理服务器采用能力平台许可的https双向加密方式对该待传输数据进行加密,并将加密后的待传输数据发送至能力平台。

在一种可能的情形下,代理服务器接收到机器人发送的数据或成功向云端设备发送数据之后,会向机器人发送回执数据,以使机器人确定数据发送成功。该回执数据可以是云端设备接收到代理服务器发送的数据之后反馈至代理服务器的,也可以是代理服务器在成功发送数据之后生成的。在另一种可能的情形下,机器人通过代理服务器向云端设备请求数据,云端设备响应该请求并下发相应的数据至代理服务器,此时代理服务器需作为数据的发送端向机器人发送数据。以下部分结合图4具体阐述代理服务器向机器人发送数据时的实现过程。

图4是本申请实施例提供的代理服务器向机器人发送数据的流程示意图,结合图4,该数据发送过程包括如下的步骤:

步骤401、代理服务器根据预设的密钥生成算法动态生成新的代理服务器公钥和新的代理服务器私钥。

步骤402、代理服务器利用原代理服务器私钥对第一数据包生成数字签名;第一数据包包括:待传输数据和所述新的代理服务器公钥。

步骤403、代理服务器将原代理服务器私钥替换为新的代理服务器私钥。

步骤404、代理服务器利用随机生成的对称密钥加密第一数据包,并利用机器人公钥加密对称密钥。

步骤405、代理服务器将数字签名、加密后的第一数据包以及加密后的对称密钥发送至机器人。

步骤406、机器人接收代理服务器发送的数字签名、加密后的第一数据包以及加密后的对称密钥。

步骤407、机器人根据原代理服务器公钥对数字签名进行签名验证。

步骤408、机器人在数字签名通过签名验证时,利用原机器人私钥解密所述加密后的对称密钥,以获得对称密钥。

步骤409、机器人利用对称密钥解密加密后的第一数据包,以获得第一数据包;第一数据包包括待传输数据和新的代理服务器公钥。

步骤410、机器人将原代理服务器公钥替换为新的代理服务器公钥。

在图3以及图4对应的实施例中,在机器人与云端设备之间增设代理服务器,从而,在云端设备不便于进行通信维护的情况下,降低了机器人与云端设备加密通信的维护难度,提升了机器人与云端设备之间加密通信的稳定性

在机器人和代理服务器正式通信之前,机器人和代理服务器通过获取彼此的公钥来建立加密的通信通道。在机器人注册时,代理服务器生成一个与机器人的ID对应的默认密钥,以供机器人生成第一令牌;机器人向代理服务器发送机器人的公钥时,会携带该第一令牌。代理服务器根据该机器人的ID、默认密钥以及该第一令牌,确定该机器人为合法身份,并保存该机器人的公钥。并且,代理服务器发送代理服务器的公钥至该机器人,并确定该机器人成功接收代理服务器的公钥。具体建立的过程将在以下实施例中具体阐述。

图5是本申请实施例提供的机器人与代理服务器建立加密通信通道的流程示意图,该实施例以机器人和代理服务器两端交互的角度对通信通道的建立过程进行阐述,如图5所示,包括如下的步骤:

步骤501、机器人在代理服务器注册。

步骤502、代理服务器根据所述机器人的注册信息,将机器人的ID加入白名单。

步骤503、代理服务器将默认密钥发送至机器人。

步骤504、机器人基于该默认密钥生成第一令牌。

步骤505、代理服务器接收机器人发送的机器人的公钥以及第一令牌。

步骤506、代理服务器根据白名单中该机器人的ID以及默认密钥生成第二令牌。

步骤507、代理服务器验证第一令牌与第二令牌相同且第一令牌仍在有效期,保存机器人的公钥。

步骤508、代理服务器发送代理服务器的公钥以及用代理服务器的公钥加密的第一验证数据至机器人。

步骤509、机器人利用接收到的代理服务器的公钥对接收到的加密的第一验证数据进行解密得到的第二验证数据。

步骤510、代理服务器接收机器人发送的第二验证数据。

步骤511、代理服务器验证所述第一验证数据与第二验证数据一致,则确定机器人成功接收到代理服务器的公钥。

在步骤505中,默认密钥是机器人在向代理服务器注册时,代理服务器生成的默认密钥,该默认密钥与机器人的ID号对应。

针对步骤505~步骤506,代理服务器接收到机器人发送的第一令牌(token)之后,根据第一令牌中包含的机器人的ID查询预存的白名单,若白名单中存在该ID,则进一步查询该ID对应的默认密钥;根据该ID以及对应的默认密钥生成第二令牌。

针对步骤508~511,代理服务器向机器人发送自己的公钥时,携带有利用代理服务器的私钥加密的验证数据。从而,机器人在接收到用代理服务器的私钥加密的验证数据之后,用接收到的代理服务器的公钥解密,得到验证数据并将验证数据发送至代理服务器。代理服务器接收到机器人发送的验证数据之后,对比接收到的验证数据与本地保存的验证数据的一致性,若一致,则确定机器人成功接收到了自己的公钥。

本实施例中,在机器人和代理服务器正式通信之前,机器人在代理服务器处注册,代理服务器生成一个与机器人的ID对应的默认密钥。机器人以及代理服务器根据机器人的ID以及对应的默认密钥生成令牌,用以在机器人向代理服务器发送公钥时做安全性验证。由于该默认密钥分别保存在机器人以及代理服务器端,导致令牌的伪造难度增大,提升了机器人和代理服务器之间建立加密通道过程中的安全性。

图6是本申请实施例提供的一种数据发送装置的结构示意图,结合图6,该机器人包括如下的模块:

密钥更新模块61,用于根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥;以及,将原本端私钥替换为所述新的本端私钥;

签名模块62,用于利用所述原本端私钥对第一数据包生成数字签名;所述第一数据包包括:待传输数据和所述新的本端公钥;

加密模块63,用于利用随机生成的对称密钥加密所述第一数据包,并利用对端公钥加密所述对称密钥;

数据发送模块64,用于将所述数字签名、加密后的第一数据包以及加密后的对称密钥发送至对端。

图7是本申请实施例提供的一种数据接收装置的结构示意图,结合图7,该代理服务器包括如下的模块:

数据接收模块71,用于接收对端发送的数字签名、加密后的第一数据包以及加密后的对称密钥;

验签模块72,用于根据原对端公钥对所述数字签名进行签名验证;

解密模块73,用于在所述数字签名通过签名验证时,利用原本端私钥解密所述加密后的对称密钥,以获得对称密钥,以及利用所述对称密钥解密所述加密后的第一数据包,以获得第一数据包;所述第一数据包包括待传输数据和新的对端公钥;

密钥更新模块74,将所述原对端公钥替换为所述新的对端公钥。

进一步可选地,所述密钥更新模块74,还用于根据预设的密钥生成算法,动态生成新的本端公钥和新的本端私钥;以及在利用原本端私钥解密所述加密后的对称密钥之后,将所述原本端私钥替换为所述新的本端私钥。

进一步可选地,所述第一数据包还包括:验证参数;所述验签模块72还用于:根据所述验证参数,对所述待传输数据进行合法性验证。如图8所示,所述代理服务器还包括数据发送模块75。若所述合法性验证通过,则所述第二数据发送模块75将所述待传输数据发送至云端或对端。

进一步可选地,所述验证参数包括:所述对端生成的令牌、所述对端生成的随机数以及时间戳;所述验签模块72具体用于:验证在所述时间戳所表征的时间范围内,所述对端生成的随机数与本端生成的随机数的一致性;验证所述对端生成的令牌是否在有效期。

进一步可选地,如图9所示,本申请实施例提供的代理服务器还包括通信建立模块76,用于基于默认密钥和令牌机制建立加密通信通道。

通信建立模块76具体用于根据所述机器人的注册信息,将所述机器人的ID加入白名单;将所述默认密钥发送至所述机器人,以供所述机器人生成第一令牌;接收所述机器人发送的所述机器人的公钥以及所述机器人基于所述默认密钥生成的所述第一令牌;所述代理服务器根据所述白名单中所述机器人的ID以及所述默认密钥生成第二令牌;所述代理服务器验证所述第一令牌与所述第二令牌相同且所述第一令牌仍在有效期,保存所述机器人的公钥;

所述代理服务器发送所述代理服务器的公钥以及用所述代理服务器的公钥加密的第一验证数据至所述机器人;所述代理服务器接收所述机器人发送的第二验证数据;所述第二验证数据是所述机器人利用接收到的所述代理服务器的公钥对接收到的加密的第一验证数据进行解密得到的;所述代理服务器验证所述第一验证数据与第二验证数据一致,则确定所述机器人成功接收所述代理服务器的公钥。

本实施例中,在机器人和代理服务器正式通信之前,机器人在代理服务器处注册,代理服务器生成一个与机器人的ID对应的默认密钥。机器人以及代理服务器根据机器人的ID以及对应的默认密钥生成令牌,用以在机器人向代理服务器发送公钥时做安全性验证。由于该默认密钥分别保存在机器人以及代理服务器端,导致令牌的伪造难度增大,提升了机器人和代理服务器之间建立加密通道过程中的安全性。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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