拆解電郵背後運作
今時今日電郵不可或缺。上期談及電郵使用策略,筆者忽然收到不少查詢,發現原來不少人對電郵的操作不太清楚,以致對相關的風險不太理解,有必要作進一步解釋。電郵背後運作有一定複雜性,牽涉不少細節,而且往往魔鬼就隱藏在細節中。假設你寄一封實體信到外國,只要在信封寫上地址,投入郵箱,本地郵局派人收取,郵局看到信封上的地址,視乎你選擇,以陸路海路或航空方式轉送外國郵局,然後由當地郵局派送。你只要將信封密封,理論上內容是端對端保密。當你發出一封電子郵件,情況與實體郵件有些類似,只是郵箱變成電子郵件用戶端(email client),郵局變成郵件伺服器(email server),傳送方式變成簡單郵件傳輸協議(Simple Mail Transfer Protocol SMTP)。至於保密如何處理?在這裏先要說明端對端加密的要素。端對端加密有兩種方式,一種是利用對稱鎖匙(Symmetric Key),雙方需要共有一條不為第三方知道的解密鎖匙。另外一種方式是利用不對稱鎖匙(Asymmetric Key),雙方都有一條公開鎖匙與一條私密鎖匙,先取得對方公開鎖匙,再利用自己的私密鎖匙合併將資訊加密傳送,對方再用你的公開鎖匙加上自身私密鎖匙解密。問題是發電子郵件前,你只有對方的電子郵件帳號,怎可能交換這些鎖匙?
「加密」被錯誤理解
所謂「加密」電郵,絕大部份是指環環相扣的加密傳送。首先是發件者用戶端與其電郵伺服器之間,然後是電郵伺服器與伺服器之間,然後是收件者伺服器與收件者用戶端,並非發件者與收件者的端對端加密傳送。除非在設計上刻意達致不容許,電郵伺服器擁有足夠條件讀取電郵內容。另一問題是SMTP並不預設加密,只有雙方郵件伺服器都同意接受相同加密協議,才會進行加密傳送,否則只能以非加密傳送,中間人就可截取資訊,而且收件方伺服器直接讀取電郵內容,情況與寄一張明信片沒有太大差異。再有一個問題是元數據。寄實體信你不用寫寄件人資料,甚至不寫收件人,只要地址正確便可寄遞。郵局只有收件郵筒位置、寄送地址、信件投入郵筒的可能時段三個主要元數據。電郵則大為不同,SMTP按標頭(Header)交換資料,電郵伺服器必須讀取標頭,且內有重要元數據,包括寄件人、收件人、抄送人的電郵地址,標題,電郵伺服器及其認證(例如SPF /DKIM),時間戳記,該封電郵的唯一識別碼等等。單是這些元數據,即使不能讀取電郵內容,仍足以識別寄件者與收件者聯絡關係,又或作出審查過濾,電郵供應商就是利用電郵標頭過濾垃圾電郵。如電郵伺服器受到操控或受極權支配,操控者可為所欲為。若電郵伺服器有保安漏洞,亦可導致標頭及電郵內容洩漏。
真正端對端加密有法
若要做到真正保密,必須施行發件人與收件人端對端加密。一般電郵供應商的做法是外加一個叫PGP (Pretty Good Privacy) Plug-in,而且雙方電郵用戶端都要支援並使PGP,透過交換公開密匙加密。若果沒有使用PGP,情況猶如上述,不能假設電郵內容保密。PGP以外,端對端加密還有幾個可行方法。其一,如果收件人與發件人皆在同一個電郵伺服器,某些電郵伺服器在設計上可做到端對端加密,Proton Mail是這類設計的選擇之一。其二,部份電郵伺服器提供發送連結功能,收件者只收到一個連上發送者伺服器的連結,點擊後需要輸入密碼才可解密,發送者可以用其他途徑告知收件人密碼。若發送者電郵伺服器可信,收件人查明連結沒有被改動,可避過傳送及收件者伺服器的問題。部份熱門電郵有提供相關服務,有些外國金融機構亦已採取同樣方式發送客戶通知。其三,將資料放在一個加密庫或上鎖的檔案內以附件方式發送,利用其他形式告知對方密碼。還有一招,就是你輸入的電郵內容已預先加密,例如使用AES Crypt或同類開源軟件加密,並利用其他方式告知對方解密方法。請留意即使用端對端加密,亦要假設電子郵件標頭是公開資訊,所以你需要考慮自身及對方電郵伺服器曝光聯絡關係的可能性及標題的敏感性。若有必要,應使用一次性電郵。 風險很多時是源自於對運作細節理解不足,又或對流行用語作出假設,「加密」電郵就是實例。尋根究底,才可避免「中伏」!◇
------------------
🏵️《九評》20周年
https://hk.epochtimes.com/category/專題/退黨大潮
🔔下載大紀元App 接收即時新聞通知
🍎iOS:https://bit.ly/epochhkios
🤖Android:https://bit.ly/epochhkand