NetLabel Linux 安全模块接口¶
Paul Moore, paul.moore@hp.com
2006 年 5 月 17 日
概述¶
NetLabel 是一种可以设置和检索网络数据包安全属性的机制。它旨在供希望为几种不同的数据包标记协议使用通用代码库的 LSM 开发人员使用。 NetLabel 安全模块 API 在 ‘include/net/netlabel.h’ 中定义,但下面给出了简要概述。
NetLabel 安全属性¶
由于 NetLabel 支持多种不同的数据包标记协议和 LSM,它使用安全属性的概念来指代数据包的安全标签。 NetLabel 安全属性由 NetLabel 头文件中的 ‘netlbl_lsm_secattr’ 结构定义。在内部,NetLabel 子系统根据 NetLabel 的构建时和运行时配置,将安全属性转换为正确的底层数据包标签,并从底层数据包标签转换而来。LSM 开发人员负责将 NetLabel 安全属性转换为其特定 LSM 所使用的任何安全标识符。
NetLabel LSM 协议操作¶
这些是允许 LSM 开发人员操作传出数据包上的标签以及读取传入数据包上的标签的函数。存在用于直接操作套接字以及 sk_buff 的函数。这些高级函数根据管理员如何配置 NetLabel 子系统转换为低级协议操作。
NetLabel 标签映射缓存操作¶
根据具体配置,网络数据包标签和内部 LSM 安全标识符之间的转换可能会很耗时。NetLabel 标签映射缓存是一种缓存机制,一旦建立映射,就可以用来绕过大部分开销。一旦 LSM 接收到数据包,使用 NetLabel 解码其安全属性,并将安全属性转换为 LSM 内部标识符,LSM 就可以使用 NetLabel 缓存函数将 LSM 内部标识符与网络数据包的标签关联起来。这意味着在未来,当传入数据包与缓存值匹配时,不仅会绕过内部 NetLabel 转换机制,而且还会绕过 LSM 转换机制,这应该会大大降低开销。