机制电子邮件传输协议鉴权机制

电子邮件的优点  时间:2021-01-28  阅读:()

邮件传输协议鉴权(SMTPAuthentication)

SMTP鉴权设计是由 netscape公司的J. Meyers于1999年提出的并最终发布到RFC2554("SMTP Service Extension forAuthentication") 其中一部分是基于RFC 1869规范中的SMTPService Extensions。大多数现有的SMTP实现都支持SMTP鉴权尽管Qmai l 1.03不支持(没有补丁),另一方面多数带有SMTP客户端功能的邮件用户代理(Mai l UserAgentsorMUA)都具备鉴权功能。

SMTP Authentication是由鉴权服务器发起通知 SMTPAuthentication要求客户端被鉴权且双方最终必须互相接受对方访问且支持可选的鉴权流程。由于原始的SMTP协议设计初衷是主机对主机协议 SMTPAuthentication机制下用户必须标示自己并且在成功鉴权后给邮件收发方授权。

除了用于子协议交互的可选安全层被提及外 RFC2554没有明确说明对于一个用户而言鉴权有什么好处

SMTP鉴权采用一种简单的鉴权和安全协议层概念但并没有加入到SMTP规范中在本文中将简述该鉴权机制。

需求说明(Request for Comments) 

*RFC1869为SMTP协议对话定义了扩展协议(ESMTP) 用户说明被SMTP服务器扩展的能力同时或者由客户端传递额外的协议信息。支持ESMTP的smtp服务器必须在SMTP问候对话信息中使用关键字'EHLO',客户端可能仅仅使用服务器提供的这种扩展功能通过构造对话消息在一个SMTP对话中服务器可以发送扩展信息其作为ESMTP对话协议中的谓词(译者是协议双方识别的关键字)或者作为'MAIL FROM: 'or 'RCPTTO: '命令的一部分一个典型的用法是'MAIL FROM:<foobar@example.com>SIZE=1512' 。这个例子中'SIZE'是一个扩展协议(ESMTP)关键字 '1512'是扩展协议(ESMTP)值,而整个术语'SIZE=1512'是扩展协议参数(RFC1870规范中用于声明扩展协议下的消息字节数) 在RFC 1869利用两种不同的设计来改进ESMTP值的使用方式:

1,作为ESMTP动词使用方式如"SIZE xxxxx"

2,在命令'MAIL FROM:<foobar@example.com>SIZE=1512'中通过“关键字=值”方式

*在本文中RFC2554描述带有一个扩展协议关键字'AUTH'的SMTP鉴权,在传递的文本和RFC2554的例子中 ESMTPAuth提到的值有'CRAM-MD5', 'DIGEST-MD5'和'PLAIN'

每个值对应一个鉴权方法或机制但是却没有提供任何这方面的参考。

*在rfc 2222"Simple Authentication and Security Layer (SASL)" 中几乎找不到以上描述的ESMTPAUTH鉴权机制。在本文中(alsopubl ished byJohn Myers)只概括了SASL机制和如何注册一个新的SASL机制名称但SASL的机制'KE R B EROS_V4', 'GSSAPI ',a nd'SKEY'是定义了的。

*为保证成功必须深入分析RFC 1731 "IMAP4 Authentication Mechanisms"和RFC 2195"IMAP/POP Authorize Extension for Simple Chal lenge/Response",这里将个别给出基于POP3和IMAP4协议上的鉴权例子这些文档均出自于John Myers RFC 2060 "INTERNET MESSAGEACCESS PROTOCOL -VERSION 4rev1"(John Myers) 说明了IMAP4'LOGIN'命令的用法但公众却不知道关于扩展邮件协议(ESMTP)的'AUTH LOGIN'方法。

*基于base64字符编码对ESMTPAuth值进行编码/解码的方法是第一次在RFC 1113文件的

"Privacy Enhancement for Internet Electronic Mai l : Part I --Message Encipherment andAuthentication Procedures"中描述尽管没有明确声明成BASE64.在文档RFC 2045的section

6.8中"Multipurpose Internet Mai l Extensions (MIME) Part One: Format of Internet MessageBodies"给出了同样的base64字符描述.

*如果使用一种额外的挑战/相应鉴权机制(或者叫协商机制) 则你必须非常熟悉成为HMAC的流程 该流程出自于RFC 2104文档的"HMAC: Keyed-Hashing for MessageAuthentication"部分(一种带key的哈希鉴权算法),并另遵循RFC 1321文档中的"The MD5Message-Digest Algorithm"消息摘要算法 HMAC简单的说就是一种加密/解密设计。

*直至今日仍没有一种公共的标准即怎样在邮件的消息头中拓展smtp鉴权信息。不过在文档RFC3848中有种最小设计以避免SMTP鉴权会话其中包括一个上次消息头中带有"Received:"的ESMTPA关键字.

从已知的情况来看似乎问题很清楚 即SMTP Authentication鉴权机制依赖于拼凑那些广泛分散在rfc文档中的机制、方法、流程。现在我们必须继续讨论SMT P的鉴权框架并将实现那些更复杂的事情.

鉴权框架

服务器通知我们采用一个RFC2554中的例子 "S:"表示SMTP服务器 "C:"表示客户端

S:220smtp.example.com ESMTP server ready

C: EHLOjgm.example.com

S:250-smtp.example.com

S:250AUTH CRAM-MD5 DIGEST-MD5

C:AUTH FOOBAR

S:504 Unrecognizedauthenticationtype.

C:AUTH CRAM-MD5

S:334

PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=

C:ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ==

S:235 Authentication successful .

这里RFC2554用多各关键字AUTH的值作为ESMTP命令该方式遵循RFC 1869,我们将分解分析ESMTP的客户端实现,一个相关是在AUTH关键字和值之间手工增加一个"=" ,如AUTH=LOGIN。

这里有三种鉴权机制被广泛的使用.来自Krzysztof Dabrowski的包qmai l-smtp-auth-patch的文档中,有一个M UAs概览及其AUTH机制提供了如下几种鉴权方式:

*AUTH_LOGIN

*PLAIN

*CRAM-MD5

1)AUTH LOGIN

最通用的'AUTH LOGIN'机制类似如下

S:220esmtp.example.com ESMTP

C:ehlocl ient.example.com

S:250-esmtp.example.com

S:250-PIPELINING

S:250-8BITMIME

S:250-SIZE255555555

S:250AUTH LOGIN PLAIN CRAM-MD5

C:auth login

S:334VXNlcm5hbWU6

C:avlsd kfj

S:334 UGFzc3dvcmQ6

C: lkajsdfvlj

S:535authenticationfai led

从所有的提供的鉴权机制中客户端选择了'authlogin',ESMTP server于是发送了一串'334VXNlcm5hbWU6'字符,该字符是基于base64编码对字符串'Username: '编码的客户端提供一个base64编码的用户名称给服务器服务器响应一个带有'Password: '字符串的消息'334UG Fzc3dvcmQ6'给客户端。在上面的例子中随机给定的用户名称和密码最后被服务器的鉴权请求给拒绝了。

2)AUTH PLAIN

按照IANA的文档,PLAIN鉴权机制定义在RFC2245的"AnonymousSASL Mechanism"部分,而更好的PLAIN鉴权机制说明可以在文档RFC2595"UsingTLSwith IMAP, POP3 andACAP" (第六章)中找到,内容:该机制由一个从客户到服务器的的消息组成客户断发送一个鉴权标识(登陆标识) 其后是一个ASICC码NULL字符再接一个鉴权标识(用户标识)后代ASICC码NULL字符,再接明文密码.客户端可以使鉴权标识为空,作为鉴权标记.简而言之正确的AUTH PLAIN值的组织形式是: 'authid/0userid/0passwd',其中'/0'标示空字节.

一些AUTH PLAIN的SMTP扩展鉴权机制没有完全遵循流程我们如下看到通过Netscape4.8MUA连接到一个修改过的Qmai l 1.03上来执行的PLAIN鉴权流程

C:ehlocl ient.example.com

S:220-esmtp.example.com

C:AUTH PLAIN dGVzdAB0ZXN0AHRlc3RwYXNz

S:235ok,goahead(#2.0.0)

C:RCPT TO:<. . ..>

在这个例子中用户名称是'test',用户密码是'testpass' .这里的Netscape客户端立即推送一个带有随意输入的鉴权标识't e st'的鉴权信息到服务器端而没有等待服务器告知其S M T P

具备的鉴权机制.

3)AUTH CRAM-MD5

