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

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

電子メール

1.電子メール

世界中に簡単に、しかもほぼ無料、ほぼリアルタイムに手紙を送れるというのはすごいことだ。

遣隋使は聖徳太子から隋の煬帝(ようだい)への手紙を届けたが、それは大変な航海だったらしい。しかも「日出ずる処の天子」から「日没する処の天子」への手紙という上から目線の手紙であったというエピソード付きである。

さて、くだらない前置きはこれくらいで、ネットワーク試験において、メール関連の問題はそこそこ多いので、きちんと理解しましょう。

まず、概要について説明します。
・電子メールは、メールサーバと、OutlookやThunderbirdなどに代表されるメールクライアント(メールソフト)で構成されます。
・メールは、メールソフトで作成し、SMTPなどのメール送信プトロコルを使って送ります。外部から送信されたメールは、メールサーバのメールボックスに保存されます。利用者は、メールボックスに対して、POP3やIMAPなどのメール受信プロトコルを使ってメールを受信します。


2.電子メールのヘッダ

ネットワークスペシャリスト試験を目指す女性SE 

実際にヘッダを見ることをお勧めします。

Outlook Expressの場合、メッセージを開いたうえで、「ファイル」「プロパティ」「詳細」タブ

メールのヘッダ
内容は以下
・Received:経由したメールSV
・From 差出人
・To 宛先
・Subject タイトル
・Date 送信日付

Receivedはメールが配送されたルートを示している。メールは複数のサーバを経由することが多いので、Receivedは10行くらいになることも多い。
下から上に配送ルートが記載される。一番下が送信側で一番上が受信側。
以下に、Receivedヘッダについて解説を書いてみた。

▼過去問1(H19NW午前 問50)
このネットワークスペシャリスト試験の問題では、ヘッダの解説がされている。
mailheader

▼過去問2(H18NW午前 問9)
このネットワークスペシャリスト試験の過去問では、ヘッダのContent-MD5フィールドの用途を問われている。

過去問(H18NW午前 問9)
問9 インターネットにおける電子メールのヘッダに含まれているContent-MD5フィールドの用途として、適切なものはどれか。

ア 電子メール検索の高速化
イ 電子メールに含まれているディジタルデータの著作権保護
ウ 電子メール配信中のデータ損壊の検出
エ 電子メール発信者の認証






正解:ウ
事前知識がなくても、MD5という言葉から正解を導いてほしい問題である。MDはMessageDigestのことである。MessageDigestは、何の目的で利用するか?それはデータの完全性を確保するためである。つまり、データ損壊などといった完全性が失われていないかを確認する。

▼過去問3(H25SC春午前2問20)

過去問(H25SC春午前2問20)
問20 電子メールが配送される途中に経由したMTAのIPアドレスや時刻などの経由情報を,  MTAが付加するヘッダフィールドはどれか。
ア Accept
イ Received
ウ Return-Path
エ Via






正解はイのReceivedである。

では、以下の過去問(H20春SV午後1問1)で掲載されたメールヘッダの例です。これをもとに、メールの経路を書いてみましょう。
12
後半のFromが差出人のメールアドレス、toが宛先メールアドレス、Subjectがタイトルです。
Recievedは、経由したメールサーバの情報が、順に追記されます。一番上がもっとも新しいメールサーバです。Recieved行のbyで記載されたFQDNが経由したメールサーバです。

Q.以下は、上記のメールの経路を図にしたものです。今回はボット感染したPCがV社に迷惑メールを送信したと考えられます。2つのサーバ(下図のイ、ウ)のFQDNおよび、送信元であるボットのメールアドレス(下図のア)、受信者のメールアドレス(下図のエ)をそれぞれ答えよ。
mail






A.ア:naisho-address@○○.jp
 イ:smtp01.v-sya.co.jp
 ウ:pop01.v-sya.co.jp
 エ:tanto@v-sya.co.jp

Q.メールヘッダの情報は、送信者によって詐称できる。エラー時などの返信先であるReturn-path以外にも、詐称されている可能性があるのは(i)~(ⅳ)のどれか。全て答えよ。(設問1(1))






A. まず、送信者の情報である(ⅰ)と(ⅳ)は、偽装された可能性があります。送信者が自由に設定できるからです。また、メールヘッダは、自由に書き換えることができます。なので、Recieved行も全て書き換えられている可能性があります。
じゃあ、(ⅰ)~(ⅳ)の全部が詐称されているかもしれないのですね。

はい、そうです。しかし、下から2つ目のRecieved行は、上記の図にあるように、V社の外部メールサーバで付与しています。V社のメールサーバが乗っ取られていない前提であれば、(ⅱ)のIPアドレスは、改ざんの可能性は低くなります。外部メールサーバが受け取ったIPアドレス情報を基に記載しているからです。
また、(ⅲ)の情報も、V社の外部メールサーバが付与しているので、正しいだろう、と想定できます。
正解は(i)と(ⅳ)です。

3.メールの宛先(To、Cc、Bcc)

電子メールの宛先を入力する欄には、To、Cc、Bccの3つがあります。
以下は、Thunderbirdの画面です。 
bcc
3つの違いに関しては、IPAのサイトの丁寧な解説があるので引用します。

 (ご参考)アドレス欄の意味
・To: メールを送りたい相手のアドレスを入力する。受け取った本人は自分宛のメールと判断できる。
・Cc: Carbon Copy(カーボン・コピー)の略。参考として同じ内容のメールを送りたい相手のアドレスを入力する。
・Bcc: Blind Carbon Copy(ブラインド・カーボン・コピー)の略。Ccと同じように、入力したアドレス宛に同じ内容のメールが送信される。ただし、ToやCcに入力したアドレスは、受信メールに表示されるため確認できるが、Bccに入力したアドレスは受信メールに表示されないため、他の誰に送信されているか、受信者にはわからない。
(旧リンク)https://www.ipa.go.jp/security/kojinjoho/user.html

過去問(H22春IP)をみてみましょう。

過去問(H22春IP)
問1 電子メールの送信例のうち,受信者への配慮の観点から,最も適切なものはどれか。
ア 会員から抽出した100名のアドレスを一度にあて先(To)に入れて,会員満足度調査のアンケートを電子メールで送った。
イ 自社製品を紹介する大容量の資料を,圧縮せずに電子メールに添付して得意先に送った。
ウ 製品の質問メールへの回答で,その内容を知ってもらいたい複数の顧客のアドレスをCcに入れて返信した。






正解
エのBCCです。

4.MIME マイム

従来、電子メールではASCII文字しか利用できなかった。つまり、画像データを送ることができなかった。
そこで、画像データを送れるように、画像などのバイナリデータをASCIIの文字データに変換して送るようにした。この拡張機能がMIMEである。
H22春IP問58では、「電子メールで使用されるMIME (Multipurpose Internet Mail Extensions)」に関して、「画像ファイルなどの添付ファイルを電子メールで送る方法」と述べている。
4 

あれ?
公開鍵暗号方式を用いて,電子メールを暗号化して送る方法では?
それはSecureのSが頭につけられた、S/MIMEである。詳しくは別途記載する。

MIME(Multipurpose Internet Mail Extension)は、Base64というエンコード方式を利用している。

以下のメールヘッダにおいて、朱色部分がMIMEヘッダである。

・・・・・・
Received: from yyyyy1.co.jp [100.200.200.1]
by zzzzz1.co.jp with SMTP id xxxxx;
Tue, 24 Jul 2007 13:05:50 +0900
Received: from xxx (xxxxx1.co.jp [100.100.100.1])
by yyyyy1.co.jp (Postfix) with ESMTP id xxxx
for <user1@network-exam.com>; Tue, 24 Jul 2007 13:05:50 +0900 (JST)
From:Network Master<master@network-exam.com>
To: user1 <user1@network-exam.com>
Subject: dns server
Date: Tue, 24 Jul 2007 13:05:49 +0900
Message-ID: <XXXXXX>
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.6822

・・・・・・

5.Base64

