網路資料個人隱私與安全:Cookie 與 HTTPS 加密

二月時,應莊庭瑞老師之邀,替台灣人權促進會的季刊春季號【網路時代公民權】撰寫了一篇關於 Cookie 與 HTTPS 加密的介紹、爭議、與個人能夠使用的工具。受邀者除了小的我以外都是一時之選(笑),如果內容有什麼問題還請指教。

出刊的文本(PDF)因為篇幅的關係所以有刪節。這邊刊載全文。


「網路」在過去十年間,漸漸進入人們的一般生活。智慧手機等行動裝置的興起,讓網路的應用從辦公桌解放,無所不在。人人可以隨時拿起手邊的裝置,持續真實世界之外的虛擬連結。然而,人們對網路應用的隱私和安全的認知,相較於網路應用發展是相對薄弱的。網路應用仰賴無數的裝置與軟體搭配來幫助人們傳遞訊息,螢幕背後線路傳遞的 1 與 0,不像傳統的實體通訊媒介,具有有形的隔離、安全與防護。本文將簡略介紹網路安全與隱私的相關概念,近期的技術提案,以及個人可以如何防護自己上網隱私的相關工具。

HTTP Cookie 與其隱私權爭議

想要試試你的上網好手氣嗎?
圖片取自 Wikimedia Commons

HTTP Cookie (簡稱 cookie)是一個從網站傳送給瀏覽器的識別資料(ID),瀏覽器紀錄此 ID 之後,若 cookie 尚未過期,瀏覽器對同網站的每項資料要求,都會同時傳送 cookie 以供網站識別身分。Cookie 起源於 1994 推出的新版 Netscape 瀏覽器,最初的應用和今日一樣,是幫助網站辨識會員的登入狀態與購物車等。發展至今,HTTP Cookie 已是網站的標準技術,其規格記載於 RFC 6265 中。

很不幸的,Netscape 沒有發現當年的創新技術,之後會被嚴重濫用。每個網頁都可以內嵌來自於其他網站的程式碼、圖片等資源;當使用者連上這些含有第三方資料的網站時,即便使用者從來沒有明確的連上該網站,該網站仍可以對瀏覽器設定 cookie。這些「追蹤用 cookie」成為網站廣告代理商在背後追蹤網路使用者的絕佳工具。代理商在推送廣告的過程中可以發送 cookie,在所有代理但其實並不相關的網站通用。更甚者,網路廣告業已經結盟,以資料共享的方式,大規模的追蹤控大部分的上網活動。這些手法,雖說能夠使廣告商更有效的建立使用者側寫與推送關聯廣告,它們嚴重的危害了人們的網路使用隱私。

對於第三方網站追蹤的現況,Mozilla 提供了「Mozilla Lightbeam」附加元件,安裝進 Firefox 之後可以視覺化的展示第三方 cookie 的發送與其關聯。

x

Lightbeam 的介面視覺化顯示各網站第三方 Cookie 之間的關係。
取自 Lightbeam for Firefox

對於 Cookie 隱私問題的解決方案

就如同一般的商家與消費者的關係,網站與使用者的關係,是由使用者服務條款以及隱私權保障聲明所定義的。HTTP Cookie 的隱私問題激發了許多技術面與法規面的解決提案。

P3P 規格

P3P 試圖規一化網站的隱私權保障聲明文字,使網站對隱私保護的承諾能夠被瀏覽器自動解析。對網路使用者,則提供「在怎樣的隱私權關係下,同意瀏覽器紀錄此網站之 cookie」。此規格在 2002 年成為 W3C (全球資訊網協會;一個網路標準組織)的建議規格。很可惜的,P3P 最後只被 Microsoft 的 Internet Explorer 採用而沒有普及。其失敗的原因,主要被歸咎於它對隱私權關係的複雜描述,以及缺乏資料逾期日的標記。

歐盟 cookie 法規

同時,歐盟也制定了相關法規,要求網站必須要在隱私權聲明中敘明資料的使用方式,才能夠推送 cookie。網站也必須要提供讓使用者拒絕 cookie 的設定(opt out 規則)。到 2009 年,其法規更進一步規定必須要在使用者同意之後才能推送 cookie(opt in 規則)。

強制性的法規有其絕對的效果,但由於網路的跨國特性,歐盟沒有辦法禁止在其他司法管轄區的網站服務追蹤她的公民,故效果相對有限。另外,每個網站因此在第一次載入時均需要展示橫幅或是對話框,詢問使用者是否接受 cookie,也有礙使用者體驗。

Do Not Track (不要追蹤我)

在美國,同樣的需求在政策面則以不同形式的方式呈現。Do Not Track(簡稱 DNT)之名源自於美國聯邦政府對於廣告電話的 Do Not Call 清單管制(消費者可以將自己的電話號碼登記在 Do Not Call 清單,電話行銷公司禁止針對這些號碼推銷)。DNT 在技術上採用了類似 P3P 但是更簡單的設定:由使用者在瀏覽器中設定是否同意追蹤,或是不表達偏好。此設定會在連上網站時送出,網站再針對此偏好對資料作適當的處理。

DNT 在 2011 年首先在 Firefox 推出,之後各家瀏覽器皆推出相同的支援。值得注意的是,DNT 不像 P3P,會影響瀏覽器傳送 cookie 的條件;使用者是無法驗證網站是否遵守 DNT 的信號,保護隱私的。2012 年,FCC(美國聯邦通訊傳播委員會)的報告建議各家瀏覽器廠商實作,提供使用者追蹤偏好的選擇,並且和網路廣告業界組成的自律組織 Digital Advertising Alliance (DAA)達成共識,用 DNT 的資料分享規則幫助會員導入 DNT 管理追蹤(見 FTC Backs a ‘Do Not Track’ System for the Web – Wall Street Journal)。

另一件 Do Not Track 值得注意的問題是 Internet Explorer 10 的預設值爭議。Microsoft 在 2012 年推出 IE10 時,以「更積極保障使用者隱私」為由,將 DNT 的出廠預設值設定為「不要追蹤」。Do Not Track 規格書的作者之一 Roy Fielding 批評這是刻意使 DNT 設定不被網站處理的理由,因為網站沒有義務處理不是使用者特別聲明的隱私保護要求(「Apache does not tolerate deliberate abuse of open standards」)。此爭議依然持續中。

許多消費者保護組織等公民團體依然在推動 DNT 的立法。在立法硬性規定之前,DNT 的實際效用僅能仰賴業界的自律。

預設拒絕第三方 Cookie

有鑑於前述之法規與技術解決方案之限制,瀏覽器廠商例如 Apple 或 Mozilla 因此轉向採用批評者所謂的「核武辦法」:除了使用者所存取的頁面之外,預設拒絕接收所有第三方網站的 cookie。Apple Safari 目前的版本已經採用這個設定。

Mozilla Firefox 原定在 2013 年的 22 版啟用,但是因為技術細節而延後。原定的時程發表時,廣告商組織例如 Interactive Advertising Bureau 表達強烈抗議,並發表了 FAQ 說明反對理由。IAB 認為阻擋第三方廣告會影響小型網站的廣告投放效能衡量,導致偏向於大型網站的不公平競爭。Mozilla 為了解決第三方 cookie 阻擋可能造成的誤判,和 Opera Software 與學界組成了 Cookie Cleaninghouse 組織(CCH),想要建立阻擋 cookie 的例外清單,與納入例外清單的規則與自律規定。IAB 反對此行動,認為這和前述 DAA 組織與 FCC 建立的自律模式重複,且 CHH 組織排除業界,會設計不利於業界的規則。

Mozilla 與廣告業界的爭議還在持續進行中。

Cookie 爭議中之個人自保之道

一般網路使用者,目前能做的只有更積極的利用瀏覽器廠商的功能設定:

  • 開啟 Do Not Track
  • IE 使用者,可以修改 P3P 的細節設定
  • 調整設定,拒絕第三方網站 cookie
  • 定時清除瀏覽器的所有 cookie(注意:會重設所有網站的登入狀態)

若不拒絕第三方網站 cookie,前述的 DAA 自律組織提供 Opt Out From Online Behavioral Advertising By Participating Companies (BETA) 網站,供網路使用者對其會員投放的廣告進行細部的設定。設定可以一次傳送給所有的會員網站。

Google 的 Adsense 服務也提供關聯廣告的細部設定,可以設定關聯廣告服務所能知道的個人側寫資訊,或是完全停止關聯廣告投送。

網路加密連線與資料安全:HTTP 與 HTTPS 網站連線

普通的網站,網址都是以「http://」開頭。這類的 HTTP 連線網站,與使用者的電腦之間的連線是沒有加密的。未加密連線的內容可以輕易的被竊聽,包含密碼、個人資訊、以及前述代表網站會員身分的 HTTP Cookie。網際網路的 TCP/IP 通訊協定沒有驗證對方身分的能力;簡而言之,當網路使用者連線至一個「http://」開頭的網址,瀏覽器是無法確認網站是否是為假冒網站,也無法確保資料連線是否有被竊聽。

為了補足 HTTP 的不足,以及完成商務網站交易安全的需求,1994 年 Netscape 推出了 HTTPS(安全 HTTP 連線)支援。HTTPS 仰賴兩個機制來確保網站連線的安全,一為可驗證信任關係的 SSL 憑證,一為從使用者瀏覽器到網站主機間全程的「端點到端點加密」。

SSL 憑證與信任網絡

每個 HTTPS 連線的網站都帶有一個 SSL 憑證,供瀏覽器驗證網站主機,確認其是否的確為網域的擁有人所架設。

驗證 SSL 憑證的真偽是密碼學問題,在此不做深究。此處需要了解的重點是,瀏覽器在驗證 SSL 憑證時,會使用其已知的可信任憑證的階層關係來確認。瀏覽器只會接受其已經信任的憑證所相信的 SSL 憑證,若網站的憑證不被信任的話(例如,使用自我簽署的憑證),雖說連線依然可以加密,但瀏覽器會無法確認加密連線的網站身分是否為真。

一般的瀏覽器在提供下載時會內建許多憑證管理中心的「根憑證」。根憑證通常來自於各國政府的網路管理中心、網域管理公司,或是專門驗證且簽發憑證的網路服務公司。根憑證管理組織在簽發信任子憑證時,必須驗證網域的所有權與對方的組織身分(例如,驗證其公司的合法商業登記)。瀏覽器廠商藉由內建這些根憑證來令瀏覽器驗證與信任這些組織所簽發的憑證。這些組織建立的身分驗證與信任關係,稱之為「信任網絡(Web of Trust)」。

端點到端點加密

對網路連線加密有如對信件加上信封。在信件到達最終目的地之前,信封確保信件的內容不會被刺探,不會被修改且假冒來源。相對來說,普通的網路連線只能類比到明信片。在 HTTPS 推出的 20 年,由於密碼學的演進以及電腦運算速度的倍增,加密連線使用的演算法已經做過多次的改變。但加密連線不變的目標就如同上述的信封比喻一樣,是端點到端點的加密(在中途不會被拆封重新包裝),且可以防止資料的修改與洩漏。

網站加密連線的安全問題

一個網址開頭為「https://」且運作正確的網站,可以確保使用者和網站之間的資料的安全,但 HTTPS 至今仍然有許多有細節,可能會造成資料安全受到危害。

普及率

HTTPS 至今尚未完全普及。根據 Trustworthy Internet Movement 的調查,截至 2014 年初,接受調查的網站中,只有 52% 是有正確加密的。未加密的網站在使用者連線時均有安全風險,例如網站資料被竄改、會員身分、資料被竊取等問題。

加密網站有一定的建置門檻。網站需要投資額外的硬體與頻寬來提供加密服務。需多網站雖然接受兩種連線方式,但除非使用者特別輸入 HTTPS 網址,通常都是使用非加密連線。部分網站例如維基百科,HTTPS 連線的速度明顯比 HTTP 緩慢。因為這些因素,HTTPS 的普及率至今不高。

SSL 憑證「信任網絡」的信任危機

前述的信任網絡是假定在網絡當中的所有憑證組織都是可以信任的,但近年來,憑證組織的安全與信任問題開始浮現且被關注。憑證組織的系統有可能會被入侵,導致其憑證被竊取,錯誤簽發憑證給未驗證身分的網站。憑證組織的稽核或是內部運作問題也可能導致錯誤簽發的憑證出現。著名的事件有 Comodo 的經銷商帳號被竊,導致 9 個憑證錯誤被簽發。另外,Electronic Frontier Fundation(電子前鋒基金會;EFF)的 SSL Observatory 也發現有數萬的憑證被錯誤的簽署給無法驗證網站擁有者的非正規網域,例如「localhost(固定指到本機的網域名稱)」。

憑證管理組織也有可能受於外部壓力或是蓄意共謀,簽發偽造的憑證。這類的問題比較容易發生在政府組織運作的憑證管理中心。法國政府所屬的憑證管理中心 ANSSI 在 2013 年 12 月被 Google 發現發出假憑證給 google.com 等網域。ANSSI 宣稱這是技術錯誤,但 The Register 報導指稱假憑證是法國財政部被用來監聽員工使用 Google 服務的傳輸內容,例如 GMail 信件。中國政府因為它對國內的網路管制,其憑證管理中心 CNNIC 也被許多人質疑。雖說尚無錯誤簽發憑證被發現,許多使用者依然要求瀏覽器廠商移除內建的 CNNIC 的憑證。

Lavabit 為一個安全 e-mail 服務。2013 年 8 月,因為調查 Edward Snowden 洩密案,美國聯邦政府得到法院簽發的搜索票,要求 Lavabit 提供其 SSL 憑證,供政府架設偽造網站監聽其服務與會員的通訊。為了避免危及其所有使用者的通訊安全,該服務的經營者 Ladar Levison 在依法提供 SSL 憑證之前數小時,關閉了整個服務。此案在數月後因為事後的法庭程序才為人所知。我們無法知道有多少網路服務因為法律要求而被迫秘密提供使用者的資料,或是直接交出 SSL 憑證供政府進行大規模監控。

對於 SSL 憑證的信任危機,目前瀏覽器廠商都試著實作許多稽核機制來防禦,例如 Certificate Transparency Project 建立的事後分析機制,或是使用 OCSP 通訊協定,直接線上檢查網站的 SSL 憑證是否為已知的問題憑證。

針對 SSL 加密連線的破解攻擊

SSL 憑證在簽發時,都會定義以它的加密金鑰長度可能被暴力破解的時間,來設定到期日。超過到期日的憑證即會被視為無效。但隨著密碼學的發展,現有加密演算法的缺陷會被發現,電腦的計算能力也會越來越強大。因此,瀏覽器在推出新版時,會設定瀏覽器不再接受舊版的演算法,例如 SSL 2.0,也會要求網站的 SSL 憑證加長金鑰長度,延遲暴力破解所需的時間。

建立加密連線的軟體也可能會有弱點,需要以更新新版的方式補強。許多加密方法仰賴特別的硬體或是軟體元件,稱為「亂數產生器(Random number generator)」,來提供足夠隨機的亂數,確保加密的確實。若亂數產生器有弱點,任何仰賴它的所有加密演算法都無法有效的加密。1994 年 Netscape 推出 HTTPS 功能時,其瀏覽器就被發現有這個瑕疵。過去數年一共發生多起針對亂數產生器的攻擊,包含刻意被植入後門、程式漏洞導致亂數隨機程度不足等等。這些軟體產生的 SSL 憑證若無積極回溯追蹤,加密連線都能被輕易破解。

國家情報單位對加密系統的攻擊能力也是外界不可知的。若情報單位擁有不為外界所知的加密演算法弱點,它可能能夠輕易的解讀我們以為安全的通訊內容。對於建立國家防火牆的國家如中國,若無法解讀加密連線,通常也會消極的干擾連線,迫使使用者改用非加密版本的網站。

個人資料隱私保障方法

避免在非 HTTPS 網站留下個人資料

如上所述,任何的 HTTP 連線都是可以被輕易竊聽的。要確保個人資料不會外洩,最極端的方法是不要在任何非 HTTPS 網站留下個人資料,包含註冊、或是登入網站,因為登入之後的 Cookie 可能會被竊取。雖然沒有洩漏個人資料,但竊聽者還是可以監控網站的連線,甚至是竄改 HTTP 網站的內容。

使用 HTTPS Anywhere

HTTPS Everywhere 標誌

HTTPS Everywhere 標誌

HTTPS Anywhere 是 EFF 所推出的瀏覽器附加元件,安裝之後,當連上的網站有提供加密與非加密版本時,HTTPS Anywhere 會確保瀏覽器自動切換到加密版本。此附加元件內部有一個網址對照表來完成自動切換,除了網頁本身,圖片等資料也會一併處理。不過使用之後因為 HTTPS 的特性以及佈署的現狀,許多網站連線可能會因此變慢。

保持軟體更新

隨著密碼學的發展,舊軟體若沒有更新,其加密連線就有可能被新的技術破解。如同前述,瀏覽器會在新版瀏覽器更新新的加密方法,且停用已知有問題的方法。這些需要使用者積極的更新使用的軟體,才能確保加密的安全。

使用可信賴的軟體或是開放原始碼軟體

在全球資訊網的技術文件中,瀏覽器的角色被稱為「使用者代理者(User Agent)」,受使用者委託,代表使用者對網站存取資訊的軟體。前述的許多章節提到瀏覽器的行為,以及使用者可以如何調整。但是最終,瀏覽器的行為是否能夠符合使用者的預期與要求,來自於使用者是否相信瀏覽器廠商所製作的軟體就如它所公開表示的。

所有軟體的行為是由其程式碼所定義的。開放原始碼軟體的每一個行為都可以從它的程式碼驗證,理論上可信賴度更高。但由於一般使用者不會自行編譯軟體的執行檔,一般提供下載安裝的執行檔,需要其他方法或由第三方獨立單位來驗證是否與原始碼相符。Firefox 將在未來提供「可驗證執行檔」,公開所有編譯步驟讓第三方獨立單位能夠驗證 Mozilla 提供的軟體下載是否與原始碼相符。

在公眾網路使用 VPN 等加密連線

前述的未加密 HTTP 網站,在家用的有線網路或是有密碼的無線網路,被竊聽的風險稍低,但在外面使用筆記型電腦或是智慧手機上網時,未加密連線可以輕易的被同一個網路的其他電腦竊聽。在那樣的環境使用網路,建議使用虛擬私人網路(VPN),例如 OpenVPN,將所有連線導到安全的網路。

結語

資訊設備以及全球資訊網為社會與個人帶來上個世代無法想像的生產力,但同時也考驗個人能夠有效理解與掌握這些資訊產品的能力。作為公民、選民、消費者,資訊產品與網路也考驗我們是否能確保政府與企業不會利用這些技術來欺騙大眾,侵犯隱私等等。在個人的層次,了解這些每日使用的科技可以幫助我們找到正確的工具與方法,捍衛自己的隱私與資料安全。作為社會整體的一分子,建立對這些技術的基本認識可以幫助我們改善現有制度與規則,使其適應新的網路時代。趨吉避凶,以免反烏托邦科幻小說的預言不幸成真。

One thought on “網路資料個人隱私與安全:Cookie 與 HTTPS 加密

  1. Pingback: [深入淺出]-why use Jsp & Servlet? – Zarek's blog

Leave a Reply

Your email address will not be published. Required fields are marked *