■
スパムはどのように送られてくるか?
1.まずインターネットメールを理解しよう。
スパムを理解するには、インターネットメールの仕組みを理解する必要があります。
インターネットメールはSTMP(Simple Mail Transfer
Protocol) と言う約束事で送信されており、RFC821で定義されています。
SMTPは、元来サーバ間でメールをやり取りするためのプロトコルでしたが、現在はほとんどのメールソフトが、サーバに対してメールを送信する時、利用されています。
インターネットメールは
■ エンベロープ
(Envelope)
■ ヘッダ (Header)
■ 内容 (Data)
の3つで構成されています。
エンベロープは、MTA(Mail
Transfer Agent:メールサーバー)、ヘッダは、MUA(Mail
User Agent:メールソフトなど)によって解釈されています。
つまり、メールの配信にはヘッダ(内容)は関係なく、一般の郵便と同 じくEnvelope(封筒)上の差出人と宛先で行われます。
このことは、手紙の内容部分に『東京都○○区・・・・』 と書いても、封筒に住所が書いていなければ届けてくれないのと同
じことです。
■SMTPの通信手順

Telnetなどで通信すると、以下のような手順でメールが送信されます。
メールソフトは以下の操作を自動的に行うものと考えてください。
|
1 |
メールサーバーの呼出し
hello:でセッションを開始
ここは挨拶なので、入力しなくても良いが、通常自分のメールアドレスを名乗る。 が、しかし基本的になんでもOK。
|
|
2 |
送信の準備
mail from:でメールの送信者を記入
ここも、なんでもOKだが、サーバーの設定で、指定した以外のメールアドレスで送信できなくすることも可能。
|
|
3 |
宛先の通知
rcpt:でメールのあて先を知らせる。
|
|
4 |
本文の送信
DATA: でヘッダーを含めたメールの本文を送信し、最後にピリオドけの行を加え、本文を終了させる。
|
|
5 |
終了通知
QUIT: を送ると、メールの送信要求、メールサーバーとの通信を終える。
|
|
6 |
メールを受け取った側では、そのメールが自分のサーバ宛てのものであれば、ユーザーのメールボックスにスプールする。
|
|
7 |
他のサーバー宛であれば、1に戻り新たに転送する。
|
以上の操作をSMTP
のコマンドを手で打ってみると、よく理解できると思います。
Telnet のようなターミナルソフトで SMTP サーバ の port
25 へ接続します。
(ここでは仮にsmtp.aiueo.jpとしてみましょう)
%
telnet smtp.aiueo.jp 25
Trying ***.***.**.***
Connected to smtp.aiueo.jp
220 smtp.aiueo.jp ESMTP
と言う表示がでてきたら、接続されたことがわかります。
次に
mail from: で自分のアドレスを渡し、rcpt to: で
送り先のアドレスを渡します。ここで指定するアドレスは、 ヘッダに現れるものとは別です。
つまり、Bccなどでヘッダーに現れないアドレスもここではきちんと指定します。ここでは同時に5人に送る事にします。
mail
from: *******@aiueo.jp
250 ok
rcpt to: 1@*******.jp
250 ok
rcpt to: 2@*******.jp
250 ok
rcpt to: 3@*******.jp
250 ok
rcpt to: 4@*******.jp
250 ok
rcpt
to: 5@*******.jp
250 ok
次に、メール本体です。
data: と入力して改行、ヘッダ情報を入れて、空行。
そのあと本文を入力します。
最後にピリオドのみの行を入れると送信されます。
ここで入力するヘッダと、実際の送り先は 必ずしも同じとは限りません。
data
Subject: test
To: ******@******.jp
Cc: ******@******.jp
Bcc: ******@*****.jp
This is test mail.
.
250 ok ********* Message accepted
for delivery
最後に
quit で SMTP の接続を切ります。
quit
221 smtp.aiueo.jp
Connection closed by foreign host.
※メールソフトは、以上の一連の作業を自動的にやってくれるようにプログラムであります。
ここで、お気づきになった方もいらっしゃるでしょうが、基本的にメールを送信するには、受信するときのPOPのように、パスワード要求の項目はなく、1と2のセッションでとりあえず身元を明かすように求めてきますが、匿名で通ってしまう場合があります。
また、mail from:/rept to:とヘッダのFrom:/To:が違うメールを送ることができてしまうわけです。
通常メールソフトは、EnvelopeとHeaderが同じになるようにコマンドを出していますが、Telnetなどで直接メールを送信した場合など、身元の証明が難しくなります。