安全性監控密碼與信用卡 - 第一篇

Jesper M. Johansson

目錄

無用的安全性建議
無用且錯誤
費解的建議
影像式網站驗證的陷阱

我最近接到明尼蘇達大學的邀請,要我接受他們雜誌的專訪。很顯然,他們想要做一系列的傑出校友專題 — 找不到人 — 所以就找我充數。採訪者問到我的工作內容,於是我花了幾分鐘說明安全性

基礎結構軟體。她接著喊道:「聽起來太複雜了!對我來說,安全性就等於密碼與信用卡。」

我仔細思索了一下她的反應,過了幾分鐘,我發覺她說的有理。安全性的確就等於密碼與信用卡。至少對一般使用者來說是如此。在業界工作的我們一談到安全性,就想到密碼編譯演算法、Kerberos 是否比 TLS 或 NTLMv2 更適合、WS* 的好處、密碼雜湊是否要利用 Salt 值,還有其他我們愛討論的各種艱澀主題。的確,我們比一般使用者所關注的層面更深且迥異,但是我們往往忽略了一件基本的事:對於我們所要服務的大眾來說,安全性就等於密碼與信用卡。

的確,我們愛討論的艱澀話題還有我們特別喜歡發明的新技術全都是為了保護使用者資料的安全性。但是我想我們還是搞錯了方向。我們屬於 IT 世界的安全性次文化,存在的目的為了滿足使用者的特殊需求 — 也就是保障資料安全的需求。這不用說也包括了確保 IT 資產能夠安全地被使用。而這才是真正的目的。

在過去的專欄中,我強調沒有人會為了執行防毒軟體而去買一台電腦。使用者購買電腦的目的是要處理線上銀行業務、玩電腦遊戲、寫電子郵件、做功課,或其他一些基本功能。同樣地,沒有一家公司付錢給 IT 安全性小組是為了能夠實作 NTLMv2。公司資助 IT 安全性小組,好讓這些小組能保護組織資產,讓企業整體能安全地使用 IT 資源並達到營運目標。

服務大眾就是我們存在的意義。

因此我必須要問,我們真的有提供良好的「服務」嗎?或者說,身為安全性次文化的我們,實際上是否變成了阻礙而非助力?而立法及管理機構是否也助長這種阻礙?我懷疑我們開發的各種新技術真的對使用者有幫助。因此,我想探討幾個層面,說明身為世界上的 IT 提供者,我們實際上的行為是弊多於利。

有時候我們給使用者的大部分安全性建議和許多安全性技術似乎無用、錯誤、費解,或者往往結合了這三個缺點。在這一系列三篇連載的文章中,我將探討在提供建議和部署犯了上述一個或多個錯誤的技術時,造成使用者混淆的情況。

無用的安全性建議

最能混淆視聽方法之一,就是提供無用的安全性建議。若要變本加厲,您還可以提供錯誤的無用建議。[圖 1] 指出一個經過時間考驗、理論上完善但全然無用的常見建議。

fig01.gif

[圖 1] 無用的安全性建議 (按一下以放大影像)

它說您的每個線上帳戶都要使用不同密碼,看到了嗎?這項建議在三十年前行得通。當時在使用日後成為網際網路的工具的人數不過幾百出頭,這些聰明人並未選用特別完善的密碼。不幸的是,這項建議一直保留下來而且不斷複述,而且顯然沒有任何力量讓這項建議隨著今日電腦的使用情況做出調整。

您有多少個線上帳戶?我個人擁有 115 個,再加減我沒有記錄的幾個。根據 [圖 1] 的建議,我不但應該使用 115 個不同的密碼,而且還要每 30 到 60 天變更這 115 個密碼。換言之,我每天都要變更 2 到 4 個密碼 (換算一下:我等於一年會有 690 到 1380 個密碼)。

雖然提出這項建議的某些技術人員可能有辦法每天想出 4 個好密碼,還能將 115 個目前使用的密碼保存在短期記憶裡,但肯定有 99.99 % 的一般網友做不到。

從純理論的角度來說,在各處使用不同密碼的建議實際上是正確妥當的,而每 30 到 60 天變更所有密碼的建議也是如此。但這項建議也是無用的。今日的使用者擁有這麼多密碼,除非憑藉外力 (例如書面記錄或軟體),否則根本不可能遵從這項建議。接著是下一個例子。

無用且錯誤

[圖 2] 顯示的建議來自全球最大銀行之一的網站,其中的建議不僅無用,而且錯誤。標題<閱讀我們的密碼建議>底下提供的資訊再次重申「各處使用不同密碼」這行。它還建議您「永遠不要寫下密碼」。

fig02.gif

[圖 2] 無用且錯誤的建議 (按一下以放大影像)

這麼一來,我有 115 個不同的密碼,必須每天建立 4 個新密碼,而且還不准把它們寫下來。一開始我覺得自己很笨,因為我記不住所有的密碼。之後我發現其他人也是一樣。人類就是記不得 115 個密碼。我們可以記住和處理大約七段資訊 — 我們生來如此。根據在網際網路上所找到的多數密碼建議,其實連對一組密碼來說都不夠了,更別提多組密碼 (請參閱 George A. Miller 所著的《The Magical Number Seven, Plus or Minus Two:Some Limits on Our Capacity for Processing Information》,網址是 musanim.com/miller1956)。

可悲的是,每次一談到密碼建議,我們的產業往往會誤導使用者。如果安全性次文化要告訴使用者在各處使用不同的密碼,那麼也必須告訴他們方法 — 也就是將密碼記錄並保存在其他安全的地方。將密碼寫在紙上、使用保密的文件,或利用專門工具,例如 PasswordSafe (sourceforge.net/projects/passwordsafe)。面對現實,我們要不是記下密碼,不然就是到處使用相同的密碼。事實上,最近的一份調查發現有 88 % 的使用者在每個需要驗證的系統上都使用相同的密碼 (請參閱 msnbc.msn.com/id/24162478)。

反對記下密碼的建議確實會助長這種趨勢。我們需要做的是,教導使用者如何有效管理密碼 (以及其他機密資料),而非教導他們完全不管理這些資訊。如此一來,就能大幅減少使用者洩漏憑證的風險。

費解的建議

前兩圖都重現了早在 1960、70 及 80 年代有效的陳年建議,當時的主流使用者尚未開始上網和使用 Web 形式的服務。也還沒有人大聲抱怨這類建議,因為當時普遍認為這是明智的建議。

這類建議不但會混淆使用者,而且還會讓他們一想到得把密碼儲存到別處就充滿罪惡感。安全性專家提出這類建議,卻不協助使用者完成必要的工作,反而造成傷害。畢竟,找出辦法來管理安全性並非使用者的責任。這應該是安全性專家的責任。我們應該為使用者想出可行的方法來管理他們所有的線上帳戶。既然大部分的指引都只是重複相同的過時建議,使用者只好求助於便利貼和試算表來記錄他們眾多密碼。

作為驗證機制的一環,密碼的功用很多。不過密碼的主要問題在於,人類在記憶密碼方面表現得很差勁。IT 世界不試圖解決人性的問題,反而是忙著發明各種新機制來取代密碼 — 更糟的是還要加油添醋一番。這使得使用者更加困惑。

上次我存取一個特定的金融服務網站,結果出現只包含使用者名稱文字方塊的登入畫面,想像一下我有多驚訝 (見 [圖 3])。

fig03.gif

[圖 3] 在哪裡輸入我的密碼?

一開始我以為我踏入了某種惡意網站。接著我很快地驗證這個網站 — 該網站提供憑證,因此這個步驟很簡單 — 我發現實際上我所連接的網站沒錯。問題是,大家已經習慣在登入網站時,同時看到使用者名稱與密碼這兩個文字欄位。這是多年來不斷遇到的相同工作流程。因此當您突然遇到一個只詢問使用者名稱的網站,便開始猶豫起來。原來是這個提供者實作了一項技術,它使用圖片來讓使用者識別網站,以避免網路釣魚攻擊。接下來,當您填入使用者名稱後,網站顯示一個包含可辨識圖片的畫面,如 [圖 4] 所示。

fig04.gif

[圖 4] 現在有些網站使用影像來讓使用者驗證網站 (按一下以放大影像)

它的理論是您知道哪個影像是搭配哪個網站。若未顯示正確影像,就可以確認它是假造的網站。這個方法本身是一個很完整的概念。以使用者知道影像與網站組合為前提,這個策略還算合理。

當然,精明的讀者一定注意到 [圖 4] 中的綠色位址列。這表示此網站使用 SSL 與加強式驗證 (EV) 憑證,因此位址列是綠色的。這也表示使用影像來識別網站的整個前提並未提供任何附加價值。相反地,至少有一部份的使用者會對該影像感到困惑。這個網站已經向使用者驗明正身 — 它已經提供憑證,其中包含公司名稱、網站位址和信任的發行者名稱。而位址列是綠色的,這也告訴我們這家公司付了三倍的 EV 憑證費用來獲得更進一步的安全性。

當然,圖片也可能偽造。如果使用者可以提交自己的圖片,攻擊者也有辦法猜到使用的是哪張影像。此外,使用者很可能在每個網站都使用相同的圖片,因此攻擊者只要建立使用者想去的內容網站 (我讓您自己想一個切身的例子),然後要求使用者提供圖片以供網站驗證之用。如果使用者的確針對所有網站使用相同圖片,那麼這個新網站就得以存取使用者在銀行網站 (舉例來說) 使用的圖片。

雖然有些網站讓您選取自己的影像,但有些網站是使用現有圖片庫。譬如說,[圖 4] 中的網站就有 318 張現有照片供您選擇。如果網站不允許使用者提交自己的照片,上述的把戲就無法得逞。然而,若使用者無法挑選自己的影像,對於不常造訪的網站,使用者很難記得哪個網站要搭配哪個圖片。老實說,我就不曉得我在 [圖 4] 的網站上使用哪個圖片,但保證不是螢幕擷取畫面中顯示的那個。

影像式方法的問題在於,攻擊者可以任意顯示 318 張圖片中的一張,或乾脆隨機挑選 Flickr 中的一張照片,許多使用者都會以為那就是正確的影像。如果大部分的人都記得圖片與網站的組合,今天就不會有那麼多關於釣魚網站和安全性的問題了。

那麼既然網站已經使用憑證來自我驗證,又何必使用圖片來向使用者驗證網站呢?何不只使用憑證,並協助使用者學會如何驗證憑證?憑證已經能向使用者證明網站的真偽了。

取得憑證的程序絕對比取得使用者網站驗證影像的程序更安全。如果憑證是 EV 憑證,而且您使用的是 Internet Explorer® 7 或 Firefox 3,瀏覽器甚至會在位址列反白顯示相關的憑證資訊。但是很可惜,反白顯示功能只適用於極其昂貴的 EV 憑證。

影像式網站驗證的陷阱

圖片驗證技術有一些問題。首先,它非常容易從網站蒐集使用者名稱。事實上,若您輸入錯誤的使用者名稱,[圖 4] 中的網站會顯示如 [圖 5] 所示的對話方塊。一旦您輸入已經選擇秘密影像的使用者的正確使用者名稱,就可以看到那個人的秘密影像。顯然,這項資訊對於想要蒐集使用者相關資訊的攻擊者來說非常珍貴。

fig05.gif

[圖 5] 影像式驗證網站方便使用者名稱蒐集

此處顯示的實作類型實際上沒有任何安全性價值。攻擊者可以在假網站上直接複製登入流程。假網站會詢問使用者名稱,然後傳送到真網站。您甚至可以在用戶端使用 AJAX 來即時更新表單,讓它看起來更逼真。此外,如果正牌網站並未防範針對登入表單的跨網站要求偽造攻擊的風險,那麼 AJAX 程式碼甚至能直接提交要求到真網站,除非瀏覽器具有跨網站 XML-HTTP 要求的防護功能。

現在當結果傳回時,攻擊者可以剖析資料,調出圖片,然後向使用者顯示。換句話說,可以向使用者顯示假登入網站的任何攻擊者也能夠顯示使用者的秘密圖片。結論就是使用影像式網站驗證完全沒有任何附加價值。圖片會在使用者驗證網站之前顯示,因此擁有或能夠取得使用者的使用者名稱的攻擊者也同樣能取得該圖片。

假如從來沒有人教導使用者在提交表單之前先檢查憑證 — 如果考慮到影像式驗證用法本身也是基於相同假設的話,這個假設應該蠻寫實的 — 那麼從使用者取得使用者名稱可說是小事一樁。此外,由於許多影像式網站驗證方法對於有效使用者名稱與無效使用者名稱的反應不一,因此使用者名稱蒐集也很稀鬆平常。攻擊者甚至可以在發動攻擊之前,採用 Out-of-Band 的方式進行這些作業。

最終,我們的使用者要不是以為自己更安全,肯定是更加困惑。我們耗費了大量的股東權益來實作影像式網站驗證,卻完全沒有讓惡意使用者難以說服使用者提交憑證到假的網站。

本期《安全性監控》的內容到此為止。下個月請記得鎖定本系列文章的《第二篇》,我將舉出更多例子來討論誤導的安全性作法與不正確的驗證實作。

Jesper M. Johansson 是負責安全性軟體的軟體架構設計人員,也是《TechNet Magazine》的特約編輯之一。他擁有 MIS 博士學位,在安全性領域有 20 年以上的經驗,而且是企業安全性方面的 Microsoft MVP;其最新著述為《Windows Server 2008 Security Resource Kit》。

© 2008 Microsoft Corporation and CMP Media, LLC.著作權所有,並保留一切權利。未經許可,不得部分或全部重製。