(1)なぜBASE64が必要?
メールはもともと7bitのASCII文字で送受信されることを想定していました。なので、日本語文字やら画像は送れません。
ネットワークスペシャリストを目指す女性SEあれ? 

いや、添付ファイルに画像をつけて送ることができますよ
はい、ただし、一工夫しています。そのままではバイナリデータを送れないので、Base64というエンコードを用い、文字列に変換して送っています。

(2)BASE64の概要
BASE64では、全てのデータを64個の文字(a-z、A-Z,0-9、+,/)で表す。
ネットワークスペシャリストを目指す女性SEハテナ 

なぜ64個? 
詳しく説明しますね。画像でも日本語でも、すべて01データです。以下でもう少し補足します。
❶文字
・アルファベットや数字:何らかの文字コード(基本的にはASCIIコード)で2進数にする (※JISコードなどでもアルファベットや数字部分は、ASCII変換でも結果が同じ)
・漢字やひらがなは、2バイト文字であるため、ASCIIコードでは表現できない。なので、JISコードなどの2バイトの文字コードを使って2進数に変換する。※文字コードによって変換結果は異なる。メールで送るときは、文字コードを伝えてあげないと、文字化けする

❷バイナリデータ
画像や音声などのバイナリデータは、011001などと2進数で表されています。そのデータをそのまま使います。

この0と1のデータを変換して、テキストデータにします。
やり方は、01データを6ビットずつに区切ります。6ビットなので、000000~111111の64パターン。だから、64個の文字があれば、すべてのビットパターンを表現できのです。
※厳密にはパディングの=があるので、65個です。パティングは、ちょうど6ビットに収まらなかった場合に=で詰め物をします。

また、暗号化ではありません。元に戻すことも簡単です。

(3)エンコードの実例
たとえば、Helloという文字を送る場合。
「Hello」は8ビット文字として以下のようにあらわされる。
Hello
01001000  ・・・H
01100101  ・・・e
01101100  ・・・l
01101100  ・・・l
01101111  ・・・o

ここで、6ビットに変換する。

010010 
000110 
010101 
101100 
011011 
000110 
1111   ←端数がでるので、最後は0埋めし、111100とする。

変換表に基づき、文字に変換する。

010010 S
000110 G
010101 V
101100 s
011011 b
000110 G
111100 8

SGVsbG8= となる。 ※=はパディング 
6ビットで区切り、8ビットの文字に変換するため、データは4/3倍に膨れ上がる。

(4)過去問
過去問(H18SV午後2問2)を紹介する。

過去問(H18SV午後2問2)
S/MIMEを使用した場合,添付されるバイナリデータは,ASCIIで表現される64種類の文字と特殊用途の“="を使って表現する[ f ]方式に従って,テキストデータに変換される。64種類の情報を表現するために必要なビット数は,[ g ]ビットである。ここで, 1バイトが8ビットで,[ g ]と8の最小公倍数が[ h ]になり,[ h ]ビットは[ i ]バイトである。したがって,[ i ]バイトのバイナリデータから, 4バイトのテキストデータが生成される。 つまり,添付されるテキストデータは,パディング文字や改行文字などを無視すると,バイナリデータの[ j ]倍になる。このことから,調達ファイルのような大量のデータを転送する場合には注意が必要である。






正解は、以下。
f:BASE64
g:6
h:24
i:3
j:1.3 ※4/3を四捨五入。

もう一問。

過去問(H18NW午前 問29)
問29 30kバイトのJPEGファイルを電子メールに添付するとき、実際の転送データはおよそ何kバイトになるか。ここで、添付ファイルはMIME Base64を用いてエンコーディングされるものとする。






正解:40kバイト

(5)エンコードデコードのツール
以下のツールを使うと、Base64の変換などがWebで簡単にできる
https://gchq.github.io/CyberChef/
BASE64やハッシュ関数あたりが使えそう

また、rot13を使うと(検索から)、シーザー暗号を指定文字だけずらすことができる。
rot13(シーザー暗号)については、Linuxのコマンドtrでも可能。trの後半の文字列は、〇〇を△△に変換、などの意味だろうが、よくわかっていない。
# echo abc | tr 'n-za-mN-ZA-M' 'a-zA-Z'
nop ←abcを13文字ずらした文字になった。

ハッシュ関数などの演算処理は、opensslコマンドでも可能
ためしにBASE64でエンコードしてみよう
# echo -n abc | openssl base64
YwJj
※echoでパイプで渡している。-nが無いと、最後に改行コードが入ってしまう。

6.BASE64によるエンコードとデコードを実演

❶エンコードしたいファイルを該当場所に置く。
※今回は、Cドライブ直下に、org.txtというファイルを置いた。

❷コマンドプロンプトを管理者で実行する
Base64をやってみる1

❸以下のコマンドを実行。とても簡単。

c:\>certutil -encode org.txt result.txt
入力長 = 5
出力長 = 66
CertUtil: -encode コマンドは正常に完了しました。

❹作成したファイルを確認する。
※今回は同じ場所(Cドライブ直下)にresult.txtというファイルができている。

-----BEGIN CERTIFICATE-----
SGVsbG8=
-----END CERTIFICATE-----

では、別の実験をする。添付ファイルもこれをすれば文字列になる。
であれば、添付ファイルが送れない環境であっても、メール本文に画像をBASE64のエンコードをしてテキスト化して貼り付けて送付し、受信した側でそのテキストをデコードすれば、画像を受け取れるのではないか。ためしにやってみよう。

❶画像ファイルを該当場所に置く
以下の画像を、seeeko.jpgという名でCドライブ直下に置いた
ネットワークスペシャリストを目指す女性SE
❷先ほどと同じように、コマンドプロンプトからエンコードを実行

c:\>certutil -encode org.txt result.txt
入力長 = 5
出力長 = 66
CertUtil: -encode コマンドは正常に完了しました。

ファイルサイズは5kだったものが6kとなっただけで、あまり変わっていない。
以下が、result.txtの中身。

