トップページに戻る
tokix.netはネットワーク・セキュリティ周辺から半径rな雑文を垂れ流す不定期更新個人サイト>>このサイトについて

超初級偽装メール講座

<<トップカテゴリー「NetChildren」に戻る

超初級偽装メール講座(1) (>>この記事のみを表示)

例えばつき合ってる子がいたとする。ある日こんなワープロ書きの手紙が届いたとします。
「他に好きな人できた。別れよう。」
信じますか?普通の人間なら電話しますよね。

また別の話。彼女さんに呼び出されて直接言われたとします。
「他に好きな人できた。別れよう。」
普通は信じますよね。

我々は、ワープロ書きの手紙なんてものは誰にでも偽造可能なんだということを知っています。だからこそ、ワープロ書きの手紙を安心して使えるんです。そして、顔マスクを作って変装するなんていう芸当はルパン三世にしかできないんだということも知っています。何らかの「通信手段」を「安心して使う」というのは、つまりそういうことでしょう。

で、まぁ次回以降メールについて書く訳です。今回は簡単な頭のトレーニングでもしときましょう。
問題はこうです。

普通のメールソフトの標準機能のみを使って簡単にメールボムを撃つ方法を考えよ。ただし自分のメールアドレスを隠す必要はない。

同じ相手に一瞬にして同じメールを100通なりもっとなり送りつける「メールボム」ですが、「自分の身元を隠す」ということさえしなければ誰にでも撃てるんです。普通のメールソフトの標準機能を使って。

一つの答えは「BCCに同じアドレスを100個くらい書く」です。これならCTRL+Cで相手のアドレスをクリップボードに入れてBCC欄でCTRL+Vを押し続けるだけの手間ですね。

言われれば誰でも「あ、そうか」でしょ。
多分これ有名(というか基本)な方法なんだとは思います。既に数万人のネットユーザーが自分で発見した方法だと思います。「CCやBCCで同時に何人にもメールを送れる」なんてのは初心者向け雑誌にも載ってそうですし、その機能を使っただけですからね。
超初級偽装メール講座(2)
超初級偽装メール講座(3)
超初級偽装メール講座(4)
超初級偽装メール講座(5)

超初級偽装メール講座(2) (>>この記事のみを表示)

超初級偽装メール講座(1)
そして、単純にメールを使っているだけなら知らなくてもいい「メールヘッダ」について。そもそもメールの「差出人アドレス」というものはどのようにして相手に伝わるのか。

まず、葉書を思い出してください。
葉書には表面と裏面があります。本文は裏面。表面には差出人や宛先が書いてあったり消印があったりする訳ですね。

「電子メールのヘッダと本文の関係」というのは「葉書の表面と裏面の関係」に似ています。手紙の用件だけを見るなら表面なんか見る必要はない訳です。その手紙が誰から来たのか、いつ頃投函されたのか。そういう情報を得るために葉書の表面を見る訳です。
もっと具体的に書きましょう。メールソフトでメールを開いた画面です。

1はメールヘッダ(葉書で言うなら表面)から得られた情報、2は本文(葉書で言うなら裏面)に記載された内容です。

で、まぁ実際にヘッダを見てみましょうか。

えーと僕はOutlookExpress(以下「OE」)を入れてないんです。画面写真は今後も「Becky!2」だけです。そこはご了承を。

OEの場合、ヘッダを見る手段は
メールを選択→「ファイル」→「プロパティ」→「詳細」
だったと思います。

ヘッダの見方はメールソフトによって違うんで。ちなみに「Becky!2」であればメールを開くと下に「本文/ヘッダ」みたいなタブがあります。

自分が誰かに送信したメールで試して下さい。
何故かっていうと受信メールのヘッダは読みにくいからです。葉書でも同じですよね。送る段階では宛先と差出人しか書いてませんが受け取る段階では消印が増えてます。それと同じです。メールヘッダも送信から受信段階で書き足されていくんです。そこらへんは今後解説します。

で、送信済みメールのヘッダを表示してみましょう。
X-SMTP-Result: *** ******** Message accepted for delivery
Date: ***, ** *** 2001 **:**:** +0900
From: tokix <webmaster@tokix.net>
To: 友達 <friend@friend.ne.jp>
Subject: test
Message-Id: <***************@tokix.net>
MIME-Version: 1.0
X-Mailer: ***** ver. **
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
こんな感じだと思います。

イマイチ意味が分かりにくい箇所と分かりやすい箇所があると思います。なので今回はここだけ見ましょう。ずばり「From:」です。
From: tokix <webmaster@tokix.net>
これが送信メールの「差出人」を表します。受信者(のメールソフト)はこの部分を見て「あぁこのメールの差出人はtokix(アドレスはwebmaster@tokix.net)なんだ」と判断する訳です。
ということは。

