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をコピーしました