ネットワークスペシャリスト - SE娘の剣 -

左門至峰によるネットワークスペシャリストの試験対策サイトです。勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの紹介します。

メールのプロトコル

1.メールのプロトコル

(1)送信プロトコル

❶SMTP(Simple Mail Transfer Protocol) 【ポート番号:25】
英語のとおり、メールを転送するプロトコルである。
このプロトコルには問題点がある。それは、認証をしないこと。皆さんもメールの設定において、POPサーバのユーザ名とパスワードは設定するが、SMTPサーバのユーザ名とパスワードは設定したことがないと思う。つまり、不正な人間が誰でもメールを送れてしまうこと。

→解決策
❷POP before SMTP 
認証が必要なPOP3による通信を行わせ、その通信が成功した送信元IPアドレスを、一定時間(たとえば5分)、SMTPの通信を許可するものです。なので、特別なポート番号を使うのではなく、25番ポートをそのまま使います。
ただ、今ではSMTP-AUTHが中心で、ほとんど使われていません。
※「SMTP AUTH方式には社内PCのメールソフトが対応していません。PCのメールソフトが対応していないくても利用できるPOP before SMTP方式を適用してください。(H20SV問1)」とあるように、SMTP AUTHの場合は、クライアントソフト側で認証用のユーザID、パスワードの設定が必要である。一方、POP before SMTPはクライアント側の設定は関係ない。サーバ側でPOP通信が成功した数秒間、そのIPアドレスからのSMTPを許可するからだ。

❸SMTP AUTH 【ポート番号:587】
・AUTHは認証(Authentication)。POPと同様に、ユーザ名とパスワード認証を行う。
・過去問ではSMTP-AUTHを使ったメールセキュリティ対策として「通常のSMTPとは独立したサブミッションポートを使用して、メールサーバ接続時の認証を行う。(H22春SC午前2問15)」と述べられている。
・過去問ではSMTP-AUTH認証に関して「クライアントがSMTPサーバにアクセスしたときに利用者認証を行い、許可された利用者だけから電子メールを受け付ける(H21春SC午前2問3)」と述べられている。

■SMTPのステータスコード
200番台 成功
300番台 成功し、続きのデータを要求
400番台 一時的なエラー
500番台 永久的なエラー

HTTPのステータスコードと、それほど遠くはありません。
HTTPのステータスコード

ネットワークスペシャリスト試験の過去問(H18秋NW午後Ⅰ問4)では、以下の問題があります。

過去問(H18秋NW午後Ⅰ問4)
外部メールサーバでの遮断時,SMTP通信の応答コードに,【 d 】なエラーを示す400番台ではなく,【 e 】なエラーを示す500番台を利用し,遮断した迷惑メールを再度受信することを抑止する。






d:一時的
e:永久的

また、SMTPの通信は暗号化されていません。
→解決策
❹SMTP over TLS (SMTPS)   【ポート番号:465】
SMTP over TLSは、非暗号のSMTPの通信を、TLSを用いて暗号化するものです。SMTPをTLSによって暗号化する仕組みには、STARTTLSもあります。SMTPSとSTARTTLSに関する記事も参照ください。

(2)受信プロトコル

❶POP(Post Office Protocol)  【ポート番号:110】
Post Officeとは郵便局のこと。郵便局のように、郵便(メール)を預かると考えれば、イメージがわくのではないでしょうか。

このプロトコルにも問題点があります。
問題点1)パスワードが平文であること
パスワードが平文なので、盗聴されるとなりすましの危険がある。

→解決策
❷APOP(Authenticated POP) ※ポート番号はPOP3と変わらず110番
メールサーバとの通信時にパスワードのみを暗号化します。
メールの通信そのものが暗号化されるわけではありません。もちろん、メールサーバがAPOPに対応している必要があります。

問題点2)メール管理が大変
メールが大量になるとメール容量が増える。

→解決策
❸IMAP4(Internet Message Access Protocol ver4) 【ポート番号:143】
メール管理がサーバ側で行える。欲しいメールだけを取得できる。
3番目の添付ファイルだけを取得する、なども可能。

問題点3)メールが暗号化されていない。
IMAPもPOP3も、メール本文だけでなくパスワードも暗号化されていません。インターネット経由でメールサーバにアクセスする場合はTLSによる暗号化は必須と言えます。

→解決策
❹POP3S 【ポート番号:995】
 そこで、POP3S(POP3 over TLS)によって、POP通信をTLS(古くはSSL)で暗号化します。

❺IMAPS
 IMAPをTLSで暗号化するプロトコルとして、IMAPS(ポート番号993)がある

2.SMTPのシーケンス

メールを送信するSMTPプロトコルについて解説します。
SMTPのセッションの開始を表すコマンドは、HELO(Hello)またはEHLO(Extended Hello)です。EHLOは「Extended(拡張された)」という言葉があるとおり、拡張機能を確認するために使われます。たとえば、SMTP-AUTHや、STARTTLSなどは、通信相手のサーバもこれに対応していなければ、利用できません。STARTTLSであれば、EHLOの応答にSTARTTLSの文字が含まれます。
SMTPプロトコルでは,メール本文を送信する前に,次の図のようにMAIL FROMコマンドにて送信元のメールアドレスを通知し,RCPT TOコマンドにて宛先メールアドレスを通知します。

内容を覚えなくていいのですが、以下は参考まで。

1)Client→Server 3way-handshake SYN
2)Client←Server 3way-handshake SYN,ACK
3)Client→Server 3way-handshake ACK
4)Client←Server 220 サーバの準備OK
5)Client→Server HELO ClientPC1 ←自分のホスト名を送る
6)Client←Server 250 OK
7)Client→Server MAIL FROM user1@XXXX.example.com ←送信者のメールアドレス
8)Client←Server 250 OK
9)Client→Server REPT TO aite@YYYY.example.co.jp ←宛先のメールアドレス
10)Client←Server 250 OK
11)Client→Server DATA ←メールデータを送るというメッセージ。中身は空
12)Client←Server 354 ←OKです。終わるときは"."を入力してください。
13)Client→Server Message Body ←メールのBody(内容)
14)Client→Server End Of Message ← 最初に指定された"."を入力し、メッセージの終わりを告げる。
15)Client←Server 250 OK
16)Client→Server QUIT ←メールの送信そのものの終了。
17)Client←Server 221 ←了解。終了しますよ。
18)Client→Server 3way-handshake FIN,ACK ※この前にFINパケットが欲しいところだが、キャプチャすると存在しない。上記の221メッセージが代用しているかもしれない。
19)Client←Server 3way-handshake ACK

■ネットワークスペシャリスト試験の過去問(R1秋NW午前Ⅱ) 

過去問(R1秋NW午前Ⅱ)
問9 SMTP(ESMTPを含む)のセッション開始を表すコマンドはどれか。
ア DATA   イ EHLO   ウ MAIL   エ RCPT






正解は、イのEHLO 

3.【参考】SMTPの通信をコマンドプロンプトで実行(telnet)

女性直立
SMTPのシーケンスを以下に書きます。
試験にでるというよりは、イメージを湧かせるためです。

さらりと眺めて置く程度でよいでしょう。
クライアント  ⇒   SMTPサーバ

HELO(クライアントのホスト名を通知)
MAIL FROM(クライアントのメールアドレス)
RCPT TO(宛先のメールアドレス)
DATA(メールヘッダ+メール本文)
QUIT(コネクションの終了)

試しにやってみる。
コマンドプロンプトから、telnet SMTPサーバ名 25(SMTPのポート番号)
smtp1

SMTPのコマンドを実行
smtp2

メールを受信してみると、正しく受信されている。
smtp3

では、エンベロープとメールソフトで表示されるユーザ名が違うところを見てもらうためにも、以下を実行します。メールサーバは192.168.0.25で、postfix/deovecotでメールサーバを構築しています。

telnet 192.168.0.10 25

HELO <a.com>  または自分の端末のIPアドレスを入れて、EHLO [10.1.1.10]
MAIL FROM:<test@a.com>
RCPT TO:<user1@example.com>
DATA
Subject: dummy mail
From: b@b.com
To: c@c.com
Hello
.
QUIT

メール本文を終えるには「.」をつける
以下、実際に受信してみると、DATAの中に入れたメールアドレスが表示されている。
smtp
以下は上記を実際に設定した様子の動画です。
https://drive.google.com/file/d/1P0QlMjqfhk-mfe8kj05jF8jpadQAZ07v/view?usp=sharing

4.POP3(Post Office Protocol version3)

❶POP3
POP3は、電子メールを受信するプロトコルの一つ。普及度合いはかなり高い。APOPやIMAP4などの他のプロトコルもあるが、これらに比べて圧倒的に普及している。Post Officeは郵便局の意味で、メールを郵便(手紙)と考えれば、この名が付いたのも理解できるのではないでしょうか。
  H20秋FE午前問50では、「電子メールシステムで使用されるプロトコルであるPOP3の説明」として,「メールサーバのメールボックスから電子メールを取り出すときに使用するプロトコル」と述べている。
4


POP3は、かなり普及していますよね。
私もPOP3を使っています。
POP3に何か問題でもあるのですか?
まあ、運用でカバーできる範囲だが、いくつか問題というか課題がある。
まずは、ネットワークスペシャリスト試験の過去問(H23NW午後Ⅱ問2)を見てみたい。

過去問(H23NW午後Ⅱ問2)
Y社では,PCのフォルダに保存したメールの障害時に備えた対応作業は,社員に任せている。 POP3とIMAP4の違いは,メーラを使っているだけではほとんど意識されない。しかし,③複数のPCで同じメールアカウントを使用するときには,違いが分かる。

設問4 〔現在のメールシステムの構成と利用状況〕について, (1)~(3)に答えよ。
(1)社員に任せている,障害時に備えた対応作業の内容を,30字以内で述べよ。
(2)本文中の下線③のときに,POP3で発生する問題を,30字以内で述べよ。






■試験センターの解答例は以下である。
設問4 (1) PCに作成されたフォルダのメールのバックアップ
 (2) 複数のPCから,同じメールを読むことができない。

どちらも、それほど致命的な問題ではないが、IMAP4であれば、メールをサーバ側で管理するので、(1)の問題に対処できる。
また、IMAP4はWebメールのように、メールボックスをサーバに持つので、(2)の問題にも対処できる。

❷POP3S(POP3 over SSL)
APOPはパスワードのみ暗号化されるが、POP通信そのものをSSLで暗号化するのがPOP3Sである。httpに対するhttpsと同じ位置づけで、POP3に対するSSL対応がPOP3Sである。
ポート番号は995。

H21NW午後1問2の穴埋めにて、ポート番号995のプロトコルを問う出題があった。

メールソフトは対応しているものが多いが、メールサーバ側ではそれほど普及していないのが現実だと思う。
以下がメールソフト(WindowLiveメール)
pop3S

5.IMAP4(Internet Message Access Protocol version4)

IMAP4の特徴は何か?
3 
それはわかります。
「メールボックスの管理をサーバ側で行うこと」ですね。
でも、なんとなくイメージがわかないんですよ。
実際にやったことがないから。
その通り。メールサーバ側でメールボックスを管理する。POPは自分のPCにメールをダウンロードする必要がある。POPはせいぜい、LISTコマンドを使ってメールの件数とファイルサイズを見るくらいである。
また、IMAP4の4はVersion4のことで、IMAP4とPOPの互換性は無い

実際に設定してみると、イメージがわく。GmailなどのWebメールを利用しているのであれば、IMAP4を設定してみよう。
以下に、おそらく皆さんが設定できるであろうメールの使い方の3パターンを書いた。
①POP3
②Webメール(HTTPS)
③IMAP
である。実際に設定して使ってみることで、違いが分かる。①と③の操作性の違いはほとんどないこともわかるだろう。
IMAP4_ネットワークスペシャリスト試験

過去問では、IMAP4に関して以下の記述がある。

メールサーバからメールを受信するためのプロトコルで、次の二つの特徴をもつ
(1)メールをメールサーバ上のメールボックスで管理することによって、発信者やタイトルを確認してからメールをダウンロードするかどうかを決めることができる。
(2)文字列などでメールサーバ上のメールボックス内のメッセージ検索ができる。
(H19NW午前 問35より)
電子メールシステムにおいて、利用者端末がサーバ~電子メールを受信するために使用するプロトコルで、選択したメールだけを利用者端末へ送信する機能、サーバ上のメールを検索する機能、メールのヘッダだけを取り出す機能などをもつものはどれか。
(H18SV午前問16より)

過去問(H25春IP問84)ではIMAP4の説明として、「PCで電子メールを読むときに,PCにメールをサーバからダウンロードするのではなくサーバ上で保管し管理する。未読管理やメールの削除やフォルダの振分け状態などが会社や自宅にあるどのPCからも同一に見えるようにできるメールプロトコル」と述べられています。

これが分かりやすいIMAP4のメリットだと言えます。
ですから、自宅のPCからでも外出先のタブレットからでも同じメールを読むことができます。POP3の場合は、メールをPCに取り込んでしまいますから、PCに取り込んだメールを外出先のタブレットで見ることはできません。

◆メールデータの移行にはIMAP
また、IMAPはメールデータを移行する際に良く利用される。H21NW午後1問2では、IMAPを利用したメール移行が詳しく述べられている。一部を抜粋する。

IMAPやIMAPSを利用すればASPサーバにメールデータをアップロードできることが分かった。

女性口開き



FTPやHTTP、またはPOPではダメなの?
なぜIMAPなの?
まず、POPは送信機能がないのでできません。
FTPやHTTPでもメールデータをアップロードすることは当然できます。
ただ、メールの移行をIMAPでやったことがある人なら分かると思いますが、IMAPでやるととても便利です。
FTPなどでメールデータをアップロードしようとすると、やっかいです。
メールは受信ボックス、送信ボックス、削除済みなどと複数のボックスに分かれていて、その振り分けを保ったままサーバに送ることは難しい。パソコン間であれば、メールソフトのエクスポート機能とインポート機能を利用すればいい話であるが、受信するメールサーバ側にはそんな機能は普通は持っていない。メールソフトによってエクスポートされる形式が異なるため、ツールを作るのも困難です。
一方IMAPであれば、とても簡単に行えます。IMAPを使ったことが無い人がほとんどかもしれない。メールの移行においては、IMAPを使うことは多い。IMAPには、POPと違ってメールをアップロードする機能がある。例えば、OutlookExpressを利用すれば、既存のメールをIMAPのサーバにドラックアンドドロップで簡単に移行できる。これは言葉では説明しにくいが、とても便利である。
 実際の設定としては、IMAPだからといってPOPと違った特別な設定があるかというと、そうではない。POPの設定と同じである。

6.APOP(Authenticated Post Office Protocol)

POP3では、パスワードを平文で送っている。APOPはAuthenticated POPなので、認証されたPOPという意味である。ちょっと直訳とは離れている気がしないでもないが、パスワードを暗号化して送る。ただし、メール本文は暗号化されない。
女性口開き 

いまどきパスワードを平文ってありあえないですね。
こんなに普及しているのに。
盗聴されないのですか?
確かにそう。パケットキャプチャすれば、他人のメールパスワードがわかる。
社内なら閉ざされているからまだわかる。が、家庭ではプロバイダへの経路はインターネット経由なので、盗聴されたらおしまい。
とはいえ、パスワードどころか、そもそもメール本文も暗号化されていないから、パスワードだけ暗号化してもあまり意味がないけどね。

皆さんも薄々感じているであろうが、APOPはあまり普及してない。
その理由は以下であろう。
 ①APOPに対応していない
 ・POPサーバとメールソフトの両方がAPOPに対応している必要がある。
 ・APOPに対応しているメールソフトはBeckey!。OutlookやOutlookExpressは未対応。
 ②セキュリティがそれほど向上しない。
 ・メールのパスワードだけという中途半端な暗号化
 ・セキュリティ上の脆弱性があるということで、POP3SやWEBメールによるHTTPS通信が推奨されている。
 (旧リンク)http://www.ipa.go.jp/security/vuln/200704_APOP.html