-----BEGIN CERTIFICATE-----
/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChA
KCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC
0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCg
oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARC
AB6AFoDAREAAhEBAxEB/8QAHQAAAgMBAQEBAQAAAAAAAAAAAAcF
BggEAwEJAv/EAD0QAAECBQIDBQUGBQMFAAAAAAECAwAEBQYRBxIh
MVEIE0FhcRQiMkKBUmKRobHBFhcjctElkqIVRHPC8P/EABoBAQADAQEB
AAAAAAAAAAAAAAADBAUCAQb/xAAwEQACAgEEAQIDBwQDAAAAAA
AAAQIDEQQSITETBUEiUfAUFWGBobHBIyRCkXHR4f/aAAwDAQACEQMR
AD8A1TABABAHnMPNS7Dj8w4hpltJWta1YSlIGSSTyAEAZc1P7TzjE+7I2B
KMvMsr2rqM2gqS5/40ZHDzPPoOcAKfUXWa9rvdZmlTr9Ipu4BmWkHFN
pKk4yoqB3KOevAeEcqcXJxT5R04SUVJrhlv0U1Rr0jq6w9fdXmjKVpnuVGY
cw02o47tW34U8U7fDG45jyuyFmXB5wdWVTrxvWMm0BHZGEAEAEAEA
EAEAEAZx7YN3zcpTKTZ9LcUh2rEuzRScEtBQCUeilZJ/tjmclCLk/Y6hFzkor
3EcLcp4pLck4gltCgtSwdpUrqTHzX2+7yuxPl/sfS/YalUq2uP5OpaqYhDLS1
yQSzju0qUn3MdOkRJXtuST5775JG6ElFtcddHhWKdJ16U7vvUF1PFtxCgo
pP7jyjvT32aWWcce6ONRRXqo4zz7Ma3Z01bnaZVpexb2eKgohqmzjhyQf
laUo80nkk+B4dMfS1Wxugpw6Pm7qpUzcJ9mpokIwgAgAgAgAgBd6s6t
29pvKhNQWqcqzidzNPYI3qH2lHkhPmfoDAGQL9uO59S7sauN6RYp6mm
ksy6EkhKEAkj4uJOVHjgDyilqNXp4pwm8/gi7p9JqG1OCx+LIxNr1GfVvrN
TUfuIJV/gD8IoP1CmpYogX/sFtrzfM6kWXTEjClzKj13gftET9VufSRKvS6V22
eL1lSw96UnJhlfgVYV+mI7j6tPqcU0cS9Kh3CTTIWuUqtyqWnXnVzTcudzb
yCSpH7iL2l1Wnk8Q+Fv2+uClqtNqIr4/iS9/rk3HorqfSNQLdlUNTYFdlmEC
dlXfdXvAAUtI+ZJPHI5Z44jQM4ZMAEAEAEAUDWvUOW05s16oqCXak+S
zIsK+dzHM/dSOJ+g8YAxtSpGbq1QeuG5XlzlUnF98S9xIz4kfoOQGIw9frm
26q3x7s3NBoVFK2xc+yJycmmJNkvTTyGmx8yjz9OsZVdcrHtgss1LLI1rdN
4RBi8KSXdm94J+33fD/ADF77s1GM8f7KX3nRnGX/om5SaYnGu9lXkOt9U
HOPXpFKyudb2zWC7XZGxZg8nvHB0EAV+epk5S6kzXLWfckarLK71Pcnbk
9R59RyMa2i9QccV2vj5mVrfT1LM6lz8jWGgurMtqPRlS88ES1xyaR7VLjgH
By71A6E8x4H1EbphDWgAgAgDEet1eXfetM3LFe+kULMs2jOUlST759Svh
6JEUtff4am12+C5oaPNas9Lkrlw1xulNpbQnvpxzg20P1P/3GMXSaOWoe
XxFe5t6vWR06wuZP2L7p1oXO19TVa1FefZbXhTVNQdrhT4bz8g+6OPUi
NbyQoWylGNsnfLfax3K09s9VLFONs0r2QDAT7ON3rv8Aiz55zEPlnnOSbx
QxjAnL57P78i45U9Op1xt1OVGnzDnPyQs8/RX4xN54WrZcsoh8U6nvqeG
K+Trz0rUHKXccq5Tqk0rYtLqCgZ8weX6RR1Ppzit9PK/X/wBNHTeoqb2W8
P8AQsMZRphHoICZnJ6zbmkLtt9ZamZZ0F1A4JWDwIV5KGQfWNv0zVOX
9GX5f9GL6npUv60fzN3WjXpS6LZptbp5JlZ5hLyAeac80nzByD6RsGOS8A
eM8+JWSmJhXJptTh+gzAH52W3UQ1JVutzfvOuvFSs81KOTj6lUZHqEJXX
QpRr+nzVNM7WOTs3afieJvq42w9MOrP8A05pwcE4OC7j14J6YJ6RNdKN
UVTX0itWpWyds+2aL2q54OOuIqlnIQPQgCnajae0O/ad3NXY7ucQnDE8
0AHWvr8yfun8jxiSu2Vb4IrKlNGW7gpFd0yrKKVcrZfpjhPss62CULT1SfLxS
eI/X3UaSGqXkq4l+51ptZLTvx28x/YlmnEPNIcaWlbahlKknIIjDlFxe1rk3IyUll
dHNV2RMUqcaUMhTKvxxkRJp57LYyXzRHfDfVKP4M0B2O59U3pGZdaifY
6g80kHwSQlf6rMfXHyQ8oAj7iQXbfqbafiXKupH1QYA/NaUKpiiS9PbOFTE
9g/7UgfrFbZ/cOfyj/JZ3/26gvd/wbPv4XJb9n0miaeU7vJxZbkETGAUSTaU4
7wg+nM8Bx8cRTr2yk5WMsT3RiowKt/JSpCW9sF/1/8AiPG/2rvT3W/ptzu
258/p4RJ9oWcbVg48EsZzyT+kN4VeqzFWtm8GQ3c1FIDziBhMw2eCXBjh
nly5gg9Y4urisSh0zumxv4ZdoZUQE5VdTrsbsmy5+tKQHXmwG5do8luq4J
B8uZPkDElVfkkkR2z2RyLWi6LfxXSkVfUer1aars8kPFtt4JRKhQyEAEEZA8B
gDljxieWo2PFa4II0b1mb5FHdtt1TSm4xT6ipc1QJpRVKzYTwI/ZQ8U/URH
qKI6yG+HEkTabUS0ktk+Ys7XnEKkXXEqCmy0pQUDkEY5xhxi1NRfeTdlJO
DkusDo7FKFp05rC1Z2Kqitv0abzH2B8eaFgDLGrFYuDU3V6asGi1NymUK
mIzOLbJHeEAFZUARuwVBISTjPGIb7VTDcySqt2y2oXGp2mlP09rVpmnz8
1NmdmsOd+lI27FI5Y/uiGjUO5Syuia6hVNYNir+NXrGeXV0Ua69Tbdte7K
bb1UcfE7O7TvQgFtgKOElZzkZPQHA4mJoUynFyRHK6MZbWXUNIS8twN
oDqgEqWEjcoDkCfHEREmF2f3A9Oeck5aeZ7mdlmZlncFbHmwtOQcg4P
DIME2ujxpPsqWoepNBsJ6nNVxUwp2eUdqWEBRQgHBcVkjgM+GSePCJ
a6ZWZwR2Wxr4ZLXdblKva2HqZU0pek5lAW06jiptWMpcQeoz9RwPOOY
Tdcso9nFWRwYyuSXqdhztYtasgrcbSRLOpHuqSrkpP3SDnyORE89LG+yF8
fzI69VKmuVMvyL1Z9RvvRi36BcaXRNWrVFJdmKeScIKxkZBHuKUkAhQ4e
B6RdjbGUnFdopSrcUpM2fS6rJ1OmSk/KPJVLTTKH2iSASlSQofkREhwZZu
qa/lb2k6hVaylaKFcDZUJkJJCd20qPDntWniOeCDFbVVO2vC7J9PYq55fRy
9paqU+elrNqdNnpWcl2ptwlbDyVjB2Ecj90xV0MXFyTRY1clLa0zSW4L99J
yFcR9YrlhdCN1W0fqd3anU2uSUzLopy0tJnO8VhbXdnmkfNlOMefOLVW
oUIOL7K1tLlPKHmTkkxVLQYMAEAJfX3Suq39VKLPUR+WQthBlphL69oS
gq3BY64ycjnyizp741pqRWvqc2mhu0qTRTqXJSLaipEqw2wlR5kJSE5/KK7
eXksRWFgQHaAkZevayWFRnGkud8EJfSBxU2p7kT0wlX4mLmnbjXKRTvS
diRMdqW4aexZrNryqm3arOzDRRKtcVNNoPAkDlk7QB48Y50sG5bzrUSSj
tQ3rMslyn2fQpKbmHETMtIMMupHyrS2kEfiDGgUiw3laVDvKkKptxyDU7
Kk7k7shTavtJUOKT6QBmfWns9US1bHqdwW1NVNx6TKXFS77iFoDe4BR
GEg8Ac8+QMAN3SevouXTqhVJKwp0y6WXvJxsbFZ+oz9YyLo7JtGnTLdB
FuiMlCAKRcdArs7qbatYkJzu6JINPJnGO+Kd6lAge5yVnI9MRLGcVW4vshl
GTmmui7xETBAAOJwIAzA/bTmtevFwNSdSckadSme6TONI3kd2QgAcR8S
is8+QMatENtaTMy6W6bY5dNdALbs2sN1icmZmt1ZpW9p2aAShtX2ggZ
97zJOPDBiYiHJABAHPUpKXqVPmZGdbDsrMtKZdbVyUlQwR+BgDJ9g1C
Y0X1KqVkXM4pFAn3Q9IzjnBCSeCFk+AUPdV0UnpFbU1b1uXaJ6Ldjw+jR
sZpokVdEvUZmivIoz5ZnQQpJBwVAc0g+BMRWqTjiD5Lvp9lFd6epjmP1y
VFi+anJMiWqdEfXOIG0qG5G49SMH8orLVTjxKPJuT9C09r8lFyUX/w8fr+5
LWgu4J+pTFRq5XLSS0bWpVQwM8MEA8RjqeeYkpdspOU+F8ij6nHQ01
Ro0/xTXcvr6RbotGIK/XfUNuzLcXI05zfcVRQWpVpHFTSTwLpH5J6n0MT6
enySy+ivfbtWF2WTs5afLsOxEGot7a1U1CZnAfib4e42f7QTnzUY1DPGtAB
ABABAFJ1W05pGo9v+wVQFmaayqVnEDK2Fn9UnhlPj5HBgDPsrcl+6JOo
pN50x2tWyhWyWnmlE7E+AQ5/6LwehxFa3TRnyuGT13uHD6GbbmsVjV1
tJarjMk8ebM8O4UD0yfdP0MU5aeyPsW43wl7lxl65SphAVL1aQdR4FE0gj
8jEW2S9jvdFnBVbytqktldSuCly4HgqaQVf7QST+EdKucukeOyK9xVXXr0x
MzApOnFMma3V3jsbeLKu7B6pR8S/rgesWa9I3zMgs1K6iT+jejM+zXReu
pb5n7jcV3rMstQWJdXgpZHAqHgBwT64xeSUVhFNtt5Y/49PAgAgAgAgA
gBVdpO9nLL02mHJMNmoVFYkmO8SFBO4EqXg8DhIOM+JEAZ5m9EFS
+l7FUbS4/ciAJ16XCjtWyQCWQPtAcc+JyOkAQ9Eo2j1VprczUK1cNDmSn
K5Z5IdGRz2LS2dw9cHyivKV0XhJMmSqfbwcEtZVCu68JehWA3VzKtf1J2p
VHaNrfUNhIwOmeJJHARLDf/mRy2/4l5n5FWhOptDrtDcdVblRxKzTTqtxC
Rt7wE9eS0nqCOUdnJshCkrQlSCClQyCPEQB9gAgAgAgAgAgDL/aofTWt
TLEtlax7Ok+0vjolbgBJ9EtqgD10Uu6vXnW7nqc29/oCHg1IsbAO6OSQAQ
M8EYznPEiAI27Gaxp3cjzVsU9ibkLod2STLwG2SnyQCoAj4SDux5eXEC2ylo
Ttp6dVeWoM0py55hlcw9UFpyuYmMZJ4+HMJ6ZzzzAChuO4H777Pbs5V
Fl6r0SoNpfcIwVhWUhR9QvB/tgDWelFUNZ00tifUcrep7O89VBACvzBgC1
wAQAQAQAQAQBlW4EouTtdzDTg3sU2T7sg8RgMcf+TpgCH7OjrkpSr9pj
aiZeUWVtuA/NtcTkfRCT9IA6tLrO0+r1sUSauqpoRNuMKeeddrfdKS6FqA
Gwq904AiTbDx5zz8iv5LfNs2/Djv8AEmLOl6bQr41GkrVnlTtJlKew7LK9rM
wnf3SlHC8n5siIywUHTWntzPZ3vtfxOrdUtXX+mlCx+8AaH7Lc6Z3ROhAn
KpdTzB+jqiPyIgBrwAQAQAQAQAQBkOiuLR2m76WhakrAeAUDg43NwB
G9nRxYl7qAWoBcygLGfiGF8+sAfHKBRt6v9Jp/M/8AbI/xAFtsqTlqbR60ad
LsyhcaIX3CA3vAQrAOOfMwBQtHnXE6OXk2lawhXf5SDwP9AeEAPHsfEn
R5vJ5T7+P+MAO6ACACAP/Z-----END CERTIFICATE-----

