Safeguard
Developer Tools•

ROS 2 DDS-Security plugins explained: authenticate, authorize, encrypt

The three DDS-Security plugins ROS 2 uses, what each protects against, which files they need, and why two of the five plugin interfaces are skipped.

Safeguard Security Team
3 min read

ROS 2 uses three of the five DDS-Security plugin interfaces: authentication, access control and cryptography. Authentication proves who a participant is, access control limits what it can do, and cryptography encrypts and signs the traffic. The other two interfaces, logging and data tagging, are not used.

Authentication

The design document defines this plugin as verifying the identity of a given domain participant. ROS 2 uses the built in PKI based plugin, which relies on keys and x.509 certificates signed by a trusted certificate authority.

What it protects against: an unknown machine joining your domain and posing as a node. Without it, access control has nothing reliable to attach to. The document puts it plainly: without a securely confirmed identity it would be very hard to make sure a ROS identity could only reach specific topics.

Access control

This plugin enforces restrictions on the DDS operations an authenticated participant may perform. It can restrict which domains a participant joins, and which topics it may read or write. The built in plugin needs governance and permissions files.

Think of governance as domain level rules and permissions as per participant rules. A camera driver might be allowed to publish images and read nothing. A planner might read images and publish velocity commands. A diagnostics tool might read everything and publish nothing.

What it protects against: a compromised or misconfigured node that sends commands it should never send.

Cryptography

This plugin handles encryption, signing and hashing. ROS 2 uses the built in AES-GCM-GMAC plugin, which provides authenticated encryption.

What it protects against: someone on the same network reading camera feeds, maps or telemetry, and someone altering messages in flight.

Why only three of five

The document states ROS 2 uses only these three of the five plugin interfaces. Logging and data tagging are omitted because they are not required for DDS-Security compliance. If you need security event logging, you will gather it at the host and network level instead.

Planning around the plugins

  • Certificates have lifetimes. Decide who renews them and how robots in the field get new ones.
  • Permissions files are code. Review them like code, and store them with version history.
  • Encryption has a cost. Measure latency on the real hardware before you encrypt high rate topics.
  • Test failure modes. A node with an expired certificate should fail in a way an operator can diagnose.

Reading the files without fear

Governance and permissions files look intimidating, but they are structured documents that say which domain a participant may join and which topics it may publish or subscribe to. Start with a draft that mirrors what your system does today, then remove access nobody needs. A review question that works well: if this node were taken over, what is the worst thing it could publish? Tighten the permissions until the answer is acceptable.

Quick check

Can I use access control without authentication?

Not usefully. Permissions attach to an identity, and authentication is what makes that identity trustworthy.

Does encryption replace access control?

No. Encryption hides traffic from outsiders. Access control stops an authenticated but over privileged node from doing things it should not.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.