邮件协议

邮件协议

一、SMTP协议

SMTP(简单邮件传输协议,Simple Mail Transfer Protocol)是电子邮件传输的internet标注通信协议,当前协议版本可扩展身份验证、加密等功能。SMTP服务器通常在TCP/25(纯文本)和TCP/587、TCP/465(都是用于加密通信),它用于替代POP3协议。

1、交互过程

 

              +----------+                +----------+
+------+   |         |               |         |
| User |<-->|         |     SMTP     |         |
+------+   | Client- |Commands/Replies| Server- |
+------+   |   SMTP   |<-------------->|   SMTP |   +------+
| File |<-->|         |   and Mail   |         |<-->| File |
|System|   |         |               |         |   |System|
+------+   +----------+               +----------+   +------+
              SMTP client               SMTP server

当SMTP客户端有邮件要传输时,它就会建立一个双向的传输通道给SMTP服务器。 SMTP客户端的责任是将邮件信息传输到一个或多个SMTP服务器或报告其失败。

2、SMTP命令

关键词变量
HELO 发送端的主机名,标记自己的身份
MAIL FROM 发信人地址
RECP TO 用来表示邮件收件人的地址
DATA 邮件主体,即邮件内容
QUIT 结束会话
RSET 中止会话,任何被存储的发件人、收件人和邮件数据都必须丢弃,并清除所有缓冲区和状态列表
VRFY 要求接收方确认相关参数(如用户或邮箱)
EXPN 验证批量给定的邮箱列表是否存在。它也存在于VRFY同样的问题,故而大多数情况下会被禁用
HELP 将服务器有用的信息发送给客户

3、SMTP应答

代码说明
211 系统状态或系统帮助响应
214 帮助信息
220 服务就绪
221 服务关闭传输通道
250 请求的邮件操作已完成
251 用户不是本地,将被转发
354 开始邮件输入
421 服务不可用,正在关闭传输通道
450 未采取请求操作,邮件不可用(如邮件服务器繁忙)
500 语法错,不能识别命令
502 命令未被实现
551 用户不是本地用户。
552 请求邮件的操作种植,超出存储空间
553 所请求的动作未执行,邮箱名不允许使用
555 请求失败(如,没有SMTP服务)

4、SMTP事务组成

这里有三个步骤对于mail事务,第一步用 MAIL 命令给出发送者的身份,第二步用一个或者多个RCPT命令给出接收者信息,接着用DATA命令给出邮件数据。

第一步是MAIL命令,<reverse-path>包含发送者邮箱( <SP>是空格,<CRLF>是回车换行)

MAIL <SP> FROM:<reverse-path> <CRLF>

这个命令告诉接收者,开始一个新的邮件事务,重置所有的状态表和缓存区,包括接受者信息和邮件数据,<reverse-path>被用于报告错误,如果命令被接受,返回250 OK

第二步是 RCPT命令

RCPT <SP> TO:<forward-path> <CRLF>

这个命令提供一个接收者邮箱,如果被接受返回250 OK,如果不能被识别,返回550 Failure,这个第二步可以被重复多次。

第三步是 DATA命令

DATA <CRLF>

如果被接受,返回354,并认为所有后续行都会邮件数据信息。当收到文本结束符时候,返回250 OK

邮件数据的末尾必须被指明,为了激活命令和回复的对话。通过发送只包含一个英文句号的行,来提示邮件数据结束。

5、SMTP安全扩展

1)SMTP AUTH

SMTP authentication(SMTP 身份验证)是扩展SMTP(ESMTP)的扩展,而扩展SMTP又是SMTP网络协议的扩展。它允许SMTP客户端(即邮件发件人)通过身份验证机制登录到SMTP服务器。通过这种方式,让具有信赖的用户才能通过SMTP服务器发送邮件到相关网络中并进行转发。可用于防止垃圾邮件、开放邮件中继等恶意攻击。

该扩展通过TCP/587进行接收电子邮件,这是属于强制性的。并且该扩展提供嘻嘻了不同安全级别的身份验证机,SMTP服务器可以使用这些机制来检查SMTP客户端的可信度。

  • 普通(PLAIN):通过客户端的用户名和密码进行身份验证。两者都以未加密的方式传输,然后以 Base64 字符集进行编码。

  • 登录(LOGIN):工作原理与普通类似,但用户名和密码的Base64字符集分两步传输,而不仅仅是一步。

  • CRAM-MD5:普通和登录的替代方案,根据质询-响应原则具有更高级别的安全性。由于垃圾邮件发送者可以从 Base64 字符集中相对快速地解码用户的个人访问数据,因此密码不会通过此机制以代码或纯文本形式传输到服务器。相反,服务器为客户端提供了一种计算任务,该任务只能在密码的帮助下解决。此任务随每次登录而更改,因此垃圾邮件发送者不会滥用以前服务器连接中的数据。

  • 其他机制还有GSSAPI、MD5、NTLM等

2)SMTP over SSL/TLS

是SMTP基于SSL/TLS协议志强的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全(基于非堆成算法),可防止邮件泄露。它使用TCP 465端口进行数据交互。

发送计算机或客户端可以配置为三种交互类型:

  1. 没有TLS:即不使用TLS;

  2. 不强制TLS:如果可用,请使用TLS;如果没有,可不使用TLS发送邮件;

  3. 强制TLS:只有使用TLS才能传递电子邮件;

二、POP

POP(Post Office Protocol,邮局协议)是电子邮件客户端用于从邮件服务器检索电子邮件的应用程Internet标准协议,与IMAP一起是最常见的电子邮件检索协议。目前POP3是最常见的版本.

它使用TCP/110端口进行相关数据通信;但是它也可以与SSL/TLS进行联合使用进而保证内容传输安全,此时它的端口是TCP/995。

1、工作模式

POP3服务器启用POP3服务并侦听TCP/110端口,当客户端希望使用POP3进行电子邮件检索时,它会与POP3服务器之间建立TCP连接,连接建立成功,客户端将向POP3发送命令,此时会话进行“授权( authorization)”状态。在随后的邮件事务状态中,客户端和服务器交换命令与响应,直到连接关闭。党客户端发送quit命令时是,会话将进入“更新(update)”状态,POP3服务器将释放在邮件事务状态期间获取的任何资源,并说“再见(goodbye,即中断TCP连接)”

三、IMAP

互联网邮件访问协议(Internet Message Access Protocol,IMAP)是一种标准的电子邮件检索协议,它将电子邮件存储在邮件服务器上,并使收件人能够查看和操作它们。IMAP服务器侦听TCP/143端口,而使用SSL/TLS则运行在TCP/993。

四、不同之处

POP3 和 IMAP 都与电子邮件的接收有关,但与简单邮件传输协议 (SMTP) 不同,后者是一种用于在互联网上传输电子邮件的协议。SMTP 发送电子邮件,邮件处理程序代表收件人接收电子邮件,并使用 POP3 或 IMAP 读取邮件。

五、邮件攻击方式

1、钓鱼邮件

钓鱼邮件是偏向于社工方面进行,通过编写让人感兴趣的恶意邮件,使用户点开该邮件进而引发其他的问题。

2、开放中继

是邮件服务器允许任何人未经验证使用SMTP服务发送电子邮件,那么这就意味着恶意人员可通过该邮件服务器发送垃圾邮件。

3、邮件病毒

通过电子邮件传播恶意病毒。

六、引用链接

SMTP协议详解ims-的博客-CSDN博客smtp

posted @ 2022-09-29 11:21  Diligent_Maple  阅读(600)  评论(0编辑  收藏  举报