4.5. SA 与密钥管理
所有 IPsec 实现都必须(MUST)同时支持手动和自动的 SA 与密码密钥管理。IPsec 协议 AH 和 ESP,在很大程度上独立于相关的 SA 管理技术,尽管所涉及的技术确实会影响这些协议提供的某些安全服务。
对安全服务的影响
例如,AH 和 ESP 可用的可选防重放服务要求使用自动 SA 管理。此外,IPsec 所使用的密钥分发粒度,决定了所提供的认证粒度。一般而言,AH 和 ESP 中的数据源认证,受以下因素限制:与完整性算法(或创建此类秘密的密钥管理协议)一起使用的秘密在多个可能源之间共享到何种程度。
下文描述两类 SA 管理的最低要求。
4.5.1. 手动技术
最简单的管理形式是手动管理,即由人员为每个系统手动配置与其他系统安全通信相关的密钥材料(keying material)和 SA 管理数据。手动技术在小型静态环境中实用,但扩展性不好。
示例用例:公司可以在多个站点的安全网关中使用 IPsec 创建虚拟专用网络(VPN)。如果站点数量较少,并且所有站点都处于单一管理域(administrative domain)的管辖之下,那么这可能是手动管理技术可行的场景。在这种情况下,安全网关可以使用手动配置的密钥,有选择地保护发往组织内其他站点以及来自这些站点的流量,而不保护发往其他目的地的流量。
当只需要保护选定的通信时,这种方式也可能合适。类似的论点也适用于在组织内部为少量主机和/或网关完全使用 IPsec。手动管理技术通常采用静态配置的对称密钥,不过也存在其他选项。
4.5.2. 自动 SA 与密钥管理
IPsec 的广泛部署和使用,需要一种互联网标准、可扩展、自动化的 SA 管理协议。需要此类支持,以方便使用 AH 和 ESP 的防重放功能,并支持按需创建 SA,例如用于面向用户和面向会话的密钥分发。(注意,“为某个 SA 重新密钥(rekeying)”的概念实际上意味着创建一个带有新 SPI 的新 SA,这一过程通常意味着使用自动 SA/密钥管理协议。)
默认协议:选择用于 IPsec 的默认自动密钥管理协议是 IKEv2 [Kau05]。本文档假定密钥管理协议能够提供某些 IKEv1 不支持的功能。可以(MAY)使用其他自动 SA 管理协议。
每个 SA 多个密钥
当使用自动 SA/密钥管理协议时,该协议的输出用于为单个 SA 生成多个密钥。这也会发生,因为 IKE 创建的两个 SA 各自使用不同的密钥。如果同时使用完整性和机密性,则至少需要四个密钥。此外,某些密码算法可能需要多个密钥,例如 3DES。
密钥管理系统可以为 SA 所需的每个密钥提供单独的位串(string of bits),也可以生成单个位串并从中提取所有密钥。