メールヘッダの「From:」欄を改竄すれば差出人を偽造(隠蔽)することができます
超初級偽装メール講座(3)
超初級偽装メール講座(4)
超初級偽装メール講座(5)

超初級偽装メール講座(3) (>>この記事のみを表示)

超初級偽装メール講座(1)
超初級偽装メール講座(2)
我々はメールを送る場合、契約しているプロバイダーのメール送信サーバーにメールを送信します。「SMTPサーバー」ってヤツですね。
「メールの差出人が誰か」という情報をメールに付加していたのはプロバイダーのサーバーではなくあなた自身なんです。というかあなたのメールソフトなんです。

最初に電子メールを葉書に例えました。あの例えはここでも有効です。プロバイダーというのはポストにすぎないんです。投函された手紙の「送信者」は所詮自己申告制なんです。葉書の表面に「差出人の住所と名前」を書くのは送信者自身なんです。

しかし、メールを書く度に「自分の名前は○○、アドレスは○○」とか書いた記憶はないはずです。葉書だったら書く度に自分の住所と名前を書く訳ですが。
葉書の表面の差出人表示、つまりメールヘッダの「From:」欄はどこで設定されているのか。
多くのメールソフトではアカウント作成時に設定が行われています。「Becky!2」の新規メールボックス(アカウント)作成画面。

この1と2の部分です。ここに書かれた情報がメール送信時に利用されます。具体的には送信メールのヘッダの「From:」欄に「1 <2>」という情報がメールソフトによって自動的に付加される訳です。
From: tokix
こんな具合に。

ちなみに「Becky!2」では送信メールごとにヘッダの「From:」を書き換えられるんですがこの機能を搭載したメールソフトは他にはあまりなかった気がします。それでもアカウントの編集機能は大抵のメールソフトにあると思うんで。

では実験しましょう。既に設定されているアカウントの編集画面を開いて下さい。
OEであれば
「ツール」→「アカウント」→アカウントを選択→「プロパティ」
で開けます。

自分の名前とメールアドレスが記載されているはずです。そこを適当に変更して下さい。
名前:麻呂
アドレス:maro@heian.ne.jp
何でもいいですが。

そしたら自分宛にメールを出してみましょう。そのメールを受信すると、送信元は「麻呂 <maro@heian.ne.jp>」になっているはずです。

では、こうした偽造メールは完璧なのか。受信者が本物か偽物かを判別することは不可能なのか。
超初級偽装メール講座(4)
超初級偽装メール講座(5)

超初級偽装メール講座(4) (>>この記事のみを表示)

超初級偽装メール講座(1)
超初級偽装メール講座(2)
超初級偽装メール講座(3)
前回は送信メールのヘッダを読みました。「From:」が差出人情報であること。これを捏造すれば送信者情報を偽造することが可能なんだということ。

では受信メールのヘッダはどのようになっているのか。ちょっと見てみましょうか。
あらかじめ書いておきますが、ビビると思います。送信メールと比べて非常にとっつきにくいからです。でも冷静に見ればとても構造自体は単純です。

実験として自分から自分へ一通のメールを出しました。下に送信段階のヘッダ(「送信済みアイテム」内で参照したヘッダ)と受信段階のヘッダ(「受信アイテム」内で参照したヘッダ)を比較表示します。
前回書いたように、メールヘッダは送信後追記されていきます。ちょうど葉書に消印が押されるように。その様子をご覧下さい。

「webmaster@tokix.net」から「tokix@eastmail.com」に出されたメールです。「eastmail」というのはメール転送サービス。「tokix@eastmail.com」からプロバイダーにもらったアドレスへ転送が行われます。

最初に書いておきます。下記のヘッダは下から読んで下さい。メールがネット上を移動し受信者の元に届くまで、ヘッダはどんどん上に追記されていくからです。

