就会放弃所有来自客户端的知识,例如,不是获得自SASL协商本身的EHLO命令的参数 。
客户端也会放弃所有来自服务器端的知识,例如,不是获得自SASL协商本身的SMTP扩
展服务(这里假设一个客户端可以比较认证前后的建议的SASL机制的列表,从而检测主动
down-negotiation攻击) 。客户端应该发出一个EHLO命令,此命令作为使一个安全层有效的
认证协商成功后的第一个命令 。
服务器并不被要求一定支持任何特定的认证机制,同样认证机制要不要求必须支
持某种安全层 。
一旦一个AUTH命令失败,客户端可以通过发出另外一个AUTH命令来尝试其
他一种认证机制 。
一旦一个AUTH命令失败,服务器端的行为就好象客户端从没有发出那次AUTH
命令一样 。
base64编码的字符串一般可以有任意长度 。客户端和服务器端都应该可以支持
那些由认证机制产生的合法的任意长的请求和响应字符串,而不依靠于服务器或者客户端
的、可能存在于协议实现的某些方面的行长度的限制 。
例如:
S:220SMTP.example.comESMTPserverready
C:EHLOjgm.example.com
S:250-SMTP.example.com
S:250AUTHCRAM-MD5DIGEST-MD5
C:AUTHFoobar
S:504UnrecognizedAUTHenticationtype.
C:AUTHCRAM-MD5
S:334
PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvBT4=
C:ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ==
S:235AuthenticationsUCcessful.
5.对应MAILfrom命令的AUTH参数
AUTH=addr-spec
参数:
一个包含标志的被提交给传送系统的addr-spec,或者是两个字符组成的序列"<>",
表明这个标志是未知的或被验明为不完成的 。
为了遵守附加在eSMTP参数上的限制,addr-spec被编码到一个xtext中,关于xtext
语法的描述在[eSMTP-dsn]中的第5节中 。
讨论:
对应MAILfrom命令的可选的AUTH参数容许在一个可以信赖的环境中多代理
合作来传送个人消息的认证 。
假如服务器信任客户端的被验证的标志(这个标志表明这个消息最初是由给定的
addr-spec提交的),则当需要把消息转发到任何支持AUTH扩展的服务器去的时候,服务器
应该用包含相同的addr-spec参数的AUTH命令往返复 。
一个MAILFORM参数AUTH=<>显示最初提交的信息是未知的 。服务器端并不把
这个消息作为由客户端的初始提交数据对待 。
假如MAILFORM的AUTH参数没有提供,客户端已经被验证,并且服务器端相信
消息
是原始的客户端的提交,则当需要把消息转发到任何支持AUTH扩展的服务器去的
时候,
服务器端应该在AUTH参数的中的add-spe里提供客户端标记 。
假如服务器端不是充分信任客户端的认证标志,或者客户端没有通过认证,则服务
器端会表现为似乎由一个AUTH=<>参数被提交一样 。服务器端也可以把ahth的参数写入到
一个log文件中去 。
假如提交一个AUTH=<>参数,不管是明确提供还是由于在上面段落中的条件隐含
提供,服务器端在转发消息到用AUTH扩展认证的其他任何服务器的时候都必须提供
AUTH=<>的参数 。
一个服务器应该把邮件列表扩展作为一个新的子任务来对待,在转发消息到列表订
户的时候,为邮件列表地址或邮件列表治理设置AUTH参数 。
一个“硬编码”的实现是把所有客户端都当作不完全信任的 。这时,这个实现只是
解析并抛弃语法有效的mialfrom命令的AUTH参数并提供AUTH=<>参数给任何用AUTH
扩展来做认证的服务器 。
例如:
C:MAILFROM:
推荐阅读
- 如何启用客户机的WINS功能
- WINS 服务的新特性
- WINS 服务的基本概念
- 502错误
- TCP的服务
- 欢太云服务是什么意思
- IP多播提供的两类服务
- PPP Over FR & RIP v2明文认证
- 微信腾讯游戏实名认证怎么填
- 如何在学信网上申请学历认证