摘要
- RFC 2367 在特权密钥管理进程与本机 Key Engine 之间定义 PF_KEY socket API;回复的权威范围止于这条本地接口。
SADB_GET、SADB_DUMP以及LARVAL、MATURE、DYING、DEAD描述本地记录的生命周期,不等于对端身份、策略适用或报文使用证明。- 完整结论要连接调用者权限、PF_KEY 事务、密钥保管、远端协商、SPD 决策、逐包 AH/ESP 处理、远端接收与应用结果。
RFC 2367 的概念图把系统分成三条路径。密钥管理守护进程通过 PF_KEY 与本机 Key Engine 通信;它通过 PF_INET 或 PF_INET6 与远端密钥管理实体通信;内核里的 IPsec 又通过内部接口取用安全关联。第一条路径成功,并不会替第二条和第三条作证。
PF_KEY 对本机状态拥有很强的控制力。SADB_ADD 可以直接加入完整 SA;SADB_GETSPI 先取得 SPI,再由 SADB_UPDATE 补齐参数;SADB_GET 取回本机副本。ACQUIRE、EXPIRE、DELETE 和 FLUSH 分别表达请求、到期、删除与清空。这套 API 统一的是控制面语言,不是端到端仪式。
“成熟”只是一次数据库迁移
LARVAL 表示已由 GETSPI 创建;MATURE 表示记录完成 ADD 或 UPDATE;DYING 与 DEAD 对应软、硬生存期。词语很醒目,含义却很窄。它们没有说明远端是否安装反方向 SA,是否认证并授权了正确身份,也没有说明任何报文匹配过这条记录。
字段同样不能越权。SPI 是查找坐标,不是凭证;算法编号是配置,不是密钥仍受保护或运算已经成功的证明;生存期是本机计量,不是双方共同时间线。RFC 2367 还允许零值明确表示该 SA 不使用认证或加密。看见字段齐全时,审计者更应逐项读语义,而不是把它压成“隧道安全”。
SADB_DUMP 最容易制造全景幻觉。它可以逐条返回本机 Key Table,并以零序号标记结束。然而 RFC 把它定位为调试用途,不供生产依赖。PF_KEY 消息传递本身也不保证成功;内核或 socket 缓冲区耗尽时可能丢消息。一次快照可以在本机准确,却在历史上缺失,并与对端当前状态不一致。
写入者的身份属于安全结果
普通应用不应直接使用 PF_KEY。只有可信、特权进程才能打开 raw socket;手工接口对本机 SA 拥有广泛控制。RFC 2367 明确警告:若非特权用户也能创建、读取、修改或删除这些记录,操作系统便无法提供相应安全服务。
所以审计的第一条记录不是 SA,而是调用者:哪个进程、哪个可执行文件、哪一代配置、谁批准、实际具有什么权限。密钥从哪里生成或取得,明文在哪些边界内出现,谁可读取,也必须单独保存证据但绝不能公开秘密。UPDATE 回报不向所有监听者返回密钥,正说明“能看见状态”与“保管着密钥”不是一回事。
PF_KEY 之外仍有三道门
RFC 4301 让 SPD 在 BYPASS、DISCARD 与 PROTECT 之间选择。SAD 条目可能在创建它的 SPD 规则变更或删除后继续存在;手工 SA 也可能没有对应 SPD。存在不等于适用。
RFC 7296 把远端身份认证、PAD 授权、流量选择器和双向 Child SA 放进 IKEv2 交换。丢包时,两端还可能在一段时间内持有不同状态。本机的 MATURE 无法复原对端做过的判断。
RFC 4303 随后才让 ESP 逐包执行:选择服务、出站变换、入站完整性验证。再往后还有转发、远端接收、传输层与应用授权。计数器增加可以支撑一个环节,不能替代后面的环节。
可辩护的证据链至少包括:特权调用者;精确的 PF_KEY 请求、回复与错误;当前 SAD 和 SPD 代际;受保护的密钥来源;已认证授权的远端交换;目标流量的策略匹配;AH/ESP 处理结果;远端独立观测;应用响应。共同关联标识与时间戳把它们连接起来,缺口则应原样保留。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

