?? rfc2554.txt
字號(hào):
組織:中國互動(dòng)出版網(wǎng)(http://www.china-pub.com/)
RFC文檔中文翻譯計(jì)劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:高鵬(g622 g622@xanet.edu.cn)
譯文發(fā)布時(shí)間:2001-5-11
版權(quán):本中文翻譯文檔版權(quán)歸中國互動(dòng)出版網(wǎng)所有。可以用于非商業(yè)用途自由轉(zhuǎn)載,但必須
保留本文檔的翻譯及版權(quán)信息。
Network Working Group J. Myers
Request for Comments: 2554 Netscape Communications
Category: Standards Track March 1999
SMTP服務(wù)認(rèn)證擴(kuò)展
(RFC 2554 SMTP Service Extension for Authentication)
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1999). All Rights Reserved.
1. 簡介
本文檔定義擴(kuò)展郵件服務(wù),一個(gè)SMTP(簡單郵件傳輸協(xié)議)的客戶端和服務(wù)器之間可以存
在一種認(rèn)證機(jī)制,執(zhí)行認(rèn)證協(xié)議的交互,并為以后的郵件協(xié)議交互進(jìn)行安全層次的協(xié)商。這
個(gè)擴(kuò)展是SASL(簡單認(rèn)證與安全層)的一個(gè)方面。
2. 本文檔中的約定
在示例中,“c:”和“s:”分別代表了客戶端和服務(wù)器端發(fā)送的數(shù)據(jù)行。
本文中,關(guān)鍵詞MUST", "MUST NOT", "SHOULD", "SHOULD NOT", "MAY"和"Key
words for use in RFCs to Indicate Requirement Levels"中的定義一致。
3. 驗(yàn)證服務(wù)擴(kuò)展
(1) 這種SMTP擴(kuò)展服務(wù)的名稱是“認(rèn)證”。
(2) 和本擴(kuò)展服務(wù)關(guān)聯(lián)的EHLO關(guān)鍵字的值是“AUTH”
(3) AUTH EHLO關(guān)鍵字 是一個(gè)有空格間隔的被SASL機(jī)制支持的名字列表的參數(shù)。
(4) 定義了一個(gè)新的SMTP協(xié)議的命令詞 AUTH。
(5) 關(guān)鍵詞AUTH被用做一個(gè)可選的參數(shù)被加入MAIL FORM 命令中并把MAIL FROM
命令行的的最大長度擴(kuò)展到500個(gè)ansi字符。
(6) 此擴(kuò)展和委托協(xié)議兼容(the submission protocol [SUBMIT])。
4. AUTH命令
AUTH機(jī)制 [初始化響應(yīng)]
參數(shù):
判別是一個(gè)SASL認(rèn)證機(jī)制的字符串。
可選的由base64編碼的響應(yīng)。
約束:
在一個(gè)AUTH命令完整結(jié)束后,本次會(huì)話就不再有其他的AUTH命令涉及了。
就是說,在一個(gè)成功的AUTH命令后,SMTP服務(wù)器用503標(biāo)識(shí)的回應(yīng)來拒絕任何以后的
AUTH命令。
在一個(gè)郵件傳輸過程中發(fā)出的AUTH命令是不被容許的。
討論:
AUTH命令顯示了一種和郵件服務(wù)器間的安全認(rèn)證機(jī)制 。如果郵件服務(wù)器支持這
種認(rèn)證機(jī)制,它就會(huì)執(zhí)行一個(gè)認(rèn)證協(xié)議交互來認(rèn)證并識(shí)別郵件用戶。作為可選的情況,他也
會(huì)忽略這以后后協(xié)議交互的一個(gè)安全層。如果服務(wù)器并不支持所需要的認(rèn)證協(xié)議,就會(huì)用
504的回答來拒絕這個(gè)AUTH命令。
認(rèn)證協(xié)議交互過程由一系列由認(rèn)證機(jī)制定義的郵件服務(wù)器端的命令和郵件客戶端
的響應(yīng)組成。
一個(gè)郵件服務(wù)器端命令,或者所謂一個(gè)準(zhǔn)備好響應(yīng),是一個(gè)334起頭的,包含用
base64編碼的字符串文本。郵件客戶端也同樣由包含了用base64編碼的字符串。如果郵件
客戶端希望可以取消一個(gè)進(jìn)行中的認(rèn)證交互過程,它會(huì)發(fā)出一個(gè)僅包含一個(gè)字符"*"命令行,
郵件服務(wù)器端一旦收到這樣的一個(gè)回答后,必須發(fā)一個(gè)501標(biāo)識(shí)的回答,而后拒絕AUTH
命令。
對AUTH命令來說,可選的初始化響應(yīng)建議是用來在使用認(rèn)證機(jī)制時(shí)保持一個(gè)往
返的回程,認(rèn)證機(jī)制的定義中此建議不發(fā)送任何數(shù)據(jù)。當(dāng)初始化響應(yīng)部分用在這種機(jī)制時(shí),
開始的空的發(fā)起命令不被送到客戶端,并且服務(wù)器端使用的數(shù)據(jù)也好象是發(fā)送來
響應(yīng)一個(gè)空的命令。它發(fā)送一個(gè)零長度的初始化回答作為一個(gè)"="符號(hào)。如果客戶端
在認(rèn)證機(jī)制的AUTH命令響應(yīng)中使用初始化建議,客戶端就在初始化命令中發(fā)送響應(yīng)的
數(shù)據(jù),服務(wù)器端用535回答來拒絕AUTH命令。
如果不能對參數(shù)用base64解碼,就用501回答來拒絕AUTH命令,如果服務(wù)器
拒絕認(rèn)證數(shù)據(jù),它應(yīng)該用535的回答(可以帶其他詳細(xì)的特殊錯(cuò)誤代碼,比如在第6節(jié)所列
的代碼中的一個(gè))來拒絕AUTH命令。如果客戶端成功完成了認(rèn)證交互,SMTP服務(wù)器就
應(yīng)該返回一個(gè)235的響應(yīng)。
本SASL協(xié)議梗概中描述的服務(wù)名稱是SMTP.
如果一個(gè)安全層通過了SASL認(rèn)證交換,隨著作為終止客戶端認(rèn)證交換的CRLF
(回車換行),這個(gè)安全層立即有效。在安全層起作用后,其上的SMTP協(xié)議被復(fù)位到初試
狀態(tài)(這個(gè)SMTP狀態(tài)是在服務(wù)器發(fā)出一個(gè)220服務(wù)準(zhǔn)備好的消息后開始的)。接著服務(wù)器
就會(huì)放棄所有來自客戶端的知識(shí),例如,不是獲得自SASL協(xié)商本身的EHLO命令的參數(shù)。
客戶端也會(huì)放棄所有來自服務(wù)器端的知識(shí),例如,不是獲得自SASL協(xié)商本身的SMTP擴(kuò)
展服務(wù)(這里假設(shè)一個(gè)客戶端可以比較認(rèn)證前后的建議的SASL機(jī)制的列表,從而檢測主動(dòng)
down-negotiation攻擊)。客戶端應(yīng)該發(fā)出一個(gè)EHLO命令,此命令作為使一個(gè)安全層有效的
認(rèn)證協(xié)商成功后的第一個(gè)命令。
服務(wù)器并不被要求一定支持任何特定的認(rèn)證機(jī)制,同樣認(rèn)證機(jī)制要不要求必須支
持某種安全層。
一旦一個(gè)AUTH命令失敗,客戶端可以通過發(fā)出另外一個(gè)AUTH命令來嘗試其
他一種認(rèn)證機(jī)制。
一旦一個(gè)AUTH命令失敗,服務(wù)器端的行為就好象客戶端從沒有發(fā)出那次AUTH
命令一樣。
base64編碼的字符串一般可以有任意長度。客戶端和服務(wù)器端都應(yīng)該可以支持
那些由認(rèn)證機(jī)制產(chǎn)生的合法的任意長的請求和響應(yīng)字符串,而不依賴于服務(wù)器或者客戶端
的、可能存在于協(xié)議實(shí)現(xiàn)的某些方面的行長度的限制。
例如:
S: 220 SMTP.example.com ESMTP server ready
C: EHLO jgm.example.com
S: 250-SMTP.example.com
S: 250 AUTH CRAM-MD5 DIGEST-MD5
C: AUTH FOOBAR
S: 504 Unrecognized AUTHentication type.
C: AUTH CRAM-MD5
S: 334
PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=
C: ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ==
S: 235 Authentication successful.
5. 對應(yīng)MAIL from 命令的AUTH參數(shù)
AUTH=addr-spec
參數(shù):
一個(gè)包含標(biāo)志的被提交給傳送系統(tǒng)的addr-spec,或者是兩個(gè)字符組成的序列"<>" ,
表明這個(gè)標(biāo)志是未知的或被驗(yàn)明為不完成的。
為了遵守附加在eSMTP參數(shù)上的限制,addr-spec被編碼到一個(gè)xtext中,關(guān)于xtext
語法的描述在[eSMTP-dsn]中的第5節(jié)中。
討論:
對應(yīng)MAIL from 命令的可選的AUTH參數(shù)容許在一個(gè)可以信賴的環(huán)境中多代理
合作來傳送個(gè)人消息的認(rèn)證。
如果服務(wù)器信任客戶端的被驗(yàn)證的標(biāo)志(這個(gè)標(biāo)志表明這個(gè)消息最初是由給定的
addr-spec提交的),則當(dāng)需要把消息轉(zhuǎn)發(fā)到任何支持AUTH擴(kuò)展的服務(wù)器去的時(shí)候,服務(wù)器
應(yīng)該用包含相同的addr-spec參數(shù)的AUTH命令來回復(fù)。
一個(gè)MAIL FORM 參數(shù) AUTH=<>顯示最初提交的信息是未知的。服務(wù)器端并不把
這個(gè)消息作為由客戶端的初始提交數(shù)據(jù)對待。
如果MAIL FORM的AUTH參數(shù)沒有提供,客戶端已經(jīng)被驗(yàn)證,并且服務(wù)器端相信
消息
是原始的客戶端的提交,則當(dāng)需要把消息轉(zhuǎn)發(fā)到任何支持AUTH擴(kuò)展的服務(wù)器去的
時(shí)候,
服務(wù)器端應(yīng)該在AUTH參數(shù)的中的add-spe里提供客戶端標(biāo)記。
如果服務(wù)器端不是充分信任客戶端的認(rèn)證標(biāo)志,或者客戶端沒有通過認(rèn)證,則服務(wù)
器端會(huì)表現(xiàn)為似乎由一個(gè)AUTH=<>參數(shù)被提交一樣。服務(wù)器端也可以把a(bǔ)hth的參數(shù)寫入到
一個(gè)log文件中去。
如果提交一個(gè)AUTH=<>參數(shù),不管是明確提供還是由于在上面段落中的條件隱含
提供,服務(wù)器端在轉(zhuǎn)發(fā)消息到用AUTH擴(kuò)展認(rèn)證的其他任何服務(wù)器的時(shí)候都必須提供
AUTH=<>的參數(shù)。
一個(gè)服務(wù)器應(yīng)該把郵件列表擴(kuò)展作為一個(gè)新的子任務(wù)來對待,在轉(zhuǎn)發(fā)消息到列表訂
戶的時(shí)候,為郵件列表地址或郵件列表管理設(shè)置AUTH參數(shù)。
一個(gè)“硬編碼”的實(shí)現(xiàn)是把所有客戶端都當(dāng)作不完全信任的。這時(shí),這個(gè)實(shí)現(xiàn)只是
解析并拋棄語法有效的mial from命令的AUTH參數(shù)并提供AUTH=<>參數(shù)給任何用AUTH
擴(kuò)展來做認(rèn)證的服務(wù)器。
例如:
C: MAIL FROM:<e=mc2@example.com> AUTH=e+3Dmc2@example.com
S: 250 OK
6. 錯(cuò)誤代碼
以下的錯(cuò)誤代碼可以被用來顯示被描述的幾種情況。
432 需要一個(gè)密碼轉(zhuǎn)換
這個(gè)對于AUTH命令的響應(yīng)顯示用戶需要轉(zhuǎn)換到被選擇的認(rèn)證機(jī)制。使用PLAIN認(rèn)證
機(jī)制時(shí)會(huì)這樣做。
534 認(rèn)證機(jī)制過于簡單
這個(gè)對于AUTH命令的響應(yīng)顯示被選擇的認(rèn)證機(jī)制比服務(wù)器安全政策所許可此用戶的等
級(jí)要低。
538 當(dāng)前請求的認(rèn)證機(jī)制需要加密
這個(gè)對于AUTH命令的響應(yīng)顯示當(dāng)前的認(rèn)證機(jī)制必須在SMTP 連接被加密的情況下才
可以使用。
454 臨時(shí)認(rèn)證失敗
這個(gè)對于AUTH命令的響應(yīng)顯示因?yàn)榕R時(shí)服務(wù)器出錯(cuò)而導(dǎo)致認(rèn)證失敗
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -