分類彙整:網上安全

轉貼:對抗點擊劫持新武器:X-Frame-Options

原文網址:對抗點擊劫持新武器:X-Frame-Options

點擊劫持 (Clickjacking) 是一種誘使用戶點擊一個看似無害的超連結或按鈕,實際上卻是點擊在另一個網頁上的一個超連結或按鈕。後果可能是泄露了機密的資料,或無緣無故「讚好」一個網站,甚至開啓電腦內置的鏡頭和麥克風。網站開發人員當然有希望保護用戶不受攻擊,可用的手段主要有 Framekiller 和 X-Frame-Options,前者並不可靠,尤其在 IE 上可以輕易被攻擊者破解 (IE 的安全問題真是罄竹難書),後者只是瀏覽器自設的措施,並非業界標準。IETF 終於在兩個月前正式接受 X-Frame-Options 為 HTTP 的標頭 (header),從此開發人員的安全工具箱又多一件武器。

點擊劫持是什麼?

設想有一個用戶在網上討論區或 Facebook 見到一個「每天賺一萬塊錢的方法」超連結,懷著好奇點擊一下,來到一個惡意網站,頁面有一個「快速賺錢祕訣」的超連結,他心想入寶山怎能空手回?毫不考慮 便點擊下去,結果糊裡糊塗在自己的 Facebook 上「讚好」了一個商品的專頁,而他自己卻毫不知情。

原來那個惡意網站在「快速賺錢祕訣」超連結的前方,放置了一個透明的 iFrame,網址是「讚好」一個商品的 Facebook 專頁,iFrame 的位置經過小心安排,使裡面的 Facebook 按鈕剛好與「快速賺錢祕訣」超連結重疊,當用戶意圖點擊「快速賺錢祕訣」的時候,實際上點擊了 iFrame 中的 Facebook 按鈕,如果用戶的瀏覽器已經登入了 Facebook (十之八九用戶的瀏覽器都長期登入了 Facebook),這個「讚好」便會立即被執行。

X-Frame-Options 是什麼?

X-Frame-Options 是一個 HTTP 標頭 (header),用來告訴瀏覽器這個網頁是否可以放在 iFrame 內。例如:

X−Frame−Options: DENY
X−Frame−Options: SAMEORIGIN
X−Frame−Options: ALLOW−FROM http://www.facebook.com/

第一個例子告訴瀏覽器不要 (DENY) 把這個網頁放在 iFrame 內,通常的目的就是要幫助用戶對抗點擊劫持。第二個例子告訴瀏覽器只有當架設 iFrame 的網站與發出 X-Frame-Options 的網站相同,才能顯示發出 X-Frame-Options 網頁的內容。第三個例子告訴瀏覽器這個網頁只能放在 http://www.facebook.com/ 網頁架設的 iFrame 內。

不指定 X-Frame-Options 的網頁等同表示它可以放在任何 iFrame 內。

X-Frame-Options 可以保障你的網頁不會被放在惡意網站設定的 iFrame 內,令用戶成為點擊劫持的受害人,它剛在今年 10 月成為業界標準,IE8、Firefox、Safari、和 Chrome 都支援 X-Frame-Options。

用戶怎樣對抗點擊劫持?

除了依靠網站,用戶也可以防禦點擊劫持,包括:

  • 工作後立即登出網站。
  • 使用 Firefox 瀏覽器,並安裝 NoScript 附加元件,它的 ClearClick 功能防止 iFrame 內看不見 (包括透明或者被 CSS 隱藏起來) 的超連結、按鈕等被點擊。
  • 停用包括 Flash 在內的插件,Adobe 的 Flash 插件曾被發現能導致點擊劫持的安全漏洞

完美遠期保密

資料來源:完美遠期保密

完美遠期保密 (Perfect Forward Secrecy) 是在 HTTPS 基礎上進一步保護用戶與伺服器之間的通訊,在 HTTPS 通訊協定下,所有數據都被加密才送進網絡,但是萬一伺服器的 SSL 密鑰 (private key) 因某些原因泄漏,HTTPS 的加密的鑰匙便會被破解,過去和將來的通訊統統暴露在陽光之下。完美遠期保密使用的卻是一次性的加密鑰匙,不能從伺服器的 SSL 密鑰推算出來。

HTTPS 的問題

HTTPS 使用的 SSL/TLS 安全技術,要求用戶與伺服器使用一條共同的加密鑰匙 (對稱密鑰) 為兩者之間的通訊加密,儘管每次會話 (session) 的加密鑰匙都不同,不過只要收集在建立 HTTPS 通訊時雙方交換的資料,加上伺服器的 SSL 密鑰 (private key),這條加密鑰匙是可以被推算出來的。若果伺服器不幸被入侵,SSL 密鑰被盜取,或者被政府機關勒令交出,伺服器與用戶之間的通訊便再無秘密可言。

斯諾等的泄密文件揭露美國國家安全局 (NSA) 曾經竊聽 HTTPS 通訊,並把內容儲存下來,這些加密了的通訊當時可能無法解讀,但日後取得伺服器的 SSL 密鑰便可以把以前儲存下來的加密通訊解密,往後的通訊同樣全無秘密可言。電子郵件服務商 Lavabit 就是因為受到政府壓力交出伺服器的 SSL 密鑰而決定關閉業務,創辦人 Ladar Levison 此舉實屬難能可貴,但肯定有更多公司為了延續生命,甘願把 SSL 密鑰雙手奉上。所以使用 HTTPS 只能防範一般的黑客,對國家級的專業黑客是毫無防守之力的。

完美遠期保密

採用完美遠期保密的 HTTPS 通訊,加密鑰匙只是短暫性的,而且不能從伺服器的 SSL 密鑰推算出來,這樣即使 SSL 密鑰日後被盜取,過去和將來的 HTTPS 通訊仍然安全,竊聽者始終無法解讀通訊的內容。

哪些網站支援完美遠期保密?

不太多,但數量正在增加,已經支援完美遠期保密的著名網站包括 Google、Facebook、Dropbox 等等,Amazon 和 Apple 根本沒有這方面的計劃,Yahoo 更可憐,他們仍然努力為伺服器添加 HTTPS 功能而努力,完美遠期保密當然連樓梯的響聲也未聽到。

如何得知連線是否完美遠期保密?

使用 HTTPS 連線的話,在網址欄上 URL 旁邊通常都有一個掛鎖標誌,點擊一下這個掛鎖可以看到這個連線和網站證書的詳細資料,在有關安全性的資料中,查看現在使用什麼加密機制。下圖是香港渣打銀行網站的連線資料:

渣打銀行 HTTPS 連線資料
渣打銀行 HTTPS 連線資料

紅色框的部分就是加密機制的資料,只有支援 ephemeral Diffie-Hellman 的加密法才算是完美遠期保密,其中兩個最常見的是 ECDHE_RSA_RC4_SHA 和 DHE_RSA。上圖可見渣打銀行的網站儘管支援 HTTPS,但並不支援完美遠期保密。

我們看看推動網絡人權和隱私的 EFF 網站的連線資料:

EFF HTTPS 連線資料
EFF HTTPS 連線資料

注意紅色框內的加密機制包含 ECDHE,那是 Elliptical Curve, Diffie-Hellman, Ephemeral signed 的縮寫,表示它支援完美遠期保密。

不是完美遠期保密的 HTTPS 仍然可用嗎?

可以的,只要你不要使用這種連線傳送報和個人資料和隱私。上面我們看到香港渣打銀行網站的 HTTPS 不是完美遠期保密,所以使用該銀行的網上服務,資料泄漏的風險便與該銀行的 SSL 密鑰的安全性掛鉤,銀行的伺服器或許保安嚴密,SSL 密鑰被盜取得可能性甚低,但政府機關要求它交出 SSL 密鑰又如何呢?渣打銀行會像 Lavabit 那樣寧可關閉業務也不妥協嗎?我不敢斷言,你自己判斷好了。

使用了完美遠期保密,我的資料從此高枕無憂嗎?

當然不是,HTTPS 和完美遠期保密只保護網絡中的數據,當數據進入伺服器後,這兩項技術再無用武之地。伺服器如何儲存你的資料?有否加密以至即使資料被黑客盜取仍然無法解讀?加密的機制如何?怎樣管理密鑰?伺服器管理員會否出賣你的資料圖利?這些都是影響資料安全性的因素。

Google、Microsoft、Yahoo 等公司對網絡通訊的保密措施足夠嗎?

資料來源:Google、Microsoft、Yahoo 等公司對網絡通訊的保密措施足夠嗎?

鑒於各國情報機關積極監視網絡上的通訊,Electronic Frontier Foundation (EFF) 調查主要的網上服務企業如何保障網絡通訊不受監視,並製成列表供我們參考。EFF 從五方面評估企業保護網絡通訊的工作,獲得滿分的只有寥寥幾家,包括 Dropbox, SpiderOak 和 Sonic.net,Google 的完成度也十分高。另一方面,Microsoft, Yahoo, Amazon 等一些我們熟悉,每天對媒體高呼多麼注重資料的保障和客戶隱私安全性的公司,對網絡通訊的保護卻嚴重不足。

斯諾登的文件揭露美國國家安全局 (NSA) 透過監聽互聯網光纖主幹上的通訊,和 IT 企業數據中心之間的通訊,肆意侵犯網民的隱私。一葉知秋,其他國家的情報機關也在做同樣的事,唯一的分別是他們的員工裡面沒有斯諾登。所以 EFF 認為任何東西在進入網絡前都必須加密,為此他們提出了五項建議,並就此評估大型的 IT 企業對保護網絡通訊的工作。

當然這五項建議並不能使我們完全擺脫情報機關的監視,尤其是當他們看上了你,他們大可逼使 IT 企業透露你的資料,例如你的 IP 地址和使用服務的歷史紀錄。但至少在某些國家,尤其是一些較為民主的國家,情報機關需要向法庭申請許可令,即使法庭只是一個橡皮圖章,最低限度負責任的企業還有一個平台可以反抗一下。

2013 年 12 月 21 日更新:更新了 Microsoft 的資料。

IT 企業保護網絡通訊評估
IT 企業保護網絡通訊評估 (圖片來源:EFF)

EFF 的五項評估包括:

1. 為數據中心之間的通訊加密:自從斯諾登揭露 NSA 偷聽 Google 和 Yahoo 數據中心 (Data Centers) 之間的通訊後,我們知道除了用戶和企業之間的通訊要加密外,企業和企業之間的通訊也要加密。

2. 支援 HTTPS:HTTPS 確保網站和用戶之間的通訊數據都被加密,這可說是最基本的保護。儘管如此,我們仍可看到 Amazon 和 Yahoo 連這麼基本的工作都做不好。

3. 使用 HSTS:為了確保瀏覽器與網站之間的所有通訊都使用 HTTPS (而非僅限於包含機密資訊的頁面),在建立安全通訊渠道的時候,網站應使用 HSTS 告訴瀏覽器這個網站只使用 HTTPS,任何情況下不能使用 HTTP 與這個網站聯繫。

4. 完美遠期保密:這是 HTTPS 下一種加密技術,HTTPS 的解密鑰匙萬一被破解,或者被情報機關強逼網站透露,也不能解讀過去使用這條鑰匙加密的通訊。

5. STARTTLS:這是加密電郵伺服器通訊的一種網絡協定。從用戶傳送到伺服器 (SMTP Server) 的電子郵件可以藉著 SSL/TLS 加密,但是伺服器與伺服器之間的通訊便要靠 STARTTLS 加密。

黑電郵聯盟-防止電郵被監視的未來科技

資料來源:黑電郵聯盟-防止電郵被監視的未來科技

由於受到美國國安局 (NSA) 壓力交出加密密碼而自行關門的電郵服務商 Lavabit,與另一間因相同原因而關掉旗下電郵業務的 Silent Circle,合組成「黑電郵聯盟」(Dark Mail Alliance),準備開發可以防止被監視的新一代電郵技術。

新技術的外觀與現有的沒有分別,用戶仍然見到收件夾、寄件夾、草稿等資料夾,收發郵件的程序也沒有分別,但底下傳送數據的方法卻大不相同。新技術採用端對端 (peer-to-peer) 加密,即使說寄件者加密了的電郵,只能在收件者的電腦上解密,傳送途中經過的伺服器沒有解密的密碼,無法讀取其中的內容,除了電郵的內容會加密外,元數據包括寄件者、收件者、標題等亦會加密。加密的機制建基於 Silent Circle 用在即時通訊服務的 SCIMP 協定,加密的密鑰在使用後立即銷毀。

電郵的伺服器會設在加拿大和瑞士,由於伺服器沒有解密電郵的密鑰,所以即使是系統管理員也無法讀取電郵的資料。

該聯盟表示,他們將會公開通訊協定和系統架構的一切資料,並協助其他人實作這項新技術,解決因網絡監察而引起對隱私權的憂慮,和對系統後門漏洞的疑慮。

傳統的電郵系統使用 SMTP、IMAP 和 POP 等協定,不會加密電郵的內容,通訊的過程也沒有任何保護措施。比較新的系統採用 SSL/TLS 技術把網絡通訊的數據加密,但儲存在伺服器內的電郵仍然可被任意讀取,情報或執法部門可以強逼電郵服務商交出硬盤裡的資料。對隱私比較重視的人會使用 PGP 技術把內容進行端對端加密,這樣儲存在伺服器內的是已經被 PGP 加密的數據,只有在收件者的電腦內才能解密這些數據,但是元數據包括寄件者、收件者、標題等仍然以明文的方式儲存在伺服器。被「黑電郵聯盟」稱為第三代電郵系統 (Email 3.0) 的新技術可以解決以上所有問題,到時即使情報機關登門造訪,要他們交出客戶的電郵資料,他們也無能為力,因為技術上根本沒可能,「這正是新技術漂亮之處」。

「黑電郵聯盟」將於數星期內編寫好新技術的規格文件,讓世界各地的保安專家審視和提出改進建議。

 

Uncensor.it -免費網頁代理幫你避開網絡審查

如果你所在的地區有網絡審查,無法探訪某些敏感的網站,例如 The Pirate Bay 等,可以試試一個免費的網頁代理 Uncensor.it。它非常簡單易用,輸入你要探訪的網址,按下「Return」,便可以探訪任何網站,無需登記、登入、輸入個人資料等等繁文縟節。

Uncensor.it 主頁
Uncensor.it 主頁

現在輸入網址,然後按「Return」或「GO」。

在 uncensor.it 輸入網址
在 uncensor.it 輸入網址

Bingo! 沒有審查,沒有封鎖,你自由了!

從 UnCensor.it 走到 Pirate Bay
從 UnCensor.it 走到 Pirate Bay