|
密钥保护
一、密钥生命期
生命期设置决定何时生成新密钥。在一定的时间间隔内重新生成新密钥的过程称为"动态密钥更新"或"密钥重新生成"。密钥生命期设置决定了在特定的时间间隔之后,将强制生成新密钥。例如,假设一次通信需要1万秒,而我们设定密钥生命期为1千秒,则在整个数据传输期间将生成10个密钥。在一次通信中使用多个密钥保证了即使攻击者截取了单个通信密钥,也不会危及全部通信安全。密钥生命期有一个缺省值,但"主密钥"和"会话密钥"生命期都可以通过配置修改。无论是哪种密钥生命期时间到,都要重新进行SA协商。单个密钥所能处理的最大数据量不允许超过100兆。
二、会话密钥更新限制
反复地从同一个的"主密钥"生成材料去生成新的"会话密钥"很可能会造成密钥泄密。"会话密钥更新限制"功能可以有效地减少泄密的可能性。 例如,两台主机建立安全关联后,A先向B发送某条消息,间隔数分钟后再向B发送另一条消息。由于新的SA刚建立不久,因此两条消息所用的加密密钥很可能是用同一"材料"生成的。如果想限制某密钥"材料"重用次数,可以设定"会话密钥更新限制"。譬如,设定"会话密钥更新限制"为5,意味着同一"材料"最多只能生成5个"会话密钥"。
若启用"主密钥精确转发保密(PFS)",则"会话密钥更新限制"将被忽略,因为PFS 每次都强制使用新"材料"重新生成密钥。将"会话密钥更新限制"设定为1和启用PFS效果是一样的。如果既设定了"主密钥"生命期,又设定了"会话密钥更新限制",那么无论哪个限制条件先满足,都引发新一轮SA协商。在缺省情况下,IPSec不设定"会话密钥更新限制"。
三、Diffie-Hellman(DH)组
DH组决定DH交换中密钥生成"材料"的长度。密钥的牢固性部分决定于DH组的强度。IKE共定义了5个DH组,组1(低)定义的密钥"材料"长度为768位;组2(中)长度为1024位。密钥"材料"长度越长,所生成的密钥安全度也就越高,越难被破译。
DH组的选择很重要,因为DH组只在第一阶段的SA协商中确定,第二阶段的协商不再重新选择DH组,两个阶段使用的是同一个DH组,因此该DH组的选择将影响所有"会话密钥"的生成。
在协商过程中,对等的实体间应选择同一个DH组,即密钥"材料"长度应该相等。若DH组不匹配,将视为协商失败。
四、精确转发保密PFS(Perfect Forward Secrecy)
与密钥生命期不同,PFS决定新密钥的生成方式,而不是新密钥的生成时间。PFS保证无论在哪一阶段,一个密钥只能使用一次,而且,生成密钥的"材料"也只能使用一次。某个"材料"在生成了一个密钥后,即被弃,绝不用来再生成任何其他密钥。这样可以确保一旦单个密钥泄密,最多只可能影响用该密钥加密的数据,而不会危及整个通信。
PFS分"主密钥"PFS和"会话密钥"PFS,启用"主密钥"PFS,IKE必须对通信实体进行重新认证,即一个IKE SA只能创建一个IPsec SA,对每一次第二阶段SA的协商,"主密钥"PFS都要求新的第一阶段协商,这将会带来额外的系统开销。因此使用它要格外小心。
然而,启用"会话密钥"PFS,可以不必重新认证,因此对系统资源要求较小。"会话密钥"PFS只要求为新密钥生成进行新的DH交换,即需要发送四个额外消息,但无须重新认证。 PFS不属于协商属性,不要求通信双方同时开启PFS。"主密钥"PFS和"会话密钥"PFS均可以各自独立设置。 |
|