❸ここで、この内容をメールで送る。

❹メールを受信する。
そして、同じようにテキストファイルに貼り付ける。 

❺同じようにコマンドプロンプトを開き、こんどはデコード(decode)をする

c:\>certutil -decode result.txt seeeko.jpg
入力長 = 6138
出力長 = 4422
CertUtil: -decode コマンドは正常に完了しました。

すると、もとの画像ファイルが復元できた。

7.メールのエンベローブ、ヘッダ

メールは、メールヘッダ(SubjectやFromなどの情報)とメール本文からなる。
この点は理解しやすいだろう。加えて、エンベロープというものがある?
エンベロープ(envelope)は、英語の通り、封筒という意味である。手紙に「○○さんへ」と宛先を書いたり、自分の名前を書いた上で封筒に宛名と差出人を書く。そんなイメージをしてほしい。
この処理は、メールソフトが自動で作成するため、ユーザにはわからないかもしれない。試験では、本当にたまに出題され、H23春SC午後Ⅱでも出題されている。
図で書いたほうがわかるので、以下を参照ください。
エンベロープ (1)

エンベローブ(封筒) MAIL FROM:送信元メールアドレス
RCPT TO:送信先メールアドレス
メールヘッダ DATE:時刻
FROM:送信元メールアドレス
TO:宛先メールアドレス
Subject:題名
・・・・・
メール本文 こんにちは、来週の会議について、、、、

