简单查问/应答的IMAP/POP授权扩展( 二 )


这个文档的例子显示通过IMAP4AUTHENTICATE命令来使用CRAM机制 。查问和应答的base64编码是IMAP4AUTHENTICATE命令的一部分 , 不是CRAM规范本身的一部分 。
S:*OKIMAP4Server
C:A0001AUTHENTICATECRAM-MD5
S: PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UUCmVzdG9uLm1jaS5uZXQ
C:dGltIGI5MTNhNjAyYzdlZGE3YTQ5NWI0ZTZlNzMzNGQzODkw
S:A0001OKCRAMauthenticationsuccessful
在这个例子中 , 共享的秘文是字符串“tanstaaftanstaaf” , 因此 , 键入的MD5摘要通过计算产生:
MD5((tanstaaftanstaafXORopad),
MD5((tanstaaftanstaafXORipad),
<1896.697170952@postOffice.reston.mci.net>))
这里ipad和opad在键入MD5的工作过程中定义[KEYED-MD5] , 在响应中显示的字符串是<1896.697170952@postoffice.reston.mci.net>的base64编码 。共享的秘文用null填充到64字节长度 。假如共享的秘文长于64字节 , 共享秘文的MD5摘要以16字节输入到键入MD5进行计算 。
这产生一个摘要值(以十六进制形式)
b913a602c7eda7a495b4e6e7334d3890
用户名加到它的前头 , 形成
timb913a602c7eda7a495b4e6e7334d3890
base64编码满足了IMAP4AUTHENTICATE命令(或者类似POP3AUTH命令)的需求 , 产生如下
dGltIGI5MTNhNjAyYzdlZGE3YTQ5NWI0ZTZlNzMzNGQzODkw
3.参考
[CHAP]Lloyd , B.和W.Simpson , “PPPAuthenticationProtocols” , RFC1334 , October1992 。
[IMAP]Crispin , M. , “InternetMessageAccessProtocol-Version4rev1” , RFC2060 , UniversityofWashington , December1996 。
[IMAP-AUTH]Myers , J. , “IMAP4AuthenticationMechanisms” , RFC1731 , CarnegieMellon , December1994 。
[KEYED-MD5]Krawczyk , H. , “HMAC-MD5:Keyed-MD5forMessageAuthentication” , WorkinProgess 。
[MD5]Rivest , R. , “TheMD5MessageDigestAlgorithm” , RFC1321 , MITLaboratoryforComputerScience , April1992 。
[POP3]Myers , J.和M.Rose , “PostOfficeProtocol-Version3” , STD53 , RFC1939 , CarnegieMellon , May1996 。
[POP3-AUTH]Myers , J. , “POP3AUTHenticationcommand” , RFC1734 , CarnegieMellon , December , 1994 。
4.安全事宜
可以说CRAM认证机制的使用 , 提供了在一个会话中 , 对鉴别和响应的保护 。从而 , 一个同时实现了明文口令的命令和这种认证类型的服务器 , 不会答应对一个给定用户 , 同时进行这两种方法的访问 。
虽然在服务器上 , 保存“上下文”(看第二节)要比以明文方式保存的共享秘文要好 , 这一点在CHAP[CHAP]和APOP[POP3]是必需的 , 但假如服务器本身不安全的话 , 这仍然不足以保护秘密信息 。从而 , 保存着秘密信息或者上下文的服务器 , 必须在用户的邮箱和标识符中 , 同时提供相同水平的保护力度 。
随着共享秘文长度的增加 , 连带的复杂性也会增加 。
虽然在一些文献中建议说 , MD5和键入MD5在认证过程中可能有受限的有效寿命 , 这个技术现在还是被广泛的使用和认可 。据认为 , 这种广泛的认可 , 有助于通过使用CRAM-MD5 , 使得对于在IMAP中使用持久的明文口令 , 进行快速的替换 。当考虑这些已被普遍的接受和具有足够的安全性时 , 这个文档故意答应简单更新到使用SHA(或者任何可替代的) 。
尽管使用了CRAM , 用户仍然易受到主动攻击 。常见的主动攻击的例子是“TCPSessionHijacking” , 这在CERTAdvisoryCA-95:01[CERT95]有描述 。
小节1有更多的讨论
5.致谢
这个备忘录从[POP3]和[RFC-1731]中借鉴大量的想法和一些文字 , 应该感谢这些文档的作者们 。RanAtkinson为这个文档做了大量有价值的技术和编辑方面的贡献 。
6.作者的联系地址
JohnC.Klensin
MCITelecommunications
800BoylstonSt,7thfloor
Boston,MA02199

推荐阅读