



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
邮件传输协议鉴权(SMTP Authentication) SMTP鉴权设计是由netscape公司的J. Meyers于1999年提出的,并最终发布到RFC2554(SMTP Service Extension for Authentication),其中一部分是基于RFC 1869规范中的SMTP Service Extensions。大多数现有的SMTP实现都支持SMTP鉴权,尽管Qmail 1.03不支持(没有补丁),另一方面多数带有SMTP客户端功能的邮件用户代理(Mail User Agents or MUA)都具备鉴权功能。 SMTP Authentication是由鉴权服务器发起通知,SMTP Authentication要求客户端被鉴权,且双方最终必须互相接受对方访问,且支持可选的鉴权流程。由于原始的SMTP协议设计初衷是主机对主机协 议,SMTP Authentication机制下,用户必须标示自己并且在成功鉴权后给邮件收发方授权。 除了用于子协议交互的可选安全层被提及外,RFC 2554没有明确说明对于一个用户而言鉴权有什么好处,SMTP 鉴权采用一种简单的鉴权和安全协议层概念,但并没有加入到SMTP规范中,在本文中将简述该鉴权机制。需求说明(Request for Comments): *RFC 1869为SMTP协议对话定义了扩展协议(ESMTP),用户说明被SMTP服务器扩展的能力同时或者由客户端传递额外的协议信息。支持ESMTP的 smtp服务器必须在SMTP问候对话信息中使用关键字EHLO,客户端可能仅仅使用服务器提供的这种扩展功能,通过构造对话消息,在一个SMTP对 话中,服务器可以发送扩展信息(其作为ESMTP对话协议中的谓词(译者:是协议双方识别的关键字)或者作为MAIL FROM: or RCPT TO: 命令的一部分),一个典型的用法是MAIL FROM: SIZE=1512。这个例子中SIZE是一个扩展协议(ESMTP)关键字,1512是扩展协议(ESMTP)值,而整个术语 SIZE=1512是扩展协议参数(RFC 1870 规范中,用于声明扩展协议下的消息字节数),在RFC 1869利用两种不同的设计来改进ESMTP值的使用方式: 1,作为ESMTP动词,使用方式如 SIZE xxxxx 2,在命令MAIL FROM: SIZE=1512中通过“关键字=值”方式 * 在本文中,RFC 2554描述带有一个扩展协议关键字AUTH的SMTP鉴权,在传递的文本和RFC 2554的例子中,ESMTP Auth提到的值有CRAM-MD5, DIGEST-MD5和 PLAIN 每个值对应一个鉴权方法或机制,但是却没有提供任何这方面的参考。 * 在rfc 2222Simple Authentication and Security Layer (SASL) 中几乎找不到以上描述的ESMTP AUTH鉴权机制。在本文中(also published by John Myers)只概括了SASL机制,和如何注册一个新的SASL机制名称,但SASL的机制KERBEROS_V4, GSSAPI, and SKEY是定义了的。 * 为保证成功,必须深入分析RFC 1731 IMAP4 Authentication Mechanisms和RFC 2195 IMAP/POP Authorize Extension for Simple Challenge/Response,这里将个别给出基于POP3和IMAP4协议上的鉴权例子,这些文档均出自于John Myers,RFC 2060 INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1(John Myers),说明了IMAP4 LOGIN命令的用法,但公众却不知道关于扩展邮件协议(ESMTP)的 AUTH LOGIN方法。 * 基于base64字符编码对ESMTP Auth值进行编码/解码 的方法是第一次在RFC 1113文件的Privacy Enhancement for Internet Electronic Mail: Part I - Message Encipherment and Authentication Procedures中描述,尽管没有明确声明成BASE64.在文档RFC 2045的section 6.8中 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,给出了同样的base64字符描述. * 如果使用一种额外的挑战/相应鉴权机制(或者叫协商机制),则你必须非常熟悉成为HMAC的流程,该流程出自于RFC 2104文档的HMAC: Keyed-Hashing for Message Authentication部分(一种带key的哈希鉴权算法),并另遵循RFC 1321文档中的The MD5 Message-Digest Algorithm消息摘要算法,HMAC简单的说就是一种加密/解密设计。 * 直至今日仍没有一种公共的标准,即怎样在邮件的消息头中拓展smtp鉴权信息。不过在文档RFC3848中有种最小设计以避免SMTP鉴权会话,其中包括一个上次消息头中带有Received:的ESMTPA关键字.从已知的情况来看似乎问题很清楚,即SMTP Authentication鉴权机制依赖于拼凑那些广泛分散在rfc文档中的机制、方法、流程。现在我们必须继续讨论SMTP的鉴权框架并将实现那些更复杂的事情.鉴权框架服务器通知,我们采用一个RFC 2554中的例子,S: 表示SMTP服务器,C:表示客户端S: 220 ESMTP server readyC: EHLO S: 250-S: 250 AUTH CRAM-MD5 DIGEST-MD5C: AUTH FOOBARS: 504 Unrecognized authentication type.C: AUTH CRAM-MD5S: 334PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=C: ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ=S: 235 Authentication successful.这里RFC 2554用多各关键字AUTH的值作为ESMTP命令,该方式遵循RFC 1869,我们将分解分析ESMTP的客户端实现,一个相关是在AUTH关键字和值之间手工增加一个= ,如:AUTH=LOGIN。这里有三种鉴权机制被广泛的使用.来自Krzysztof Dabrowski的包qmail-smtp-auth-patch的文档中,有一个MUAs概览及其AUTH机制提供了如下几种鉴权方式: * AUTH_LOGIN * PLAIN * CRAM-MD51)AUTH LOGIN最通用的AUTH LOGIN机制类似如下:S: 220 ESMTPC: ehlo S: 250-S: 250-PIPELININGS: 250-8BITMIMES: 250-SIZE 255555555S: 250 AUTH LOGIN PLAIN CRAM-MD5C: auth loginS: 334 VXNlcm5hbWU6C: avlsdkfjS: 334 UGFzc3dvcmQ6C: lkajsdfvljS: 535 authentication failed从 所有的提供的鉴权机制中,客户端选择了auth login,ESMTP server于是发送了一串334 VXNlcm5hbWU6字符,该字符是基于base64编码对字符串Username:编码的,客户端提供一个base64编码的用户名称给服务 器,服务器响应一个带有Password:字符串的消息334 UGFzc3dvcmQ6给客户端。在上面的例子中随机给定的用户名称和密码最后被服务器的鉴权请求给拒绝了。2)AUTH PLAIN按 照IANA的文档,PLAIN鉴权机制定义在RFC 2245的Anonymous SASL Mechanism部分,而更好的PLAIN鉴权机制说明可以在文档RFC 2595 Using TLS with IMAP, POP3 and ACAP (第六章)中找到,内容:该机制由一个从客户到服务器的的消息组成,客户断发送一个鉴权标识(登陆标识),其后是一个ASICC码NULL字符,再接一个 鉴权标识(用户标识)后代ASICC码NULL字符,再接明文密码.客户端可以使鉴权标识为空,作为鉴权标记.简而言之,正确的AUTH PLAIN值的组织形式是:authid/0userid/0passwd,其中/0标示空字节. 一些AUTH PLAIN的SMTP扩展鉴权机制没有完全遵循流程,我们如下看到通过Netscape4.8 MUA连接到一个修改过的Qmail 1.03上来执行的PLAIN 鉴权流程C: ehlo S: 220-C: AUTH PLAIN dGVzdAB0ZXN0AHRlc3RwYXNzS: 235 ok, go ahead (#2.0.0)C: RCPT TO:在这个例子中,用户名称是test,用户密码是testpass.这里的Netscape客户端立即推送一个带有随意输入的鉴权标识test的鉴权信息到服务器端,而没有等待服务器告知其SMTP具备的鉴权机制.3)AUTH CRAM-MD5AUTH PLAIN 和LOGIN的鉴权方式都是传送明文的用户名称和密码,但重要信息还是需要更安全的CRAM-MD5鉴权机制来保证,我们已经提到CRAM-MD5合并了 一个挑战/响应机制方式信息(用于和服务器交换信息)和一个被Digest5加密算法加密过的信息(Digest 5算法用于加密重要信息),这里用到了一个Markus Stumpf (SpaceNet)发布的一个例子,是一个典型的ESMTP AUTH CRAM-MD5鉴权对话,如下:S: 220 ESMTPC: ehlo S: 250-S: 250-PIPELININGS: 250-8BITMIMES: 250-SIZE 0S: 250 AUTH CRAM-MD5C: auth cram-md5S: 334 PDI0NjA5LjEwNDc5MTQwNDZAcG9wbWFpbC5TcGFjZS5OZXQ+与AUTH LOGIN鉴权机制不同,服务器的响应现在是一次性的BASE64编码的挑战机制,这个挑战信息 PDI0NjA5LjEwNDc5MTQwNDZAcG9wbWFpbC5TcGFjZS5OZXQ+翻译成 .字符串中头和尾的尖括号()是强制性的,也是挑战机制的一部分,其中提供了在字符后的主机名称,24609.1047914046是一个随机字符串,典型的是 pid号,进程号和挡墙的时间戳来创建挑战消息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级新班主任发言稿
- 时间管理授课课件
- 高三班级成绩质量分析
- 初中历史学科试卷质量分析
- 爱护环境读书课件
- 二零二五版汽车抵押贷款合同借款人信用记录查询与维护合同
- 二零二五年度个人应急借款合同担保公证及援助方案
- 2025版彩瓦租赁与销售结合服务合同
- 二零二五年度彩钢房租赁与临时办公解决方案协议
- 二零二五年度生态修复工程承包垫资协议
- 勇气三声部合唱简谱川师音乐学院
- DB32/T 2283-2024 公路工程水泥搅拌桩成桩质量检测规程
- 人教版八年级物理下册全册各章综合测验及期中期末试卷含答案
- 2024标准版安全生产责任制培训记录
- 制造业的智能化改造与升级
- 《如何治理小金库》课件
- 脓肿切开引流术
- 汽车电器维修:雨刮系统电路分析
- 协及医院老年综合评估表格
- 建筑基础知识培训课件
- 蜡疗技术操作规范
评论
0/150
提交评论