📄 rfc2409.txt
字号:
同样,如果ISAKMP的实现知道很快就需要SA时(例如,替换一个很快就到期的SA),就可
以在需要它之前建立一个新的SA。
基本的ISAKMP规范描述了协议的一方可以通知另一方一些活动的条件——删除安全联盟或对
一些错误的响应,如签名校验失败或负载解密失败。强烈建议这些信息交换在任何情况下都不要响
应。否则会引致“通知之战”——对一个消息的理解失败则发出通知给对方,而对方又不能理解,
又发出自己的通知,但这仍然是不可理解的。
10.安全考虑
本文档讨论的是一种混合协议,将部分的Oakley以及部分的SKEME和ISAKMP相合并,用来
以一种安全和经过验证的方式协商安全联盟,并为之衍生密钥材料。
机密性由使用协商的加密算法来保证。验证由使用协商的方法来保证:数字签名算法;支持加
密的公钥算法;或共享密钥。交换的机密性和验证相当于作为ISAKMP安全联盟的一部分来协商的
属性。
使用快速模式来不停的重新生成密钥会消耗Diffie-Hellman共享秘密的信息量。实现者应该注意
到这个事实并在相同幂期间限制快速模式的交换。
本协议是可以实现密钥材料和身份的完全后继保密(PFS)的,通过指定Diffie-Hellman组,并
在KE负载中传递公共值,ISAKMP双方可以建立密钥的PFS——而身份应该由ISAKMP SA的
SKEYID_e来保护,因此不需要由PFS来保护。如果密钥和身份的PFS都需要,则ISAKMP双方必
须对每个ISAKMP SA只建立一个非ISAKMP 安全联盟(例如:IPsec安全联盟)。密钥和身份的PFS
通过在建立单个非ISAKMP SA基础上删除ISAKMP SA(可选的发出DELETE消息)来完成。这种
方式中,第一阶段协商唯一的和单个第二阶段协商相绑定,同时在第一阶段协商中建立的ISAKMP
SA 就不再使用了。
从使用已定义的任何组的Diffie-Hellman交换中衍生出的密钥的强度依靠于组本身的强度、使用
的指数的大小、以及使用的随机数产生器提供的信息量。根据这些输入很难确定任何定义组的密钥
强度。缺省的Diffie-Hellman组(第一组)和一个强随机数产生器以及不少于160比特的指数一起使
用时,足够用于DES了。第二组到第四组提供更强的安全性。实现中在建立策略和协商安全参数时
应该考虑到这些保守的估计。
注意,这些限制是对Diffie-Hellman组自身的。IKE中没有限制使用更强的组,也不会减弱从更
强组中得到的强度。事实上,IKE的可扩展的框架支持定义更多的组;使用椭圆曲线组会大大的增
加使用更小的数字时的强度。
在已定义的组没有提供足够强度的情况下,可以使用新组模式来交换能提供必要强度的
Diffie-Hellman组。具体的实现有责任检查提供的组的基本性质并且能独立的达到估计的强度。
总是假设交换中的Diffie-Hellman指数在使用过后就从内存中删除了。更为具体的,这些指数不
能从长期存在的秘密,如伪随机数产生器中的种子(seed)中衍生。
IKE交换维持不断改变的初始向量(IV),即最后的消息的最后的密文块就是下一个消息的IV。
为阻止重播(或有着有效cookie的伪造消息)引起同步IKE产生交换,实现中不能立即更新IV,除
非解密的消息通过了基本的完整性检查并且被用于实际改变IKE状态机——也就是说,这不是一个
重播消息。
虽然主模式的最后一个传输往返(以及积极模式可选的最后一个消息)是加密的,但严格的说,
它们并没有验证。一个密文形式的主动置换攻击会导致负载损坏。如果这样的攻击破坏了强制性的
负载,它将会由于验证失败而被发现,但如果它破坏了任何可选的负载(例如链接到主模式交换中
最后一个消息前的通知负载),它就不会被发觉。
11.IANA考虑
本文档包含许多由IANA维护的“幻数”。这一节解释由IANA使用来在每一个列表中分配另外
的数字的标准。
11.1 属性类
本协议中协商的属性由它们的种类来识别。分配一个新种类的请求必须伴随一个描述这些属性
的使用的标准跟踪RFC。
11.2 加密算法类
在本文档中使用的加密算法种类的值定义了一个使用的加密算法。分配一个新加密算法值的请
求必须伴随对一个标准跟踪或信息RFC的参考,或对描述这个算法的已出版的密码学书籍的参考。
11.3 hash算法
在本文档中使用的hash算法中类的值定义了一个使用的hash算法。分配一个新hash算法值的
请求必须伴随对一个标准跟踪或信息RFC的参考,或对描述这个算法的已出版的密码学书籍的参考。
由于在IKE中,密钥衍生和密钥扩展使用hash算法的HMAC形式,分配一个新hash算法值的请求
必须考虑到hash算法自身的密码的特性——例如它的抗冲突性。
11.4 组描述和组类型
组描述种类的值标识在Diffie-Hellman交换中使用的组。组类型类的值定义组的类型。分配一个
新组的请求必须伴随对一个描述这个组的标准跟踪或信息RFC的参考。分配一个新组类型的请求必
须伴随对一个标准跟踪或信息RFC的参考,或对描述这个新类型的已出版的密码学书籍或数学书籍
的参考。
11.5 存活期类型
存活期类型种类的值定义了ISAKMP安全联盟中使用的存活期类型。分配新存活期类型的请求
必须伴随一个对这个类型的单位和它的到期值的详细的描述。
12. 鸣谢
本文档是和Hugo Krawczyk,Douglas Maughan,Hilarie Orman, Mark Schertler, Mark Schneider,
以及Jeff Turner通过仔细榷商而得的。它依靠于由他们编写的协议。如果没有他们的兴趣和贡献,
本文档是不可能写成的。
特别对Rob Adams,Cheryl Madson,Derrell Piper,Harry Varnis,和Elfed Weaver一直的技术支
持,鼓励以及各种完整性检查表示感谢。
我们也要感谢许多IPSec工作组的成员,他们在过去的许多年里一直对本协议的发展做着贡献。
13.参考
[CAST] Adams, C., "The CAST-128 Encryption Algorithm", RFC 2144,
May 1997.
[BLOW] Schneier, B., "The Blowfish Encryption Algorithm", Dr.
Dobb's Journal, v. 19, n. 4, April 1994.
[Bra97] Bradner, S., "Key Words for use in RFCs to indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[DES] ANSI X3.106, "American National Standard for Information
Systems-Data Link Encryption", American National Standards
Institute, 1983.
[DH] Diffie, W., and Hellman M., "New Directions in
Cryptography", IEEE Transactions on Information Theory, V.
IT-22, n. 6, June 1977.
[DSS] NIST, "Digital Signature Standard", FIPS 186, National
Institute of Standards and Technology, U.S. Department of
Commerce, May, 1994.
[IDEA] Lai, X., "On the Design and Security of Block Ciphers," ETH
Series in Information Processing, v. 1, Konstanz: Hartung-
Gorre Verlag, 1992
[KBC96] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
Hashing for Message Authentication", RFC 2104, February
1997.
[SKEME] Krawczyk, H., "SKEME: A Versatile Secure Key Exchange
Mechanism for Internet", from IEEE Proceedings of the 1996
Symposium on Network and Distributed Systems Security.
[MD5] Rivest, R., "The MD5 Message Digest Algorithm", RFC 1321,
April 1992.
[MSST98] Maughhan, D., Schertler, M., Schneider, M., and J. Turner,
"Internet Security Association and Key Management Protocol
(ISAKMP)", RFC 2408, November 1998.
[Orm96] Orman, H., "The Oakley Key Determination Protocol", RFC
2412, November 1998.
[PKCS1] RSA Laboratories, "PKCS #1: RSA Encryption Standard",
November 1993.
[Pip98] Piper, D., "The Internet IP Security Domain Of
Interpretation for ISAKMP", RFC 2407, November 1998.
[RC5] Rivest, R., "The RC5 Encryption Algorithm", Dr. Dobb's
Journal, v. 20, n. 1, January 1995.
[RSA] Rivest, R., Shamir, A., and Adleman, L., "A Method for
Obtaining Digital Signatures and Public-Key Cryptosystems",
Communications of the ACM, v. 21, n. 2, February 1978.
[Sch96] Schneier, B., "Applied Cryptography, Protocols, Algorithms,
and Source Code in C", 2nd edition.
[SHA] NIST, "Secure Hash Standard", FIPS 180-1, National Institue
of Standards and Technology, U.S. Department of Commerce,
May 1994.
[TIGER] Anderson, R., and Biham, E., "Fast Software Encryption",
Springer LNCS v. 1039, 1996.
附录A
下面是是DES的弱和半弱密钥的列表。这些密钥从[Sch96]中得来。所有的密钥以16进制列出。
DES 弱密钥:
0101 0101 0101 0101
1F1F 1F1F E0E0 E0E0
E0E0 E0E0 1F1F 1F1F
FEFE FEFE FEFE FEFE
DES 半弱密钥:
01FE 01FE 01FE 01FE
1FE0 1FE0 0EF1 0EF1
01E0 01E0 01F1 01F1
1FFE 1FFE 0EFE 0EFE
011F 011F 010E 010E
E0FE E0FE F1FE F1FE
FE01 FE01 FE01 FE01
E01F E01F F10E F10E
E001 E001 F101 F101
FE1F FE1F FE0E FE0E
1F01 1F01 0E01 0E01
FEE0 FEE0 FEF1 FEF1
属性分配号码
第一阶段的属性协商使用下列定义。第二阶段的属性定义在可应用的DOI规范中(例如,IPsec
属性定义在IPsec DOI中),除了在快速模式中包含一个临时Diffie-Hellman交换时的组描述。属性
类型可以是基本(B)或是变长(V)。这些属性的编码在基本ISAKMP规范中定义为类型/值(基本)
和类型/长度/值(变长)。
被描述为基本的属性不能作为变长来编码。而如果变长属性的值在能装在两个字节的情况下,
可以作为基本属性来编码。在这种情况下,本协议的发起者提供的变长(或基本)属性可能作为基
本(或变长)返回给发起者。
属性种类
种类 值 类型
-----------------------------------------------------------------------------------------
加密算法 1 B
Hash算法 2 B
验证方法 3 B
组描述 4 B
组类型 5 B
组素数/不可约多项式 6 V
组产生器1 7 V
组产生器2 8 V
组曲线A 9 V
组曲线B 10 V
存活期类型 11 B
存活期长度 12 V
PRF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -