Authentication

IMAP 如何使用 OpenSSL 在控制台中使用 AUTH=LOGIN 登錄

  • January 19, 2018

我見過一些返回的伺服器

授權=登錄

當我請求 IMAP 伺服器的能力時,例如:

1 能力

CAPABILITY IMAP4 IMAP4rev1 AUTH=LOGIN AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID 取消選擇兒童空閒命名空間文字+

如何找到更多資訊AUTH=LOGIN以及如何使用它直接登錄伺服器上的控制台?

我嘗試用​​Google搜尋它,但沒有成功。我想在我的 JAVA IMAP 客戶端中實現這種登錄格式。

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 Nameand Password,但是:

注意:至少有一個廣泛部署的客戶端要求伺服器傳輸的挑戰字元串分別為“使用者名:”和“密碼:”。出於這個原因,伺服器實現可以發送這些質詢字元串而不是上面列出的那些。

不涉及密碼加密/散列,因此您可以很容易地測試雙方,用於未加密的通信,netcat用於加密openssl s_clientopenssl s_server.

請注意,上面的範例缺少使用的協議必需品,因為這部分對您可能需要的所有協議都是通用的(SMTP/POP3/IMAP…)。實際通信仍然必須遵循協議規範:

地圖

1 AUTH LOGIN
VXNlcm5hbWU6
am9l
UGFzc3dvcmQ6
bXkgc2VyY3JldA==

SMTP

AUTH LOGIN
334 VXNlcm5hbWU6
am9l
334 UGFzc3dvcmQ6
bXkgc2VyY3JldA==

引用自:https://serverfault.com/questions/889693