POP3とは

/ネットワーク

POPとは

POP(Post Office Protocol)とは、メールサーバ(POPサーバ)上のメールボックスに貯まった自分宛てのメールを、メールクライアント(POPクライアント)に取り込むためのプロトコルです。POP3の基本仕様は RFC1939 で、拡張機能は RFC2449 で規定されています。

POPがサポートする機能はシンプルで、ユーザの認証、サーバ上のメールボックスに届いたメールの情報取得、ダウンロード、削除などです。POPサーバは、メール配送そのものを行うわけではなく、SMTPサーバが受信したメールをメールボックスに保存し、取得要求に応答します。

現在はバージョン3(POP3)が主に使われており、バージョン2以前とは互換性はありません。一般に「POP」と呼ばれているものは現在では POP3 を指します。そのため、以下は POP3 に限定して話しを進めます。

但し、現在では複数端末でメールを利用することが一般的となったため、POP3 よりも IMAP が広く利用されていますが、POP3 は現在でも ISP や一部のメールサーバで利用されています。POP3とIMAPの違いは以下になります。

POP3 IMAP
サーバからダウンロード サーバ上で管理
基本1台向け 複数端末向け
容量を節約できる 動機が容易

通信手順

POPでは、POPサーバに接続した後、3種類の状態を遷移することで手続きを行います。

  • AUTHORIZATION状態
    POPサーバに接続完了後の状態です。クライアントの認証が行われ、認証が成功すると、対象となるメールボックスが決定されます。
  • TRANSACTION状態
    クライアントの認証完了後の状態です。メールボックスの処理を行うことができます。
  • UPDATE状態
    QUITコマンドの発行後の状態です。消去マークが付けられたメッセージの削除とセッションの切断が行われます。

POPクライアントがコマンドを送り、それに対しPOPサーバがレスポンスを返す形でやり取りが行われます。尚、以下の通信例は TCP110 番ポートを使用していますが、SSL/TLS による暗号化通信(POP3S)では TCP995 番ポートが使用されます。

POPクライアント 方向 POPサーバ

POPサーバへ接続(Connected to -)


オープニングメッセージを応答
接続はTCPの110番ポートに対して行います。接続完了後はAUTHORIZATION状態に入ります。

クライアントの認証情報[APOP]


認証情報の確認
クライアントの身元が確認できたら、確認の応答を行い、TRANSACTION状態に入ります。

情報取得[SAT/LIST/UIDL]


情報の送信
メールボックスに溜まったメールメッセージの数やサイズを取得します。

メールメッセージの取得[RETR]


メールメッセージの送信
メールメッセージを番号を取得して、メールメッセージを取得します。複数ある場合は、複数回繰返します。

メールメッセージの削除[DELE]


確認を応答
不要なメールメッセージに消去マークを付けます。消去マークを付けたメールメッセージは、UPDATE状態に遷移した特に削除されます。

切断を要求[QUIT]
確認を応答

(メールメッセージの削除実行)
切断
TRANSACTION状態を終了してUPDATE状態に遷移します。

尚、QUITコマンドでなく、タイムアウトでセッションが終了する場合は、UPDATE状態にはならず、メッセージの削除は行われません。

POPコマンド

POP3では、メールメッセージの取得や情報の確認などの操作を、コマンドによって行われます。尚、右側の列の「A」はAUTHORIZATION状態、「T」はTRANSACTION状態、「U」はUPDATE状態で使用可能であることを表します。

コマンド 必須 説明 A T U
USER 基本認証を行う際のユーザ名の指定    
PASS 基本認証を行う際のパスワードの指定    
APOP オプション APOP認証を行う。引数としてユーザ名とMD5ダイジェストを渡す    
STAT メールメッセージの数や全体のサイズなど、メールボックスに関する情報取得    
LIST メッセージサイズなどの、メッセージに関する情報取得    
UIDL オプション メッセージのサーバ固有に一意な識別子(Unique ID)のリストアップ    
RETR メッセージ番号を指定してメッセージの取得    
TOP オプション メッセージボディを指定行数取得    
DELE メッセージの消去マークの付加。DELEでは削除予約を行い、QUIT時に削除が確定    
RSET メッセージの消去マークの解除    
QUIT 切断の要求  
NOOP 何もしない    
拡張コマンド

POP3で追加されたコマンドは以下になります。

コマンド 説明 RFC
XTND XTNDコマンドに拡張機能名を渡すことで拡張コマンドとして機能する。 RFC1082
AUTH AUTHコマンドの引数に認証機構名を渡すことで、認証機構の利用が可能。 RFC1734
STSL TLSプロトコルの利用することで、TSLによる暗号化が行われる。 RFC2595
CAPA 拡張サービス名、オプションコマンドなどの拡張機能のリストアップ。 RFC2449

APOP認証

APOP(Authenticated POP)認証とは、POPのクライアント認証の際に、パスワードを平文で送らなくするための仕組みです。USERコマンドとPASSコマンドによる認証では、パスワードを平文で送るため、盗聴のリスクがあります。

APOP認証では、サーバから送られてきた一意な文字列と、元のパスワード(共有鍵)を組み合わせてMD5ダイジェストという文字列を生成し、これをAPOP認証のパスワードとして使用します。

POPクライアント 方向 POPサーバ
オープニングメッセージで一意な文字列を送付
MD5ダイジェストを計算 MD5ダイジェストを計算
MD5ダイジェストを送信 両方のMDダイジェストが一致すれば認証完了
認証

尚、APOP認証のパスワードは平文で送信されますが、MD5 ダイジェストから元のパスワードを導き出すことはできないため、盗聴されても元のパスワードは守られます。但し、MD5 には既知の脆弱性があるため、現在では APOP よりも SSL/TLS による暗号化通信が推奨されています。

 

IT
マネジメント、セキュリティ、ネットワーク、システム
散策路TOP
物理学、数学、力学、電磁気学、連続体力学、相対論、熱・統計力学、量子力学、解析学、代数学、幾何学、統計学、論理学、物性論、プラズマ物理、電子工学、情報・暗号、機械学習、金融・ゲーム理論、IT、FP、宗教・思想

 

タイトルとURLをコピーしました