1



エンベローブがなぜいるのですか?
なくてはいけないの?
エンベローブはSMTP通信において、必須なのである。逆にメールヘッダは不要。なくても通信ができる。
メールが作成されるところをイメージしてもらうといいが、利用者は使いやすいメールソフトでメールを作る。そのときに作られるのがメールヘッダとメール本文である。それを実際に通信するときは、SMTPコマンドで通信するため、エンベローブにメールヘッダの情報がコピーされて、通信される。

過去問(R1秋SC午後Ⅰ問1)では、「エンベロ-プの送信者メールアドレス(以下, Envelope-FROMという)と,メールデータ内のメールヘッダで指定される送信者メールアドレス(以下, Header-FROMという)がある。」とあります。

先の表に記載しましたように、送信されるコマンドも違います。
・Envelope-from → MAIL FROMコマンド
・Header-From → DATAコマンド

※余談ですが、エンベロープFromの情報は、メールヘッダではReturn-Pathに記載される。古いメーリングリストなどでは、メールを転送(送信者→送信者のメールサーバ→メーリングリストのメールサーバ→宛先)する際に、Return-Pathは送信者のままとしていた。すると、宛先からすると、エンベロープFromは送信者のドメインであり、実際に送られてくるのはメーリングリストのサーバからなので、SPFに失敗する。今では、エンベロープFrom(つまりメールヘッダではReturn-Path)には、メーリングリストの管理者に設定するので、SPFは失敗しない)

