轉貼:HTTPS 可靠嗎?
阿恆
原文網址:HTTPS 可靠嗎? (原文網站已關閉)
當你連接上社交網站,怎樣知道在屏幕上見到的頁面,真的是從這個網站的伺服器送出?怎樣確保你與伺服器之間的通訊不會被第三者截聽?聰明的你一定會說「HTTPS」,HTTPS 通訊協定採用的 SSL/TLS 技術,確保網站不能被偽冒,通訊的內容也得到充分的加密。錯了,以下的故事將告訴你駭客怎樣在你毫不知情的情況下,竊聽你與伺服器間的通訊,甚至偽冒網站的伺服器,令你明白你的隱私是多麼的沒有保障。
為了方便解說,假設這個網站叫做 www.my-site.com,它當然使用 HTTPS 通訊協定,即使說你必須使用 https://www.my-site.com/ 進入。
首先,你在辦公室的電腦上開啓瀏覽器,看看左右沒有旁人,便在瀏覽器的網址列上輸入 https://www.my-site.com/,再三覆核沒有錯誤,跟著按下 Return。瀏覽器首先探訪 DNS 伺服器把 www.my-site.com 翻譯成機器喜歡的數碼 IP 地址,然後發送一個請求到這個 IP 地址建立一個安全連線。很不幸地,這個請求被一台由駭客架設的「HTTPS 代理」(HTTPS Proxy) 截取,它試圖假冒自己就是 www.my-site.com 網站,並發送一個自己制作的數碼證書回給瀏覽器,簽署這份這份虛假證書的,是一個較早時以其他方法植入你的電腦或瀏覽器的核證機關 (Certificate Authority)。
這張虛假的數碼證書沒有破綻,它具備合法證書所需的一切條件,瀏覽器也會認為這是一個合法的安全通訊,並且顯示一個令你安心的「掛鎖」標誌。當然,這些全是謊言。
建立安全連線後,瀏覽器便會開始從 www.my-site.com 下載頁面,這時 HTTPS 代理開始與真正的 www.my-site.com 建立安全連線,這次 HTTPS 代理試圖偽冒你。由現在開始,從你那兒收到的資料會被解密、分析、紀錄,然後重新加密並送到真正的 www.my-site.com,從 www.my-site.com 收到的資料經過相反的程序送回到你的瀏覽器,整個過程在你毫不知道的情況下進行。
有一點需要補充,就是那個虛假的核證機關怎樣被植入你的電腦或瀏覽器內呢?途徑包括:
- 故事中你用的是公司提供的電腦,你公司的 IT 部門可能為麼某些原因,例如老板希望知道員工用公司的設備到甚麼網站,做甚麼,有沒有泄漏公司的秘密,有沒有浪費公司的資源等等,IT 部門於是架設了這個 HTTPS 代理機器,並在所有公司的電腦植入這個虛假核證機關,從而截聽員工的網絡通訊。類似的情況也可以發生在大學的網絡。
- 你的電訊服務商透過「安裝光碟」植入這個虛假的核證機關,HTTPS 代理機器很可能也是裝置在它的數據中心。
- 你的電腦受病毒入侵,或者安裝了不明來歷的惡意軟體,所以被植入了這個虛假的核證機關,和一個隱藏得很好的 HTTPS 代理程式。
這種情況可以避免嗎?答案是不可能。就是說若果真的有一個 HTTPS 代理機器站在我們和 www.my-site.com 中間,我們不可能繞過它,我們和 www.my-site.com 之間的通訊也無可避免地被它截取。
不過,我們有辦法知道它的存在,關鍵在數碼證書的「指紋」(Fingerprint)。
首先,真正 www.my-site.com 的數碼證書與由 HTTPS 代理發出的偽冒證書不可能相同,因為 HTTPS 代理不知道 www.my-site.com 的密鑰 (Private Key),制作偽冒證書時只能使用新的密鑰,於是便產生了新的公鑰 (Public Key),於是所制作的偽冒證書便與真正的證書不同。
瀏覽器收到證書後會用 SHA1 離散算法計算證書的「指紋」,不同的瀏覽器有不同的方法檢驗這個「指紋」,通常點擊一下那個(現在不那麼令人安心的)掛鎖便會見到證書的詳細資料,其中一項資料便是證書的 SHA1 指紋,把它與已知的指紋比較便知道你收到的證書是否真實無訛,GRC 的網站便提供一個查詢網站證書指紋的服務。