Support for Secure publish subscribe messaging such as Open DDS for use in robotic swarms

Does ROS use Open DDS (Real time publish subscribe (RTPS)) for communication? I have heard that it does. However, Open DDS does not yet support the Secure portion of the specification. If ROS does not use DDS, what is used for robot to robot communication or messaging? Such messaging or other communication strategies are important in robotic swarms. I am working on a contract with DARPA to implement Secure messaging done in a distributed manner such as is done with Blockchains. We are considering using Open DDS, but will need to find a way to add the Secure part of the specification. I would be interested to hear from anyone who has an overlapping interest in building support for such secure messaging.

Cheers!

@Fierozen I am not familiar with Open DDS but suggest you take a look at Fast-RTPS by eProsima. Their code is Apache 2 License as well so using it for your application my be applicable.

At the moment they support encryption and authentication.

If you are keen to stay with Open DDS then the OMG group that is responsible for the DDS specification has a specification for the security plug-in as well that you could implement.

1 Like

Can you please clarify if you are referring specifically to Open DDS project which provides one implementation of the DDS specification or to DDS as a standard in general?

ROS 2 has an abstraction layer for the communication - the ROS middleware interface (RMW). For that interface multiple implementations exist:

  • Officially supported in the latest release (Ardent Apalone):

    • FastRTPS from eProsima
    • Connext from RTI
      • both of them support (at least parts of) the DDS Security specification
    • OpenSplice from ADLINK
  • Other RMW implementations contributed by the community (which I am aware of):

    • CoreDX from TwinOaks
    • OPC UA

I am not aware of any RMW implementation based on “Open DDS”.

DDS security spec defined the security “plugins”

  • Authentication
  • Cryptographic
  • Access Control
  • Tagging
  • Log

Fast-RTPS implements first two which are required for DDS security.

BTW, Fast-RTPS security just supports openssl (hardcoded) at the moment. To enhance that, Arm is proposing a “Generic Crypto API” for DDS security which can support multiple underlying crypto libraries (e.g. openssl, tom, mbedTLS, …). Especially to support Arm TrustZone technologies which provide HW based security solution with low cost. The discussion is here - ROS2 and DDS Security enhancement on arm platforms

1 Like

I was referring to the specific project with name Open DDS. However, you have provided me valuable information as I am secondarily interested in DDS in general. And now I plan to investigate those other implementation of RMW: FastRTPS, Connext (which I am aware of), OpenSplice, CoreDX, and OPC UA. Thank you.