Computer Player 1996 年 11 月
作者:林啟清 (Jim Lin)

本期主題:電子郵件協定 (Mail Protocol)
─────────────────────────────────
一、前言

    曾經有人做過調查,在 Internet 上使用最普及的功能依次為:Mail、WWW、FTP ?

    既然 Mail 是最常被使用到的功能之一,為什麼卻很少受到使用的重視呢 ?

    本文並不打算討論這件事,只提醒各位讀者能在申請 ISP 時,稍為注意一下 (E-Mail
    的 Address 是由 ISP 所發給的)。

    當您在取用個人的 Username 時 (一般來講,Username 即會是您的 E-Mail Address
    的一部份),要特別謹慎一點 !

    例如:您的英文名字是 Jim Lin,Username 最好是取名為 jimlin 或是 jiml ? 除了
    讓寫信給您的人容易記憶之外,自己也不容易忘記 ?

    而電子郵件的傳遞是由 ISP 間的郵件伺服主機在負責,對於一般的個人似乎關係不大
    ? 但多瞭解一下,好像也不是一件壞事嘛 ?

    本期筆者就試著同大家來解說一下電子郵件的傳送原理 !

二、何謂電子郵件

    電子郵件 (E-Mail) 就是指某份以數位形式存在的訊息,能夠透過電腦網路傳送到收
    件者的手中。

    這種郵件一定會有固定的收件人,且您所能送信的主機 (Host) 必須事先申請,申請
    完成後,您就會有一個自己的網路郵遞位址 (一般人所指的 E-Mail 就是指這種)。這
    種信件傳送,正常情形下只透過兩部郵件伺服主機 (Mail Server),也就是您這端的
    郵件伺服主機及收信人端的郵件伺服主機來對傳信件。

    當您將寫好的電子郵件送到您的郵件伺服主機 (ISP 端) 那邊後,您的任務就算是完
    成了。而您傳電子郵件給郵件伺服主機時,所使用的協定稱為 SMTP (Simple Mail
    Transfer Protocol)。如果您不是使用這種協定來傳送,郵件主機則無法接收您所送
    來的訊息 (信件內容)。

    而當有人寫信給您時,您又得使用 POP3 (Post Office Protocol version 3) 從您的
    郵件伺服主機上來下傳屬於您的電子郵件。

    所以,當您在送完電子郵件後,剛好也順便收回自己的電子郵件之際,您已經使用了
    兩種信件傳送協定 (SMTP 及 POP3),只是全部由您所使用的郵件編輯軟體所代勞了,
    所以您感覺不出您在短短的幾秒鐘內用了兩種不同的協定。

    一般來講,在大部份的郵件軟體的 SMTP Server 或 POP3 Server 的地址您可以不必
    寫,因為郵件軟體本身會自動從您的 Mail Address (一定要寫) 中抓 Server 的位址
    出來用的 ? 除非您的 ISP 使用與 Domain Name 不同的郵件主機位址 ?

    不管是 SMTP 或 POP3 都是屬於沒有安全性控管的通訊協定 (Protocol),尤其是以
    SMTP Server 最容易騙,所以要假造別人的電子郵件是非常的簡單 ?

三、郵件協定簡介

    基本上,電子郵件所使用的協定可以用 Telnet 完全模擬來傳送信件。

    所以,如果您會用 Telnet,您就能手動來讓自己變成一部郵件伺服主機 ?

    在進行 Mail Server 模擬之前,我們得先知道應該使用那個 tcp Port ?

    以下是一些目前較常用的埠號:

        ─────────────────────────
        服   務       TCP 埠號      說                明
        ─────────────────────────
        echo            7           echo 服務
        FTP-data        20          檔案傳輸資料傳輸協定
        FTP             21          檔案傳輸控制傳輸協定
        telnet          23          遠端終端機
        SMTP            25          信件傳輸協定
        finger          79          使用者資訊服務
        POP3            110         用戶郵局協定
        NNTP            119         網路新聞傳輸協定
        exec            512         遠端執行協定
        login           513         遠端登錄協定
        shell           514         遠端 Shell
        printer         515         UNIX 列印
        ─────────────────────────

    由表中我們知道要模擬 SMTP 必須使用 25 的埠號。

    您可以使用任何的 Telnet 軟體 (Windows 95 已經有內含) 來做此模擬的動作 ?

    如果您打算用 Windows 95 所內建的 Telnet,您必須先與您的 ISP 連線,連線後請
    先跳至 MSDOS,然後在 DOS 環境下執行 telnet 即可。

    以下即是筆者的模擬畫面 (SMTP 模擬)

──────────────────────────────────────
220-ns.iceonline.com Smail-3.2 (#4 1996-Oct-27) ready at Wed, 30 Oct 1996
22:42:35 -0800 (PST)
220 ESMTP supported                               ←─ 支援 SMTP
HELO xyz.cadsbbs.com                              ←─ 筆者亂編的 Domain Name
250 ns.iceonline.com Hello xyz.cadsbbs.com        ←─ 郵件伺服主機接受了
MAIL FROM: "bill"                                 ←─ 筆者亂編的郵件位址
250 <"bill"> ... Sender Okay                      ←─ 伺服主機接受此一送信人
RCPT TO:                      ←─ 收信人的郵件位址
250  ... Recipient Okay       ←─ 伺服主機接受此一收信人
DATA
354 Enter mail, end with "." on a line by itself
This is a test from Bill.

.

250 Mail accepted
QUIT
221 ns.iceonline.com closing connection
──────────────────────────────────────

    最左端有數字的是郵件伺服主機所回應的訊息,沒有數字的則是筆者所輸入的。

    很簡單吧 ! 您可以在不需要知道任何密碼之前,就可以送出任何您想送的信 ?

    SMTP 約有以下幾個命令:

    ───────────────────────────────
            DATA         SEND        SOML        SAML
            VRFY         EHLO        HELO        EXPN
            HELP         QUIT        RSET        TICK
            TURN         VERB        XADR        XSTA
            MAIL FROM    RCPT TO     SEND FROM   SOML FROM
    ───────────────────────────────

    而以上筆者在實驗中只用到了 HELO、MAIL FROM、RCPT TO、DATA、QUIT 幾個命令。

    至於 POP3 (收信用) 的原理與 SMTP 是一樣的,只是埠號不同,命令也有點不同 ?

    使用的順序為 USER、PASS、STAT、QUIT。以下為筆者的模擬畫面 (POP3):

───────────────────────────────────────
+OK QUALCOMM Pop server derived from UCB (version 2.1.4-R3) at ns.iceonline.com starting.
USER jimlin
+OK Password required for jiml.
PASS xxxxxxxx (此為密碼)
+OK jimlin has 1 message(s) (1031 octets).
STAT
+OK 1 1031
QUIT
+OK Pop server at ns.iceonline.com signing off.
───────────────────────────────────────

    最左端有 + 的是郵件伺服主機所回應的訊息,沒有 + 的則是筆者所輸入的。

    所以,要寫一個像 EUDORA 這樣的郵件處理程式,是不是太簡單了 ?

    寫到這裡,可能有些讀者還搞不清楚我們到底是模擬用戶端的郵件程式,還是模擬信
    件伺服主機 ?

    其實,我們所寫的電子郵件,並不一定要透過您 ISP 的 Mail Server 來代轉 ?

    我們可以自己把它 (電子郵件) 給直接送到 "收件者" 的郵件伺服主機上去 ? 至於
    怎麼送,在前面的範例就是了呀 ...:)

    您要直接送到對方的郵件主機 (不透過您的 ISP 轉送),那就用 Telnet 連到對方的
    郵件主機 ?

    您要透過自己的 ISP 轉送,那您就用 Telnet 連到自己 ISP 的郵件主機囉 !

    直接把信送到對方的郵件主機有一個很大的優點,那就是不再會因為雙方的郵件伺服
    主機太過忙碌,而導致所發出的電子郵件遭到 ISP 的退信 ?

四、如何辨別假造電子郵件

    經過此期的介紹後,相信大部份的讀者都已經知道電子郵件的不可 "信賴" 了吧 ?

    所以,當您很愉快的在讚嘆 Internet 所替您帶來的方便之餘,請別忘了,Internet
    上的所有一切,可能都是假的 ?

    當然,假造的電子郵件一樣是有跡可尋的,除非您從來不看信的檔頭,否則要騙過聰
    明的您,也並不是那麼容易的 ?

    以下即是筆者假造的一封用別人名義寫給我自己的信:
──────────────────────────────────────
Return-Path: 
Received: from ms7.hinet.net(really [168.95.4.70]) by ns.iceonline.com
        via sendmail with esmtp
        id 
        for ; Wed, 30 Oct 1996 17:13:43 -0800 (PST)
        (Smail-3.2 1996-Jul-4 #4 built 1996-Oct-27)
Received: from pm13s15.intergate.bc.ca ([207.34.180.210]) by ms7.hinet.net (8.7.5/8.7.5) with SMTP id JAA19213 for ; Thu, 31 Oct 1996 09:08:28 +0800 (CST)
Message-Id: <199610310108.JAA19213@ms7.hinet.net>
X-Sender: awang@ms7.hinet.net (Unverified)
X-Mailer: Windows Eudora Pro Version 2.1.2
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Date: Wed, 30 Oct 1996 17:11:59 +0700
To: jiml@iceonline.com
From: Jim Lin 

        test

        Best Regards,
        Jim Lin
>----------------------------------------------------------------------------<
        Compulink Systems Inc. (臺灣電腦顧問公司)
        Tel:(604) 657-4919      MO - SA, 10:00 - 20:00
        http://www.iceonline.com/home/jiml/index.htm (Canada Branch)
        BBS:(604) 821-1046, (604) 821-1047
        http://www.cads.com.tw (Taiwan Host)
        BBS:(02) 823-5452 (8 Lines)
──────────────────────────────────────

    由檔頭中的 Received: 敘述中知道信是由 pm13s15.intergate.bc.ca 這個位址所寄出
    的,而該位址的 IP 為 207.34.180.210,寄出的時間為 Thu, 31 Oct 1996 09:08:28
    +0800 (CST)。

    由此條知道該信是由加拿大 (bc.ca) 所發出的,但真正的人是在臺灣,不可能由加拿
    大轉發此信,所以研判此信是 "偽造的" ?

    所以,在您收到一封對您很重要的電子郵件時,最好分析一下信的檔頭,以免後悔莫
    及 ?

    要提醒讀者的是,本文所用的那封 "偽造" 的範例信是特別製造來讓讀者明白用的,
    所以特別留下了一點破綻 ....:)

    要製造一封 "天衣無縫" 的偽造信,在功力高一點的電腦玩家是可以輕易達成的 ?




<版權所有,盜用必究>

<如果全文引用,可以不須得到本人同意,但必須註明出處>
<請註明本文出處為 http://www.taiwancomputer.com>


Free 20MB kicking space.At Fortune City
This banner was supplied by SAFE Audit
↑完全免費擁有屬於自己的網頁,快去申請吧 !