AUTH PLAIN和LOGIN的鉴权方式都是传送明文的用户名称和密码但重要信息还是需要更安全的CRAM-MD5鉴权机制来保证我们已经提到CRAM-MD5合并了一个挑战/响应机制方式信息用于和服务器交换信息和一个被Digest5加密算法加密过的信息Digest 5算法用于加密重要信息 ,这里用到了一个MarkusStumpf(SpaceNet)发布的一个例子,是一个典型的ESMTPAUTH CRAM-MD5鉴权对话如下:

S:220popmai l .space.net ESMTP

C:ehlocl ient.example.com

S:250-popmai l .space.net

S:250-PIPELINING

S:250-8BITMIME

S:250-SIZE0

S:250AUTH CRAM-MD5

C:authcram-md5

S:334 PDI0NjA5LjEwNDc5MTQwNDZAcG9wbWFpbC5TcGFjZS5OZXQ+

与AUTH LOGIN鉴权机制不同服务器的响应现在是一次性的BASE64编码的'挑战机制',这个挑战信息 'PDI0NjA5LjEwNDc5MTQwNDZAcG9wbWFpbC5TcGFjZS5OZXQ+' 翻译成'<24609.1047914046@popmai l .Space.Net>' .字符串中头和尾的尖括号('<', '>')是强制性的,也是挑战机制的一部分其中提供了在字符@后的主机名称, '24609.1047914046'是一个随机字符串典型的是'pid'号进程号和挡墙的时间戳来创建挑战消息的唯一性.

在用户名称以base64明文形式被传输后服务器的挑战号也被客户端用于生成digestdigest来自于挑战号和密码(密码通常在上下文中被称为秘密或者共享秘密),digest摘要信息是基于MD5的哈希算法得到如下digest=MD5(('secret'XOR opad),MD5(('secret'XOR ipad), chal lenge))

如果ESMTP的服务和客户端‘共享’了相同的挑战号和密码则用户现在可以传输BASE64编码的'user name'和'digest'的方式成功通过服务器的鉴权.

. .

pacificrack:VPS降价,SSD价格下降

之前几个月由于CHIA挖矿导致全球固态硬盘的价格疯涨,如今硬盘挖矿基本上已死,硬盘的价格基本上恢复到常规价位,所以,pacificrack决定对全系Cloud server进行价格调整,降幅较大,“如果您是老用户,请通过续费管理或升级套餐,获取同步到最新的定价”。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款VPS特征:基于KVM虚拟,纯SSD raid...

六一云互联(41元)美国(24元)/香港/湖北/免费CDN/免费VPS

六一云互联六一云互联为西安六一网络科技有限公司的旗下产品。是一个正规持有IDC/ISP/CDN的国内公司,成立于2018年,主要销售海外高防高速大带宽云服务器/CDN,并以高质量.稳定性.售后相应快.支持退款等特点受很多用户的支持!近期公司也推出了很多给力的抽奖和折扣活动如:新用户免费抽奖,最大可获得500元,湖北新购六折续费八折折上折,全场八折等等最新活动:1.湖北100G高防:新购六折续费八折...

Hostodo:$34.99/年KVM-2.5GB/25G NVMe/8TB/3个数据中心

Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...

电子邮件的优点为你推荐
软银收购armGoogle为什么要把波士顿动力卖给软银?无纺布和熔喷布口罩哪个好医用 口罩里面是无纺布好还是过滤纸好手机管家哪个好有哪些人下了手机管家,最好的是哪个?网校哪个好有什么网校比较好51空间登录怎样登51个人空间空间登录器qq空间登录电脑版qq空间登录电脑手机怎么登qq空间电脑版?飞信空间登录移动飞信客户端怎么登陆???willyunlee最近开了007系列的第20部电影《择日再死》,看不懂剧情,不知说什么。谁能说给我听,谢谢。便宜的拼音便宜的宜拼音是第几音
域名注册信息查询 最便宜虚拟主机 已经备案域名 3322动态域名 互联网域名管理办法 美国独立服务器 免备案空间 特价空间 中国特价网 hostker seednet nerds 100m独享 空间技术网 便宜空间 www789 lamp兄弟连 美国迈阿密 .htaccess 美国主机 更多