Access control configuration

Access Control configuration consists of a governance document and a permissions document. Both documents must be signed by the Permissions CA in S/MIME format. To validate remote permissions, Participants use their own permissions CA.

Note

All permissions CA Certificates must be the same for all participants.

The signed document must be formatted as follows:

This corresponds to the mime-type application/pkcs7-signature.

Note

The signer certificate should be be included within the signature.

Governance document

The governance document is an XML file that defines the security behavior of domains and topics. It is specified in OMG DDS security (Version 1.1 Section 9.4.1.2.3). For an example of a governance document, see Create a signed governance document.

Note

To establish communication with a remote node, the options that are specified in a governance document must match with those in the remote node.

Protection kinds

The domain governance document provides a means for the application to configure the kinds of cryptographic transformation applied to the complete RTPS message, certain RTPS submessages, and the SerializedPayload RTPS submessage element that appears within the data.

../_images/rtps_message_structure.png

The configuration allows specification of five protection levels:

  • NONE

    Indicates that no cryptographic transformation is applied.

  • SIGN

    Indicates that the cryptographic transformation is a MAC, that is, there is no encryption.

  • ENCRYPT

    Indicates that the cryptographic transformation is an encryption, followed by a MAC computed on the ciphertext, also known as Encrypt-then-MAC.

  • SIGN_WITH_ORIGIN_AUTHENTICATION

    Indicates that the cryptographic transformation is a set of MACs, that is, no encryption is performed. This cryptographic transformation creates a first common authenticationcode (similar to where the Protection Kind is SIGN). The cryptographic transformation creates additional authentication codes, each produced with a different secret key. The additional MACs prove to the receiver that the sender originated the message, preventing other receivers from impersonating the sender.

  • ENCRYPT_WITH_ORIGIN_AUTHENTICATION.

    Indicates that the cryptographic transformation is an encryption, followed by a MAC computed on the ciphertext, followed by additional authentication codes. Each of the additional authentication codes use a different secret key. The encryption and first (common) authentication code is similar to ones produced when the Protection Kind is ENCRYPT. The additional authentication codes are similar to the ones produced when the Protection Kind is SIGN_WITH_ORIGIN_AUTHENTICATION.

Participant attributes

  • Allow Unauthenticated Participants

    For communication with non-secure participants. If this option is enabled, a secure participant can only communicate with a non-secure participant via non-protected topics.

  • Enable Join Access Control

    If this option is enabled, remote participant permissions are checked to see if its subject name is allowed to create a topic.

  • Discovery Protection Kind

    This is the protection attribute for discovery communication when it is enabled for topic. For available options, refer to the OMG DDS security specification.

  • Liveliness Protection Kind

    Protection attribute for liveliness communication when it is enabled for topic. For available options, refer to the OMG DDS security specification.

  • RTPS Protection Kind

    Protection attribute for all messages on the wire. For available options, refer to the OMG DDS security specification. If encryption is selected for RTPS, there is no need to encrypt submessages (metadata_protection_kind) and payloads (data_protection_kind) which are defined in topic settings.

Topic attributes

  • Enable Discovery protection

    If enabled, discovery is protected according to Discovery Protection Kind attribute of the corresponding participant.

  • Enable Liveliness protection

    If enabled, liveliness is protected according to Liveliness Protection Kind attribute of the corresponding participant.

  • Enable Read Access Control

    If enabled, the permissions document is checked if the participant is allowed to create a datareader for the related topic.

  • Enable Write Access Control

    If enabled, the permissions document is checked if the participant is allowed to create a datawriter for the related topic.

  • Metadata protection Kind

    Protection attribute for submessages.

  • Data protection Kind

    Protection attribute for data payload.

There are different settings for different domain ranges. The domain rules are evaluated in the same order as they appear in the document. A rule only applies to a particular DomainParticipant if the domain Section matches the DDS domain_id to which the participant belongs. If multiple rules match, the first rule that matches is the only one that applies.

The topic access rules are evaluated in the same order as they appear within the <topic_access_rules> Section. If multiple rules match the first rule that matches is the only one that applies.

fnmatch pattern matching can be used for topic expressions including the following patterns:

Pattern

Meaning

*

matches everything

?

matches any single character

[seq]

matches any character in seq

[!seq]

matches any character not in seq

Permissions document

The permissions document is an XML file that contains the permissions of the domain participant and binds them to the subject name of the DomainParticipant. It is specified in OMG DDS security (Version 1.1 Section 9.4.1.3).

For an example of a permissions document, refer to: Create a signed permissions document.

Validity period

The validity period is checked before creating a participant. The validity period is also checked during handshake with a remote participant.

Note

An expired remote permissions document prevents communications from being established.

Subject name

The subject name must match with Identity Certificate subject. It is checked during a create participant, and during handshake with a remote participant. Use the following openssl command to get subject name from identity certificate:

openssl x509 -noout -subject -nameopt RFC2253 -in <identity_certificate_file.pem>

Participant permissions rules

Participant permissions are defined by set of rules. The rules are applied in the same order that appear in the document.

If the criteria for the rule matches the domain_id join and/or publish or subscribe operation that is being attempted, then the allow or deny decision is applied.

If the criteria for a rule does not match the operation being attempted, the evaluation shall proceed to the next rule.

If all rules have been examined without a match, then the decision specified by the “default” rule is applied. The default rule, if present, must appear after all allow and deny rules. If the default rule is not present, the implied default decision is DENY.

The matching criteria for each rule specify the domain_id, topics (published and subscribed), the partitions (published and subscribed), and the data-tags associated with the DataWriter and DataReader.

For the grant to match, there must be a match of the topics, partitions, and data-tags criteria. This is interpreted as an AND of each of the criteria. For a specific criterion to match (for example, <Topics>) it is enough that one of the topic expressions listed matches (that is, an OR of the expressions with the <Topics> section).

For topic expressions and partition expressions, use fnmatch pattern matching.