2017年2月3日 星期五

電子郵件的內容



一般來說如果我要寄一封電子郵件的話,我可以用WEB MAIL,也可以用Outlook寄信,甚至我可以直接 telnet 到對方電子郵件伺服器去"真正"寫一封信。

telnet 192.168.4.81 25

因為smtp預設是port 25

helo  -----------------> 跟對方打招呼我準備要寄信了。
mail from -----------> 如果發生問題的話退信要寄給誰?
rcpt to----------------> 要寄給誰?真正會收到的人帳號。
data-------------------->開始寫信,提示用句號結尾。
subject----------------->主旨。
from-------------------->誰?
to------------------------>寄給誰?

注意:從data開始到句點以前都是信件內容。

有人會覺得奇怪,寄信為什麼不用驗證?你可以想成,對方丟廣告信到你家郵筒本來就不需要驗證。



對方會收到類似這樣的信。

因此我們可以得知,寄一封信,除了rcpt to通常會驗證有無此人,因為沒此人的話郵件伺服器就直接退信了以外,其他都不驗證,其他都可以偽造,像是信的內容我可以隨便寫,所以說只看信的內容是不夠的。



所以說一般資訊人員會看的是信的header,類似郵戳,不會顯示在信的內容中,一般使用者也不會看到。

Received: from (192.168.4.27) by mail.hiiii.dyndns.org (192.168.4.81) with
 Microsoft SMTP Server id 14.3.339.0; Fri, 3 Feb 2017 21:02:46 +0800
Subject: You got promoted
From: <yourboss@justinlau.com>
To: <justin.lau@justinlau.com>
MIME-Version: 1.0
Content-Type: text/plain
Message-ID: <70edef5f-8929-4b09-9fdc-e637f766f756@MAIL.hiiii.dyndns.org>
Return-Path: jack@google.com
Date: Fri, 3 Feb 2017 21:02:46 +0800
X-MS-Exchange-Organization-AuthSource: mail.hiiii.dyndns.org
X-MS-Exchange-Organization-AuthAs: Anonymous

舉例來說,這封信居然是從192.168.4.27寄給192.168.4.81,驗證方法匿名,這樣可信嗎?當然不可信,由此可以判斷這封信肯定是偽造的。

現在因為大家的努力也有很多驗證方式比方說SPF紀錄、DKIM、DMARC,這個有興趣也可以上網查看看。

沒有留言:

張貼留言