8.メールのフレーム(パケット)構造

以下は、ネスペ27で書いた内容です。メールのフレーム構造(パケット構造)を理解するのにちょうどいいと思いますので掲載します。
固有名詞などは、この書籍のままです。詳しくは、本書をご確認ください。

mail
「この図において、服部課長のPCから私の携帯にメールを送るとする。このとき、服部課長のPCから出た直後のフレーム構造、パケット構造を書いて欲しい」
宛先MACアドレス 送信元MACアドレス タイプ 送信元IPアドレス 宛先IPアドレス プロトコル 送信元ポート番号 宛先ポート番号 データ FCS
            20000(仮)  






A.服部課長から送られたメールは、社内のメールサーバに送られます。よって、宛先IPアドレスはメールサーバ(10.1.1.25)になります。また、宛先MACアドレスは、L3SWのMACアドレスです。L2のフレームは、ルータなどのL3デバイスを超えられないからです。そして、メール送信はSMTP通信なので、宛先ポート番号は25番です。
正解をまとめると、以下のようになります。

宛先MACアドレス 送信元MACアドレス タイプ 送信元IPアドレス 宛先IPアドレス プロトコル 送信元ポート番号 宛先ポート番号 データ FCS
L3SWのMACアドレス 服部課長のPCのMACアドレス IPv4 192.168.1.101 10.1.1.25 TCP 20000(仮) 25


メールのプロトコル

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