1998年12月6日初稿、1999年1月17日最終更新
APOP 対応の確認を POP3 サーバとしては代表的な qpopper を用いて行っています。Netscape Messanger と Outlook Express はこの試験では APOP に対応していないという結果を出しています。これらのメイラーは APOP での認証に失敗していますし、APOP の設定もありません。しかし、雑誌の記事や出版者のウェブサイトの情報(インプレスの記事)及び APOP 対応のNIFTY SERVE の説明によるとこれらのメイラーは APOP に対応しているという記述があります。メイラーによっては APOP 対応のサーバに対して自動的に(といっても平文での認証に失敗した後に APOP で再度試すものはいくつかのメイラーで確認できています) APOP で認証を行うものもあり、これらはそれに該当するという話です。それにも関わらず、qpopper に接続を行うと、平文による認証を行おう(USER コマンド)として、"-ERR You must use APOP to connect to this server" というエラーメッセージが返ってきます。その次に APOP での認証を行おうとせずに終了してしまいます。本当に対応しているのか疑問です。また、APOP に対応しているIIJ4U の「動作確認済メールアプリケーション」にはこれらのメイラーは含まれていません。そこで、実際どういう動作をしているのか確認するためにパケットをモニタリングしてみました。
NIFTY SERVE は外部からの接続用に apop.nifty.ne.jp という APOP 用の POP3 サーバを用意しています。ここに、接続をしてみてコマンドの応答を確認してみました。なお、各行頭の "S:" はサーバから送られたメッセージを、"C:" はクライアントが送ったコマンドを示すことにします。
S: +OK NIFTY Corporation Pop server v1.01 <13130.912907545@pop-3.nifty.ne.jp> C: AUTH S: -ERR Unknown command: AUTH C: USER xxxxxxxx S: +OK Enter password for xxxxxxxx C: PASS yyyyyyyy S: +OK xxxxxxxx has 0 message C: STAT S: +OK 0 0 C: QUIT S: +OK Good Bye
S: +OK NIFTY Corporation Pop server v1.01 <13603.912907884@pop-3.nifty.ne.jp> C: USER xxxxxxxx S: +OK Enter password for xxxxxxxx C: PASS yyyyyyyy S: +OK xxxxxxxx has 0 message C: STAT S: +OK 0 0 C: QUIT S: +OK Good Bye
Netscape Messanger の方は "AUTH" コマンド(平文パスワードとAPOP以外の認証方法を提供するコマンド) を送り、拒否され、次に平文パスワード(USER/PASS コマンド)による認証を行い、成功しています。Outlook Express は始めから平文パスワードでの認証を行い、成功しています。ちなみに、APOP での認証は "APOP"コマンドを用います。
本題とは離れ、NIFTY SERVE に特化した話になりますが、APOP のみではなく、平文での認証も行っていることが確認できました(1998年12月6日現在)。このことは平文での認証を試みた後に APOP での認証を行うメイラーを使っている場合は、APOP で認証を行っているつもりで安心していたら、実はパスワードが平文のまま流れていたということになりかねません。また、Netscape Messanger と Outlook Express は共に NIFTY SERVE では平文パスワードで認証が行われていることが分かりました。そういうわけで、NIFTY を使用している方は注意しましょう。
次に qpopper へ接続してみたときのコマンドの応答を見てみます。ここで xxxxxxxx というユーザは APOP 用のアカウントしかありません。なお、各行頭の "S:" はサーバから送られたメッセージを、"C:" はクライアントが送ったコマンドを示すことにします。
S: +OK QPOP (version 2.53) at pop.somewhere.co.jp starting. <31336.912908644@pop.somewhere.co.jp> C: AUTH S: -ERR Too few arguments for the auth command. C: USER xxxxxxxx S: -ERR You must use APOP to connect to this server S: -ERR POP EOF received S: +OK Pop server at pop.somewhere.co.jp signing off.
S: +OK QPOP (version 2.53) at pop.somewhere.co.jp starting. <31373.912909127@pop.somewhere.co.jp> C: USER xxxxxxxx S: -ERR You must use APOP to connect to this server S: -ERR POP EOF received S: +OK Pop server at pop.somewhere.co.jp signing off.
サーバの設定において[受信メールサーバー]の項目の「セキュリティで保護されたパスワード認証でログオンする」を選択した場合
S: +OK QPOP (version 2.53) at pop.somewhere.co.jp starting. <31432.912910391@pop.somewhere.co.jp> C: AUTH S: -ERR Too few arguments for the auth command. S: -ERR POP EOF received S: +OK Pop server at pop.somewhere.co.jp signing off.
共に AUTH, USER コマンドで認証を行おうとして、拒否されています。APOP で再度認証を試みようとする動きは見られませんでした。
以上の結果より、Netscape Messanger と Outlook Express は APOP に対応していないとしか考えられません。その代わり、APOP 以外のセキュアな認証方法を提供していることは AUTH コマンドから確認できます。恐らく SASL による認証であると思われますが、qpopper 2.53 は AUTH コマンドを実装していないので詳しくは確認できません。AUTH コマンドに関しては RFC 1734, RFC 2449 に記述されているので、知りたい方は「電子メール関連リンク集 - 規格文書(RFCなど)」を参照してください。また、これらは SSL に対応しているので通信路を暗号化した上で認証を行うことができます。この場合は平文パスワードによる認証でも一応(SSL の強度にも因りますが)安全ですが、対応しているサーバが限定されます。(メイルサーバを stone や bjorb と組み合わせて SSL 化できるという情報を頂きました。)
Thanks to MORITA, Koji