CN108927808B - 一种ros节点的通信方法、认证方法及装置 - Google Patents

一种ros节点的通信方法、认证方法及装置 Download PDF

Info

Publication number
CN108927808B
CN108927808B CN201810929818.XA CN201810929818A CN108927808B CN 108927808 B CN108927808 B CN 108927808B CN 201810929818 A CN201810929818 A CN 201810929818A CN 108927808 B CN108927808 B CN 108927808B
Authority
CN
China
Prior art keywords
node
encrypted ciphertext
manager
device driver
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810929818.XA
Other languages
English (en)
Other versions
CN108927808A (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.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group 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 BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN201810929818.XA priority Critical patent/CN108927808B/zh
Publication of CN108927808A publication Critical patent/CN108927808A/zh
Application granted granted Critical
Publication of CN108927808B publication Critical patent/CN108927808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供一种ROS节点的通信方法、认证方法及装置,旨在提高ROS的安全性。其中,所述ROS节点的通信方法,包括:在与所述ROS中的节点相互认证通过后,接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;响应所述订阅请求,在所述节点中查找所述第一话题的发布节点,并将查找到的发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信。

Description

一种ROS节点的通信方法、认证方法及装置
技术领域
本发明涉及机器人操作系统(ROS,Robot Operating System)技术领域,尤其涉及一种ROS节点的通信方法及装置。
背景技术
随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求越来越强烈,而已有的开源机器人系统并不能很好的适应需求。于是发布了一个开源机器人操作系统,即ROS。很快在机器人研究领域展开了学习和使用ROS的热潮。
目前,ROS是一个在计算机上对机器人进行操作的一个开源系统。ROS通常由大量节点组成,其中任何一个节点均可以通过发布/订阅的方式与其他节点进行通信。举例来说,机器人上的一个位置传感器,如雷达单元就可以作为ROS的一个节点,雷达单元可以以信息流的方式发布雷达获得的信息,发布的信息可以被其他节点,如导航单元、路径规划单元获得。
但是,由于ROS中任何一个节点都可以发布信息或者是订阅信息,如此,就可能出现节点伪造身份获取信息、发布虚假指令等情况,使得系统安全无法得到保证。
发明内容
鉴于上述问题,本发明实施例的目的是提供一种ROS节点的通信方法、认证方法及装置,旨在提高ROS的安全性。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种ROS节点的通信方法,包括:在与所述ROS中的节点相互认证通过后,接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;响应所述订阅请求,在所述节点中查找所述第一话题的发布节点,并将查找到的发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信。
第二方面,本发明实施例提供一种ROS节点的通信方法,包括:在与所述ROS中的节点管理器相互认证通过后,向所述节点管理器发送订阅请求,所述订阅请求用于请求订阅第一话题;接收所述节点管理器响应所述订阅请求所发送的发布节点的节点信息,所述发布节点为所述节点中发布所述第一话题的节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给所述节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥;根据所述通信信息与所述发布节点建立通信连接,并将使用所述协议密钥与所述发布节点进行加密通信。
第三方面,本发明实施例提供一种ROS节点的通信方法,包括:在与所述ROS中的节点管理器相互认证通过后,向所述节点管理发送发布请求,所述发布请求用于请求发布第一话题,所述发布请求中携带有发布节点的节点信息,所述节点信息包括发布节点的通信信息和协议密钥;接收订阅节点根据所述通信信息发送的通信请求,所述订阅节点为订阅所述第一话题的节点;响应所述通信请求,与所述订阅节点建立通信连接,并将使用所述协议密钥与所述订阅节点进行加密通信。
第四方面,本发明实施例提供一种ROS节点的认证方法,包括:接收来自节点的注册请求;响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证;在与所述设备驱动程序相互认证通过后,与所述节点管理器对自身对应的节点进行认证。
第五方面,本发明实施例提供一种ROS节点的认证方法,包括:与节点管理器进行相互认证;在认证通过后,与所述节点管理器对自身对应的节点进行认证。
第六方面,本发明实施例提供一种ROS节点的通信装置,包括:第一认证单元,用于与所述ROS中的节点相互认证;第一接收单元,用于接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;查找单元,用于响应所述订阅请求,在所述节点中查找所述第一话题的发布节点;第一发送单元,用于将所述发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信。
第七方面,本发明实施例提供一种ROS节点的通信装置,包括:第二认证单元,用于与所述ROS中的节点管理器相互认证;第二发送单元,用于与所述ROS中的节点管理器相互认证通过后,向所述节点管理器发送订阅请求,所述订阅请求用于请求订阅第一话题;第二接收单元,用于接收所述节点管理器响应所述订阅请求所发送的发布节点的节点信息,所述发布节点为所述节点中发布所述第一话题的节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给所述节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥;第一通信单元,用于根据所述通信信息与所述发布节点建立通信连接,并将使用所述协议密钥与所述发布节点进行加密通信。
第八方面,本发明实施例提供一种ROS节点的通信装置,包括:第三认证单元,用于与所述ROS中的节点管理器相互认证;第三发送单元,用于在与所述ROS中的节点管理器相互认证通过后,向所述节点管理发送发布请求,所述发布请求用于请求发布第一话题,所述发布请求中携带有发布节点的节点信息,所述节点信息包括发布节点的通信信息和协议密钥;第三接收单元,用于接收订阅节点根据所述通信信息发送的通信请求,所述订阅节点为订阅所述第一话题的节点;第二通信单元,用于响应所述通信请求,与所述订阅节点建立通信连接,并将使用所述协议密钥与所述订阅节点进行加密通信。
第九方面,本发明实施例提供一种ROS节点的认证装置,包括:第四接收单元,用于接收来自节点的注册请求;第四认证单元,用于响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证;第五认证单元,用于在与所述设备驱动程序相互认证通过后,与所述设备驱动程序对所述节点进行认证。
第十方面,本发明实施例提供一种ROS节点的认证装置,包括:第六认证单元,用于与节点管理器进行相互认证;第七认证单元,用于在认证通过后,与所述节点管理器对自身对应的节点进行认证。
本发明实施例所提供的一种ROS节点的通信方法、认证方法及装置,其中,在ROS节点的通信方法中,ROS中的节点管理器(Master)在与ROS中的节点(Node)相互认证通过后,接收来自订阅节点的订阅请求,该订阅请求是用于请求订阅第一话题的,节点管理器响应上述订阅请求,在注册到ROS的节点中查找第一话题的发布节点,并将该发布节点的节点信息发送给订阅节点,节点信息中包括通信信息和协议密钥,这样,订阅节点可以根据通信信息与第一话题的发布节点建立通信连接,并与发布节点使用协议密钥进行加密通信,以此来减少节点伪造身份获取信息、发布虚假指令等情况的发生,提高ROS的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中的ROS的系统结构示意图;
图2为本发明实施例中的ROS节点的通信方法的实施流程示意图;
图3为本发明实施例中的基于ROS的无人机通信方法的实施流程示意图;
图4为本发明实施例中的节点管理器与设备驱动程序相互认证的实施流程示意图;
图5为本发明实施例中的对节点进行认证的实施流程示意图;
图6为本发明实施例中的ROS节点的通信装置的一种结构示意图;
图7为本发明实施例中的ROS节点的通信装置的另一种结构示意图;
图8为本发明实施例中的ROS节点的通信装置的又一种结构示意图;
图9为本发明实施例中的ROS节点的认证装置的一种结构示意图;
图10为本发明实施例中的ROS节点的认证装置的一种结构示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得其它的实施例。
本发明实施例提供一种ROS,该ROS可以应用于机器人、无人机、无人驾驶等技术。图1为本发明实施例中的ROS的系统结构示意图,参见图1所示,该ROS100可以包括:节点管理器(ROS Master)101以及至少一个节点(Node)102。
在本发明实施例中,上述节点是通过ROS与其他节点进行通信的可执行文件,ROS中的节点可以发布消息到话题或者从话题订阅消息,发布消息到话题的节点即为发布节点(Talker)102a,从话题订阅消息的节点即为订阅节点(Listener)102b。同一个节点可以仅作为发布节点或者订阅节点,当然也可以同时作为发布节点和订阅节点,本发明实施例不作具体限定。
在实际应用中,节点管理器和至少一个节点可以位于同一个设备中。例如,无人机包含节点管理器,节点管理器能够对无人机内的管理控制节点以及飞行节点进行注册管理。无人机内的控制节点主要负责接收设备端遥控指令,代表控制功能部件。该节点在设备启动后,会向节点管理器注册,并发布一个控制话题(Topic),当控制节点在驱动端获取指令后,会在上述控制话题的数据端口发布消息。无人机内的飞行节点主要负责接收控制指令,实现飞行功能的单元,代表飞行部件。该节点启动后,会向节点管理器订阅控制话题,通过节点管理器获取控制节点的通信端口,与控制节点建立连接,然后就可以监听控制指令。
当然,节点管理器和至少一个节点还可以位于不同的设备中。例如,有一部相机安装在机器人上,希望可以从相机中或者笔记本上看到图像,同时让机器人也可以看到这些图像。那么,可以注册一个相机节点(Camera Node),运行在笔记本上,用于和相机通信;注册一个图像显示节点(Image Display Node),运行在笔记本上,用于将图像显示在屏幕上;再注册一个图像处理节点(Image Processing Node),运行在机器人上,用于处理图像数据。这里,相机节点和图像显示节点是位于笔记本上的,而图像处理节点是位于机器人上的。一旦相机节点收到相机发送的数据,就可以立即将图像数据直接发送到另外两个节点。在此,对于节点管理器与节点的设置位置,本发明实施例不做具体限定。
下面结合上述ROS对本发明实施例提供的一种ROS节点的通信方法进行说明。
图2为本发明实施例中的ROS节点的通信方法的实施流程示意图,参见图2所示,该方法包括:
S201:节点管理器与节点进行相互认证;
这里,在节点管理器启动以后,节点管理器与这些节点进行相互认证,并完成注册。此时,节点根据自身能够发布消息到话题还是从话题订阅消息,可以注册为发布节点和/或订阅节点。此时,无论是发布节点还是订阅节点都被认为是合法节点,未被篡改过的。
S202:节点管理器与节点相互认证通过后,节点中的发布节点向节点管理发送发布请求;
其中,发布请求用于请求发布第一话题(Topic),发布请求中可以携带有第一话题的话题名称以及发布节点的节点信息,该节点信息中可以包括发布节点的通信信息和协议密钥,通信信息可以包括第一话题对应的接收端口号。当然,节点信息中还可以包括发布节点的节点名称或者其他信息。本发明实施例不作具体限定。
举例来说,发布节点,如无人机的控制节点,可以向节点管理器发送发布请求,以请求发布第一话题,如控制话题“bar”,此时,该发布请求中可以携带控制话题的话题名称“bar”、控制话题对应的接收端口号“foo:1234”以及控制节点的协议密钥“key:abcd”。
需要说明的是,在本发明实施例中,发布节点的协议密钥可以为采用高级加密标准(AES,Advanced Encryption Standard)的密钥,也可以为采用数据加密标准(DES,DataEncryption Standard)的密钥。当然,还可以为采用其他加密标准的密钥,只要能够保证发布节点与订阅节点之间交互数据的安全即可,本发明实施例不作具体限定。
在本发明其他实施例中,在S201之后,节点管理器与节点相互认证失败,则可能存在伪造ROS Master、非法节点等情况,此时,流程终止。
S203:节点管理器响应发布请求,将发布节点的节点信息与第一话题关联保存。
此时,在节点管理器中,可以建立发布节点与话题的对应关系。该对应关系可以以表、链表等形式存储,本发明实施例不作具体限定。那么,当节点管理器接收到发布节点请求发布第一话题的发布请求后,就将发布节点的节点信息与第一话题按照上述发布节点与话题的对应关系关联保存。
S204:节点管理器与节点相互认证通过后,节点中的订阅节点向节点管理器发送订阅请求;
其中,上述订阅请求用于请求订阅上述第一话题。
这里,在节点管理器在与各个节点相互认证通过后,当节点中的订阅节点需要获取第一话题上的消息时,可以向节点管理器发送订阅请求,来订阅第一话题。此时,订阅请求中可以携带有第一话题的话题名称。例如,订阅节点,如无人机的飞行节点,需要获取控制指令,那么,飞行节点就可以向无人机的节点管理器发送给订阅请求,以请求订阅控制节点,即发布节点所发布的控制话题“bar”。此时,订阅请求中可以携带有控制话题的话题名称“bar”。
S205:节点管理器响应订阅请求,在节点中查找第一话题的发布节点;
这里,节点管理器在接收到订阅节点发送的订阅请求后,根据之前保存的发布节点的节点信息与话题的对应关系,从已经在节点管理器中注册的节点中查找发布第一话题的发布节点。也就是说,节点管理器在接收到请求订阅第一话题的订阅请求后,根据第一话题的话题名称在上述发布节点的节点信息与话题的对应关系中查找,以找到是否存在有发布第一话题的发布节点。
S206:节点管理器将发布节点的节点信息发送给订阅节点;
这里,由于上述节点通过上述S201都被认为是合法节点,没有被篡改过的,那么,节点管理器是可以从已经注册的节点中查找到第一话题的发布节点的,并获得该发布节点的节点信息。然后,节点管理器通过远程过程调用(RPC,Remote Procedure Call)的方式将发布节点的节点信息发送给订阅节点,还可以通过XML(可扩展标记语言,标准通用标记语言下的一个子集)远程方法调用(XML-RPC,XML Remote Procedure Call)的方式将发布节点的节点信息发送给订阅节点。当然,节点间还可以通过其他方式将=发布节点的节点信息发送给订阅节点,本发明实施例不作具体限定。
S207:订阅节点使用发布节点的通信信息与发布节点建立通信;
这里,订阅节点根据通信信息连接第一话题对应接收端口,发布节点监听到有订阅节点连接该接收端口后,告知对方数据接口,于是两个节点之间建立了通信。在本发明实施例中,发布节点和订阅节点之间可以建立如传输控制协议(TCP,Transmission ControlProtocol)连接。
S208:发布节点与订阅节点将使用协议密钥进行加密通信。
这里,在发布节点和订阅节点建立了通信之后,发布节点发送消息到第一话题,此时,发布节点可以先使用协议密钥将要发布到第一话题的消息加密,再将已加密的消息发布至第一话题,这样,订阅节点可以通过监听数据接口来接收已加密的消息,然后,订阅节点使用节点管理器发送的协议密钥对已加密的消息进行解密,以获得发布节点发布到第一话题的消息。如此,发布节点与订阅节点之间就实现了加密通信。需要说明的是,发布节点和订阅节点进行加密通信使用的协议密钥可以为同一密钥,也就是说发布节点和订阅节点之间进行对称加密通信,减少加解密对消息传递的实时性损耗。当然,发布节点和订阅节点之间也可以进行非对称加密通信,即发布节点发送给节点管理器的协议密钥可以为自身保存的协议密钥为互相匹配的公钥与私钥,这样,订阅节点和发布节点分别保存互相匹配的公钥与私钥,并使用该公钥和私钥进行通信,以进一步提高通信的安全性。
在实际应用中,假设ROS中的一个已注册的节点并不是第一话题的发布节点,该节点无法获得第一话题的发布节点的协议密钥。当该节点伪装成第一话题的发布节点向第一话题的订阅节点发送消息时,第一话题的订阅节点是没有办法使用协议密钥解密该消息的,进而不会对该消息进行下一步的处理;同样地,假设ROS中的另一个已注册的节点并不是第一话题的订阅节点,该节点无法获得第一话题的发布节点的协议密钥。该节点在伪装成第一话题的订阅节点向第一话题的发布节点建立通信后,接收到第一话题的发布节点发送的使用协议密钥加密后的消息,伪装的订阅节点是没有办法使用协议密钥解密该消息的,进而无法获得第一话题的发布节点实际要发布的消息。如此,减少了节点伪造身份发布虚假指令、获取信息等情况的发生,提高ROS的安全性。
下面以具体实例来对上述ROS节点的通信方法进行说明。
图3为本发明实施例中的基于ROS的无人机通信方法的实施流程示意图,参见图3所示,ROS中包含有ROS Master 301、Talker 302和Listener 303。
S1:Talker 302和Listener 303与ROS Master 301进行相互认证;
S2:在认证通过后,Talker 302和Listener 303在ROS Master 301中注册。
S3:Talker 302向ROS Master 301发送请求发布话题“bar”的发布请求,该发布请求中携带有话题名称“bar”、Talker302的接收端口号“1234”以及Talker302的协议密钥“Key:abcd”。
S4:Listener 303向ROS Master 301发送请求订阅话题“bar”的订阅请求,该订阅请求中携带有话题名称“bar”;
S5:节点管理器响应订阅请求,查找到话题“bar”对应的Talker 302,并将Talker302的接收端口号“1234”以及Talker302的协议密钥“Key:abcd”发送给Listener 303;
这里,参见图3中虚线所示,ROS Master 301可以以XML/RPC的方式向Listener303发送Talker 302的接收端口号以及Talker302的协议密钥。
S6:Listener 303连接接收端口“1234”,与Talker 302建立通信;
S7:Talker 302和Listener 303使用协议密钥“Key:abcd”进行加密通信。
至此,便完成了ROS中节点的通信。
在本发明实施例中,ROS中的节点管理器在与ROS中的各个节点相互认证通过后,确定这些节点均为合法节点,是未篡改的。那么,节点管理器接收来自订阅节点的订阅请求,该订阅请求是用于请求订阅第一话题的,节点管理器响应上述订阅请求,在注册到ROS的节点中查找第一话题的发布节点,并将该发布节点的节点信息发送给订阅节点,节点信息中包括通信信息和协议密钥,这样,订阅节点可以根据通信信息与第一话题的发布节点建立通信连接,并与发布节点使用协议密钥进行加密通信,以此来减少节点伪造身份获取信息、发布虚假指令等情况的发生,提高ROS的安全性。
基于前述实施例,在实际应用中,由于在ROS系统中各个节点可能共存于同一设备,同一主机中,那么,如果将数字证书单纯的保存在主机的存储空间的话,那对各个节点来说数字证书都是可读的,在这种情况下,上述S201中的节点管理器与各个节点之间的认证是没有意义的。
为此,本发明实施例提供一种ROS节点的认证方法,该方法是针对ROS中的节点管理器与节点、节点对应的设备驱动程序之间进行的相互认证。
其中,节点对应的设备驱动程序是指与内置或外接于主机的设备的程序,节点为该硬件设备在主机上对应的服务或者接口程序。例如,上述设备可以为无人机的遥控器,那么,设备驱动程序可以遥控器自身的控制程序,节点为遥控器在无人机主机上对应的控制服务或者控制接口;上述设备还可以为设置在无人机上的摄像头,那么,设备驱动程序可以摄像头自身的图像采集程序,节点为摄像头在无人机主机上对应的图像采集服务或者图像采集接口。当然,上述节点和节点对应的设备驱动程序还可以为其他情况,本发明实施例不作具体限定。
那么,上述S201可以包括:
步骤一、节点向节点管理器发送注册请求;
步骤二、节点管理器响应注册请求,与节点进行相互认证。
在本发明实施例中,步骤二中与节点进行相互认证的步骤可以包括:节点管理器响应注册请求,与节点对应的设备驱动程序进行相互认证;在节点管理器与设备驱动程序相互认证通过后,节点管理器与设备驱动程序对节点进行认证。当认证通过后,跳转至S202,反之,流程结束。
下面对上述认证过程进行详细的说明。
首先,介绍节点管理器与节点对应的设备驱动程序进行相互认证的过程。
图4为本发明实施例中的节点管理器与设备驱动程序相互认证的实施流程示意图,参见图4所示,该认证过程可以包括:
S401:节点向节点管理器发送注册请求;
其中,注册请求中携带有节点的注册信息,如节点的名称、节点的消息类型等。
S402:节点管理器响应注册请求,生成随机字符串,并获取第一密钥;
这里,节点管理器响应注册请求,确定上述发送注册请求的节点,生成随机字符串,并获取该节点对应的设备驱动程序的第一密钥。
S403:节点管理器使用第一密钥对随机字符串进行加密,生成第一加密密文;
S404:节点管理器将第一加密密文通过节点发送至设备驱动程序;
这里,节点管理器将第一加密密文先发给节点,并由该节点转发至自身对应的设备驱动程序。在实际应用中,节点可以通过ioctl函数将第一加密密文发送给设备驱动程序
S405:设备驱动程序使用第一密钥对第一加密密文解密,并将解密后的第一加密密文使用第二密钥加密,生成第二加密密文;
这里,设备驱动程序在使用自身的第一密钥对第一加密密文进行解密,获得第一明文信息,然后在使用节点管理器的第二密钥对第一明文信息进行加密,第二密钥是预先存储在设备驱动程序中的。
S406:设备驱动程序通过节点将第二加密密文发送给节点管理器;
这里,设备驱动程序将第二加密密文先发给节点,并由该节点转发至节点管理器。在实际应用中,节点可以通过ioctl函数将第二加密密文发送给节点管理器。
S407:节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比;
其中,若解密后的第二加密密文与随机字符串一致,则表明与节点管理器相互认证通过,认为设备驱动程序合法;若解密后的第二加密密文与随机字符串不一致,则表明与节点管理器相互认证失败,认为设备驱动程序非法。
需要说明的是,上述S402中的第一密钥与S405中的第一密钥可以为同一密钥,也可以为互相匹配的公钥和私钥;同样地,S405中的第二密钥和S407中的第二密钥可以为同一密钥,也可以为互相匹配的公钥和私钥,本发明实施例不作具体限定。
其次,介绍节点管理器与节点对应的设备驱动程序对节点进行认证的过程。图5为本发明实施例中的对节点进行认证的实施流程示意图,参见图5所示,该认证过程可以包括:
S501:节点管理器获取节点的密文信息和明文信息,密文信息是由明文信息采用第三密钥加密后得到的;
在本发明实施例中,在节点对应的程序发布时,将该程序的消息摘要算法(MD5)信息通过该节点的第三密钥进行加密,获得对应的密文信息,并将该密文信息在添加在该程序的尾部。那么,节点管理器可以通过读取节点对应的程序的尾部获得上述密文信息和对应的MD5信息,此时,MD5信息就是上述明文信息。当然,如果节点与节点管理器处于不同设备的话,节点还可以在向节点管理器发送注册请求时,主动上报上述密文信息和明文信息,本发明实施例不作具体限定。
在实际应用中,上述第三密钥可以为AES密钥。
S502:节点管理器使用第二密钥对密文信息和明文信息进行加密,获得第三加密密文;
这里,第二密钥即为上述实施例中S407中的第二密钥。
S503:节点管理器通过节点将第三加密密文发送至设备驱动程序;
这里,节点管理器将第三加密密文先发给节点,并由该节点转发至自身对应的设备驱动程序。在实际应用中,节点可以通过ioctl函数将第三加密密文发送给设备驱动程序。
S504:设备驱动程序使用第三密钥对第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;
这里,设备驱动程序可以使用第三密钥对第三加密密文进行解密,然后将解密后的第三加密密文中的密文信息使用第三密钥进行解密,获得解密后的密文信息,接着将解密后的密文信息与解密后的第三加密密文中的明文信息进行比对,如此,节点管理器、节点以及节点对应的设备驱动程序三者之间实现互相认证。那么,若解密后的密文信息与明文信息一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,认为节点合法,节点管理器与节点互相认证成功。只有通过认证的节点才能够在节点管理器上注册,进一步提高ROS的安全性。反之,若解密后的密文信息与明文信息不一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,认为节点非法,节点管理器与节点互相认证失败。认证失败的节点无法在节点管理器上注册,流程结束。
或者,设备驱动程序可以将解密后的第三加密密文中的明文信息使用第三密钥进行加密,获得解密后的明文,然后,将加密后的明文信息与解密后的第三加密密文中的密文信息进行比对,如此,节点管理器、节点以及节点对应的设备驱动程序三者之间实现互相认证。那么,若密文信息与加密后的明文信息一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,认为节点合法,节点管理器与节点互相认证成功。只有通过认证的节点才能够在节点管理器上注册,进一步提高ROS的安全性;反之,若密文信息与加密后的明文信息不一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,认为节点非法,节点管理器与节点互相认证失败。认证失败的节点无法在节点管理器上注册,流程结束。
由上述可知,节点管理器通过分别与节点对应的设备驱动程序、节点进行认证,以实现节点管理器与节点的互相认证。只有认证通过的节点才允许接入ROS,进一步减少节点伪造身份获取信息、发布虚假指令等情况的发生,提高ROS的安全性。
基于同一发明构思,本发明实施例还提供一种ROS节点的认证方法,该方法与上述实施例中的ROS节点的认证方法一致,在此不再一一赘述。
基于同一发明构思,本发明实施例提供一种ROS节点的通信装置,该通信装置能够应用于上述一个或者多个实施例中所述的节点管理器中。
图6为本发明实施例中的ROS节点的通信装置的一种结构示意图,参见图6所示,该通信装置600包括:第一认证单元601,用于与ROS中的节点相互认证;第一接收单元602,用于接收来自节点中的订阅节点的订阅请求,订阅请求用于请求订阅第一话题;查找单元603,用于响应订阅请求,在节点中查找第一话题的发布节点;第一发送单元604,用于将发布节点的节点信息发送给订阅节点,节点信息是由发布节点在发布第一话题时发送给节点管理器的,节点信息包括发布节点的通信信息和协议密钥,通信信息用于发布节点与订阅节点建立通信连接;协议密钥用于对节点中的发布节点与订阅节点之间进行加密通信。
在本发明实施例中,上述通信装置,还包括:第五接收单元和存储单元,第五接收单元,用于在第一接收单元接收来自订阅节点的订阅请求之前,接收来自发布节点的发布请求,发布请求用于请求发布第一话题;存储单元,用于响应发布请求,将发布节点的节点信息与第一话题关联保存。
在本发明实施例中,上述通信装置,还包括:第六接收单元,用于接收来自节点的注册请求;第一认证单元,用于响应注册请求,与节点进行相互认证。
在本发明实施例中,上述第一认证单元,包括第一认证子单元和第二认证子单元;第一认证子单元,用于响应注册请求,与节点对应的设备驱动程序进行相互认证;第二认证子单元,用于在与设备驱动程序相互认证通过后,与设备驱动程序对节点进行认证。
在本发明实施例中,上述第一认证子单元,具体用于响应注册请求,生成随机字符串,并获取第一密钥;使用第一密钥对随机字符串进行加密,生成第一加密密文,并将第一加密密文通过节点发送至设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;通过节点接收来自所设备驱动程序的第二加密密文,并使用第二密钥对第二加密密文进行解密;将解密后的第二加密密文与随机字符串进行对比,其中,若解密后的第二加密密文与随机字符串一致,则表明与设备驱动程序相互认证通过;若解密后的第二加密密文与随机字符串不一致,则表明与设备驱动程序相互认证失败。
在本发明实施例中,上述第二认证子单元,还用于获取节点的密文信息和明文信息,密文信息是由明文信息采用第三密钥加密后得到的;使用第二密钥对密文信息和明文信息进行加密,获得第三加密密文;将第三加密密文通过节点发送至设备驱动程序,第三加密密文用于指示设备驱动程序使用第三密钥对第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配,其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与节点相互认证失败。
这里需要指出的是:以上装置实施例的描述,与方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例提供一种ROS节点的通信装置,该通信装置能够应用于上述一个或者多个实施例中所述的订阅节点中。
图7为本发明实施例中的ROS节点的通信装置的另一种结构示意图,参见图7所示,该通信装置700包括:第二认证单元701,用于与ROS中的节点管理器相互认证;第二发送单元702,用于与ROS中的节点管理器相互认证通过后,向节点管理器发送订阅请求,订阅请求用于请求订阅第一话题;第二接收单元703,用于接收节点管理器响应订阅请求所发送的发布节点的节点信息,发布节点为节点中发布第一话题的节点,节点信息是由发布节点在发布第一话题时发送给节点管理器的,节点信息包括发布节点的通信信息和协议密钥;第一通信单元704,用于根据通信信息与发布节点建立通信连接,并将使用协议密钥与发布节点进行加密通信。
在本发明实施例中,上述通信装置还可以包括:第四发送单元,用于在第二认证单元与节点管理器相互认证通过之前,向节点管理器发送注册请求,注册请求用于请求注册为订阅节点。
在本发明实施例中,上述第二认证单元,用于与节点管理器进行相互认证。
在本发明实施例中,上述第二认证单元,用于接收节点管理器响应注册请求所发送的第一加密密文,第一加密密文由节点管理器使用第一密钥对随机字符串加密生成的;将第一加密密文发送给设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;接收来自设备驱动程序的第二加密密文,并将第二加密密文发送给节点管理器,第二加密密文用于指示节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比。
在本发明实施例中,上述第二认证单元,还用于接收来自节点管理器的第三加密密文,第三加密密文为节点管理器使用第二密钥对节点的密文信息和明文信息加密获得的,密文信息是由明文信息采用第三密钥加密后得到的;将第三加密密文发送至设备驱动程序,第三加密密文用于指示设备驱动程序使用第三密钥对第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与节点相互认证失败。
这里需要指出的是:以上装置实施例的描述,与方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例提供一种ROS节点的通信装置,该通信装置能够应用于上述一个或者多个实施例中所述的发送节点中。
图8为本发明实施例中的ROS节点的通信装置的又一种结构示意图,参见图8所示,该通信装置800包括:第三认证单元801,用于与ROS中的节点管理器相互认证;第三发送单元802,用于在与ROS中的节点管理器相互认证通过后,向节点管理发送发布请求,发布请求用于请求发布第一话题,发布请求中携带有发布节点的节点信息,节点信息包括发布节点的通信信息和协议密钥;第三接收单元803,用于接收订阅节点根据通信信息发送的通信请求,订阅节点为订阅第一话题的节点;第二通信单元804,用于响应通信请求,与订阅节点建立通信连接,并将使用协议密钥与订阅节点进行加密通信。
在本发明实施例中,上述通信装置还可以包括:第五发送单元,用于向节点管理器发送注册请求,注册请求用于请求注册为发布节点。
在本发明实施例中,上述在本发明实施例中,上述第三认证单元,用于与节点管理器进行相互认证。
在本发明实施例中,上述第三认证单元,用于接收节点管理器响应注册请求所发送的第一加密密文,第一加密密文由节点管理器使用第一密钥对随机字符串加密生成的;将第一加密密文发送给设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;接收来自设备驱动程序的第二加密密文,并将第二加密密文发送给节点管理器,第二加密密文用于指示节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比。
在本发明实施例中,上述第三认证单元,还用于接收来自节点管理器的第三加密密文,第三加密密文为节点管理器使用第二密钥对节点的密文信息和明文信息加密获得的,密文信息是由明文信息采用第三密钥加密后得到的;将第三加密密文发送至设备驱动程序,第三加密密文用于指示设备驱动程序使用第三密钥对第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与节点相互认证失败。
这里需要指出的是:以上装置实施例的描述,与方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例提供一种ROS节点的认证装置,该认证装置能够应用于上述一个或者多个实施例中所述的节点管理器中。
图9为本发明实施例中的ROS节点的认证装置的一种结构示意图,参见图9所示,该认证装置900包括:第四接收单元901,用于接收来自节点的注册请求;第四认证单元902,用于响应注册请求,与节点对应的设备驱动程序进行相互认证;第五认证单元903,用于在与设备驱动程序相互认证通过后,与节点进行相互认证。
在本发明实施例中,上述第四认证单元,具体用于响应注册请求,生成随机字符串,并获取第一密钥;使用第一密钥对随机字符串进行加密,生成第一加密密文,并将第一加密密文通过节点发送至设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;通过节点接收来自所设备驱动程序的第二加密密文,并使用第二密钥对第二加密密文进行解密;将解密后的第二加密密文与随机字符串进行对比;其中,若解密后的第二加密密文与随机字符串一致,则表明与设备驱动程序相互认证通过;若解密后的第二加密密文与随机字符串不一致,则表明与设备驱动程序相互认证失败。
在本发明实施例中,上述第五认证单元,具体用于获取节点的密文信息和明文信息,密文信息是由明文信息采用第三密钥加密后得到的;使用第二密钥对密文信息和明文信息进行加密,获得第三加密密文;将第三加密密文通过节点发送至设备驱动程序,第三加密密文用于指示设备驱动程序使用第二密钥对第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与节点相互认证失败。
这里需要指出的是:以上装置实施例的描述,与方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例提供一种ROS节点的认证装置,该认证装置能够应用于上述一个或者多个实施例中所述的设备驱动程序中。
图10为本发明实施例中的ROS节点的认证装置的一种结构示意图,参见图10所示,该认证装置110包括:第六认证单元111,用于与节点管理器进行相互认证;第七认证单元112,用于在认证通过后,与节点管理器对自身对应的节点进行认证。
在本发明实施例中,第六认证单元,用于通过节点接收来自节点管理器的第一加密密文,第一加密密文是由节点管理器使用第一密钥对随机字符串加密生成的;使用第一密钥对第一加密密文解密,并将解密后的第一加密密文使用第二密钥加密,生成第二加密密文;通过节点将第二加密密文发送给节点管理器,第二加密密文用于指示通过节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比;其中,若解密后的第二加密密文与随机字符串一致,则表明与节点管理器相互认证通过;若解密后的第二加密密文与随机字符串不一致,则表明与节点管理器相互认证失败。
在本发明实施例中,第七认证单元,用于通过节点接收来自节点管理器的第三加密密文,第三加密密文由节点管理器使用第二密钥对节点的密文信息和明文信息进行加密,密文信息是由明文信息使用第三密钥加密后得到的;使用第二密钥对第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与节点相互认证失败。
在本发明实施例中,第七认证单元,具体用于将解密后的第三加密密文中的密文信息使用第三密钥进行解密,并将解密后的密文信息与解密后的第三加密密文中的明文信息进行比对,其中,若解密后的密文信息与明文信息一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配;若解密后的密文信息与明文信息不一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配;或者,将解密后的第三加密密文中的明文信息使用第三密钥进行加密,并将加密后的明文信息与解密后的第三加密密文中的密文信息进行比对,其中,若密文信息与加密后的明文信息一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配;若密文信息与加密后的明文信息不一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配。
这里需要指出的是:以上装置实施例的描述,与方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例提供一种电子设备,该电子设备中可以包括上述实施例中所述的节点管理器,该电子设备可以为机器人、无人机、无人驾驶车辆等。该电子设备包括:至少一个处理器;以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行如上述一个或者多个实施例所述的ROS节点的通信方法的步骤和/或ROS节点的认证方法的步骤。
基于同一发明构思,本发明实施例提供一种电子设备,该电子设备中可以包括上述实施例中所述的节点,该电子设备可以为机器人、无人机、无人驾驶车辆等。该电子设备包括:至少一个处理器;以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行如上述一个或者多个实施例所述的ROS节点的通信方法的步骤。
需要说明的是,由于节点管理器与节点可以在同一设备中,也可以在不同设备中,那么,包括有节点管理器的电子设备与包括有节点的电子设备可以为同一电子设备,也可以为不同电子设备,本发明实施例不作具体限定。
基于同一发明构思,本发明实施例提供一种电子设备,该电子设备中可以包括上述实施例中所述的设备驱动程序,该电子设备可以为机器人上的传感器、无人机的遥控器或者传感器、无人驾驶车辆上的传感器等。该电子设备包括:至少一个处理器;以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行如上述一个或者多个实施例所述的ROS节点的认证方法的步骤。
基于同一发明构思,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述一个或者多个实施例所述的ROS节点的通信方法的步骤和/或ROS节点的认证方法的步骤。
本发明实施例还提供A1、一种ROS节点的通信方法,包括:在与所述ROS中的节点相互认证通过后,接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;响应所述订阅请求,在所述节点中查找所述第一话题的发布节点,并将查找的发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信。
A2、根据A1所述的方法,在所述接收来自所述订阅节点的订阅请求之前,所述方法还包括:接收来自所述发布节点的发布请求,所述发布请求用于请求发布所述第一话题;响应所述发布请求,将所述发布节点的节点信息与所述第一话题关联保存。
A3、根据A1所述的方法,所述方法还包括:接收来自所述节点的注册请求;响应所述注册请求,与所述节点进行相互认证。
A4、根据A3所述的方法,所述响应所述注册请求,与所述节点进行相互认证,包括:响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证;在与所述设备驱动程序相互认证通过后,与所述设备驱动程序对所述节点进行认证。
A5、根据A4所述的方法,所述响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证,包括:响应所述注册请求,生成随机字符串,并获取第一密钥;使用所述第一密钥对所述随机字符串进行加密,生成第一加密密文,并将所述第一加密密文通过所述节点发送至所述设备驱动程序,所述第一加密密文用于指示所述设备驱动程序使用所述第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;通过所述节点接收来自所设备驱动程序的所述第二加密密文,并使用所述第二密钥对所述第二加密密文进行解密;将解密后的第二加密密文与所述随机字符串进行对比,其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明与所述设备驱动程序相互认证失败。
A6、根据A4所述的方法,所述与所述设备驱动程序对所述节点进行认证,包括:获取所述节点的密文信息和明文信息,所述密文信息是由所述明文信息采用第三密钥加密后得到的;使用第二密钥对所述密文信息和所述明文信息进行加密,获得第三加密密文;将所述第三加密密文通过所述节点发送至所述设备驱动程序,所述第三加密密文用于指示所述设备驱动程序使用所述第三密钥对所述第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配,其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与所述节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与所述节点相互认证失败。
本发明实施例还提供B7、一种ROS节点的通信方法,包括:在与所述ROS中的节点管理器相互认证通过后,向所述节点管理器发送订阅请求,所述订阅请求用于请求订阅第一话题;接收所述节点管理器响应所述订阅请求所发送的发布节点的节点信息,所述发布节点为所述节点中发布所述第一话题的节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给所述节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥;根据所述通信信息与所述发布节点建立通信连接,并将使用所述协议密钥与所述发布节点进行加密通信。
B8、根据B7所述的方法,在与所述ROS中的节点管理器相互认证通过之前,所述方法还包括:向所述节点管理器发送注册请求,所述注册请求用于请求注册为订阅节点。
本发明实施例还提供C9、一种ROS节点的通信方法,包括:在与所述ROS中的节点管理器相互认证通过后,向所述节点管理发送发布请求,所述发布请求用于请求发布第一话题,所述发布请求中携带有发布节点的节点信息,所述节点信息包括发布节点的通信信息和协议密钥;接收订阅节点根据所述通信信息发送的通信请求,所述订阅节点为订阅所述第一话题的节点;响应所述通信请求,与所述订阅节点建立通信连接,并将使用所述协议密钥与所述订阅节点进行加密通信。
C10、根据C9所述的方法,在与所述ROS中的节点管理器相互认证通过之前,所述方法还包括:向所述节点管理器发送注册请求,所述注册请求用于请求注册为发布节点。
本发明实施例还提供D11、一种ROS节点的认证方法,包括:接收来自节点的注册请求;响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证;在与所述设备驱动程序相互认证通过后,与所述设备驱动程序对所述节点进行认证。
D12、根据D11所述的方法,所述响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证,包括:响应所述注册请求,生成随机字符串,并获取第一密钥;使用所述第一密钥对所述随机字符串进行加密,生成第一加密密文,并将所述第一加密密文通过所述节点发送至所述设备驱动程序,所述第一加密密文用于指示所述设备驱动程序使用所述第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;通过所述节点接收来自所设备驱动程序的所述第二加密密文,并使用所述第二密钥对所述第二加密密文进行解密;将解密后的第二加密密文与所述随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明与所述设备驱动程序相互认证失败。
D13、根据D11所述的方法,所述与所述设备驱动程序对所述节点进行认证,包括:获取所述节点的密文信息和明文信息,所述密文信息是由所述明文信息采用第三密钥加密后得到的;使用第二密钥对所述密文信息和所述明文信息进行加密,获得第三加密密文;将所述第三加密密文通过所述节点发送至所述设备驱动程序,所述第三加密密文用于指示所述设备驱动程序使用所述第二密钥对所述第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与所述节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与所述节点相互认证失败。
本发明实施例还提供E14、一种ROS节点的认证方法,包括:与节点管理器进行相互认证;在认证通过后,与所述节点管理器对自身对应的节点进行认证。
E15、根据E14所述的方法,所述与节点管理器进行相互认证,包括:通过所述节点接收来自所述节点管理器的第一加密密文,所述第一加密密文是由所述节点管理器使用第一密钥对随机字符串加密生成的;使用所述第一密钥对第一加密密文解密,并将解密后的第一加密密文使用第二密钥加密,生成第二加密密文;通过所述节点将所述第二加密密文发送给所述节点管理器,所述第二加密密文用于指示通过所述节点管理器使用所述第二密钥对所述第二加密密文进行解密,并将解密后的第二加密密文与所述随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明与节点管理器相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明与节点管理器相互认证失败。
E16、根据E14所述的方法,所述与所述节点管理器对自身对应的节点进行认证,包括:通过所述节点接收来自所述节点管理器的第三加密密文,所述第三加密密文由所述节点管理器使用第二密钥对所述节点的密文信息和明文信息进行加密,所述密文信息是由所述明文信息使用第三密钥加密后得到的;使用所述第二密钥对所述第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明与所述节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明与所述节点相互认证失败。
E17、根据E16所述的方法,所述将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配,包括:将所述解密后的第三加密密文中的密文信息使用所述第三密钥进行解密,并将解密后的密文信息与所述解密后的第三加密密文中的明文信息进行比对,其中,若解密后的密文信息与所述明文信息一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配;若解密后的密文信息与所述明文信息不一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配;或者,将所述解密后的第三加密密文中的明文信息使用所述第三密钥进行加密,并将加密后的明文信息与所述解密后的第三加密密文中的密文信息进行比对,其中,若所述密文信息与加密后的明文信息一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配;若所述密文信息与加密后的明文信息不一致,则表明解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配。
本发明实施例还提供F18、一种ROS节点的通信装置,包括:第一认证单元,用于与所述ROS中的节点相互认证;第一接收单元,用于接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;查找单元,用于响应所述订阅请求,在所述节点中查找所述第一话题的发布节点;第一发送单元,用于将所述发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的PLM插件。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令PLM插件的制造品,该指令PLM插件实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种ROS节点的通信方法,其特征在于,包括:
在节点管理器与所述ROS中的节点相互认证通过后,接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;
响应所述订阅请求,在所述节点中查找所述第一话题的发布节点,并将查找的发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给所述节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信;
所述方法还包括:
所述节点管理器接收来自所述节点的注册请求;
所述节点管理器响应所述注册请求,与所述节点进行相互认证;
其中,所述节点管理器响应所述注册请求,与所述节点进行相互认证的步骤,包括:所述节点管理器响应所述注册请求,所述节点管理器与所述节点对应的设备驱动程序进行相互认证;在所述节点管理器与所述设备驱动程序相互认证通过后,所述节点管理器与所述设备驱动程序对所述节点进行认证;
所述节点管理器响应所述注册请求,所述节点管理器与所述节点对应的设备驱动程序进行相互认证,包括:
所述节点管理器响应所述注册请求,生成随机字符串,并获取第一密钥;
使用所述第一密钥对所述随机字符串进行加密,生成第一加密密文,并将所述第一加密密文通过所述节点发送至所述设备驱动程序,所述第一加密密文用于指示所述设备驱动程序使用所述第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;
所述节点管理器通过所述节点接收来自所设备驱动程序的所述第二加密密文,并使用所述第二密钥对所述第二加密密文进行解密;
所述节点管理器将解密后的第二加密密文与所述随机字符串进行对比,其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
2.根据权利要求1所述的方法,其特征在于,所述节点管理器与所述设备驱动程序对所述节点进行认证,包括:
所述节点管理器获取所述节点的密文信息和明文信息,所述密文信息是由所述明文信息采用第三密钥加密后得到的;
所述节点管理器使用第二密钥对所述密文信息和所述明文信息进行加密,获得第三加密密文;
所述节点管理器将所述第三加密密文通过所述节点发送至所述设备驱动程序,所述第三加密密文用于指示所述设备驱动程序使用所述第三密钥对所述第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配,其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明所述节点管理器与所述节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明所述节点管理器与所述节点相互认证失败。
3.一种ROS节点的通信方法,其特征在于,包括:
在节点与所述ROS中的节点管理器通过节点对应的设备驱动程序进行相互认证通过后,其中,订阅节点向所述节点管理器发送订阅请求,所述订阅请求用于请求订阅第一话题;
所述订阅节点接收所述节点管理器响应所述订阅请求所发送的发布节点的节点信息,所述发布节点为所述节点中发布所述第一话题的节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给所述节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥;
所述订阅节点根据所述通信信息与所述发布节点建立通信连接,并将使用所述协议密钥与所述发布节点进行加密通信;
所述方法还包括:
在节点与节点管理器相互认证通过之前,向节点管理器发送注册请求,注册请求用于请求注册为订阅节点;
所述节点接收节点管理器响应注册请求所发送的第一加密密文,第一加密密文由节点管理器使用第一密钥对随机字符串加密生成的;将第一加密密文发送给所述节点对应的设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;接收来自设备驱动程序的第二加密密文,并将第二加密密文发送给节点管理器,第二加密密文用于指示节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
4.一种ROS节点的通信方法,其特征在于,包括:
在节点与所述ROS中的节点管理器通过节点对应的设备驱动程序进行相互认证通过后,其中,发布节点向所述节点管理器发送发布请求,所述发布请求用于请求发布第一话题,所述发布请求中携带有发布节点的节点信息,所述节点信息包括发布节点的通信信息和协议密钥;
所述发布节点接收订阅节点根据所述通信信息发送的通信请求,所述订阅节点为订阅所述第一话题的节点;
所述发布节点响应所述通信请求,与所述订阅节点建立通信连接,并将使用所述协议密钥与所述订阅节点进行加密通信;
所述方法还包括:
节点向节点管理器发送注册请求,注册请求用于请求注册为发布节点;
所述节点接收节点管理器响应注册请求所发送的第一加密密文,第一加密密文由节点管理器使用第一密钥对随机字符串加密生成的;将第一加密密文发送给所述节点对应的设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;接收来自设备驱动程序的第二加密密文,并将第二加密密文发送给节点管理器,第二加密密文用于指示节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
5.一种ROS节点的认证方法,其特征在于,包括:
节点管理器接收来自节点的注册请求;
所述节点管理器响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证;
在所述节点管理器与所述设备驱动程序相互认证通过后,所述节点管理器与所述设备驱动程序对所述节点进行认证;
所述节点管理器响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证,包括:
所述节点管理器响应所述注册请求,生成随机字符串,并获取第一密钥;
所述节点管理器使用所述第一密钥对所述随机字符串进行加密,生成第一加密密文,并将所述第一加密密文通过所述节点发送至所述设备驱动程序,所述第一加密密文用于指示所述设备驱动程序使用所述第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;
所述节点管理器通过所述节点接收来自所设备驱动程序的所述第二加密密文,并使用所述第二密钥对所述第二加密密文进行解密;
所述节点管理器将解密后的第二加密密文与所述随机字符串进行对比;
其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
6.根据权利要求5所述的方法,其特征在于,所述节点管理器与所述设备驱动程序对所述节点进行认证,包括:
所述节点管理器获取所述节点的密文信息和明文信息,所述密文信息是由所述明文信息采用第三密钥加密后得到的;
所述节点管理器使用第二密钥对所述密文信息和所述明文信息进行加密,获得第三加密密文;
所述节点管理器将所述第三加密密文通过所述节点发送至所述设备驱动程序,所述第三加密密文用于指示所述设备驱动程序使用所述第三密钥对所述第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;
其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明所述节点管理器与所述节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明所述节点管理器与所述节点相互认证失败。
7.一种ROS节点的认证方法,其特征在于,包括:
节点与节点管理器通过节点对应的设备驱动程序进行相互认证;
在认证通过后,所述设备驱动程序与所述节点管理器对所述设备驱动程序对应的节点进行认证;所述设备驱动程序与所述节点管理器对所述设备驱动程序对应的节点进行认证,包括:
所述设备驱动程序通过所述节点接收来自所述节点管理器的第一加密密文,所述第一加密密文是由所述节点管理器使用第一密钥对随机字符串加密生成的;所述随机字符串是由所述节点管理器响应节点向其发送的注册请求生成的;
所述设备驱动程序使用所述第一密钥对第一加密密文解密,并将解密后的第一加密密文使用第二密钥加密,生成第二加密密文;
所述设备驱动程序通过所述节点将所述第二加密密文发送给所述节点管理器,所述第二加密密文用于指示通过所述节点管理器使用所述第二密钥对所述第二加密密文进行解密,并将解密后的第二加密密文与所述随机字符串进行对比;
其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述设备驱动程序与节点管理器相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述设备驱动程序与节点管理器相互认证失败。
8.根据权利要求7所述的方法,其特征在于,节点与节点管理器通过节点对应的设备驱动程序进行相互认证,包括:
所述设备驱动程序通过所述节点接收来自所述节点管理器的第三加密密文,所述第三加密密文由所述节点管理器使用第二密钥对所述节点的密文信息和明文信息进行加密,所述密文信息是由所述明文信息使用第三密钥加密后得到的;
所述设备驱动程序使用所述第三密钥对所述第三加密密文进行解密,并将解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息进行匹配;
其中,若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息匹配,则表明所述节点管理器与所述节点相互认证通过;若解密后的第三加密密文中的密文信息与解密后的第三加密密文中的明文信息不匹配,则表明所述节点管理器与所述节点相互认证失败。
9.一种ROS节点的通信装置,其特征在于,包括:
第一认证单元,用于节点管理器与所述ROS中的节点通过节点对应的设备驱动程序进行相互认证;
第一接收单元,用于所述节点管理器接收来自所述节点中的订阅节点的订阅请求,所述订阅请求用于请求订阅第一话题;
查找单元,用于所述节点管理器响应所述订阅请求,在所述节点中查找所述第一话题的发布节点;
第一发送单元,用于所述节点管理器将所述发布节点的节点信息发送给所述订阅节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥,所述通信信息用于所述发布节点与所述订阅节点建立通信连接;所述协议密钥用于对所述节点中的发布节点与订阅节点之间进行加密通信;
所述装置还包括:
第六接收单元,用于所述节点管理器接收来自所述节点的注册请求;
所述第一认证单元包括第一认证子单元和第二认证子单元;
第一认证子单元,用于所述节点管理器响应注册请求,所述节点管理器与节点对应的设备驱动程序进行相互认证;
第二认证子单元,用于在所述节点管理器与设备驱动程序相互认证通过后,所述节点管理器与设备驱动程序对节点进行认证;
所述第一认证子单元,还用于所述节点管理器响应所述注册请求,生成随机字符串,并获取第一密钥;使用所述第一密钥对所述随机字符串进行加密,生成第一加密密文,并将所述第一加密密文通过所述节点发送至所述设备驱动程序,所述第一加密密文用于指示所述设备驱动程序使用所述第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;所述节点管理器通过所述节点接收来自所设备驱动程序的所述第二加密密文,并使用所述第二密钥对所述第二加密密文进行解密;所述节点管理器将解密后的第二加密密文与所述随机字符串进行对比,其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
10.一种ROS节点的通信装置,其特征在于,包括:
第二认证单元,用于节点与所述ROS中的节点管理器通过节点对应的设备驱动程序进行相互认证;
第二发送单元,用于所述节点与所述ROS中的节点管理器相互认证通过后,其中,订阅节点向所述节点管理器发送订阅请求,所述订阅请求用于请求订阅第一话题;
第二接收单元,用于所述订阅节点接收所述节点管理器响应所述订阅请求所发送的发布节点的节点信息,所述发布节点为所述节点中发布所述第一话题的节点,所述节点信息是由所述发布节点在发布所述第一话题时发送给所述节点管理器的,所述节点信息包括发布节点的通信信息和协议密钥;
第一通信单元,用于所述订阅节点根据所述通信信息与所述发布节点建立通信连接,并将使用所述协议密钥与所述发布节点进行加密通信;
所述装置还包括:
第四发送单元,用于在第二认证单元节点与节点管理器相互认证通过之前,向节点管理器发送注册请求,注册请求用于请求注册为订阅节点;
所述第二认证单元还用于所述节点接收节点管理器响应注册请求所发送的第一加密密文,第一加密密文由节点管理器使用第一密钥对随机字符串加密生成的;将第一加密密文发送给设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;接收来自设备驱动程序的第二加密密文,并将第二加密密文发送给节点管理器,第二加密密文用于指示节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
11.一种ROS节点的通信装置,其特征在于,包括:
第三认证单元,用于节点与所述ROS中的节点管理器通过节点对应的设备驱动程序进行相互认证;
第三发送单元,用于在节点与所述ROS中的节点管理器相互认证通过后,其中,发布节点向所述节点管理器发送发布请求,所述发布请求用于请求发布第一话题,所述发布请求中携带有发布节点的节点信息,所述节点信息包括发布节点的通信信息和协议密钥;
第三接收单元,用于所述发布节点接收订阅节点根据所述通信信息发送的通信请求,所述订阅节点为订阅所述第一话题的节点;
第二通信单元,用于所述发布节点响应所述通信请求,与所述订阅节点建立通信连接,并将使用所述协议密钥与所述订阅节点进行加密通信;
所述装置还包括:
第五发送单元,用于节点向节点管理器发送注册请求,注册请求用于请求注册为发布节点;所述第三认证单元,还用于所述节点接收节点管理器响应注册请求所发送的第一加密密文,第一加密密文由节点管理器使用第一密钥对随机字符串加密生成的;将第一加密密文发送给设备驱动程序,第一加密密文用于指示设备驱动程序使用第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;接收来自设备驱动程序的第二加密密文,并将第二加密密文发送给节点管理器,第二加密密文用于指示节点管理器使用第二密钥对第二加密密文进行解密,并将解密后的第二加密密文与随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
12.一种ROS节点的认证装置,其特征在于,包括:
第四接收单元,用于节点管理器接收来自节点的注册请求;
第四认证单元,用于所述节点管理器响应所述注册请求,与所述节点对应的设备驱动程序进行相互认证;
第五认证单元,用于在所述节点管理器与所述设备驱动程序相互认证通过后,所述节点管理器与所述设备驱动程序对自身对应的节点进行认证;
所述第四认证单元,还用于响应注册请求,生成随机字符串,并获取第一密钥; 所述节点管理器使用所述第一密钥对所述随机字符串进行加密,生成第一加密密文,并将所述第一加密密文通过所述节点发送至所述设备驱动程序,所述第一加密密文用于指示所述设备驱动程序使用所述第一密钥对第一加密密文解密,并使用第二密钥对解密后的第一加密密文加密以生成第二加密密文;所述节点管理器通过所述节点接收来自所设备驱动程序的所述第二加密密文,并使用所述第二密钥对所述第二加密密文进行解密;所述节点管理器将解密后的第二加密密文与所述随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述节点管理器与所述设备驱动程序相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述节点管理器与所述设备驱动程序相互认证失败。
13.一种ROS节点的认证装置,其特征在于,包括:
第六认证单元,用于节点与节点管理器通过节点对应的设备驱动程序进行相互认证;
第七认证单元,用于在认证通过后,所述设备驱动程序与所述节点管理器对所述设备驱动程序对应的节点进行认证;
所述第六认证单元,还用于所述设备驱动程序通过所述节点接收来自所述节点管理器的第一加密密文,所述第一加密密文是由所述节点管理器使用第一密钥对随机字符串加密生成的;所述随机字符串是由所述节点管理器响应节点向其发送的注册请求生成的;所述设备驱动程序使用所述第一密钥对第一加密密文解密,并将解密后的第一加密密文使用第二密钥加密,生成第二加密密文;所述设备驱动程序通过所述节点将所述第二加密密文发送给所述节点管理器,所述第二加密密文用于指示通过所述节点管理器使用所述第二密钥对所述第二加密密文进行解密,并将解密后的第二加密密文与所述随机字符串进行对比;其中,若所述解密后的第二加密密文与所述随机字符串一致,则表明所述设备驱动程序与节点管理器相互认证通过;若所述解密后的第二加密密文与所述随机字符串不一致,则表明所述设备驱动程序与节点管理器相互认证失败。
CN201810929818.XA 2018-08-15 2018-08-15 一种ros节点的通信方法、认证方法及装置 Active CN108927808B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810929818.XA CN108927808B (zh) 2018-08-15 2018-08-15 一种ros节点的通信方法、认证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810929818.XA CN108927808B (zh) 2018-08-15 2018-08-15 一种ros节点的通信方法、认证方法及装置

Publications (2)

Publication Number Publication Date
CN108927808A CN108927808A (zh) 2018-12-04
CN108927808B true CN108927808B (zh) 2022-04-05

Family

ID=64445266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810929818.XA Active CN108927808B (zh) 2018-08-15 2018-08-15 一种ros节点的通信方法、认证方法及装置

Country Status (1)

Country Link
CN (1) CN108927808B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385321B (zh) * 2018-12-28 2023-03-24 深圳市优必选科技有限公司 一种节点响应方法、系统及机器人
CN111723384B (zh) * 2019-03-22 2024-04-02 阿里巴巴集团控股有限公司 数据处理方法、系统及设备
CN110032176A (zh) * 2019-05-16 2019-07-19 广州文远知行科技有限公司 无人驾驶汽车的远程接管方法、装置、设备和存储介质
CN110191188B (zh) * 2019-06-02 2021-09-14 四川虹微技术有限公司 一种数据处理方法、区块链网络及存储介质
CN111866092B (zh) * 2020-06-30 2022-06-28 北京百度网讯科技有限公司 消息传输的方法、装置、电子设备和可读存储介质
CN114143136A (zh) * 2021-11-19 2022-03-04 山东新一代信息产业技术研究院有限公司 一种基于iros的can大消息通信方法、设备、存储介质
CN116761212B (zh) * 2023-07-27 2024-04-23 北京小米机器人技术有限公司 图像传输控制方法、装置、终端设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001121457A (ja) * 1999-10-22 2001-05-08 Matsushita Electric Ind Co Ltd ロボット装置
CN107589752A (zh) * 2017-07-25 2018-01-16 天津大学 无人机与地面机器人协同编队实现方法及系统
CN108347330A (zh) * 2017-01-24 2018-07-31 北京百度网讯科技有限公司 一种安全通信的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001121457A (ja) * 1999-10-22 2001-05-08 Matsushita Electric Ind Co Ltd ロボット装置
CN108347330A (zh) * 2017-01-24 2018-07-31 北京百度网讯科技有限公司 一种安全通信的方法和装置
CN107589752A (zh) * 2017-07-25 2018-01-16 天津大学 无人机与地面机器人协同编队实现方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ROS构建物联网环境的应用研究;汪浩;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215(第02期);第5-36页 *

Also Published As

Publication number Publication date
CN108927808A (zh) 2018-12-04

Similar Documents

Publication Publication Date Title
CN108927808B (zh) 一种ros节点的通信方法、认证方法及装置
EP3742696B1 (en) Identity management method, equipment, communication network, and storage medium
US11706026B2 (en) Location aware cryptography
CN109347835B (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
US11606341B2 (en) Apparatus for use in a can system
US10279775B2 (en) Unauthorized access event notification for vehicle electronic control units
CN108134789B (zh) 通过云进行设备间数据同步的方法和云服务器
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
CN110768938A (zh) 一种车辆安全通信方法及装置
KR20150079489A (ko) 실시간 통신 방법 및 시스템
EP4258593A1 (en) Ota update method and apparatus
US20200045540A1 (en) Method and system for securing communication links using enhanced authentication
CN106685644B (zh) 通信加密方法和装置、网关、服务器、智能终端和系统
US11516194B2 (en) Apparatus and method for in-vehicle network communication
CN113132087A (zh) 物联网、身份认证及保密通信方法、芯片、设备及介质
CN106789963B (zh) 非对称白盒密码加密方法和装置及设备
CN115378587A (zh) 密钥获取方法、装置、设备及可读存储介质
CN113312655A (zh) 基于重定向的文件传输方法、电子设备及可读存储介质
CN113630244A (zh) 面对通信传感网的端到端安全保障方法及边缘服务器
CN113141333B (zh) 入网设备的通信方法、设备、服务器、系统及存储介质
CN111901287B (zh) 一种为轻应用提供加密信息的方法、装置和智能设备
US20070198431A1 (en) Method and apparatus for transferring content license
CN113434837B (zh) 用于设备身份认证的方法、装置及智慧家庭系统
US10558412B2 (en) Content delivery network including mobile devices
US11570008B2 (en) Pseudonym credential configuration method and 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