送信段階のヘッダ 受信段階のヘッダ
6 Received: from eastmailの名前 (eastmailのメール送信サーバー [IPアドレス])
by プロバイダーのメール受信サーバー (8.8.8+Sun/3.7W)
with SMTP id MAA05058 for < プロバイダーにもらったアドレス>
Sat, 16 Jun 2001 12:19:33 +0900 (JST)
5 Received: (qmail 10989 invoked
by uid 1000);
16 Jun 2001 03:19:27 -0000
Delivered-To: eastmail-tokix@eastmail.com
4 Received: (qmail 10981 invoked from network);
16 Jun 2001 03:19:26 -0000
3 Received: from tokix.netのメール送信サーバー (IPアドレス)
by eastmailのサーバー
with SMTP;
16 Jun 2001 03:19:26 -0000
2 Received: from プロバイダー名 (接続先ホスト [IPアドレス])
by tokix.netのメール送信サーバー (8.8.8+Sun/3.7W)
with ESMTP id MAA05045 for <tokix@eastmail.com>
Sat, 16 Jun 2001 12:19:24 +0900 (JST)
1 Date: Sat, 16 Jun 2001 12:18:25 +0900
From: tokix <webmaster@tokix.net>
To: tokix <tokix@eastmail.com>
Subject: test
Message-Id: *****@tokix.net>
MIME-Version: 1.0
X-Mailer: Becky! ver. 2.00.03
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Date: Sat, 16 Jun 2001 12:18:25 +0900
From: tokix <webmaster@tokix.net>
To: tokix <tokix@eastmail.com>
Subject: test
Message-Id: *****@tokix.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Mailer: Becky! ver. 2.00.03
Content-Type: text/plain; charset="US-ASCII"

ここまでで読者が減っていないことを祈ります。日本語に翻訳しましょうか。受信メールヘッダを。

1 前回話した、送信者が自己申告するヘッダ部分です。差出人や宛先やメールタイトル等が書いてありますね。送信段階と受信段階で若干表示順序が変わっていますが今回はここはあんまり気にせずに。
2 Received: from プロバイダー名 (接続先ホスト [IPアドレス])
by tokix.netのメール送信サーバー (8.8.8+Sun/3.7W)
with ESMTP id MAA05045 for <tokix@eastmail.com> ;
Sat, 16 Jun 2001 12:19:24 +0900 (JST)

メールを送るにしろサイトを見るにしろプロバイダーに回線接続をしてもらわないといけませんね。接続先ホストからメール送信(SMTP)サーバーにメールが送られました。
3 Received: from tokix.netのメール送信サーバー (IPアドレス)
by eastmailのサーバー
with SMTP;
16 Jun 2001 03:19:26 -0000

メール送信サーバーからeastmail(転送アドレス)のサーバーにメールが送られました。
4 Received: (qmail 10981 invoked from network);
16 Jun 2001 03:19:26 -0000

ここは今回はあまり気にせずに
5 Received: (qmail 10989 invoked
by uid 1000);
16 Jun 2001 03:19:27 -0000
Delivered-To: eastmail-tokix@eastmail.com

ここも今回はあまり気にせずに
6 Received: from eastmailの名前 (eastmailのメール送信サーバー [IPアドレス])
by プロバイダーのメール受信サーバー (8.8.8+Sun/3.7W)
with SMTP id MAA05058 for < プロバイダーにもらったアドレス> ;
Sat, 16 Jun 2001 12:19:33 +0900 (JST)

eastmailのサーバーから転送先のメール受信(POP3)サーバーにメールが送られました。

さて、分かってもらえたでしょうか。このメールは

僕のパソコン
2→プロバイダー(ネット接続のため)→tokix.netのメール送信サーバー
3→eastmailサーバー
6→プロバイダーのメール受信サーバー(転送先)
→僕のパソコン

というルートを通ったんです。
つまり。

受信メールのヘッダからそのメールが届いた経路が分かるんです。
超初級偽装メール講座(5)

超初級偽装メール講座(5) (>>この記事のみを表示)

超初級偽装メール講座(1)
超初級偽装メール講座(2)
超初級偽装メール講座(3)
超初級偽装メール講座(4)
メールヘッダの「From:」をどんなに書き換えても超初級偽装メール講座(3)の2〜6は変わりません。これが「From:」捏造による偽造メールの限界点です。

具体的には、2に注目する訳です。メールのタイトルや差出人が書かれている部分のすぐ上。ここには送信者のIPやホストが記載されています。
Received: from プロバイダー名 (接続先ホスト [IPアドレス])
例えばあなたがAOLユーザーだったとする。ムカつくヤツの名前とメールアドレスを「From:」に書いてその彼女にお別れメールを送信する。それでもこの部分に書かれるのは
Received: from AOL (*********.aol.ne.jp [***.***.***.***])
みたいな情報なんです。そのムカつくヤツが例えばso-netユーザーであれば、この部分を見ただけで「偽者」という判断ができる訳です。

ということで今回の結論。

「From:」捏造による偽造メールは、受信者がヘッダを参照することで見破られる。

終わり?と思いますか?

裏を返せばこういうことです。

「From:」捏造による偽造メールは、受信者がヘッダを参照しない限り見破られない。

例えば「メールヘッダ」について何も知らない初心者。
例えばメールヘッダを参照できない携帯電話。

これ以上は書きません。あとは自己責任ですね。
dammy

Credit

SeeAlso

OtherSubCategory

Footprint

Navigation