| Internet-Draft | Relay Auth Transparency | June 2026 |
| Bezerra | Expires 25 December 2026 | [Page] |
Protocol-aware middleware (relays, bridges, gateways) re-serializes messages at their protocol frame boundary, silently discarding any bytes appended outside that boundary. Authentication material placed after the frame boundary by a sender is therefore stripped at every relay hop before reaching the receiver, with no error indication. This document identifies this behavior as a protocol design vulnerability class -- "relay-transparent authentication stripping" -- demonstrates it in three independent protocol stacks (MAVLink v2, ROS2/DDS CDR, and CAN/AUTOSAR SecOC), and specifies the architectural principle that authentication material must be carried as a first-class, independently addressable protocol unit to survive relay transit. Post-quantum cryptographic schemes (ML-DSA-87, ML-KEM-1024) are particularly susceptible due to their large signature and ciphertext sizes.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 25 December 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
Embedded and cyber-physical systems increasingly rely on protocol-aware middleware components -- MAVLink relays, DDS bridges, CAN gateways -- to route messages between endpoints that do not share a direct link. These components are a fixture of drone command-and- control networks (MAVProxy, mavlink-router), robotic systems (domain_bridge, ros1_bridge), and automotive Ethernet architectures (DoIP gateways).¶
A common pattern when adding authentication to existing embedded protocols is to append authentication material (HMAC tags, digital signatures, nonces) immediately after the protocol-defined frame boundary. This approach is attractive because it requires no changes to the protocol specification or to existing, unauthenticated endpoints.¶
However, any protocol-aware relay along the path re-serializes messages at the protocol frame boundary. Bytes outside that boundary are in the relay's "discard" region. Authentication material placed there is silently stripped at every relay hop, with no error indication to sender or receiver. The receiver obtains a valid, unauthenticated frame.¶
This document:¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
All of the following conditions must be true for this vulnerability to apply:¶
When all three conditions are met, the relay MUST (per its correct implementation of the protocol) discard bytes outside the frame boundary during re-serialization. No error is generated. The receiver has no indication that authentication material was ever present.¶
Precondition: An attacker controls, or is co-located with, a relay node on the sender-to-receiver path.¶
Attack sequence:¶
Attacker can:¶
The receiver cannot distinguish case (a) or (b) from a legitimately authenticated message, because authentication was never carried in the forwarded frame.¶
MAVLink v2 [MAVLINK] is the dominant command-and-control protocol for unmanned aerial systems. Each frame begins with a Start-of-Frame byte (0xFD) and a Length byte (LEN) at offset 1. The complete frame is exactly 10 + LEN + 2 bytes (10-byte header + LEN-byte payload + 2-byte CRC-16-MCRF4XX).¶
Any protocol-aware relay (MAVProxy, mavlink-router, QGroundControl) implements the following parse-and-forward loop:¶
start = stream.find(0xFD)
LEN = stream[start + 1]
frame = stream[start : start + 10 + LEN + 2]
if crc_valid(frame):
forward(frame)
¶
Bytes at offset (start + 10 + LEN + 2) onwards are in the "discard" region. Three authentication schemes were tested against a MAVLink v2 COMMAND_LONG frame (45 bytes), all stripped:¶
| Auth Scheme | Sent | Received | Stripped |
|---|---|---|---|
| HMAC-SHA3-256 (40 bytes) | 85 | 45 | 40 |
| Ed25519 (72 bytes) | 117 | 45 | 72 |
| ML-DSA-87 (4627 bytes) | 4672 | 45 | 4627 |
MAVLink v2 defines a signing extension (INCOMPAT_FLAGS bit 0x01) that appends a 13-byte block (link_id + timestamp + truncated HMAC-SHA256). This extension survives relay transit on relays explicitly configured for signing support. However:¶
The INCOMPAT_FLAGS mechanism therefore cannot be used to introduce relay-transparent post-quantum authentication without a flag-by-flag negotiation across all relay software in the deployment.¶
ROS2 uses Data Distribution Service (DDS) [DDS] for inter-process and inter-domain communication. Messages are serialized using CDR (Common Data Representation) according to the message type's IDL schema. The CDR frame boundary is defined by the IDL type schema: the deserializer reads exactly the number of bytes specified by the schema.¶
Two failure modes were observed:¶
CycloneDDS 11.0.1: The CDR deserializer reads exactly the schema-defined bytes. Bytes appended after the schema boundary arrive in the raw RTPS payload but are not transferred to any struct field. Re-serialization from the struct produces schema-sized bytes only. Authentication material is silently discarded.¶
FastDDS (rmw_fastrtps_cpp, the default ROS2 RMW): Reader history buffers are pre-allocated to the type's maximum CDR length. Payloads exceeding this limit are rejected before reaching the application callback. Appending authentication bytes to a CDR payload causes the message to be silently dropped -- denial of service rather than silent stripping, but with identical impact on authentication visibility.¶
Three authentication schemes were tested against geometry_msgs/msg/Twist (52-byte CDR payload):¶
| Auth Scheme | Sent | Received | Stripped |
|---|---|---|---|
| HMAC-SHA3-256 (32 bytes) | 84 | 52 | 32 |
| Ed25519 (64 bytes) | 116 | 52 | 64 |
| ML-DSA-87 (4627 bytes) | 4679 | 52 | 4627 |
Multi-domain deployments using domain_bridge, ros1_bridge, or zenoh-bridge-ros2dds compound this problem: each bridge deserializes and re-publishes a typed message, stripping any auth bytes at every hop.¶
Controller Area Network (CAN) frames are hardware-delimited by the DLC (Data Length Code) field, which specifies 0-8 bytes (CAN 2.0B) or 0-64 bytes (CAN FD). Bytes outside the DLC-specified range cannot be represented in a CAN frame.¶
AUTOSAR SecOC (Secure Onboard Communication) [SECOCASR] appends Freshness Values (FV) and MACs in PDU headers. CAN-to-Ethernet gateways (DoIP, SOME/IP) that are not SecOC-aware reassemble multi-frame ISO-TP sequences, extract the UDS application PDU, and re-serialize for the Ethernet domain. SecOC header fields outside the UDS PDU definition are not forwarded.¶
The architectural root cause is identical to the MAVLink and DDS cases: re-serialization at the protocol frame boundary strips any out-of-band authentication. This is relevant to vehicle OEMs conducting TARA under UNECE WP.29 R155 [R155]: the relay-transparency attack class should be assessed under the Tampering category for any gateway that handles safety-critical PDUs.¶
The relay-transparency vulnerability affects any deployment where:¶
Impact:¶
The vulnerability is analogous to CWE-345 (Insufficient Verification of Data Authenticity), but the root cause is architectural rather than implementation-level: correct implementations of the protocol specification cause the stripping.¶
Authentication material MUST be carried as a first-class, independently addressed protocol unit. The DDS middleware, MAVLink relay, or CAN gateway MUST forward this unit as an independent message -- whose byte boundary is defined by its own schema or frame header, not by its position relative to another message's boundary.¶
CleitonQ [CLEITONQ] implements relay-transparent post-quantum authentication for MAVLink v2 via the CLEITONQ_CHUNK encoding:¶
This approach requires no relay software changes and no INCOMPAT_FLAGS negotiation. Authentication material arrives intact at any receiver connected through any standard MAVLink relay.¶
For ROS2/DDS deployments, authentication material MUST be published as a separate typed message on a parallel topic:¶
/cmd_vel geometry_msgs/Twist (command payload) /cmd_vel/auth cleitonq_msgs/Auth (ML-DSA-87 sig + nonce)¶
The cleitonq_msgs/Auth type is defined in IDL. DDS middleware forwards it as any other typed message, with its byte boundary defined by its own schema. The receiving node:¶
For any protocol where the frame boundary is defined by a length field, a type schema, or a hardware-imposed maximum:¶
Authentication material SHOULD be carried in a protocol unit with its own independent framing -- its own length field, schema, or CAN arbitration ID -- so that any protocol-aware relay can identify, forward, or route it independently of the message being authenticated.¶
Authentication material SHOULD NOT be appended to an existing message frame beyond its protocol-defined boundary, regardless of whether the existing protocol version, receiver, or endpoint supports the authentication extension.¶
When designing an authentication extension for an existing embedded or cyber-physical protocol:¶
When adding authentication to an existing embedded protocol deployment without the ability to change relay software:¶
Post-quantum signature schemes defined in FIPS 204 [FIPS204] (ML-DSA, formerly CRYSTALS-Dilithium) produce signatures of 2420 to 4595 bytes (ML-DSA-44 to ML-DSA-87), compared to 64 bytes for Ed25519. Post-quantum key encapsulation (FIPS 203 [FIPS203], ML-KEM-1024) produces a ciphertext of 1568 bytes.¶
These sizes make the relay-transparency vulnerability significantly more consequential for PQC deployments than for classical ones:¶
The CNSA 2.0 suite [CNSA20] requires ML-KEM and ML-DSA for all National Security Systems after 2030. Defense and aerospace deployments transitioning to PQC should assume relay-aware authentication transport is mandatory, not optional.¶
This document describes a vulnerability class. The mitigations in Section 6, Section 7, and Section 8 address the class.¶
Implementations following the parallel-message pattern (Section 6.2, Section 6.3) MUST ensure that:¶
This document has no IANA actions.¶