8.2.2.1 域规则
域规则允许将特定的安全规则应用于DDS域,这些规则定义了与DDS域相关的不同方面。以下是域规则的一些关键内容:
主要规则
发现数据保护:确定发现数据是否需要保护以及保护类型,可以选择仅使用消息认证码(MAC)或加密后再进行MAC处理。
RTPS消息加密:指定整个RTPS消息是否应被加密。
消息存活性保护:决定消息的存活性(liveliness)信息是否需要保护。
未认证参与者访问控制:
- 指定未认证的DomainParticipant是否可以访问未受保护的发现元流(discovery metatraffic)和未受保护的话题(Topics)。
认证参与者访问控制:指明已认证的DomainParticipant在不评估访问控制策略的情况下是否可以访问该域。
安全的数据写入:定义某个话题上的发现信息是否应通过安全的数据写入器发送。
话题访问权限限制:限制对某些话题的访问,仅允许具有适当权限的DomainParticipant进行读取。
元数据保护:确定某个话题上发送的元数据是否需要被保护,以及使用何种类型的保护。
负载数据保护:规定某个话题上的负载数据应如何被保护及其保护类型。
评估顺序
- 域规则按照文档中出现的顺序进行评估。只有当一个特定DomainParticipant所属的DDS Domain_Id与域部分匹配时,该规则才会适用。
- 如果有多个规则匹配,将只应用第一个匹配到的规则。
- 每个域规则由
<domain_rule>
XML元素标签界定。
配置选项
每个域规则可能还包含附加配置,具体如下:
NONE
:不应用任何密码学转换。SIGN
:基于消息认证码(MAC)的密码学转换,且没有额外加密。ENCRYPT
:对数据进行加密,并随后在密文上计算MAC,这种方法称为Encrypt-then-MAC。
元素和部分总结表
类型 | 名称 | XML元素标签 | 值 |
---|---|---|---|
元素 | 允许未经验证参与者 | <allow_unauthenticated_participants> |
false, true |
元素 | 启用加入访问控制 | <enable_join_access_control> |
false, true |
元素 | 发现数据保护类型 | <discovery_protection_kind> |
SIGN, ENCRYPT, NONE |
元素 | 存活性保护类型 | <liveliness_protection_kind> |
SIGN, ENCRYPT, NONE |
元素 | RTPS保护类型 | <rtps_protection_kind> |
SIGN, ENCRYPT, NONE |
部分 | 域 | <domains> |
|
部分 | 主题访问规则 | <topic_access_rules> |
结论
以上描述构成了Fast DDS领域内实施安全机制的重要框架。通过清晰地定义每项规章制度及其配置选项,可以确保系统内部通信和资源管理达到所需级别的安全防护。这种结构化的方法也简化了开发人员在实现和维护DDS系统时所需遵循的标准。
内容由零声教学AI助手提供,问题来源于学员提问