![IMAP 如何使用 OpenSSL 在控制台中使用 AUTH=LOGIN 登录](https://linux22.com/image/715449/IMAP%20%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20OpenSSL%20%E5%9C%A8%E6%8E%A7%E5%88%B6%E5%8F%B0%E4%B8%AD%E4%BD%BF%E7%94%A8%20AUTH%3DLOGIN%20%E7%99%BB%E5%BD%95.png)
我看到过一些服务器返回
验证=登录
当我请求 IMAP 服务器的功能时,例如:
1 能力
功能 IMAP4 IMAP4rev1 AUTH=LOGIN AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID 取消选择子项空闲命名空间 LITERAL+
我如何才能找到更多信息AUTH=LOGIN
以及如何使用它直接登录服务器控制台?
我试过谷歌搜索,但没有成功。我想在我的 JAVA IMAP 客户端中实现这种登录格式。
答案1
LOGIN SASL机制和PLAIN机制很相似,但是它需要两步进行认证:
CLIENT: AUTH LOGIN
SERVER: VXNlcm5hbWU6
CLIENT: am9l
SERVER: UGFzc3dvcmQ6
CLIENT: bXkgc2VyY3JldA==
经过 base64 解码后,结果为:
CLIENT: AUTH LOGIN
SERVER: Username:
CLIENT: joe
SERVER: Password:
CLIENT: my secret
规范说来自服务器的挑战应该是User Name
和Password
,但是:
注意:至少有一个广泛部署的客户端要求服务器传输的质询字符串分别为“用户名:”和“密码:”。因此,服务器实现可以发送这些质询字符串,而不是上面列出的字符串。
由于不涉及密码加密/散列,因此您可以轻松测试双方,对于未加密的通信使用netcat
加密openssl s_client
或openssl s_server
。
请注意,上面的示例缺少所用协议的必要性,因为这部分对于您可能需要的所有协议(SMTP/POP3/IMAP...)都是通用的。实际通信仍必须遵循协议规范:
信息访问协议
1 AUTH LOGIN
VXNlcm5hbWU6
am9l
UGFzc3dvcmQ6
bXkgc2VyY3JldA==
邮件传输协议
AUTH LOGIN
334 VXNlcm5hbWU6
am9l
334 UGFzc3dvcmQ6
bXkgc2VyY3JldA==
答案2
这是一个过时的非标准扩展。它未列在IANA IMAP 功能注册.它来自一个过时的draft-murchison-sasl-login-00
(见SASL 身份验证方案的 IANA 列表)。
它没有带来任何新功能AUTH=PLAIN
或 IMAP 标准LOGIN
命令。