Hotmailには2つの独立したIMAPポートがあるようです。
imap-mail.Outlook.com 993
そして:
imap-mail.Outlook.com 143
私の推測では、143はセキュリティで保護されておらず、993はSSLを介しています。しかし、993を超えて接続しようとすると、次のようになります。
telnet imap-mail.Outlook.com 993
画面に何も表示されません-確認メッセージも挨拶メッセージもありません。同じことを143を超えて試してみると、メッセージは表示されますが、暗号化されています。
その後、ログインコマンドの発行が失敗します。
. LOGIN [email protected] mypassword
と:
. BAD Command received in Invalid state.
あいさつが届かないので、993年にはこれを入力することもできません。
なぜこれが正しく接続されていないのか、そしておそらく問題を解決する方法について誰かが私に助言できますか?
これは正常です; HTTPSをtelnetにしようとすると、まったく同じです443
;ポート993
は、TLSを使用するIMAPS用です。 TLS接続の場合( RFC 5246、7.4.1.2クライアントHello から):
クライアントが最初にサーバーに接続するとき、最初のメッセージとしてClientHelloを送信する必要があります。クライアントは、既存の接続でセキュリティパラメータを再ネゴシエートするために、HelloRequestへの応答として、または独自のイニシアチブでClientHelloを送信することもできます。
最初に挨拶することになっているため、サーバーは挨拶しません!
IMAPポート143
はTLSとの接続を開始しないため、動作が異なります。接続はプレーンテキストとして開始し、クライアントは( RFC 3501、6.2.1 )STARTTLS
を使用してTLSを要求します。
[TLS]ネゴシエーションは、サーバーからのタグ付き
CRLF
応答の最後のOK
の直後に始まります。クライアントがSTARTTLS
コマンドを発行すると、サーバーの応答が確認され、[TLS]ネゴシエーションが完了するまで、それ以上のコマンドを発行してはなりません。例:
C: a001 CAPABILITY S: * CAPABILITY IMAP4rev1 STARTTLS LOGINDISABLED S: a001 OK CAPABILITY completed C: a002 STARTTLS S: a002 OK Begin TLS negotiation now <TLS negotiation, further commands are under [TLS] layer> C: a003 CAPABILITY S: * CAPABILITY IMAP4rev1 AUTH=PLAIN S: a003 OK CAPABILITY completed C: a004 LOGIN joe password S: a004 OK LOGIN completed
つまり、どちらも安全ですが、143
はプレーンIMAPにも使用されるため、必ずしもそうとは限りません。
TLS経由のデバッグ接続が必要な場合は、元々telnetプロトコル用に設計されたtelnet
コマンドをそのために使用することはできません。ただし、他にもいくつかのツールがあります。
OpenSSL
openssl s_client -connect imap-mail.Outlook.com:993
openssl s_client -starttls imap -connect imap-mail.Outlook.com:143
GnuTLS
gnutls-cli imap-mail.Outlook.com -p 993
gnutls-cli imap-mail.Outlook.com -s -p 143
ncat
およびsocat
(STARTTLS
はサポートされません)
ncat --ssl imap-mail.Outlook.com 993
socat openssl:imap-mail.Outlook.com:993 stdio
socat ssl:imap-mail.outlool.com:993 readline
Debianでは、telnet-ssl -z ssl imap-mail.Outlook.com 993