ESMTP身份验证的机制.docx
- 文档编号:5962448
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:12
- 大小:23.35KB
ESMTP身份验证的机制.docx
《ESMTP身份验证的机制.docx》由会员分享,可在线阅读,更多相关《ESMTP身份验证的机制.docx(12页珍藏版)》请在冰豆网上搜索。
ESMTP身份验证的机制
ESMTP身份验证的机制有很多种,最常见的是LOGIN机制,类似于POP3的身份验证方式,即分两步输入账号和密码。
在所有的验证机制中,信息全部采用Base64编码。
例如,用邮件服务器发送邮件,从开始连接到身份验证的过程如下(红色和蓝色分别代表客户端和服务器):
(连接到:
25)
220sp1ESMTPv2.1
EHLOABCDEFG
250-
250-PIPELINING
250-SIZE20480000
250-ETRN
250-AUTHLOGINPLAINDIGEST-MD5CRAM-MD5(支持的身份验证机制种类:
LOGIN,PLAIN等)
2508BITMIME
AUTHLOGIN
334VXNlcm5hbWU6(Base64解码后:
Username:
)
Ymh3YW5n(Base64编码前:
bhwang)
334UGFzc3dvcmQ6(Base64解码后:
Password:
)
bXlwYXNzd29yZCFteXBhc3N3b3JkISE=(Base64编码前:
********)
235Authenticationsuccessful
另外一种较常见的机制是PLAIN。
与LOGIN机制的不同之处在于一次性输入账号和密码,格式为“
用PLAIN机制代替上面的身份验证过程:
AUTHPLAIN
334
AGJod2FuZwBteXBhc3N3b3JkIW15cGFzc3dvcmQhIQ==(Base64编码前:
235Authenticationsuccessful
有的ESMTP服务器,例如采用CoreMail系统的,,,等,不回复334代码行,客户端在输入AUTHPLAIN后,直接输入符合格式要求的账号和密码即可。
LOGIN和PLAIN机制没有对账号和密码进行加密,相当于明文传输,Base64编码只是一层纸而已。
DIGEST-MD5,CRAM-MD5,GSSAPI,KERBEROS_V4等身份验证机制能够加密传输内容。
SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,或者说是由它来控制信件传输的一种中转方式。
SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
通过SMTP协议所指定的服务器,我们就可以把Email寄到收信人的服务器上了,整个过程只要几分钟。
SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转电子邮件。
SMTP的开发最初是为了在封闭的网络中传送相对来说不太重要的简短邮件,而不是为了在互联网中传送重要而敏感的信息,因此最初通过SMTP传输邮件时,安全性不高。
SMTP协议常用命令集
1.SMTP是工作在两种情况下:
一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。
响应包括一个表示返回状态的三位数字代码
3.SMTP在TCP协议25号端口监听连接请求
4.连接和发送过程:
a.建立TCP连接
b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令服务器端正希望以OK作为响应,表明准备接收
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行服务器端则表示是否愿意为收件人接受邮件
d.协商结束,发送邮件,用命令DATA发送
e. 以.表示结束输入内容一起发送出去
f.结束此次发送,用QUIT命令退出。
5.另外两个命令:
VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
EXPN---用于扩充邮件列表。
6.邮件路由过程:
SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。
SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。
若SMTP服务器收到一封信要发到mail@:
a.Sendmail请求DNS给出主机的CNAME记录,如有,假若CNAME到,则再次请求的CNAME记录,直到没有为止
b.假定被CNAME到,然后sendmail请求@域的DNS给出的MX记录
shmail MX 5
0
c. Sendmail最后请求DNS给出的A记录,即IP地址,若返回值为1.2.3.4
d. Sendmail与1.2.3.4连接,传送这封给mail@的信到1.2.3.4这台服务器的SMTP后台程序
7.SMTP基本命令集:
命令 描述
------------------------------
HELO 向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL 初始化邮件传输
mail form:
RCPT 标识单个的邮件接收人;常在MAIL命令后面 可有多个rcpt to:
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输结束。
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应OK
QUIT 结束会话
RSET 重置会话,当前传输被取消
--------------------------------
8. MAIL form命令中指定的地址是称作 envelope form地址,不需要和发送者自己的地址是一致的。
RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:
行是什么无关。
9.为什么没有RCPT CC和RCPT BCC:
?
所有的接收者协商都通过RCPT TO命令来实现,如果是BCC,则协商发送后在对方接收时被删掉信封接收者
10.邮件被分为信封部分,信头部分和信体部分
envelope form, envelope to 与message form:
message to:
完全不相干。
evnelope是由服务器主机间SMTP后台提供的,而message form/to是由用户提供的。
有无冒号也是区别。
11. 怎样由信封部分检查是否一封信是否是伪造的?
a. received行的关联性。
现在的SMTP邮件传输系统,在信封部分除了两端的内部主机处理的之个,考虑两个公司防火墙之间的部分,若两台防火墙机器分别为A和B,但接收者检查信封received:
行时发现经过了C.则是伪造的。
b. received:
行中的主机和IP地址对是否对应如:
Receibed:
form galangal.org ( [104.128.23.115] by mail .bieberdorf.edu....
c. 被人手动添加在最后面的received行:
Received:
form galangal.org ([104.128.23.115]) by mail .bieberdorf.edu (8.8.5)
Received:
form lemongrass.org by galangal.org (8.7.3)
Received:
form by lemongrass.org (8.6.4)
POP3命令列表:
一般telnetpop3Server110后就可以用这些命令了,大小写不敏感,不包括口令本身,注意不要让口令回显,等验证通过后再允许回显好了。
userusername认可
passpassword认可执行成功则状态转换
apopname,digest认可一种安全传输口令的办法,执行成功导致状态转换,请参见RFC1321
stat处理请求server回送邮箱统计资料,如邮件数、邮件总字节数
uidln处理server返回用于该指定邮件的唯一标识,如果没有指定,返回所有的
listn处理server返回指定邮件的大小等
retrn处理server返回邮件的全部文本
delen处理server标记删除,quit命令执行时才真正删除
rset处理撤消所有的dele命令
topn,m处理返回n号邮件的前m行内容,m必须是自然数
noop处理server返回一个肯定的响应
quitclient希望结束会话。
如果server处于'处理'状态,则现在进入'更新'状态,删除那些标记成删除的邮件。
如果server处于'认可'状态,则结束会话时server不进入'更新'状态
关于apop命令
如果client使用user命令,口令将是明文。
使用apop命令时,client第一次与server连接时,server向client发送一个ascii码问候,该问候由一个字符串组成,它对于每个client的连接都是唯一的,client把它的纯文本口令附加到从server接收到的字符串之后,然后计算结果字符串的MD5摘要,client把username和MD5摘要作为apop命令的参数一起发送出去。
telnetpop3Server110
userusername
pass****
stat
list
retr1
retr2
...
dele1
dele2
...
quit
SMTP命令简介
什么是SMTP
SMTP(SimpleMailTransferProtocol):
电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。
SMTP是请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。
响应包括一个表示返回状态的三位数字代码。
SMTP在TCP协议25端口监听连接请求。
什么是ESMTP
ESMTP(ExtendedSMTP),顾名思义,扩展SMTP就是对标准SMTP协议进行的扩展。
它与SMTP服务的区别仅仅是,使用SMTP发信不需要验证用户帐户,而用ESMTP发信时,服务器会要求用户提供用户名和密码以便验证身份。
验证之后的邮件发送过程与SMTP方式没有两样。
SMTP命令
SMTP命令包括:
HELO向服务器标识用户身份。
发送者能欺骗,说谎,但一般情况下服务器都能检测到。
EHLO向服务器标识用户身份。
发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAILFROM命令中指定的地址是发件人地址
RCPTTO标识单个的邮件接收人;可有多个RCPTTO;常在MAIL命令后面。
DATA在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以CRLF.CRLF结束
VRFY用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP查询服务器支持什么命令
NOOP无操作,服务器应响应OK
RSET重置会话,当前传输被取消
QUIT结束会话
连接WinmailServer使用SMTP命令发送邮件
例如:
安装Winmail的邮件服务器IP是192.168.0.1(蓝色字体内容由客户端输入,红色字体内容是服务返回的)
telnet192.168.0.125---------------------------------------使用telnet命令连接服务器25端口
Trying192.168.0.1...---------------------------------------正在连接服务器25端口
Connectedto192.168.0.1.-----------------------------------连接服务器25端口成功
220WinmailMailServerESMTPready-------------------------显示服务器的标识名称(Winmail管理工具->高级设置->系统参数->基本参数中可更改)
helo------------------------------------------------向服务器标识用户身份,发信不要认证,跳过下面几步直接发送mailfrom命令
250WinmailMailServer
ehlo------------------------------------------------ESMTP命令,发信需要认证。
250-WinmailMailServer
250-PIPELINING
250-AUTH=LOGINPLAIN
250-AUTHLOGINPLAIN
250-SIZE20480000
2508BITMIME
authlogin-------------------------------------------------进行用户身份认证
334VXNlcm5hbWU6
Y29zdGFAYW1heGl0Lm5ldA==-----------------------------------BASE64加密后的用户名
334UGFzc3dvcmQ6
MTk4MjIxNA==-----------------------------------------------BASE64加密后的密码
235authsuccessfully--------------------------------------身份认证成功
(535authfailure------------------------------------------身份认证失败)
发到本系统中域名下的账户可跳过身份认证。
mailfrom:
250ok-----------------------------------------------------命令执行成功
rcptto:
250ok-----------------------------------------------------命令执行成功
data-------------------------------------------------------数据传输初始化
354goahead-----------------------------------------------开始传输数据
From:
test1@
To:
test2@
Date:
Mon,25Oct200414:
24:
27+0800
Subject:
testmail
Hi,test2
Thisisatestmail,youdon'treplyit.
.
------------------------------------------------------------数据内容,包括BASE64加密后的邮件内容,以CRLF.CRLF结束数据传输
250okmessageacceptedfordelivery-----------------------命令执行成功
quit-------------------------------------------------------结束会话
221WinmailMailServer
Connectionclosedbyforeignhost.-------------------------断开连接
SMTP示例:
5.2.MailForwarding
WhenAlicesendsamessagetoBobathisalmamater.edu.example
account,theSMTPsessionfromherSUBMITservermightlooksomething
likethis:
S:
220almamater.edu.exampleESMTPserverready
C:
EHLO
S:
250-almamater.edu.example
S:
250-DSN
S:
250-AUTH
S:
250-SUBMITTER
S:
250SIZE
C:
MAILFROM:
S:
250
C:
RCPTTO:
S:
250
C:
DATA
S:
354okay,sendmessage
C:
(messagebodygoeshere)
C:
.
S:
250messageaccepted
C:
QUIT
S:
221goodbye
Thealmamater.edu.exampleMTAmustnowforwardthismessageto
bob@.example.Althoughtheoriginalsenderofthemessage
isalice@,Aliceisnotresponsibleforthismostrecent
retransmissionofthemessage.Thatroleisfilledby
bob@almamater.edu.example,whoestablishedtheforwardingofmailto
bob@.example.Therefore,thealmamater.edu.exampleMTA
determinesanewpurportedresponsibleaddressforthemessage,
namely,bob@almamater.edu.example,andsetstheSUBMITTERparameter
accordingly.TheforwardingMTAalsoinsertsaResent-Fromheaderin
themessagebodytoensurethepurportedresponsibleaddressderived
fromtheRFC2822headersmatchestheSUBMITTERaddress.
S:
.exampleESMTPserverready
C:
EHLOalmamater.edu.example
S:
250-.example
S:
250-DSN
S:
250-AUTH
S:
250-SUBMITTER
S:
250SIZE
C:
MAILFROM:
SUBMITTER=bob@almamater.edu.example
S:
250
C:
RCPTTO:
S:
250
C:
DATA
S:
354okay,sendmessage
C:
Resent-From:
bob@almamater.edu.example
C:
ReceivedBy:
...
C:
(messagebodygoeshere)
C:
.
S:
250messageaccepted
C:
QUIT
S:
221goodbye
5.3.MobileUser
Aliceisattheairportanduseshermobilee-maildevicetosenda
messagetoBob.Themessagetravelsthroughthecarriernetwork
.example,butA
addressontheFromlineofallhermessagessothatrepliesgoto
herofficemailbox.
HereisanexampleoftheSMTPsessionbetweentheMTAsat
.exampleandalmamater.edu.example.
S:
220almamater.edu.exampleESMTPserverready
C:
EHLO.example
S:
250-almamater.edu.example
S:
250-DSN
S:
250-AUTH
S:
250-SUBMITTER
S:
250SIZE
C:
MAILFROM:
SUBMITTER=alice@.example
S:
250
C:
RCPTTO:
S:
250
C:
DATA
S:
354okay,sendmessage
C:
Sender:
alice@.example
C:
ReceivedBy:
...
C:
(messagebodygoeshere)
C:
.
S:
250messageaccepted
C:
QUIT
S:
221goodbye
N.exampleusestheSUBMITTERparameterto
designatealice@.exam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ESMTP 身份验证 机制