Transcript MUA

ネットワークアーキテクチャ
第06回(2003/11/17)
「メールのアーキテクチャ」
村井 純
2003/10/20
Network Architecture 2003f
2003年度秋学期授業日程
09/29
10/06
10/13
10/20
10/27
11/03
11/10
11/17
11/24
11/26
12/01
12/08
12/15
12/22
~
01/08
01/12
01/19
2003/10/20
(最新情報はSoI*で確認してください)
(1)
講義概要/インターネットのアーキテクチャ
(2)
もうインターネットを分かっちゃおう
体育の日
(3)
DNSのアーキテクチャ
(4)
インターネット自動車のアーキテクチャ
文化の日
(5)
SOIのアーキテクチャ
(6)
メールのアーキテクチャ
今日はここ
勤労感謝の日の振替休日
(7)
WWWのアーキテクチャ
<-(水曜日)
(8)
セキュリティーのアーキテクチャ
(9)
インターネット上の様々なサービスを見てみよう
(10)
P2Pとオーバレイネットワーク
(11)
これからのネットワークアーキテクチャ(1)
冬休み
(12)
これからのネットワークアーキテクチャ(2)
<-(木曜日)
成人の日
(13)
最終試験
Network Architecture 2003f
突然ですが心理テスト
「大事な用件を伝える手紙に、不注意で切手を貼ら
ないでそのままポストに投函してしまいました。
あなたはどうする?」
• A ポストの投函口からなんとか自分で取り出そ
うとする。
• B 集配の人を待って取り出してもらう。
• C 仕方がないとあきらめる。
• D 家に帰ってお詫びの手紙をかく。
» フジテレビ「めざましテレビ」より
2003/10/20
Network Architecture 2003f
答えは、後で。
というわけで、今日のテーマは
電子メールのアーキテクチャ
2003/10/20
Network Architecture 2003f
今日のお品書き
電子メールのアーキテクチャ
電子メールのプロトコル(SMTPとPOP)
メールの拡張
メールのセキュリティー

2003/10/20
Network Architecture 2003f
手紙の出し方を考えてみよう!
どうやって運ぶ?
差出人
受取人
A:伝書鳩を常時
飼っている
B:風に任せる
C:自らダッシュ!
2003/10/20
Network Architecture 2003f
一番、確実
でシンプル
手紙の出し方を考えてみよう!
差出人
配達員
受取人
でも、
•自分で渡すのは大変!
→配達員にお願いしよう
•配達員に手渡すのも面倒
→ポストを使おう
•遠い場合はどうするの?
→郵便局間のリレー
•配達した時に相手がいなかったら →私書箱を使おう
2003/10/20
Network Architecture 2003f
で、今の仕組みが成り立っている
中央郵便局
中央郵便局
管轄郵便局
管轄郵便局
差出人
受取人
or
私書箱
2003/10/20
Network Architecture 2003f
E-mailもほぼ同じ
ただし、インターネット
に「中央」はいない
SMTPサーバ
(配送担当)
POPサーバ
(保管、分配)
メールソフト
(差出担当)
メールサーバ同士でリレー
サーバに保管された
メールを自分で取りに
行く
2003/10/20
Network Architecture 2003f
電子メールシステムの概要
使用するプロトコル
MUA
SMTP
Simple Mail Transport Protocol
MTA
メールソフト → SMTPサーバ
(MUA → MTA)
MTA
SMTPサーバ → SMTPサーバ
(MTA → MTA)
POP3
MDA
Mail Transport Agent (配送担当)
SMTPサーバ
投函の受付 →
宛先付近のサーバへ配送
Mail Delivery Agent (分配担当)
サーバ内でユーザごとの
メールスプールへ配送
サーバ内メールスプール
Post Office Protocol
または、 IMAPサーバ
POPサーバ サーバ上のメールスプールから、
ユーザマシンへコピー
IMAP4
Internet Message Access Protocol
POP/IMAPサーバ → メールソフト
(MDA → MUA)
2003/10/20
Mail User Agent (差出担当)
メールソフト
編集 → 宛名記入 → 投函
Mail User Agent (受取担当)
メールソフト
MUA
受け取る →表示
Network Architecture 2003f
けっこう工程が多い。。。
• すべてのメーラがSMTPのサーバとクライアント
を兼ねてれば、もっとシンプルじゃない?
» …でもこれだとうまく行かなかった。なぜ?
MTA
SMTP
Taro用
メールスプール
POP
サーバ
sirokuma用
メールスプール
POP
サーバ
IMAP
サーバ
IMAP
MUA
読み書き
個人マシン
2003/10/20
MDA
MTA
POP
MUA
読み書き
個人マシン
Network Architecture 2003f
masa用
IMAP
サーバ
Ishi用
理由その1
• もともとは、UNIXワークステーション環境をベースに構築
されていた。
– ワークステーション上に多数のユーザ
– ユーザは、ワークステーションにloginしてメールを読む
• ローカルへの配送は、宛先のメールスプールにデータを書き込むだけ
UNIXワークステーション
送る
Taro用
メールスプール
読む
2003/10/20
送る
送る
Hanako用
メールスプール
読む
Network Architecture 2003f
sirokuma用
メールスプール
読む
別のワークステーションのユーザにもメールを送りたい
• ローカルへの配送と、リモートへの配送を区別
– リモートへの配送は、別のエージェントにしよう
• MUA(Mail User Agent)、MTA(Mail Transfer Agent)の起源
ローカル配送
リモート配送
MTA
Taro用
メールスプール
読む
2003/10/20
Hanako用
メールスプール
MTA
sirokuma用
メールスプール
読む
読む
MUA
MUA
Network Architecture 2003f
MUA
手元のマシンにメールをもってきたい
• 別のワークステーションからメールを読みたい
• ワークステーション以外のマシンでメールを読みたい
• POPの登場 → 個人マシン(PCなど)の利用が高まり、一般的に!
ローカル配送
リモート配送
MTA
Taro用
メールスプール
POPサーバ
POP
MUA
読み書き
個人マシン
2003/10/20
Hanako用
メールスプール
読む
MUA
読み書き
Network Architecture 2003f
MTA
sirokuma用
メールスプール
POPサーバ
POP
MUA
読み書き
他のワークステーション
理由その2
• ダイアルアップが主だった時代だと・・・
モデム
ダイアルアップ
MTA
Taro用
メールスプール
POP
サーバ
IMAP
サーバ
IMAP
MUA
読み書き
個人マシン
2003/10/20
モデム
インターネット
SMTP
相手が
繋がっていないので
送れない
→メールサーバが
必要
MDA
MTA
sirokuma用
メールスプール
POP
サーバ
POP
MUA
読み書き
繋がっていればいらない?
Network Architecture 2003f
個人マシン
Ishi用
IMAP
サーバ
MDAやIMAPの登場
•
MDA
– リモートから配送されたメールを、ローカルのメールスプールに分配する機能を
別エージェントとして分離することもある(qmailなど)
•
•
Sendmailでは、MTAであるsendmailがローカル配送まで受け持つ
IMAP
– サーバ上に保管したメールを複数のマシンから読むことを想定
メールサーバ
MTA
SMTP
Taro用
メールスプール
POP
サーバ
sirokuma用
メールスプール
POP
サーバ
IMAP
サーバ
IMAP
MUA
読み書き
個人マシン
2003/10/20
MDA
MTA
POP
MUA
読み書き
個人マシン
Network Architecture 2003f
masa用
IMAP
サーバ
Ishi用
ところで、さっきの心理テストの答え
「大事な用件を伝える手紙に、不注意で切手を貼らないでそのままポストに投函し
てしまいました。あなたはどうする?」
→これで「あなたの秘密のバレ方 」が分かるらしい
•
A ポストの投函口からなんとか自分で取り出そうとする。
→「態度でバレる人」
秘密を抱えると、落ち着かなくてソワソワ。なんだか怪しい人に変身してしまう。
•
B 集配の人を待って取り出してもらう。
→「友達からバレる人」
自分一人では抱えきれなくて、すぐに人に依存してしまう。
すぐ信用して、友達に話してしまう。
•
C 仕方がないとあきらめる。
→「自分の口からバレる人」
もともと秘密にしておくつもりがない。「ここだけの話なんだけど」と結局みんなにしゃべっている。
•
D 家に帰ってお詫びの手紙をかく。
→「秘密は守る人」
秘密は守ってこそ秘密というもの。口がかたい。
2003/10/20
Network Architecture 2003f
電子メールの配送プロトコル
2003/10/20
Network Architecture 2003f
メールアドレス
• メールのあて先
• @を区切りとして、
• 前半がユーザ名
• 後半がドメイン名
taro
• メールサーバ上の
ユーザ名
• メールサーバが
ユーザを識別
2003/10/20
@ sfc.keio.ac.jp
• 個人のインターネット上の場所
• ユーザが所属するメールサーバ
Network Architecture 2003f
配送先のメールサーバをどうやって知る?
• DNSを使って、宛先ドメイン名の「MXレコード」を検索
– [email protected]
– 第三回DNSのアーキテクチャ参照
DNSツリー
自組織の
DNSサーバ
Q. sfc.wide.ad.jpの
MXはどこ?
A.
sfc.wideドメインを管理する
DNSサーバ
shonan.sfc.
wide.ad.jpだよ
Shonan.sfc.wide.ad.jp
自組織の
SMTPサーバ
MUA
2003/10/20
宛先ドメインの
SMTPサーバ
実際に通信を開始する前に
shonanのAレコードも検索
Network Architecture 2003f
MUA
MXレコードの優先度
• 複数のメールサーバを指定可能
• 優先度の高いメールサーバに障害がある場合、次の優先度
のメールサーバに対してメールを配送
DNSツリー
自組織の
DNSサーバ
Q. sfc.wide.ad.jpの
MXはどこ?
sfc.wideドメインを管理する
DNSサーバ
A. shonan.sfc.wide.ad.jpが(優先度 5)
backup.sfc.wide.ad.jpが(優先度10)だよ
①反応ないなぁ
自組織の
SMTPサーバ
MUA
2003/10/20
②じゃあ、こっちに送ろ
Network Architecture 2003f
shonan.sfc.
wide.ad.jp
backup.sfc.
wide.ad.jp
MUA
SMTP; Simple Mail Transfer Protocol
メールソフト・
送信SMTPサーバ
受信SMTPサーバ
Helloメッセージ
応答
送信者通知
許可
メール受信者通知
許可
DATA通信開始要求
許可
DATA送信
終了通知
メール受信確認
2003/10/20
Network Architecture 2003f
実際の流れーSMTP
% telnet mail.sfc.keio.ac.jp smtp
Connected to mail.
220 mail.sfc.keio.ac.jp ESMTP Sendmail ~
HELO mail.sfc.keio.ac.jp
←通信の開始
250 mail.sfc.keio.ac.jp Hello ccz00, pleased to meet you
MAIL FROM: [email protected]
←送信元メールアドレス
250 [email protected] … Sender ok
RCPT TO: [email protected]
←送信先メールアドレス
250 [email protected]… Recipient ok
DATA
Hello This is test mail.
.
←メール本文
250 PAA29357 Message accepted for delivery
QUIT
2003/10/20
←通信の終了
Network Architecture 2003f
メールヘッダでここまでわかる
利用した → Received: from mail.sfc.keio.ac.jp(mail.sfc.keio.ac.jp[133.27.4.120]
メールサーバ by shonan.sfc.wide.ad.jp (Postfix) with ESMTP id 7454162D38;
とその時刻
Mon, 27 May 2003 13:29:25 +0900 (JST)
利用した → Received: from jasmine (host123.sfc.wide.ad.jp [203.176.123.123])
メールサーバ by mail.sfc.keio.ac.jp (8.9.3/3.7W-SFC) with ESMTP id NAA02268;
とその時刻
Mon, 27 May 2001 13:29:51 +0900 (JST)
Date: Mon, 27 May 2001 13:30:44 +0900
From: “Hoge Hohe" <[email protected]>
To: [email protected],
Cc: [email protected]
Subject: インターネット概論[メールヘッダ]
← 使ったメールソフト
X-Mailer: Becky! ver. 2.00.03
jasmine
2003/10/20
MUA
mail.sfc.keio
shonan.sfc.wide
SMTPサーバ
SMTPサーバ
POPサーバ
Network Architecture 2003f
MUA
POP3; Post Office Protocol 3
POP3サーバー
POP3クライアント
POP開始要求
POP開始応答
ユーザ通知
ユーザ確認、パスワード要求
パスワード通知
ユーザ許可
DATA受信開始要求
メール数リスト通知
DATA送信要求
メール送信
メール受信終了通知
POPサービス終了
2003/10/20
Network Architecture 2003f
その他の配送方法
2003/10/20
Network Architecture 2003f
alias
• alias
– あるメールアドレスに対して別名をつけること
• 要望
– システム内の特別なユーザ(rootなど)に対するメールを誰かが受け取りた
い!
– 名前や役職などでも受け取れるようにしたい!
• 例えば
– taroというaliasに[email protected]というメールアドレスを設定すると
To: [email protected]
_____
送信
_____
2003/10/20
taro → t02XXXaa
sfc.keio.ac.jp
のメールサーバ
Network Architecture 2003f
t02XXXaaの
メールボックス
forward
• forward
– あるメールアドレスに届いたメールを別のメールアドレスに転送すること
• 要望
– メールアドレスが変わったので古い宛先に届くメールも新しい方で受信した
い!
– 複数のメールボックスを管理するのが面倒!
• 例えば
– [email protected][email protected]に転送するように設定すると
To: [email protected]
_____
送信
_____
To: [email protected]
_____
転送
_____
sfc.keio.ac.jp
のメールサーバ
2003/10/20
Network Architecture 2003f
hotmail.com
のメールサーバ
メーリングリスト
• mailing list
– 一つのメールアドレスを使って複数の人にメールを送る仕組み
• 要望
– たくさんの人にメールを送る時Toにいっぱい書くのは面倒!
– グループ全員のメールアドレスを知らなくてもメールを送りたい!
• 例えば
– [email protected][email protected][email protected]が登
録されている場合
To: [email protected]
To: [email protected]
_____
送信
_____
hotmail.comの
メールサーバ
sfc.keio.ac.jpの
メールサーバ
To: [email protected]
_____
_____ s02XXXaaの
メールボックス
2003/10/20
Network Architecture 2003f
_____
_____
taroの
メールボックス
POPとIMAP
2003/10/20
Network Architecture 2003f
POP(Post Office Protocol)
• サーバにあるメールボックスからメールを取り出すためのプロトコ
ル
• SMTP→メールボックスまでメールを届けてくれる→常時ネット
ワークに繋がっていないとメールが受け取れない
• POP→サーバに接続した時だけメールボックスにあるメールを
ローカルにコピーする
メールボックス
メールサーバ
SMTP
メールサーバ
POP
ユーザPC
•認証
•メールの取り込み
•メールの削除
など
メールサーバ
2003/10/20
Network Architecture 2003f
ローカル
メールボックス
POPの特徴
• 現在使われているのはPOP3(POP version3)
• テキストベースのプロトコル
– シンプルでわかりやすい、実装しやすい
– 処理負荷が低い
• ストア&フォワード型
– サーバに接続されていない時はメールボックスに蓄積される
– 接続した時だけ溜まっているメールを取り込む
• 現在使われているメーラはほぼ全てPOP3に対応している
– BeckyとかOutlookExpressとか
• ポート番号は一般的にTCP110番を使用している
2003/10/20
Network Architecture 2003f
IMAP ; RFC2060
Internet Message Access Protocol
•
•
•
•
サーバ上にユーザフォルダを持つことが可能
メールの部分的な取りだし(添付ファイルなど)
グループでの共有メールフォルダを定義可能
メールサーバ上でのメールの検索が可能
アクセスするホストが変わるような環境
メールをグループで共有したい場合
2003/10/20
Network Architecture 2003f
IMAPの仕様
•
•
•
•
•
•
•
2003/10/20
複数、多階層のメールボックス構造
IMAPサーバへのアクセス認証
– SASLにより提供される数々の認証メソッド
パブリックなメールボックス
各メールボックス内のメールの状態管理
– メッセージフラグ
ネットワーク負荷の低減
– メールサマリしかダウンロードしない。欲しい
メールだけローカルにダウンロードする。(→モ
バイル環境に適応)
サーバサイドの検索機能
命令の並列処理
– 非同期なコマンド送信と結果受信が可能
Network Architecture 2003f
メールを利用したアプリケーション
2003/10/20
Network Architecture 2003f
メールを利用したアプリケーション
• メッセージを相手に送れるようになった!
– テキストのメッセージを、
– 指定したメールアドレスに送る。
• メールを利用してもっと色々なアプリケーションを
作れるんじゃないか!?
– テキスト以外の画像とかも送りたいよね!
– メールアドレスって人に対する確実な識別子だよね!
2003/10/20
Network Architecture 2003f
MIME (多目的なメールの拡張)
•
Multipurpose Internet Mail Extensions(RFC2045-2049)
主な役目は2つ:
1. バイナリデータをテキスト(ASCII形式)に変換し、
その種類(Media Type)やファイル名を付けて送る。
2. 1つのメールに複数のデータを含める(カプセリング)
Received: from mars.webserve.ne.jp (mars.webserve.ne.jp
[210.145.214.20])
by mercury.webserve.ne.jp (2.5 Build 2640 (Berkeley 8.8.6)
/8.8.4) with SMTP
id NAA0055 for <wenserve.ne.jp>; Sun, 10 May 1998
13:00:00 +0900
Received: by mars.webserve.ne.jp(Lotus SMTP MTA v.4.6.1
(569.2 2-6-1998)) id 49256600.0015F05B ; Sun, 10 May 1998
12:59:37 +0900
X-Lotus-FromDomain: WEBSERVE
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Date: Sun, 10 May 1998 12:59:33 +0900
Subject: テストのメール
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Discription: inline
すべてテキスト(ASCII)で
書かれたメール
2003/10/20
種類:application/vnd.ms-powerpoint
元のファイル名:netarch.ppt
種類:text/html
元のファイル名:soi.html
Network Architecture 2003f
MIMEを利用したメールのヘッダ
Received: from mars.webserve.ne.jp (mars.webserve.ne.jp
[210.145.214.20])
by mercury.webserve.ne.jp (2.5 Build 2640 (Berkeley 8.8.6)
/8.8.4) with SMTP
id NAA0055 for <wenserve.ne.jp>; Sun, 10 May 1998
13:00:00 +0900
Received: by mars.webserve.ne.jp(Lotus SMTP MTA v.4.6.1
(569.2 2-6-1998)) id 49256600.0015F05B ; Sun, 10 May 1998
12:59:37 +0900
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Date: Sun, 10 May 1998 12:59:33 +0900
Subject: =?ISO-2022-JP?B?GyRCJUY1OSVIJE41YSE8JWsbKEI=?=
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Discription: inline
2003/10/20
Network Architecture 2003f
MIMEによる符号化(BASE64)
• 3つの手順でバイナリデータをASCII文字にする。
1. 6 bits 分割
2. 10進表記
3. 文字化
(2進表記)
↓
(6ビット分割)
↓
(10進表示)
↓
(文字化)
01010011 00011001 01111111
010100 110001 110001 111111
20
49
49
63 ; 0-63
U
x
x
/
; 4 Bytes
ヘッダの多言語化
Subject: テストのメール
Subject: =?ISO-2022-JP?B?GyRCJUY1OSVIJE41YSE8JWsbKEI=?=
文字本体
“=?” ; begin
文字コード
“ISO-2202-JP”;
Type
意味
7bit
7ビットデータ
8bit
8ビットデータ
binary
バイナリデータ
BASE64
BASE64でエンコード
“B”; 符号化方法 →
2003/10/20
“=?” ; end
Network Architecture 2003f
本文の多言語化の一例(日本語)
• 原則では7bitで表せる文字(ASCII)しか送れない。
– そのままだと漢字とか送れないよ!?
– バイナリデータとして符号化して送る?
• ASCII文字と「切り替えて」漢字を送る文字体系
– ISO-2022-JP (JISコード)
– 「ここから漢字」と「ここまで漢字」で切り替える。
– 7bit×2文字で一つの漢字をあらわす。
• 本文はISO-2022-JPだとヘッダに書いておく:
Content‐Type:text/plain;charset=ISO-2022-JP
2003/10/20
Network Architecture 2003f
日本語の文字コード; RFC1468
・ ISO-2022-JP (JISコード)
RFC1468で定義されたコード;
電子メール/インターネットでの標準コード
(*) JUNETコード、7 bits JISコード
Content‐Type:text/plain;charset=ISO-2022-JP
・ EUCコード
Extended UNIX Code (UNIX系システム)
・ Shift-JISコード
JIS X 0208-1990 をいくつかシフトしたコード体系
MIMEによるカプセリング
メールにテキスト以外のデータを添付できる。
From: いしだ
To: しろくま
Subject: スライド
←ヘッダ
今週のスライドの資料です。
←本文(テキスト)
いしだ
←添付(画像)
2003/10/20
Network Architecture 2003f
メールアドレスという識別子
• メールアドレスは何を指すもの?
– IPアドレスとドメインネームはコンピュータの識別子
– メールアドレスは人を指す識別子だと言える。
• そのアドレスにメールを送れば、
– その人がメールを受け取れる状態ならばすぐに、
– 受け取れないならば受け取れるようになったときに
(だいたい)確実に連絡できる。
→ 本人確認とかに使えるんじゃないの?
2003/10/20
Network Architecture 2003f
これで色々できるようになったよね
• なんでも送れるようになった!
–
–
–
–
日本語、英語、様々な言語
画像、動画、音声
プログラムのデータファイル
プログラム本体!
2003/10/20
Network Architecture 2003f
メールを取り巻くアーキテクチャ
どこでも使える
Webメール
携帯メール
多数に告知
メーリングリスト
メールマガジン
Push型の通知機能として
オークションの落札通知
WWWサイトの更新通知
メール
個人の確認ができる
オークションサイト
分かり易いメッセージフォーマット
ビデオの予約
MLなどの入会・脱会
コミュニケーションツールとして
ポストペット
シンプルなアーキテクチャの上に、
次々と新しいアーキテクチャが付加されて行く構図
→アーキテクチャとしての成功
2003/10/20
Network Architecture 2003f
メールを使ったアプリケーション
• ポストペット
–
–
–
–
メールソフトとしてはごく普通の機能
ペットを育てるという遊びとしての機能
ユーモアやゲーム的要素を取り入れた
ユーザフレンドリーなインターフェース
2003/10/20
Network Architecture 2003f
メールを使ったアプリケーション
• Webメール
– 専用のソフトウェアがなくても利用できるシステム
– 自分のPCを持っていなくても使える
– PCが変わっても同じ環境が使える
2003/10/20
Network Architecture 2003f
メールを使ったアプリケーション
• 電子署名
– メールで商品売買やパスワードのやりとりをする場合
– 個人情報やなりすましなどセキュリティの問題
– メールの暗号化、本人であることの証明
2003/10/20
Network Architecture 2003f
メールを使ったアプリケーション
• 家電の制御
– メールを送るとテレビの予約録画ができる
– あらかじめメッセージフォーマットを決めておく
– テレビ以外にも自動運転などの制御が可能
2003/10/20
Network Architecture 2003f
メールを使ったアプリケーション
• 通知系
–
–
–
–
オークションで落札できたら通知
お気に入りのWebサイトが更新されたら通知
サーバが落ちたら通知
毎日温度計から今日の気温を通知
2003/10/20
Network Architecture 2003f
メールを使ったアプリケーション
• メールマガジン
–
–
–
–
既存の定期的な情報配信をより簡単に(DM→メール)
興味のあるものだけを選べる
個人でも作れる
技術的にも簡単(大量の同報通知)
2003/10/20
Network Architecture 2003f
電子メールのセキュリティ
2003/10/20
Network Architecture 2003f
通信の中ではどこが危険?
SMTPサーバ→SMTPサーバ
•不正なメールサーバからrelayとして使わ
れるの危険性
不正中継の防止
SMTPサーバ
SMTPサーバ
POPサーバ
SMTP
SMTP
メールソフト
POPサーバ→client
POP
•POPのパスワードを盗まれ
る危険性 パスワード盗聴の防止
メールソフト
client → client
はたして送り主や内容はホンモノか?
•内容の盗聴、改竄、なりすましの危険性
2003/10/20
Network Architecture 2003f
暗号化と認証
通信の中ではどこが危険?
• パスワードの盗聴
– メールボックスに接続するパスワードを盗まれる
• 不正中継
– spamの大量送信の踏み台に使われる
• メールの内容に対する攻撃
– 内容の盗聴
– 内容の改竄
2003/10/20
Network Architecture 2003f
パスワードの暗号化
• POP
– パスワードを暗号化せずそのまま送信
→ パスワードが盗聴される危険性
• APOP
– Challenge-Responseという暗号の一種を使う
– サーバ側から送ってきた「Challenge」とパスワードか
ら「Reponse」を生成する。
→ 盗み見てもパスワードそのものは分からない!
+OK QPOP (version 2.53-APOP-SFC) at mail starting. <13860.1010186867@mail>
USER taro
チャレンジ文字列
+OK Password required for taro
APOP taro 577b4d0f677850ef61fdcd981779294f
+OK taro has XXX messages (YYY octets)
レスポンス文字列
2003/10/20
Network Architecture 2003f
不正中継の防止
• 元々はどんな相手から来たメールだろうと中継する。
→ spamメールの中継に使われてしまう。
• 原則:「第三者のメールは中継しない」
– 自分が出したメールのみ外部に中継する。
• 送信者を認証する必要性
– 自分のドメイン宛てのメールのみ中継する。
– SMTP AUTH
• SMTPの接続時に、送信者を認証する。
– POP before SMTP
• 直前にPOPで接続することで、送信者のホストを認証
– RBL(Realtime Blackhole List)
• 「第三者中継を許すサーバー」のリストをデータベース化
• リストに載っている悪い子からのメールは受け取らない。
2003/10/20
Network Architecture 2003f
メールの内容を守る
• メールの内容の暗号化
– 秘匿性の保証
• 送信相手以外には内容を見られない
• メールの内容に対する署名
– 完全性の保証
• 配送途中で改竄・変化していない
– 差出人の保証
• 誰が送信したかを保証
– 事後否認の防止
• 確かにその人からメールを受け取ったという証拠
2003/10/20
Network Architecture 2003f
公開鍵暗号による暗号化メール
• 公開鍵暗号を使ったメールの暗号化
– 公開鍵/個人鍵の対を使う。
– S/MIMEとPGPの2つがある。
公開鍵
個人鍵
• 基本機能はこの2つ:
– 相手だけが読めるように暗号化したメール
– メールを自分が書いたことを証明する署名
• 不思議な暗号方式:公開鍵暗号
– 個人鍵で暗号化したら、それと対になる公開鍵でしか元に戻せない!
– 公開鍵で暗号化したら、それと対になる個人鍵でしか元に戻せない!
2003/10/20
Network Architecture 2003f
公開鍵の信頼性
• あらかじめ「公開鍵」を配っておく。
– 公開鍵は誰から来たもの?
– 実は別の人がでっち上げたものかも……
• S/MIME
• PGP
– 「証明機関」がみんなの公
開鍵を証明
– 草の根的にお互いの公開
鍵を信頼し合う
証明機関
信頼の輪
2003/10/20
Network Architecture 2003f
メールの暗号化
受信者の公開鍵
送信者
公開鍵で暗号化した
ら、それと対になる個
人鍵でしか元に戻せ
ない!
暗号エンジン
暗号エンジン
受信者
2003/10/20
Network Architecture 2003f
受信者の個人鍵
メールの署名
送信者の個人鍵
送信者
個人鍵で暗号化した
ら、それと対になる公
開鍵でしか元に戻せ
ない!
暗号エンジン
暗号エンジン
受信者
2003/10/20
Network Architecture 2003f
送信者の公開鍵
安全な電子メール環境
不正中継
証明機関
内容の盗聴/改竄
SMTP AUTH
POP before SMTP
パスワード盗聴
公開鍵の証明
SMTP
パスワード暗号化
APOP
暗号化メール
S/MIME, PGP
2003/10/20
Network Architecture 2003f
おしまい
2003/10/20
Network Architecture 2003f
使えそうな素材
2003/10/20
Network Architecture 2003f
誰が、どのアドレスを使うの?
• 世界中の人たちが、勝手にIPアドレスを使ったら
複数の人が同じIPアドレスを使ってしまうかも
このコンピュータは
1.1.1.1にしよう!
1.1.1.1に接続!
衝突
このコンピュータは
1.1.1.1にしよう!
1.1.1.1はどっちだろう…
2003/10/20
Network Architecture 2003f
電子メールシステム
電子メールシステム内のエージェント
(1) MUA; Mail User Agent
(2) MTA; Mail Transport Agent
(3) MDA; Mail Delivery Agent
電子メールシステムで使用するプロトコル
(1) SMTP ; Simple Mail Transport Protocol
(2) POP3 ; Post Office Protocol
(3) IMAP4 ; Internet Message Access Protocol
2003/10/20
Network Architecture 2003f
電子メールシステム
User
Mail
Send
SMTP
User
MUA
Mail
Read
MTA
SMTP
Input
Mail TCP
Connection
MDA
POP3
IMAP
2003/10/20
Output
Mail
Spool
Output
Mail TCP
Connection
Input
Mail
Spool
MTA
SMTP
MUA; Mail User Agent
MTA; Mail Transport Agent
MDA; Mail Delivery Agent
Network Architecture 2003f
E-mailもほぼ同じ
ただし、インターネット
に「中央」はいない
DNS
Sendmail
qmail
→MTA
メーラーソフト
SMTPサーバ同士で
リレーする。
POPサーバ
→MUA
サーバに保管された
メールを自分で取りに
行く
2003/10/20
Network Architecture 2003f
e-mailを送る
自分の
SMTPサーバ
②メールが届く
相手の
メールサーバ
SMTP
インターネット
SMTP
SMTP
①メールを出す
POP(APOP)
③メールを受信
自分
相手
ネットワークA
2003/10/20
ネットワークB
Network Architecture 2003f
ドメインネームの仕組み
• 国や組織名をつけてどこの誰だか分かるようにした
• www.sfc.keio.ac.jpで考えてみよう!
www . sfc . keio . ac . jp
WWW
サ
ー
バ
2003/10/20
湘
南
藤
沢
キ
ャ
ン
パ
ス
慶
應
義
塾
大
学
Network Architecture 2003f
学
術
機
関
日
本
ゾーンの管理と委任
jpドメイン
委任
管理
ac.jpドメイン
keio.ac.jpドメイン
委任
委任
sfc.keio.ac.jp
ドメイン
jpゾーン
管理
管理
管理
keio.ac.jpゾーン
ac.jpゾーン
sfc.keio.ac.jp
ゾーン
2003/10/20
Network Architecture 2003f
DNSによる名前の解決
人間
www.sfc.keio.ac.jp
www.sfc.keio.ac.jp
ネーム
サーバ
Web ブラウザ
133.27.4.212
133.27.4.212
Webサーバ
名前から値への
対応情報を提供
2003/10/20
Network Architecture 2003f
手紙の出し方を考えてみよう!
2003/10/20
Network Architecture 2003f
PGPとS/MIME
1. MIMEフォーマット
に整形
2. 作成したセッション
鍵で暗号化
暗号エンジン
送信者
3. セッション鍵を
秘密鍵で暗号化
4. 暗号化されたセッション鍵と
暗号化されたメールをエンコード
送信者の公開
鍵で復号化
送信者の鍵ペア
2003/10/20
受信者
Network Architecture 2003f