?? rfc2085.txt
字號:
組織:中國互動出版網(wǎng)(http://www.china-pub.com/)
RFC文檔中文翻譯計(jì)劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:()
譯文發(fā)布時間:2001-11-7
版權(quán):本中文翻譯文檔版權(quán)歸中國互動出版網(wǎng)所有。可以用于非商業(yè)用途自由轉(zhuǎn)載,但必須保留本
文檔的翻譯及版權(quán)信息。
Network Working Group M. Oehler
Request for Comments: 2085 NSA
Category: Standards Track R. Glenn
NIST
February 1997
重復(fù)性攻擊保護(hù)的HMAC-MD5 IP 認(rèn)證
(RFC2085——HMAC-MD5 IP Authentication with Replay Prevention)
本文作用
本文詳細(xì)說明了一種互聯(lián)網(wǎng)標(biāo)準(zhǔn)傳輸協(xié)議,本文需要討論和改進(jìn)的建議。要得到規(guī)定和本協(xié)議
的狀態(tài),請參考最新版的"Internet Official Protocol Standards" (STD 1),本文的散布不受限制。
摘要
本文講述了一種用在IP認(rèn)證報頭(IP Authentication Header)上的keyed-MD5轉(zhuǎn)換,這種特殊
的轉(zhuǎn)換基于[HMAC-MD5],另外還詳細(xì)說明了一種防止重復(fù)攻擊的選項(xiàng)。
目錄
1. 緒論 1
1.1 術(shù)語 1
1.2 Keys 2
1.3 數(shù)據(jù)長度 2
2. 數(shù)據(jù)包格式 2
2.1重復(fù)攻擊防護(hù) 3
2.2認(rèn)證數(shù)據(jù)計(jì)算 3
3. 安全考慮 4
致謝 4
參考文獻(xiàn) 4
作者地址 4
1. 緒論
認(rèn)證報頭(AH)[RFC-1826]提供了IP數(shù)據(jù)包的完整性檢查和認(rèn)證,本文中指出的變換使用一
種keyed-MD5機(jī)制[HMAC-MD5],本機(jī)制用到了一種 (key-less) MD5的散列函數(shù),它能夠產(chǎn)生報
文摘要。當(dāng)它和認(rèn)證報頭密鑰(AH 密鑰)結(jié)合時,就能產(chǎn)生認(rèn)證數(shù)據(jù),此值放在AH的認(rèn)證數(shù)據(jù)字
段,它也是AH協(xié)議提供的完整性檢查的基礎(chǔ)。
為了防止重復(fù)性攻擊,必須含有一個重復(fù)性攻擊防護(hù)字段作為變換式選項(xiàng),此字段是用來防止
一種攻擊的,在這種攻擊中,消息會保存并且在后來還會被重復(fù)利用,代替或者重復(fù)原始消息。安
全參數(shù)索引(SPI)[RFC-1825]用來決定是否包含AH。
需要熟悉以下下文獻(xiàn):"Security Architecture for the Internet Protocol"(Internet協(xié)議安全結(jié)構(gòu))
[RFC-1825], "IP Authentication Header"(IP認(rèn)證報頭) [RFC-1826],以及"HMAC-MD5: Keyed-MD5
for Message Authentication"(HMAC-MD5:Keyed-MD5消息認(rèn)證) [HMAC-MD5]。
所有要符合或同“IP認(rèn)證報頭”一致的應(yīng)用必須(MUST)執(zhí)行HMAC-MD5轉(zhuǎn)換。
1.1 術(shù)語
本文中用來定義每一個需求的重要性的單詞都用大寫表示,包括:
- MUST
它和"REQUIRED"表示此條款在規(guī)定中是絕對需要的。
- SHOULD
它和"RECOMMENDED"表示在某些特定的環(huán)境下有有效的原因可以忽略此條款,但是必須知
道充足的含義,并且在采取不同的方法前必須慎重考慮。
1.2 Keys
“認(rèn)證報頭(AH)密鑰”是通訊雙方共享的秘密,這種“密鑰”不是傳統(tǒng)意義上的“密鑰”,
認(rèn)證報頭密鑰同傳輸?shù)臄?shù)據(jù)一起進(jìn)行散列運(yùn)算,以確保侵犯者不能復(fù)制認(rèn)證數(shù)據(jù)。
即使認(rèn)證報頭密鑰不是一種密鑰,但是仍然涉及了密鑰的基本應(yīng)用,考慮到算法和用以產(chǎn)生輸
出的大部分?jǐn)?shù)據(jù)是公開的,轉(zhuǎn)換的強(qiáng)度就決定于密鑰的獨(dú)立映射(需要很健壯)以及認(rèn)證數(shù)據(jù)IP
包,因此應(yīng)用中就需要盡可能多次的改變認(rèn)證報頭密鑰,密鑰需要隨機(jī)的選擇或者由一個隨機(jī)的種
子在一個強(qiáng)大的密鑰隨機(jī)發(fā)生器中產(chǎn)生。[HMAC-MD5]
所有的支持AH協(xié)議的應(yīng)用都必須(MUST)支持128位或短一些地密鑰長度,應(yīng)用能夠
(SHOULD)支持更長的密鑰將會更好。推薦密鑰長度選擇為輸出散列值長度,在MD5中是128
位,定為其它長度則必須考慮下面提到的相關(guān)的事項(xiàng)。
零長度的密鑰是禁止使用的,應(yīng)用中必須防止在變換式中使用它,因?yàn)榱汩L度的密鑰必能提供
有效的認(rèn)證。密鑰長度小于128位的也強(qiáng)烈被阻止使用,因?yàn)檫@會降低函數(shù)的安全性能,大于128
位的也可以使用,但是增長的部分不一定會增加函數(shù)的安全性能。在密鑰產(chǎn)生的隨機(jī)性有懷疑的情
況下推薦使用長于128位的密鑰。MD5是在64字節(jié)的分組上操作的,長于64字節(jié)的密鑰第一次
是通過MD5進(jìn)行散列運(yùn)算的,結(jié)果散列值用來計(jì)算認(rèn)證數(shù)據(jù)。
1.3 數(shù)據(jù)長度
MD5產(chǎn)生一個128位的散列值用作認(rèn)證數(shù)據(jù),它自然的64位一行,這樣對那些雙字長的機(jī)器
就不需要任何的補(bǔ)位。
2. 數(shù)據(jù)包格式
+---------------+---------------+---------------+---------------+
| Next Header | Length | RESERVED |
+---------------+---------------+---------------+---------------+
| SPI |
+---------------+---------------+---------------+---------------+
| Replay Prevention |
| |
+---------------+---------------+---------------+---------------+
| |
+ Authentication Data |
| |
+---------------+---------------+---------------+---------------+
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
Next Header(下個報頭), RESERVED(保留), 和SPI(安全參數(shù)索引) 字段在[RFC-1826]中講
述了。Length(長度) 字段是Replay Prevention(重復(fù)防護(hù))字段和32位字的認(rèn)證數(shù)據(jù)的長度。
2.1重復(fù)攻擊防護(hù)
Replay Prevention(重復(fù)攻擊)字段是一個64位的字段,用以確保通訊雙方交換的每個數(shù)據(jù)包
沒有重復(fù),每一個IPsec安全協(xié)會指定自己協(xié)會中是否使用重復(fù)性攻擊防護(hù),如果不用,那么
Authentication Data(認(rèn)證數(shù)據(jù))字段將直接跟在SPI字段后面。Replay Prevention字段是一個以1
開頭的加法計(jì)數(shù)器。
共享密鑰不能用太長的時間以至于計(jì)數(shù)器超值,也就是使用同一個密鑰傳輸?shù)某^2^64個數(shù)
據(jù)包,接收時,重復(fù)值會增長,應(yīng)用程序可能會收到的雜亂的包,雜亂包的數(shù)量是一個應(yīng)用細(xì)節(jié),
如果支持“雜亂窗口”,應(yīng)用程序會確定所有的包以前沒有收到過,也就是,應(yīng)用程序最多只會收
到一次數(shù)據(jù)包。
當(dāng)目的地址是多點(diǎn)傳送地址時,重復(fù)性攻擊防護(hù)在使用,對此多點(diǎn)傳送地址不只一個遵循同一
個IPsec安全協(xié)會規(guī)定的發(fā)送者,那么重復(fù)性攻擊保護(hù)功能就不應(yīng)該(SHOULD NOT)激活,在此
情況下如果要求重復(fù)性攻擊保護(hù),每個發(fā)送者應(yīng)該有他自己的IPsec安全聯(lián)盟。
[ESP-DES-MD5]中提供了一個執(zhí)行32位包的重復(fù)窗口的例子的代碼,并提供了展示了工作流
程。
2.2認(rèn)證數(shù)據(jù)計(jì)算
認(rèn)證數(shù)據(jù)是認(rèn)證算法(MD5)的輸出值,此值是在整個IP數(shù)據(jù)報上計(jì)算的結(jié)果,數(shù)據(jù)報在轉(zhuǎn)
變中可變的字段和認(rèn)證數(shù)據(jù)字段本身必須包含計(jì)算前的所有的0 [RFC-1826],如果重復(fù)性攻擊字段
采用,那它就包含在計(jì)算中。MD5的定義和參考程序在[RFC-1321]中講述了,用‘text’表示
HMAC-MD5要用到的數(shù)據(jù),K表示通訊方共享的信息認(rèn)證私鑰,如果K長度超過64字節(jié),那它
必須(MUST)先用MD5進(jìn)行散列運(yùn)算,這樣,K就是最終的散列值。
我們定義兩個固定的不同字符串ipad和opad,(‘i’,‘o’代表輸入和輸出)如下所示:
ipad=字節(jié)0x36重復(fù)64次
opad=字節(jié)0x5C重復(fù)64次
為了計(jì)算‘text’的HMAC-MD5,我們執(zhí)行
MD5(K XOR opad, MD5(K XOR ipad, text))
即:
(1) 在K后面補(bǔ)0,使得K的長度是64字節(jié)(如果K長16字節(jié),那么 要補(bǔ)48
個0字節(jié)0x00)
(2) 用ipad異或(XOR) 第一步中產(chǎn)生的64字節(jié)的值
(3) 在第二步中產(chǎn)生的64字節(jié)的字符串后面不上‘text’
(4) 對第三步產(chǎn)生的值進(jìn)行MD5運(yùn)算
(5) 用opad異或第一步中產(chǎn)生的64字節(jié)的字符串
(6) 第5步中產(chǎn)生的字符串后面補(bǔ)上第4步中的運(yùn)算結(jié)果
(7) 對第6步中產(chǎn)生的結(jié)果進(jìn)行MD5散列運(yùn)算,輸出結(jié)果
在[HMAC-MD5]中對此計(jì)算進(jìn)行了很細(xì)致的描述,并帶有例子程序代碼和性能改進(jìn),執(zhí)行者應(yīng)
該參考[HMAC-MD5]以得到更多的加密散列函數(shù)的技術(shù)信息。
3. 安全考慮
此變換的安全性取決于MD5的強(qiáng)度,應(yīng)用算法的正確性,密鑰處理機(jī)制和它的應(yīng)用的安全性,
關(guān)聯(lián)的秘密密鑰的強(qiáng)度,還取決于所有特殊系統(tǒng)中應(yīng)用程序的強(qiáng)度,[HMAC-MD5]中對MD5的優(yōu)
缺點(diǎn)進(jìn)行了細(xì)致的討論。
致謝
本文的完成很大程度地基于Hugo Krawczyk.寫的文章,使用的格式來源于William Simpson 和
Perry的文章,重復(fù)性攻擊保護(hù)直接引自Jim Hughes的文章。
參考文獻(xiàn)
[RFC-1825] Atkinson, R., "Security Architecture for the Internet
Protocol", RFC 1852, Naval Research Laboratory,
July 1995.
[RFC-1826] Atkinson, R., "IP Authentication Header",
RFC 1826, August 1995.
[RFC-1828] Metzger, P., and W. Simpson, "IP Authentication using
Keyed MD5", RFC 1828, August 1995.
[RFC-1321] Rivest, R., "The MD5 Message-Digest Algorithm",
RFC 1321, April 1992.
[HMAC-MD5] Krawczyk, H., Bellare, M., and R. Canetti,
"HMAC: Keyed-Hashing for Message Authentication",
RFC 2104, February 1997.
[ESP-DES-MD5] Hughes, J., "Combined DES-CBC, MD5, and Replay
Prevention Security Transform", Work in Progress.
作者地址
Michael J. Oehler
National Security Agency
Atn: R23, INFOSEC Research and Development
9800 Savage Road
Fort Meade, MD 20755
EMail: mjo@tycho.ncsc.mil
Robert Glenn
NIST
Building 820, Room 455
Gaithersburg, MD 20899
EMail: rob.glenn@nist.gov
RFC2085——HMAC-MD5 IP Authentication with Replay Prevention 重復(fù)性攻擊保護(hù)的HMAC-MD5 IP 認(rèn)證
2
RFC文檔中文翻譯計(jì)劃
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -