「人類無法安全地儲存高品質的密碼金鑰,而且執行密碼運算時速度與準確度都不可接受。(他們還很大、維護昂貴、難以管理,而且污染環境。這些裝置竟然還持續被製造與部署,實在令人驚訝。但他們夠普及,所以我們必須繞著他們的限制來設計協定。)」——Kaufmann、Perlman 與 Speciner

「只有業餘者攻擊機器;專業人士鎖定人。」——施奈爾(Bruce Schneier)

「梅特涅整天說謊,卻從沒騙倒任何人;塔列朗從不說謊,卻騙倒了全世界。」——麥考萊(Thomas Macaulay)

為什麼安全工程師必須懂心理學#

許多真實攻擊利用心理學的程度,至少不亞於利用技術。上一章看到某些線上犯罪涉及對憤怒暴民的操弄,而財產犯罪與間諜活動都大量使用釣魚——用郵件誘騙受害者登入一個看似真實、實則設計來竊取密碼或安裝惡意程式的網站。

釣魚這類線上詐欺往往比類似的現實世界詐欺更容易做、更難阻止,因為許多線上保護機制既不像現實世界的對應物那樣易用,也不像它們那樣難偽造。

對歹徒來說,做一個能通過隨意檢視的假銀行網站,遠比在商店街蓋一間真的假分行容易。

我們花了數百萬年演化出社會與心理工具來處理面對面的欺騙,但當我們收到一封要求我們做某事的郵件時,這些工具的效力就低得多。

我們日常業務所倚賴的「善惡不對稱」,多半不只取決於容易自動化的正式交換,而是取決於實體物件、對人的判斷,以及支撐的社會協定的某種組合。所以當我們與雇主、銀行與政府的關係越來越透過線上通訊正式化,我們同時失去了實體脈絡與人的脈絡,這些通訊被偽造的風險就變大了

另一個推動社交工程攻擊激增的因素是:人們的技術能力在變好。當設計者學會擋掉較容易的技術攻擊,對系統使用者或操作者的心理操弄就變得越來越有吸引力。

所以正如資安經濟學研究在本書第一版與第二版之間造成了觀點的真實轉移,資安心理學研究造成了第二版與本版之間看世界方式的大部分差異

心理學研究的三條線索#

心理學是巨大的學科。以下只做三個與我們這行高度相關之主題的直升機導覽。

認知心理學#

認知心理學是這門學科的古典取徑,處理我們如何思考、記憶、決策,甚至做白日夢。二十世紀先驅如 Ulric Neisser 發現:人類記憶不像錄影機——我們的記憶儲存在跨越大腦的網路中,並由其重建,因此會隨時間改變、也可以被操弄。

許多洞見被行銷者與詐騙者使用,卻被多數系統開發者誤解或乾脆忽視。

案例:被誤用的「7±2」法則

多數人聽過 George Miller 的結果:人類短期記憶大約能處理七(正負二)個同時的選項。許多設計者因此把選單選項限制在五個左右。

但這個結論是錯的。 人們找資訊時,先是回想「該去哪裡看」,然後才掃描;一旦你找到相關的選單,掃描十個項目只比掃描五個難兩倍。選單大小的真正限制是螢幕大小(可能給你十個選項);而在語音選單中,一般使用者難以處理超過三、四個。

這裡 Miller 的洞見同樣被誤用了,因為空間-結構記憶與回聲記憶(echoic memory)是不同的機能

這說明了為何 7±2 這種寬泛概念可能有害:你必須看細節。

近年這個領域的重心正從應用認知心理學轉向**人機互動(HCI)**研究社群,因為後者不只從實驗室實驗、更從實地系統的反覆改良中獲得了大量經驗知識。HCI 研究者不只建模與量測人類表現(知覺、動作控制、記憶、解題),也發展出對「使用者的系統心智模型如何運作、又如何與開發者的心智模型不同」的理解,以及探索人們如何學會使用與理解系統的技術(任務分析、認知走查)。

三種人為錯誤#

安全(safety)研究社群投入大量心力研究人們操作設備時犯的錯誤。「人非聖賢孰能無過」,而錯誤研究證實了這點:可預測的人為錯誤種類,根植於認知的本質。 讓我們辨識人、聲音與概念比電腦強得多的基模(schemata,心智模型),也讓我們在錯誤的模型被激活時變得脆弱。

依其在「堆疊」中發生的位置,操作設備時的人為錯誤大致分三類:

  1. 技能層的失手(slips)與失誤(lapses)

    • 常做的動作會變成技能。失手是手工技能失敗——例如按錯按鈕;失誤是用錯技能——例如你打算下班順路去超市,卻因為大多數日子都直接回家而走上回家的路(這也叫捕獲錯誤,capture error)。
    • 失手被**網域搶註者(typosquatters)**利用:他們註冊與熱門網域相似的名稱,收割打字出錯的人。其他攻擊利用「人被訓練成點擊彈出視窗的 OK 才能做事」這件事。

    所以設計系統時,你必須確保危險動作(例如安裝軟體)所需的動作序列,與例行動作截然不同

    • 錯誤也常跟在中斷與知覺混淆之後。一個例子是完成後錯誤(post-completion error):一旦達成當下目標,人很容易就忘了收尾動作。先吐錢再退卡的 ATM,被遺留卡片的比例更高。
  2. 規則層的錯誤(mistakes)

    • 人依規則行動時,可能會套用錯的規則。資訊過載等情況會讓人採用他們知道的最強規則、或最一般的規則,而不是最好的那個。

    釣魚者用許多伎倆讓人套錯規則:用 https(因為「它是安全的」)、或讓 URL 以被冒充銀行的名稱開頭,如 www.citibank.secureauthentication.com——對多數人而言,「找名字」是比「解析名字的位置」更強的規則。

  3. 認知層的誤解(misconceptions)

    • 人們或是根本不理解問題,或是假裝理解、並為了把事情做完而忽略建議。
    • 資安可用性的開山論文——Alma Whitten 與 Doug Tygar 的〈Why Johnny Can’t Encrypt〉——證明加密程式 PGP 對多數大學生來說根本太難用,因為他們不理解私鑰與公鑰、加密與簽章之間的微妙差別。

    而且人們越來越認識到:許多資安臭蟲之所以出現,是因為多數程式設計師也不會用安全機制。 存取控制機制與資安 API 都難懂又難用,資安測試工具也常好不到哪去。即使保護機制被用得完全錯誤,程式往往看起來還是能跑。工程師接著互相抄程式碼、從線上共享站抄,於是誤解與錯誤被廣泛傳播。他們往往知道這樣不好,只是沒時間做得更好。

兩個底層科學概念#

  • 可供性(affordances):James Gibson 提出的「動作可能性」。對動物而言,實體環境可能是「可攀爬的」「可掉落的」「可鑽到底下的」;同樣地,一張椅子是「可坐的」。人類已發展出高超技巧,去創造誘導他人以特定方式行動的環境:我們造樓梯與門、讓物件可攜或可握、我們製造筆與劍。

    完全相同地,我們設計軟體產物來訓練與制約使用者的選擇,所以我們所用系統的可供性,會以各種方式影響我們如何思考。我們也能為不留意的人設計陷阱:把陷坑誤認為堅實地面的動物就麻煩了。

  • 光流(optical flows):當眼睛相對於環境移動,產生的光流場讓我們得以詮釋影像,理解其中物體的大小、距離與運動。我們的眼睛含有針對此流場特定面向的受器,假設場中物體是剛體,從而讓我們能分解旋轉與平移分量。光流讓我們能獨立於雙眼視覺之外理解周遭物體的形狀,並用於降落飛機、駕駛汽車這類關鍵任務。

要找出這些,你應該做一次以識別攻擊點為目標的認知走查,就像用程式碼走查搜尋軟體漏洞一樣。

性別、多樣性與人際差異#

許多女性死亡,是因為醫學檢測與技術假設病人是男性,或因為工程師設計汽車時用男性碰撞測試假人;從運動服、防刺背心到太空衣,防護裝備預設都為男性剪裁。

資訊系統呢?它們由男性設計,而且是年輕的技術宅男,但一半以上的使用者可能是女性

這個認識催生了性別 HCI 研究。早期實驗顯示女性更常使用周邊視覺,而結果是較大的顯示器能減少性別偏誤。對美國女性程式設計師的研究顯示,她們比男性更少「亂試(tinker)」,但試得更有效。

延伸:先天還是後天?一場仍在進行的爭論

2000 年代初,關於男性對電腦科學的性向,討論有時圍繞 Simon Baron-Cohen 的分析:把人分別評為系統化者(擅長幾何與某些符號推理)與同理者(擅長直覺理解他人情緒與一般社會智能)。多數男性系統化得分較高,多數女性同理得分較高。這個對應並不精確:少數男性更擅同理,少數女性更擅系統化。Baron-Cohen 的研究領域是亞斯伯格與自閉症光譜,他視之為男性大腦的極端形式。

這套理論在技術宅之間得到一些迴響——它解釋了為什麼我們常內向、對理解「事物」比理解「人」更有天分。如果是天生的,那就不是我們的錯。

但這裡出現了麻煩。

  • 女性在美英一貫只佔約六分之一的電腦科學名額;但在波蘭、羅馬尼亞與波羅的海諸國等前共產國家,女性佔電腦科學學生的三分之一,印度則接近相等。
  • 軟體的男性主導其實是相當晚近的現象。作者 1970 年代入行時,女性程式設計師幾乎和男性一樣多,而不論在業界、學界或政府,許多先驅都是女性。

這暗示相關差異更多是文化的,而非基因或發展的。「男腦/女腦」的論證也被 Daphna Joel 等人的研究逐步削弱:大量神經影像研究顯示,雖然大腦確有可辨識的男性與女性特徵,個體的大腦卻是兩者的鑲嵌。而且這些特徵在影像中可見,並不表示它們都是出生時就決定的——我們的大腦有很大的可塑性,就像肌肉,鍛鍊的組織會長大。

其他研究顯示:性別表現差異在新生兒身上不存在,約在 6–7 歲才出現——此時孩子早已學會區分性別,並適應周遭的社會線索(在已開發國家還被藍/粉性別化玩具與行銷的海嘯強化)。這在後續童年與青春期被性別刻板印象進一步強化,並被內化為身分的一部分。

在「女孩不該擅長數學或對電腦有興趣」的文化中,稱讚某人「數學很好」可能引發刻板印象威脅(stereotype threat)——害怕證實關於自己所屬群體的負面刻板印象。

也許因此,男性對個人稱讚反應較好(「你真聰明!」),女性則被表現稱讚激勵得更好(「你一定下了非常大的功夫」)。所以在推崇天才的學科(如數學)看到女性不足,或許並不意外。而類似機制似乎也是被貼上「非學術」標籤之族群學業表現較差的成因。

一句話:人們不只是生來不同;我們是被權力、文化態度、期待與機會塑造,學會變得不同的。

性別在堆疊的許多層次上都重要,從產品該做什麼、到它怎麼做。例如:車該更快還是更安全? 這與社會價值交纏在一起。男性是更好的駕駛(因為他們贏賽車),還是女性是更好的駕駛(因為她們保險理賠較少)?

再往下挖,我們會找到性別化與文化化的風險態度

在美國調查中,白人與男性判斷的風險較低。仔細研究會發現,這是因為約 30% 的白人男性把風險判斷得極低。這個偏誤在廣泛的危害類型上都一致,但對手槍、二手菸、多重性伴侶與街頭毒品特別強烈。亞裔男性對某些危害(如機動車輛)也顯示類似的低敏感度。白人男性更信任技術,更不信任政府。

工程師當然必須與現實世界打交道,但我們必須警覺:電腦系統可能因為「由男性為男性打造」而產生歧視,就像汽車與太空衣一樣。

作者與 Tyler Moore 做過實驗,看銀行給客戶的反釣魚建議是否對男性比對女性更容易遵循——結果確實如此。而似乎還沒什麼人研究性別與資安可用性,這是個機會。

但問題遠不只如此。許多系統將繼續由年輕、健康、異性戀、聰明的白人或亞裔男性設計,而他們可能不會(或根本不會)認真思考自己沒有直接遭遇的各種偏見與障礙。

你真的必須考慮整個堆疊:多樣性在公司治理、市場研究、產品設計、軟體開發與測試上都重要。如果你修不好開發端的失衡,最好在別處補上。

社會心理學#

社會心理學試圖解釋個人的思想、感受與行為,如何被他人的實際、想像或隱含的存在所影響。讓它站上檯面的,是三個奠定「權威濫用」理解基礎的早期研究,以及緊接著的旁觀者效應研究。

權威及其濫用#

  • Asch(1951):人們可以被誘導去否認自己眼睛所見,以順從群體。受試者在聽到其他組員(其實是實驗者的樁腳)的錯誤意見後判斷線段長度。多數受試者屈服了,只有 29% 抵抗了虛假的多數。
  • Milgram(1961):受 1961 年艾希曼(Adolf Eichmann)審判啟發,測量有多少受試者願意在實驗者要求下,對扮演「學習者」的演員施加嚴重電擊——即使「學習者」看起來痛苦不堪並乞求停止。這個實驗設計來測量多少比例的人會服從權威而非良知Milgram 一貫發現超過 60% 的受試者,在被告知的情況下會做徹底不道德的事。
  • 史丹佛監獄實驗(Zimbardo, 1971):顯示即使沒有命令,正常人也可能作惡。24 名學生被隨機分派為 12 名獄卒與 12 名囚犯。原本目的是探究監獄濫權是否因為獄卒(可能還有囚犯)是自我選擇的。結果扮演獄卒的學生迅速變成虐待狂式的權威主義者,實驗因倫理理由在六天後中止。

後兩個實驗如今都具爭議性,今天大概無法通過倫理審查。但若你在為企業設計營運安全措施,權威的濫用(不論是真實的還是表面的)是真實的問題。

案例:「Scott 警官」惡作劇電話與麥當勞的六百萬美元

1995–2005 年間,一名自稱「Scott 警官」的電話惡作劇者,命令美國 32 州超過 68 家商店與餐廳(包括至少 17 家麥當勞)的經理,以竊盜嫌疑為由拘留某位年輕員工並脫衣搜身。還被下令執行其他各種羞辱,包括毆打與性侵。

一名前獄警因冒充警察受審但被判無罪。至少 13 名服從來電、執行搜身的人被起訴,7 人被定罪。

麥當勞因未妥善訓練門市經理而被告——而且是在惡作劇電話模式已經確立多年之後。2007 年 10 月,陪審團命令麥當勞賠償其中一位受害者 610 萬美元:她被脫衣搜身時是 18 歲的員工。這是個惡劣的案子——她被門市經理留在其男友的看管下,該男友接著又對她犯下猥褻行為。男友被判五年,經理則對非法拘禁認罪。

麥當勞辯稱她該為自己沒察覺這是惡作劇而承擔損害,並稱是門市經理未能運用常識。肯塔基州的陪審團不買帳。 那位門市經理也提告,主張自己是公司未警告惡作劇之過失的另一名受害者,獲得 110 萬美元。

所以美國雇主現在若未訓練員工抵抗權威濫用,將面臨高額賠償風險。

旁觀者效應#

1964 年 3 月 13 日,年輕女子 Kitty Genovese 在紐約皇后區自家公寓外的街上被刺死。媒體報導 38 名目擊者未施援手、甚至未報警,儘管攻擊持續近半小時。這些報導後來被發現有誇大,但此案促成了全國 911 緊急號碼,也催生了「為何旁觀者常不介入」的研究。

Darley 與 Latané(1968)發現:

  • 單獨的旁觀者有 85% 的時間會幫助看似癲癇發作的人。
  • 認為還有另外四人看得見受害者的旁觀者,只有 31% 會幫忙。
  • 群體大小的效應壓過了所有其他效應:另一名旁觀者是男是女、甚至是否具醫療資格,基本上毫無差別。

這種責任分散在許多脈絡中都看得到。如果你想把事情辦成,你會寄信給一個人問,而不是三個人。當然,資安通常被視為「別人在處理的事」。

但如果你真的身處危險,真正的問題是至少會不會有一名旁觀者出手——而近期研究樂觀得多。研究者檢視數國過去十年多起公共衝突的監視錄影,發現十分之九的案例中,有一名或多名旁觀者介入化解衝突,而且介入的旁觀者越多,他們越成功

所以認為旁觀者通常會視而不見是錯的;「旁觀者效應」這個名字其實相當誤導。

欺騙的社會腦理論#

第二大主題是關於欺騙日益增長的研究:欺騙如何運作?我們如何偵測與量測它?又如何嚇阻它?

線索一:社會智能假說#

現代取徑始於 1976 年。在那之前,人類學家假設我們演化出較大的腦是為了做更好的工具。但考古證據不支持這點:整個舊石器時代,當我們的腦從黑猩猩大小演化到人類大小時,我們用的是同樣簡單的石斧;它們要到新石器時代才變得精緻,而那時我們的祖先在解剖學上已是現代智人。

Nick Humphrey 因此問:如果我們還不需要大腦,為什麼會演化出它?

他的假說是:智力的主要功能是社會性的。我們的祖先演化出更大的腦,不是為了做更好的工具,而是為了更好地把其他靈長類當工具用。

這如今被日益增長的證據支持,並改造了心理學這門學科:社會心理學在此之前一直是不受重視的窮親戚,被認為不夠嚴謹;此後人們才意識到,它很可能正是認知演化的驅動力

靈長類學家 Andy Whiten 蒐集了戰術性欺騙的早期證據,把社會智能重鑄為馬基維利腦假說:我們變聰明是為了欺騙他人,也為了偵測欺騙。並非所有人都完全同意這個刻畫(同理心這類社會化的正面面向也重要),但 Mercier 與 Sperber 近來蒐集了大量證據,主張現代人腦與其說是別的什麼,不如說是一台辯論機器——我們的目標是說服而非真理,修辭在先,邏輯在後

線索二:心智理論#

**心智理論(theory of mind)**由 Premack 與 Woodruff(1978)提出,並由 Wimmer 與 Perner 在 1983 年的經典實驗發展。

在這個 Sally-Anne 測驗中:孩子看著 Sally 在 Anne 與孩子的注視下把糖果藏在杯子下。Anne 離開房間,Sally 把糖果換到另一個杯子下。Anne 回來後,孩子被問「Anne 認為糖果在哪裡?」正常孩子約從五歲起答對——這是他們獲得辨別他人信念與意圖之能力的時候。Baron-Cohen、Leslie 與 Frith 接著證明,亞斯伯格/自閉症光譜上的孩子獲得此能力明顯較晚。

許多電腦科學家與工程師某種程度上在光譜上,而我們通常不如神經典型者擅長欺騙。這有各種意涵:我們在政治、高階主管與行銷中的比例偏低。

喔,還有——在地下市場把「會寫壞程式碼的技術宅」與「會拿它做壞事的罪犯」湊在一起之前,網路犯罪少得多。

技術宅也更可能成為吹哨者:我們比較不會為了討好他人而對不舒服的真相保持沉默,因為我們較不重視他們的意見。

但這是個複雜的領域。有些著名的線上不法者在光譜上,但更多是倒楣——Gary McKinnon 聲稱自己駭入五角大廈是為了發現飛碟的真相,並未預料到 FBI 反應的兇猛。而其他種類的同理缺陷牽涉許多犯罪:

  • 性格性同理缺陷:精神病態者無視他人感受,但理解得夠好以便操弄他們。
  • 情境性同理缺陷:從認為「任何上鉤的白人一定覺得非洲人很蠢,所以他們活該」的奈及利亞詐騙者,一路到把對手視為非人、或道德上死有餘辜的士兵與恐怖分子。

線索三:自我欺騙#

Robert Trivers 主張我們演化出欺騙自己的能力,以便更好地欺騙他人

「如果欺騙在動物溝通中是根本的,那麼必然有強烈的選擇壓力去識破欺騙;而這反過來應該會選出某種程度的自我欺騙,把某些事實與動機推入無意識,以免透過自我知識的細微跡象,洩漏了正在進行的欺騙。」

我們遺忘不方便的真相、把想相信的事合理化。自我欺騙能力可能有一道光譜,從誠實的技術宅,一路到那些對自家產品懷抱魔法般完全信念的偉大業務員。

延伸:自我欺騙、動機性推理與過濾泡泡

這在多個層次上都有爭議。例如:如果布萊爾(Tony Blair)在 2003 年說服英國參戰時,真的相信伊拉克有大規模毀滅性武器,那算是說謊嗎?你如何定義真誠?如何量測它?而如果你預期一位國家領袖無法對你說謊,你還會選他嗎?

這場辯論與**動機性推理(motivated reasoning)**的研究相連。Golman、Hagman 與 Loewenstein 綜述了「人們如何迴避資訊,即使資訊免費且能導致更好決策」的研究:有患病風險的人迴避醫學檢查、經理迴避可能顯示自己做了壞決策的資訊、投資人在市場下跌時較少看自己的投資組合。

這條研究線一路回溯到佛洛伊德,他描述了否認不愉快資訊的各種面向,包括我們如何試圖把自己對所做壞事的罪惡感最小化,並把它們歸咎於他人。

它也與社群媒體上的過濾泡泡效應相連:人們偏好聽那些確認自己信念與偏誤的人說話,這可以用資訊的享樂價值來分析。人們把自己想成誠實的,並試圖避免偏離所產生的倫理失調;犯罪學家用**中和(neutralisation)**一詞描述違規者用來把罪惡感最小化的策略。

線索四:意圖#

在祖先的演化環境中,偵測敵意意圖是件大事:在前國家社會裡,也許四分之一的男性與男孩死於他殺,更早則有許多祖先死於掠食動物。所以我們似乎演化出對「可能標示人、動物甚至神明之意圖」的聲音與動作的敏感度。

結果就是:我們現在對防範涉及敵意意圖的威脅(如恐怖主義)花太多錢,而對防範殺死更多人的流行病、或可能殺死更多人的氣候變遷花太少。

相關的還有社會動機推理:如果問題設定在社會角色中,人們的邏輯推理會好得多。

延伸:Wason 選擇任務的社會版本

Wason 測驗:受試者被告知要檢查一些卡片,一面有字母等第、另一面有數字代碼,規則是「若學生卡片正面是等第 D,背面必須標記代碼 3」。給他們看四張顯示 D、F、3、7 的卡片,問「你必須翻開哪些卡片來檢查所有卡片標記正確?」

多數人答錯:原始實驗中 96 名受試者只有 48% 給出正確答案「D 和 7」。

但演化心理學家 Cosmides 與 Tooby 發現,若把規則改成社會情境就變容易了:「若一個人在喝啤酒,他必須年滿 20 歲」,個體是一名啤酒飲用者、一名可樂飲用者、一名 25 歲者、一名 16 歲者。這時四分之三的受試者能推論出保鑣該檢查啤酒飲用者的年齡、以及 16 歲者的飲料。

Cosmides 與 Tooby 主張:我們做邏輯(也許還有算術)的能力,是作為監管社會交換的手段演化出來的。

線索五:最小化與去抑制#

最小化(minimisation)是人們合理化壞行為、或讓其傷害顯得較小的過程。犯罪學家 Donald Cressey 提出詐欺三角(Fraud Triangle)理論解釋導致詐欺的因素:除了動機與機會,還必須有合理化。人們可能覺得雇主給薪過低,所以浮報開支是正當的;或覺得國家在福利上浪費錢,所以逃稅有理。

經營 DDoS 代打服務的孩子們彼此保證,提供「網路壓力測試(web stresser)」服務是合法的,還在網站上寫明只能用於合法用途。英國國家犯罪局因此買了 Google 廣告,確保任何搜尋 web stresser 服務的人都會看到「DDoS 是犯罪」的官方警告。2018 年 1 至 6 月間僅僅花費三千英鎊,就抑制了需求成長:英國的 DDoS 營收持平,而美國則在成長。

最後,社會脈絡的喪失是線上去抑制的因素。人們在線上說話更直白,這有正面也有負面效果:害羞的人能找到伴侶,但我們也看到惡毒的筆戰。John Suler 把因素分析為:匿名性、不可見性、非同步性,以及權威與地位象徵的喪失。

結論是:線上欺騙的性質與規模,可以被適當的互動設計調節。

沒有人像他們在 Facebook 上看起來那麼快樂、像在 Instagram 上那麼有魅力、或像在 Twitter 上那麼憤怒。人們在 WhatsApp 支援的封閉群組中卸下心防——那裡既沒有激發表演的名人效應,也沒有促進酸民行為的匿名性。

但人們在封閉群組中批判性較低,這使它們更適合傳播陰謀論與進行激進化。

捷思、偏誤與行為經濟學#

決策科學(又稱行為經濟學)位於心理學與經濟學的交界,研究人們決策時使用的捷思,以及影響他們的偏誤——也就是人的決策過程如何偏離經濟學家所建模的理性行為。

早期先驅 Herb Simon(既是早期電腦科學家,也是諾貝爾經濟學獎得主)指出:古典理性意味著不論那個選擇多難計算,都要做能最大化期望效用的事。那麼在**有限理性(bounded rationality)**的真實世界裡,人們會怎麼行動?Daniel Kahneman 因在此領域的重大貢獻,於 2002 年獲得諾貝爾經濟學獎。

展望理論與風險誤判#

Kahneman 與 Tversky 首先發展出建模風險胃口的展望理論(prospect theory)

在許多情況下,人們厭惡失去已有的 100 美元,甚於重視贏得 100 美元

把一個行動框架成「避免損失」,能讓人更可能採取它。釣魚者正是用這一招下鉤:「您的 PayPal 帳戶已被凍結,您需要點擊此處解鎖。」

我們也不擅長計算機率,而使用各式捷思:

  • 錨定效應(anchoring):我們常以初始猜測或比較為基礎做判斷,再視需要調整。
  • 可得性捷思(availability heuristic):我們依「把例子帶進腦中有多容易」來推論。這在五萬年前應付獅子攻擊時沒問題,但當大眾媒體用恐怖主義的影像轟炸我們時,就會給出錯誤答案
  • 我們對聽來的事比對看到的事更可能懷疑,或許是因為我們有更多神經元在處理視覺。
  • 我們對極不可能但後果極壞的事件擔心太多。
  • 我們更可能相信自己推導出來的東西,而非別人告訴我們的。

許多人認為恐怖主義是比流行病、交通事故甚至食物中毒更嚴重的威脅。這是錯的,但對行為經濟學家而言毫不意外。

我們高估死於恐攻的微小風險,不只因為它小,還因為 911 電視畫面的視覺效果、事件的易於記憶、敵人攻擊所引發的義憤,以及我們投入思考與擔憂的心力。

心理學家 Daniel Gilbert 在一篇標題挑釁的文章〈如果只有同性性行為會造成全球暖化就好了〉中,比較我們對恐怖主義與氣候變遷的恐懼。差異有四:

  1. 我們演化成對敵意意圖遠比對自然更警戒——十萬年前,一個拿棍棒的人(或一頭飢餓的獅子)遠比一場雷雨更可怕。
  2. 全球暖化不冒犯任何人的道德感
  3. 它是長期威脅,而非明顯且當下的危險。
  4. 我們對環境的快速變化敏感,對緩慢變化不敏感。

還有更多風險偏誤:

  • 我們在自己掌控時較不害怕(如自己開車),相對於當汽車或飛機的乘客時。
  • 我們更害怕不確定性——也就是風險量級未知時(即使風險很小)。
  • 我們滿意即可(satisficing):選一個「夠好」的替代方案,而不去費事精確算出勝算,尤其對小額交易。(這裡誤判的不是冒險者,而是那些忽略「真實的人會把交易成本納入計算」的經濟學家。)

現時偏誤與雙曲折現#

「主啊,讓我貞潔——但不是現在。」——聖奧古斯丁

套用安全更新時有類似的情緒:人們可能更關注立即且在時間、儲存與頻寬上確定的成本,而非不可預測的未來效益。這種**現時偏誤(present bias)**使許多人拒絕更新,而這多年來是線上技術漏洞的主要來源。

軟體公司的一種反擊方式是允許人們延後更新:Windows 提供「重新啟動/挑時間/稍後提醒」。提醒把忽略率從約 90% 降到約 34%,最終可能讓整體遵循率加倍。

更好的設計是把更新做到無痛,讓它可以被設為強制或近乎強制——這是某些瀏覽器與雲端服務普遍採取的做法。

雙曲折現(hyperbolic discounting)是決策科學家用來量化現時偏誤的模型:直覺推理可能讓人使用把未來折現得如此之深的效用函數,以致即時滿足看起來是最佳行動,即使它不是。這類模型被用來嘗試解釋隱私悖論——為何人們在調查中說在意隱私,線上行為卻相反。

預設值與推力#

許多人通常走最容易的路,使用系統的標準組態,因為他們假設那夠好。

2009 年 Thaler 與 Sunstein 的暢銷書《推力(Nudge)》探討了這點,指出政府可以在不侵犯個人自由的情況下,僅靠設定正確的預設值就達成許多政策目標:

  • 若公司員工預設被納入退休金計畫,多數人不會費事退出;若是選擇性加入,多數人不會費事加入。
  • 西班牙可供移植的器官比英國多得多——西班牙法律允許使用死者器官除非本人生前反對,英國則需捐贈者主動同意。
  • 讓納稅人在開始填表時就聲明資訊屬實(而非在最後),可以降低逃稅。

人們必須做的選擇集合、做選擇的順序、以及什麼都不做時的預設值,合稱選擇架構(choice architecture)

Facebook 預設為相當開放的資訊分享;而每當有足夠多人搞懂如何提高隱私設定,架構就會改變,於是你得重新退出一次。這不只利用了危險的預設值,也利用了控制悖論(control paradox)——提供控制的錯覺,會使人分享更多資訊

行為經濟學家 Loewenstein 的說法是:「隱私控制設定給人們更多繩子去吊死自己。Facebook 想通了這點,所以他們給你極度細緻的控制項。」

預設訴諸意圖#

行為經濟學家承襲心理學把心智看成理性與情緒元件互動的傳統——「心」與「腦」、或「情感」與「認知」系統。發展生物學研究顯示,我們從很小的年紀就有分別處理社會現象(如辨識父母與手足)與物理現象的不同心智處理系統

Paul Bloom 主張兩者間的張力解釋了為何許多人相信心與身根本不同:孩子試著用物理解釋所見,當理解不足時,就用意圖性行動來解釋現象。這對幼者有生存價值,因為它使他們傾向就新奇的自然現象向父母或其他成人求教。Bloom 認為這有個有趣的副作用:它使人類傾向相信身體與靈魂不同,從而為宗教信仰鋪路。

這對安全工程師有兩層相關性:

  1. 它部分解釋了基本歸因謬誤(fundamental attribution error)——人們常錯在試圖從意圖而非從脈絡來解釋事情。
  2. 一旦人們被搞糊塗,靠教導使用者網際網路的血腥設計細節(例如叫他們解析看似來自銀行之郵件中的 URL)來遏止釣魚,價值就很有限。

如果情緒被設定成在理性用盡時接管,那麼與釣魚者展開技術指導與反指導的戰爭就是不明智的——他們會比較擅長。安全的預設值會更好。

情感捷思#

把人推向以「意圖」而非「機制」思考,可以利用 Paul Slovic 等人探討的情感捷思(affect heuristic)

概念是:人腦能處理多執行緒的認知處理,但我們的情緒堅定地維持單執行緒,而且它們在機率理論上比大腦理性部分還差。

所以藉由讓情緒突顯,行銷者或詐騙者可以試圖讓你用情緒而非理性回答問題、用捷思而非計算。常見伎倆是問一個情緒性問題(不論是「你上個月約會幾次?」還是「你對某某總統有什麼看法?」),好讓人對機率變得不敏感

所以色情網站被用來安裝大量惡意程式並不令人意外——教會網站也是,它們往往維護不良、容易被駭。同樣地,引發恐懼感的事件——從癌症到恐怖主義——不只讓人比赤裸的機率所能證成的更害怕,還讓那些機率更難計算,並嚇阻人們去做這個計算的努力

其他強化「以意圖解釋事物」傾向的因素包括認知過載——大腦的理性部分單純累了。我們的自制能力也會疲勞,包括生理與心理的。

做一些心算會提高我們拿巧克力而非蘋果的機率。所以一家做了忙碌網站的銀行也許能賣出更多壽險,但它同時也可能讓客戶更容易被釣魚。

認知失調與風險恆溫器#

認知失調(cognitive dissonance):人們在持有衝突觀點時會不舒服;他們會尋找確認既有世界觀與自我認知的資訊,並試圖拒斥衝突的資訊。

一個實務後果是:面對事情已經出錯的越來越多證據,人們仍能驚人地堅持在錯誤的行動路線上。 向自己或他人承認被騙是痛苦的,而騙子知道並利用這一點。

資安專業人士應該「感覺到那個騙局(feel the hustle)」——也就是對「新近建立的社會線索與期待正對你施壓,要你『就這樣做』一件你平常會有所保留的事」的情境保持警覺。那正是該退一步問自己是否正被詐騙的時刻。

但訓練人們察覺這點已經夠難,而讓一般人打斷社會流程說出「停!」更難。有些實驗做過,例如訓練醫療服務人員不在電話中給出健康資訊,以及在女性自衛課程中訓練人們抵抗額外個人資訊的索求。把這類訓練主流化的問題在於:可用的經費,比那些以坑客戶為商業模式之公司的行銷預算,少了好幾個數量級。

風險恆溫器(risk thermostat):John Adams 研究強制安全帶法規,確認它們其實沒有救到命——它們只是把傷亡從車內乘員轉移到行人與自行車騎士。安全帶讓駕駛感覺更安全,於是他們開得更快,好把感知風險帶回原先的水準。

教訓是:測試必須具備生態效度(ecological validity)——你必須在盡可能真實的環境中評估一項擬議介入的效果。

欺騙的實務#

欺騙往往是對順從專業人士(compliance professionals)——那些工作就是讓別人做事的人——所發展技術的濫用。

「推力」的傳道者 Thaler 把行為經濟學的自私使用稱為「汙泥(sludge)」。但奇怪的是,經濟學家竟曾認為這類技術的利他使用會比自私使用更常見。

行銷者不只推最賺錢而非最超值的選項,還用上其他所有可用的伎倆。史丹佛的「說服科技實驗室」一直站在「讓人黏在螢幕上」技術的前沿,而其校友之一、前 Google 員工 Tristan Harris 成了直言的批評者。他解釋科技業如何靠操弄不只是預設值、還有選擇本身來賺錢。

螢幕讓兩種技術成為主流:

  • 賭場式的間歇性可變獎勵以製造成癮(我們一天查看手機 150 次,看看是否有人用注意力獎賞了我們)。
  • 無底的訊息流,讓我們在不再飢餓時仍持續消費。

業務員與騙子#

Robert Cialdini 是心理學教授,為了記錄業界伎倆而去打暑期工,賣過從二手車、家居改造到壽險的一切。他的《影響力》歸納出六大類影響人與成交的技術:

  1. 互惠(Reciprocity):多數人覺得有必要回報恩惠。
  2. 承諾與一致(Commitment and consistency):人們若覺得自己前後不一,會有認知失調。
  3. 社會證明(Social proof):多數人想要他人的認可。這意味著跟隨自己所屬群體中的其他人——而群體越小,壓力越強
  4. 喜好(Liking):多數人想照好看或討喜的人所要求的去做。
  5. 權威(Authority):多數人對權威人物順從(回想 Milgram)。
  6. 稀缺(Scarcity):我們害怕錯過,如果想要的東西可能突然買不到。

這些都可追溯到祖先演化環境中的壓力:食物稀缺是真實威脅、陌生人可能危險、面對他們的群體團結(以及食物與遮蔽的提供)攸關生死。

Frank Stajano 與 Paul Wilson 在此基礎上分析詐騙的原理。Wilson 研究並演出九季的《The Real Hustle》電視節目——把詐騙施行在毫無戒心的民眾身上,事後把錢還給他們、說明原委並徵求影片使用許可。數年間對數千名對象施行數百種詐術的知識,被蒸餾成七項原則:

  1. 分散注意(Distraction)——詐騙者讓目標專注在錯的東西上。這是多數魔術表演的核心。
  2. 社會順從(Social compliance)——社會訓練我們不去質疑看似有權威的人,這讓人容易被假冒銀行或警察的騙子攻破。
  3. 從眾原則(The herd principle)——當周遭所有人看似分擔同樣風險時,人會卸下防備。這是三張牌把戲的支柱,也是社群網路上越來越多詐騙的支柱。
  4. 不誠實(Dishonesty)——如果目標自己也在做見不得光的事,他就比較不會申訴。許多人被「因為它非法所以你才拿到好價錢」的想法吸引,而整個詐騙家族(例如轉售詐騙取得的機票)都靠這個。
  5. 善意(Kindness)——這是不誠實的反面,是 Cialdini 互惠原則的變體。許多社交工程詐騙倚賴受害者的樂於助人,從尾隨進入大樓,到打電話講一個悲慘故事要求重設密碼。
  6. 需求與貪婪(Need and greed)——業務訓練師告訴我們要找出對方真正想要什麼,然後讓他看到如何得到。好的詐騙者會幫目標做一個夢,然後用它把目標榨乾。
  7. 時間壓力(Time pressure)——這使人本能行動而非停下來思考。正常行銷者一天到晚在用(「此價格只剩 2 個座位」),騙子也是。

憤世嫉俗者可能會說:詐欺只是行銷的一個分支;或者,隨著行銷越來越激進,它看起來越來越像詐欺。

作者團隊調查線上租屋詐騙時,發現很難撰寫偵測器——因為許多房仲用的是同一套技術。事實上,詐騙者的行為已被 Cialdini 的模型良好描述,只是騙子額外加上了訴諸同情、建立自身可信度的論證,以及處理異議的方法。(這些在一般行銷文獻中也找得到。)

軟體世界也一樣:非法惡意程式與剛好合法的「潛在不受歡迎程式(PUP)」(如把你的廣告換成別的廣告的瀏覽器外掛)之間界線模糊。一個好的區分因子似乎是技術性的:惡意程式因逮捕風險而由許多小型殭屍網路散布,PUP 則多半由單一大型網路散布。

但騙子也用正規行銷通路。Ben Edelman 在 2006 年發現:網頁搜尋排名第一的公司有 2.73% 是壞的,而出現在旁邊搜尋廣告中的公司有 4.44% 是壞的。壞公司也更可能展示廉價的信任訊號,例如網站上的 TRUSTe 隱私認證。同樣地,冒牌房東常寄推薦信甚至身分證影本給潛在房客——真房東從不這麼做

還有「合法」企業的欺騙性行銷實務:2019 年對 1.1 萬個購物網站的爬取發現 1,818 個「黑暗模式(dark patterns)」——隱藏訂閱、隱藏費用、壓迫式銷售、偷塞購物車、強制開帳戶等操弄性行銷實務,其中至少 183 個明顯具欺騙性。更糟的是,壞網站正是最熱門的那些;以流量加權,你造訪的網站中或許四分之一到三分之一在坑你。

這種持續的、剛好低於詐欺起訴門檻的壓力,對整體信任有寒蟬效應:如果安全警告混雜著行銷、或帶有任何行銷味,人們就比較不會相信它。

我們甚至看到人們對軟體更新的信任流失:調查中人們說自己比較不願套用「安全+功能」的升級,相對於純安全修補。

社交工程#

透過操作者來駭入系統並不新鮮。軍事與情報組織一向以彼此的人員為目標;舊蘇聯的大部分情報成就都屬這一類。私家偵探社也不落後。

延伸:假託電話(pretext calls)的工業化

調查記者、私家偵探與詐騙者在二十世紀後半,把假託電話發展成介於工業流程與藝術形式之間的東西。

工業流程的例子是英國私家偵探如何追蹤人:既然英國有全民登記的國民保健署,訣竅就是打給你認為目標所在地區、有行政系統存取權的人,假裝是保健署裡的另一個人,然後問。作者的同事 1996 年在英格蘭做了實驗,訓練某地方衛生局的員工識別並回報這類電話——他們每週偵測到約 30 通假託電話,換算全英國就是每週 6,000 通、每年 30 萬通。

這件事後來算是被修好了,但花了十多年。而真正的修復不是隱私法的執行,而是行政人員乾脆不接電話了

另一個二十世紀老詐術:偷走某人的 ATM 卡,然後打電話給他假裝是銀行,問卡片是否被偷。聽到說是之後,騙子說:「我們就是這麼想的。請現在告訴我您的 PIN,我好進系統把卡片註銷。」

近年成長最快的變體是「授權推送付款(authorised push payment)」:騙子再次假裝是銀行,說服客戶轉帳到另一個帳戶,通常是靠把客戶搞混銀行的認證程序——而多數客戶本來就覺得那套程序相當神祕。

(原書註記一個有趣的反例:2019 年出現「callhammer」攻擊——有人反覆打電話「更正他名字的拼法」,一次改一個字元,把它變成另一個名字。)

至於藝術形式,最令人不安的資安書籍之一是 Kevin Mitnick 的《欺騙的藝術》。Mitnick 因入侵美國電話系統被捕定罪,出獄後講述他幾乎所有的入侵都涉及社交工程。

他的典型手法是向電話公司員工假裝自己是同事,然後索取「協助」(例如一組密碼)。繞過公司總機並贏得員工信任的方法是業務訓練課程的主食,而駭客直接套用。

一個手忙腳亂的系統管理員被某個自稱執行長私人助理的人為瑣事來電一兩次;一旦這個設定被接受,來電者就要求為老闆設一組新密碼。

社交工程在 2006 年 9 月成為世界頭條:惠普董事長 Patricia Dunn 僱用私家偵探,用假託手法取得她所懷疑的其他董事、以及她認為有敵意的記者的通話紀錄。她被迫辭職,偵探們因詐欺性電信通訊被定罪並判社區服務。

2007 年美國財政部稅務管理督察長對國稅局(IRS)的稽核中,人員打給 102 名各層級 IRS 員工,索取他們的使用者 ID,並要他們把密碼改成一個已知的值——62 人照做了。更糟的是,2001 與 2004 年做過類似的稽核測試。

社交工程也不限於竊取私人資訊,它也可以是讓人相信虛假的公開資訊。本章開頭引述施奈爾的那句話,就出現在一則股票詐騙報導中:一份偽造的新聞稿宣稱某公司執行長已辭職、盈餘將被重編;數家通訊社轉發,股價下跌 61%,直到騙局被揭穿。

釣魚#

如果說電話社交工程是二十世紀的首選戰術,線上釣魚似乎已取代它成為二十一世紀的主要戰術。操作者既有罪犯也有情報機關,而目標既是你的員工也是你的客戶。

訓練員工已經夠難,訓練一般客戶更難。他們會假設你想坑他們、忽略你的警告,並找出從你系統拿到想要之物的最容易路徑。

而且你不能只為平均使用者設計。如果你的系統對英語不好、有閱讀障礙或學習困難的人來說不安全,你就是在自找嚴重的法律麻煩。所以,使用你系統最容易的方式,最好就是最安全的方式。

「phishing」一詞在 1996 年出現於 AOL 密碼竊取的脈絡;最早的「password fishing」提法可回溯到 1990 年,指的是有人改動終端機韌體以蒐集 Unix 登入密碼。

同樣在 1996 年,Tony Greening 報告了一項系統性實驗:雪梨大學 336 名資工學生收到一封郵件,以「疑似入侵後需要驗證密碼資料庫」為藉口要求提供密碼。

針對銀行的釣魚攻擊在七年後的 2003 年才開始。演進軌跡很清楚:

  • 早期攻擊模仿銀行網站,但既粗糙又貪心:攻擊者索取 ATM PIN 之類的各種資訊,郵件英文也很爛。多數客戶聞到了老鼠味。
  • 約 2008 年,攻擊者學會了更好的心理學:他們常直接重用真實的銀行郵件、只改 URL;或寄一封「感謝您在 PayPal 帳戶新增電子郵件地址」的信,激使客戶登入去抱怨自己並沒有這麼做。當然,用提供的連結而非自行輸入網址或使用書籤的客戶,帳戶會被清空。
  • 詐欺損失快速成長,但約在 2015 年穩定下來。多項反制措施奏效:更複雜的登入方案(雙因子認證,或其低成本表親——詢問密碼中隨機幾個字母);轉向能更好過濾垃圾郵件的網頁郵件系統;以及尋找提領模式的後端詐欺引擎。

競爭態勢是殘酷的:釣魚者在任何時候都會打各國最容易的目標——不論是竊取其客戶憑證,還是用其帳戶洗被竊資金。集中的損失會讓目標醒過來並採取行動。

規模化攻擊與針對性攻擊的經濟學截然不同:前者的經濟條件規定「為殭屍網路招募一台新機器」的成本最多只能是幾美分;後者則允許間諜花數年試著駭進敵對國元首的手機,或詐騙者花數週數月跟蹤財務長以期大筆收穫。誘餌與技術都不同,即使裝到目標裝置上的犯罪軟體出自同一個馬廄。

Cormac Herley 主張:針對性犯罪與大量犯罪之間的經濟鴻溝,正是網路犯罪沒有比現在更糟的原因之一。

畢竟,既然我們倚賴電腦、所有電腦都不安全、而且攻擊時時刻刻都在發生,文明怎麼還沒崩潰? 網路犯罪不可能總是像看起來那麼容易。

另一個因素是創新的開發與擴散需要時間。壞人花了七年才追上 Greening 1995 年的釣魚研究。另一例:2007 年 Jagatic 等人的論文展示如何用從目標社群網路挖掘的脈絡自動個人化每一封釣魚信,使釣魚有效得多;本書第二版引用了它,而 2016 年我們才在野外看到——一個幫派向公司財務部門員工寄出數十萬封夾帶美澳銀行木馬的釣魚信,姓名與職稱顯然是從 LinkedIn 抓來的。

撰稿時,犯罪幫派正越來越多地在針對公司的攻擊中使用魚叉式釣魚,藉此安裝勒索軟體、竊取禮券並發動其他詐騙。

2020 年,一群年輕人駭入 Twitter——那裡有超過一千名員工能存取可接管使用者帳號的內部工具——並從比爾蓋茲、歐巴馬與馬斯克等知名使用者的帳號發出比特幣詐騙推文。他們似乎是在 SIM 交換詐欺上磨練了魚叉式釣魚技巧。這種「可移轉技能」在騙子之間的擴散,在許多方面類似主流技術的採納。

作業安全(Opsec)#

讓員工抵抗外人誘騙他們洩漏機密的企圖,在軍事圈稱為作業安全(operational security, opsec)

保護真正有價值的機密(未公布的財務資料、尚未申請專利的產業研究、軍事計畫)取決於限制有存取權的人數,也取決於「什麼可以跟誰、以何種方式討論」的準則。

兩個成功的例子:

  • 醫療隱私案:作者團隊教育保健服務人員認識假託電話,並設立嚴格的回撥政策——除非他們撥打的號碼取自保健服務內部電話簿(而非來電者提供),否則不在電話上討論病歷。員工偵測並挫敗幾通假託電話後,他們會談論這件事,訊息就嵌入了每個人的工作方式。
  • 一家矽谷大型服務公司:外人尾隨員工進入園區建築造成入侵企圖。用機場式的 ID 檢查、甚至卡片啟動的旋轉門來阻止,會改變氛圍並與文化衝突。解方是創造並嵌入一條社會規則:當有人替你撐著門,你就出示你的識別證。 與假電話一樣,關鍵因素是社會性嵌入而非單純訓練。

通常最難教育的是最資深的人。作者在銀行業的親身經驗是:你訓練不了那些薪水比你高的人,例如交易室裡的交易員。那家服務公司做得比較好,因為其執行長在全體會議上反覆強調要制止尾隨。

有些 opsec 措施是常識,例如不把敏感文件丟進垃圾桶、不在下班後留在桌上。(作者任職過的一家銀行讓清潔工把所有這類文件搬到部門經理的桌上。)

較不明顯的是你必須訓練你信任的人。一批看似來自英國首相布萊爾辦公室、起初被歸咎於「駭客」的難堪郵件外洩,結果是私家偵探從他個人民調顧問家中的垃圾裡撈出來的。

人們會用他們不得不用的方式操作系統,而這通常意味著為了把工作做完而打破一些規則。研究顯示員工只有一定的遵循預算(compliance budget)——他們一年只願意把這麼多小時投入到明顯無助於達成自身目標的任務上。

你必須弄清楚這個預算是多少,並明智地使用它。 如果有某些資訊你不希望員工被騙去洩漏,更安全的做法是把系統設計成他們根本無法洩漏,或至少讓洩漏必須經過與其他員工交談之類的關卡。

欺騙研究#

911 之後,各國政府投入巨額資金尋找更好的測謊工具。

  • **測謊機(polygraph)**透過心率與皮膚導電度量測壓力,1920 年代就有了,被美國部分州用於刑事調查,也被聯邦政府用於最高機密權限的人員篩檢。

  • 除了用皮膚導電度量測壓力,你也可以用眼球運動量測分心、用上半身動作量測罪惡感。作者與 Sophie van der Zee 的研究專案使用動作捕捉服Xbox 的手勢辨識攝影機,得到比測謊機略好的結果。

然而這類技術最多只能增益訊問者的技巧,而「它們效果很好」的宣稱應被視為偽科學。慶幸的是,政府夢想中的有效訊問機器人還有一段距離。

第二種取徑是用真實客戶行為訓練機器學習分類器——信用卡詐欺引擎自 1990 年代末就在這麼做。近期研究也推進到其他領域:Noam Brown 與 Tuomas Sandholm 打造的撲克機器人 Pluribus,在 12 天、一萬手德州撲克的馬拉松中擊敗了十多位專家玩家。

它用的不是心理學而是賽局理論:與自己對打數百萬次,並追蹤「本可帶來更好結果的下注」所產生的悔恨。它能在無法取得對手面部表情或身體語言等「破綻」的情況下持續擊敗專家,這件事本身就很說明問題。

用統計機器學習而非生理監測來處理欺騙,也可以認為對隱私的侵入較少。

密碼:可用性、心理學與資安的交會#

密碼管理提供了一個可用性、應用心理學與資安交會的教學脈絡。密碼大概從 1970 年代起就是安全工程師面對的最大實務問題之一。

可用性研究者 Angela Sasse 的說法是:依我們對人類記憶的了解,很難想出比密碼更糟的認證機制——人們記不住不常用或經常更換的項目;我們無法按需求遺忘;回想比辨識難;而無意義的字詞更困難。

而且要把問題放進脈絡:你被要求設定的多數密碼不是為了你的利益,而是為了別人的。

現代媒體生態系由「想最大化頁面瀏覽數與註冊用戶數,好在被賣掉時最大化價值」的網站驅動。

這就是為什麼當你被引導到一篇惱人到你不得不留言的文章時,你會發現必須註冊。點擊,一頁廣告。填表送出。CAPTCHA 打錯,再來一次,又一頁廣告。點郵件連結,又一頁廣告。現在你可以留下一則永遠不會有人讀的評論。

在這種情況下,你最好打一串隨機垃圾讓瀏覽器記住;或者更好——別費事了。

一家現代大型服務公司的密碼系統包含以下元件:

  1. 登入頁面(可見部分):註冊時要你選密碼、大概會用某種方式檢查強度,之後每次登入時要求它。
  2. 救回機制:處理忘記的密碼甚至被入侵的帳戶,通常靠額外的安全問題、你的主要郵件帳號,或發簡訊到你手機。
  3. 密碼檢查的技術協定機制:在你的筆電或手機上加密密碼,然後與本地加密值比對、或帶到遠端伺服器檢查。
  4. 跨平台同步機制:讓你在筆電上改密碼後,手機也能跟上;這些機制也可能讓你把被竊手機列入黑名單,而不必重設它所能存取之所有服務的密碼。
  5. 入侵偵測機制:當你的某個密碼在它大概不該出現的地方被使用時發出警報。
  6. 單一登入(single sign-on)機制:用一個登入存取許多網站。

開發全功能密碼管理系統工作量很大,而提供密碼救回支援也要錢(幾年前英國電信 BT 的密碼重設中心有兩百人)。更重要的是,入侵偵測在規模上做得最好:若有人在秘魯的網咖使用作者的 Gmail 密碼,而 Google 知道他人在蘇格蘭,就會發簡訊到他手機確認——小網站做不到這件事

密碼濫用嘗試的主因,是某家公司被駭、數百萬組郵件與密碼外洩,壞人拿去別處試。大公司能快速察覺,小公司不能。

密碼救回#

2010 年代的經驗是:隨著大型服務商規模擴大、人們大舉轉向智慧型手機,密碼救回往往是認證中最難的一環。你認識的人(例如員工)忘記密碼,可以讓他們與認識他們的管理者互動;但你不認識的線上客戶就難了。而大型服務商每天要救回數萬個帳戶,絕大多數必須在沒有人工介入的情況下完成

安全問題的失敗#

1990 與 2000 年代,許多網站用「你最喜歡的球隊」「寵物的名字」或老掉牙的「你母親的婚前姓」來做密碼救回。

這類近乎公開的資訊往往容易猜,因此提供了比猜密碼本身更容易的破帳戶途徑。而所有人問同樣的問題讓情況更糟。至於名人——或遭前任親密伴侶濫用的情況——可能根本沒有可用的秘密。

2008 年一名學生透過密碼救回問題(生日與第一所學校的名字,兩者都是公開資訊)駭入美國副總統候選人裴林(Sarah Palin)的 Yahoo 郵件帳號,把這件事帶到了公眾面前。

2015 年五位 Google 工程師發表了對安全問題的徹底分析,許多問題極為薄弱:

  • 攻擊者對英文的「最喜歡的食物?」可達 19.7% 的成功率
  • 37% 的人給出錯誤答案(有時是為了讓答案更強,有時不是),16% 的人的答案是公開的
  • 除了不安全,它們也難用:40% 的英語系美國使用者在需要時想不起答案,而能用簡訊重設碼救回帳戶的人是這個比例的兩倍。

從郵件救回到第二因子#

鑑於這些問題,多數網站現在讓你透過寄到註冊郵件地址的信來救回密碼。但若有人攻陷那個郵件帳號,他們就拿到你所有的依附帳號

對重要帳戶(銀行與郵件本身),現行標準做法是使用第二因子——通常是發到手機的簡訊碼,或更好的是能加密該碼並將其綁定特定手機的 app。

Google 研究顯示:簡訊擋下了機器人的所有大量密碼猜測、96% 的大量釣魚與 76% 的針對性攻擊。

改用 app 則把後兩個數字提升到 99% 與 90%

2020 年的問題是攔截簡訊認證碼的攻擊快速成長,多數涉及 SIM 交換(SIM swap)——攻擊者向你的電信商假冒你,取得你帳戶的補發 SIM 卡。SIM 交換攻擊 2007 年始於南非,成為奈及利亞主要的銀行詐欺形式,接著在美國流行——起初用來接管高價值 Instagram 帳號,然後洗劫人們在比特幣交易所的帳戶,接著擴及一般銀行詐欺。

攻擊者也利用 SS7 信令協定遠端竊聽目標手機並竊取驗證碼。而針對性攻擊的研究也很有啟發:Ariana Mirian 與 UCSD、Google 的同僚接洽線上打廣告的「雇傭駭客」服務,請他們釣 Gmail 密碼。三個幫派成功了,用中間人攻擊擊敗了簡訊雙因子認證;鑑識隨後揭露 2018 年 3 至 10 月間來自同一組 IP 位址的另外 372 次針對 Gmail 使用者的攻擊。

設計這類系統時,永遠別忘記它的強度等於其最弱的後備機制——不論那是與你無法控制之郵件供應商的救回迴圈、易受 SIM 交換或手機惡意程式攻擊的電話驗證碼,還是一個容易被社交工程的人。

密碼選擇#

許多帳戶因 PIN 或密碼被猜中而淪陷。有殭屍網路持續靠猜密碼與密碼救回問題破解線上帳戶,好用郵件帳號發垃圾郵件、並為殭屍網路招募機器。而隨著人們發明新服務並加上密碼,猜密碼者就找到新目標。

近期例子是加密貨幣錢包:一個匿名的「比特幣大盜」靠嘗試大量弱密碼對付以太坊錢包,竊得五千萬美元。同時,價值數十億美元的加密貨幣因密碼被遺忘而永久遺失。

密碼有三大顧慮,難度與重要性遞升:

  1. 使用者能以夠高的機率正確輸入密碼嗎?
  2. 使用者記得住密碼嗎,還是必須寫下來、或選一個容易被攻擊者猜到的?
  3. 使用者會不會因為把密碼洩漏給第三方(意外、故意,或受騙)而破壞系統安全?

可靠輸入的困難#

如果密碼太長或太複雜,使用者可能難以正確輸入。若操作緊急,這可能有安全(safety)意涵;若客戶難以輸入軟體啟用碼,就會產生昂貴的客服電話。而 2010 年代從筆電轉向智慧型手機,讓「至少一個小寫、一個大寫、一個數字與一個特殊字元」這類規則變得非常瑣碎惱人。

這是推動人們轉向更長但更簡單的秘密(例如三四個單字的通行短語)的因素之一。但人們能不能不出太多錯地輸入它們?

兩個對照案例:

  • STS 預付電表(用於許多低度開發國家):客戶付錢給銷售代理,拿到印有 20 位數字的收據,回家在電表鍵盤上輸入,燈就亮了。設計者擔心大量人口不識字、而且人們可能輸到一半就迷失,系統可能不可用。但不識字不是問題:即使不會讀字的人對數字也沒有困難(一位工程師說:「每個人都會用電話」)。最大的問題是輸入錯誤,而解法是把二十位數字印成兩列,第一列三組四位、第二列兩組。
  • 美國核武發射碼:只有 12 個十進位數字。若真要使用,操作員會處於極端壓力下,可能還在用臨時或過時的通訊管道。實驗顯示 12 位數是在那種情況下能可靠傳達的上限。

記憶的困難#

標準密碼建議被總結為:「選一個你記不住的密碼,而且不要寫下來。

問題不限於電腦存取。法國一家平價連鎖旅館導入自助服務:你抵達旅館、在櫃檯機器刷信用卡,拿到印有房門解鎖數字碼的收據。為了壓低成本,房間沒有套內衛浴。

常見的失敗模式是:你半夜起來上廁所,忘了門碼,也才發現自己沒把收據帶著。於是你只好睡在浴室地板上,直到隔天早上工作人員來上班。

密碼可記憶性可以從五個標題來討論。

一、天真的選擇#

自 1980 年代中期起,人們就在研究大家選什麼樣的密碼,發現他們用配偶的名字、單一字母,甚至直接按 Enter 給出空字串。

延伸:從 1980 年的 Unix 到 2012 年的 Yahoo
  • 對 1980 年一台 Unix 系統磁帶的密碼分析顯示:Dennis Ritchie 用 dmac(他的中間名是 MacAlistair);後來的 Google 董事長 Eric Schmidt 用 wendy!!!(妻子的名字);Brian Kernighan 用 /.,/.,
  • Grampp 與 Morris 1984 年的經典論文報告:在強制密碼至少六個字元並含一個非字母的軟體上線後,他們做了一個檔案,內容是 20 個最常見女性名字各接一個數字。這 200 組密碼中,至少有一組出現在他們檢視的數十台機器的每一台上。 其他研究顯示,要求非字母只是把最熱門的密碼從 password 換成 password1
  • Daniel Klein 於 1990 年蒐集 25,000 組 Unix 密碼,發現依投入努力多寡,21–25% 的密碼可以被猜出:字典單字佔 7.4%、常見名字 4%、使用者與帳號名的組合 2.7%,往下還有科幻小說詞彙(0.4%)與運動術語(0.2%)等較不可能的選擇。另有基於模式的猜測:對屬於使用者「Daniel V. Klein」的帳號 klone,嘗試 klone、klone1、klone123、dvk、dvkdvk、leinad、neilk、DvkkvD 等等。隔年 Alec Muffett 釋出 crack,可用字典與衍生的變形規則暴力破解 Unix 密碼。
  • 作者所知最大規模的學術研究是 Joe Bonneau 2012 年的工作:分析外洩密碼檔中的數千萬組密碼,並在 Yahoo 實習期間對登入系統加裝儀表,蒐集 7,000 萬使用者的即時選擇統計。他也推導出評估密碼可猜性的最佳度量,包括攻擊者用一個系統收割的密碼去破解另一系統帳戶的情況。這項工作影響了大型服務商的密碼強度檢查器設計與現行實務。
二、使用者能力與訓練#

有時你可以訓練使用者。密碼檢查器已訓練他們使用更長、含數字與字母的密碼,而效果甚至外溢到不使用檢查器的網站。

但你不想趕跑客戶,所以行銷部門會限制你能做什麼。事實上,研究顯示密碼規則的執行強度不是風險價值的函數,而是「該網站是否為壟斷者」的函數。壟斷網站通常有非常惱人的規則,而有競爭者的網站(如 Amazon)較好用,更倚賴後端入侵偵測系統。

在企業或軍事環境中你可以強制密碼選擇規則、更換規則,或直接發隨機密碼。但那樣人們就得寫下來。於是你可以堅持密碼與其保護的資料同等對待:銀行主控密碼晚上放進金庫;軍方「最高機密」密碼必須封入信封、放進保險箱、置於無人時上鎖的房間、位於有衛兵巡邏的建築內。

但如果你想聘用並留住好人才,最好把事情想得更周到一點。矽谷有一家公司的政策是:每台機器的 root 密碼寫在卡片上、放進膠帶貼在機器側面的信封裡——這是「密碼與其保護的資料同等對待」規則的更人性化版本

家用的對應物,就是你 wifi 路由器背面那張卡片。

作者團隊的隨機對照實驗:三種密碼建議

寫第一版時,作者找不到任何依應用心理學標準(隨機對照試驗、足夠統計檢定力)站得住腳的密碼訓練實驗。於是他們自己做了一個,從一年級理科學生中選了三組各約一百名志願者:

  • 紅組(對照):給予一般建議(至少六個字元,含一個非字母)。
  • 綠組:被告知想一個通行短語,並從中選字母組成密碼。例如 “It’s 12 noon and I am hungry” 給出 I'S12&IAH
  • 黃組:被告知從給定的表中隨機選八個字元(字母或數字)、寫下來,並在記住密碼後一兩週內銷毀這張紙條。

預期:紅組密碼最好猜、綠組次之、黃組最難猜;而記憶困難的順序相反(黃 > 綠 > 紅)。

但結果不是這樣:

  • 對照組約 30% 的密碼可被 crack 猜出,而另外兩組都只有約 10%——通行短語與隨機密碼看來效果相當。
  • 密碼重設率三組之間無顯著差異。
  • 問學生密碼是否難記(或是否寫下來)時,黃組的問題顯著多於另兩組,而紅綠之間無顯著差異

結論:

  • 對於會照指示做的使用者,基於助記短語的密碼提供兩全其美:和天真選擇的密碼一樣好記,和隨機密碼一樣難猜。
  • 問題於是變成使用者遵循度。相當一部分使用者(大概三分之一)就是不照指示做。

所以當軍隊發給士兵隨機選擇的密碼時,其價值來自「密碼指派迫使使用者遵循」,而不是來自它們是隨機的(助記短語效果一樣好)。

但中央指派的密碼往往不合適。當你對公眾提供服務時,客戶期待你呈現與競爭者大致相同的介面。所以你必須讓使用者自選網站密碼,並用某種輕量演算法拒絕「明顯很爛」的密碼。(GCHQ 建議使用由線上密碼外洩檔中最常見的 10 萬個密碼構成的「爛密碼清單」。)

銀行卡的情況是:使用者期待銀行發初始 PIN,之後能自行更改(同樣可以擋掉 0000 或 1234 這類「明顯很爛」的 PIN)。

超過一半的持卡人保留隨機 PIN,但約四分之一選擇像孩子生日這類熵比隨機 PIN 低的 PIN,而且不同卡片用同一個 PIN。結果是:偷走皮夾的小偷若先在離線模式、再在線上模式對所有卡片試最常見的 PIN(每張卡有六次機會),約有十一分之一的機率得手。禁止 1234 這類熱門選擇的銀行,可以把賠率提高到約十八分之一。

三、設計錯誤#

讓密碼好記的嘗試,是嚴重設計錯誤的常見來源。經典的反面教材是問「你母親的婚前姓」。

你當然可以對銀行說「Yngstrom」、對電信公司說「Jones」、對旅行社說「Geraghty」;但資料在公司之間廣泛共享,你很容易把它們的系統——連同你自己——搞混。而如果你想打電話給銀行說你決定把母親的婚前姓從 Yngstrom 改成 yGt5r4ad,祝你好運。

事實上,鑑於資料外洩數量之大,你不妨假設任何想要的人都能取得你所有常見的密碼救回資訊:地址、生日、第一所學校、社會安全號碼,以及母親的婚前姓。

有些組織使用情境安全資訊。作者用過的一家銀行會問企業客戶「帳戶最近一張兌現支票的金額」。理論上這有幫助:如果有人偷聽到我在電話上的交易,那也不是長期的洩漏。但細節值得注意:

  • 系統剛導入時,作者想過剛收到我支票的供應商是否可能冒充我,結論是問最近三張支票的金額會更安全。
  • 但實際遇到的問題出乎意料:把支票簿交給會計師做年度審計後,我們就沒辦法跟銀行講話了。
  • 作者也不喜歡「偷走我實體郵件的人也能偷走我的錢」這個想法。

2007 年 Florêncio 與 Herley 對 50 萬名網頁使用者為期三個月的研究顯示:平均使用者有 6.5 組密碼,每組跨 3.9 個不同網站共用;約有 25 個需要密碼的帳戶;平均每天輸入 8 次密碼

許多人對許多不同用途使用同一組密碼,並未為銀行、社群媒體與郵件這類高價值登入設計特殊流程。所以你必須預期:你剛設計好的電子銀行系統的客戶所選的密碼,可能同時也被某個黑手黨經營的色情網站知道。

最普遍且最頑固的錯誤之一,是強迫使用者定期更換密碼。

一段值得記住的歷史:強制換密碼如何流行、又如何被撤回

作者 1980 年代初次遇到強制每月換密碼時就觀察到,它導致人們選擇 julia03(三月)、julia04(四月)這類密碼,並在本書 2001 年第一版中如此寫明。

然而 2003 年 NIST 的 Bill Burr 寫下建議定期更新的密碼指引,被四大會計師事務所採納,並推送給所有審計客戶。

與此同時,資安可用性研究者做了一次又一次調查,顯示每月更換是次佳的:

  • Zhang、Monrose 與 Reiter 對使用者自創之密碼變形技巧的首次系統性研究顯示:在有強制到期的系統中,超過 40% 的密碼可從前一個推出;強制更換對選擇弱密碼的人幫助不大;而定期選密碼的心力,也可能降低密碼品質。
  • 最後可用性專家 Lorrie Cranor 在擔任 FTC 首席技術官期間寫了一份綜述,並有學術研究支持。

2017 年 NIST 撤回了原建議,現在推薦長通行短語、只在被攻陷時更換。英國 GCHQ 等其他政府機關跟進,微軟終於在 2019 年 4 月宣布 Windows 10 結束密碼到期政策。

然而許多公司仍被信用卡發卡機構訂的 PCI 標準綁住,那些標準還沒跟上、仍要求每三個月更換;另一個問題是審計師對許多公司下達合規指令,而他們無疑也需要時間才會跟上。

(原書註腳:作者所在大學的審計師連續三年在年度報告中寫說學校應該強制每月換密碼,卻提不出任何支持證據,甚至不知道自己的政策最終來自 NIST。校方不為所動,請審計委員會主席另聘審計師——最後確實換掉了。)

2020 年的流行做法是邀請使用者選擇三個以上隨機字典單字組成的通行短語,這由一則著名的 xkcd 漫畫推廣(它建議 correct horse battery staple)。

電子前哨基金會(EFF)現在推廣用骰子選字:他們有一份 7,776 個字的清單(6^5,所以擲五次骰子選一個字),並指出六字短語有 77 位元的熵且好記。

四、營運失敗#
  • 最普遍的營運錯誤是未重設預設密碼。 這自 1980 年代早期撥接系統吸引調皮學童注意以來就是慢性問題。特別糟的情況是系統有無法更改的預設密碼,並由無法修補的軟體檢查——我們在物聯網中看到越來越多這樣的裝置,它們在整個運作壽命中都保持脆弱,而 Mirai 殭屍網路正是為招募與利用它們而生。

  • 密碼明擺在眼前是另一個長期問題,不論是便利貼還是某種電子等價物。

    案例:R v Gold and Schifreen 與英國第一部電腦濫用法

    兩名年輕駭客在某展覽會的一台終端機上,看到一張便條貼著英國電信早期公共郵件服務 Prestel 開發版的電話號碼。他們後來撥了進去,發現歡迎畫面上就顯示著一組維護密碼。他們把它拿到正式系統上試——竟然成功了!

    他們接著駭入愛丁堡公爵的電子郵件帳號,並「以他的名義」寄信給某個他們不喜歡的人,宣布授予騎士爵位。

    這樁滔天大罪震驚了建制派,以致當檢方未能說服法院定這兩名年輕人的罪時,英國國會通過了第一部《電腦濫用法》

  • 在不真正需要時要求密碼,或出於不誠實的理由要求。你被迫在網站上設的多數密碼都是為了行銷理由——取得你的郵件地址、或給你一種「屬於某個俱樂部」的感覺。所以對於從沒打算再訪的使用者來說,在密碼欄輸入 123456 或更粗魯的字眼來表達憤慨,是完全理性的。

  • 糟糕的密碼管理系統:有些根本不加密密碼,也不時有進取心的駭客把後門偷渡進密碼管理函式庫的報導。

五、社交工程攻擊#

謹慎的組織用各種方式傳達安全脈絡以幫助員工避免犯錯。例如 NSA 有不同顏色的內外線電話,而當房間裡的外線電話離架時,該房間裡連討論機密材料都不行,更不用說在電話上談。

然而許多銀行與企業雖維持某種內部安全脈絡,卻常常訓練自己的客戶以不安全的方式行動

  • 因為釣魚普遍,點郵件裡的連結去登入銀行並不明智,你該用書籤或手動輸入網址。然而銀行行銷部門寄出大量含可點連結的郵件。 事實上行銷業有很大一部分就是致力於讓人點連結。Apple、微軟與 Google 的郵件客戶端都會把純文字 URL 變成可點的,所以它們的使用者可能從沒看過不可點的 URL。銀行客戶被好好地訓練去做錯的事。
  • 謹慎的客戶在網頁服務把他導向別處時也該提高警覺——然而銀行系統為其服務使用各式各樣奇怪的 URL。美國銀行的一封群發信把英國客戶導向 mynewcard.com,而且憑證還弄錯了(憑證是給 mynewcard.bankofamerica.com 的)。結果連資安專家都難以分辨銀行群發信與釣魚信。
  • 對身分不明的來電者給出安全資訊也不明智——然而我們都接過銀行人員來電索取安全資訊。銀行現在還打我們的手機,期待我們對著整節車廂的陌生人講出安全資訊,而不是讓我們用簡訊回覆。
  • 把銀行卡 PIN 輸入 ATM 或商店 PIN 輸入裝置以外的任何裝置也不明智;花旗銀行甚至要客戶無視並通報索取個人資訊(含 PIN 與帳戶明細)的郵件。然後你猜怎麼著——它寄給澳洲客戶一封信,以「安全升級的一部分」為由要求客戶登入網站,並用卡號與 ATM PIN 驗證身分。
客戶教育的軍備競賽#

釣魚在 2000 年代中期成為線上銀行的真實威脅後,銀行試圖訓練客戶尋找網站的某些特徵。這部分是風險降低,部分是風險傾倒——確保不理解或無法遵循指示的客戶,能為由此產生的損失負責。

一般模式是:一旦客戶被訓練去遵循某條特定規則,釣魚者就利用這條規則,因為規則的理由沒被充分解釋。

銀行的建議釣魚者的反制
「檢查英文」找個會寫英文的人,或直接用銀行自己的郵件只改 URL
「找鎖頭符號」釣魚網站開始用 SSL,或直接在網頁上放鎖頭圖片
郵件中放帳號末四碼四碼(對特定銀行與卡別是固定的)
「可以點圖片,不要點 URL」插入看似圖片、實則指向執行檔的連結
「把滑鼠移到連結上看真正去哪」插入不可列印字元讓 IE 不顯示其餘部分,或用長到無法管理的 URL(許多銀行也這麼做)

安全與可用性社群多年前就知道「責備並訓練(blame and train)」不是處理難用系統的方法——唯一真正的修復是一開始就為安全的可用性而設計。

釣魚警告#

部分解方是給使用者更好的工具。現代瀏覽器會對惡意 URL 發出警示,底層機制包括:防毒與威脅情報社群整理的壞 URL 清單;以及尋找過期憑證與其他合規失敗的邏輯(因為這類警示多數是假警報)。

業界與學界都做了大量關於「如何讓人注意警告」的研究。我們看到太多警告、多數不相關,而許多是設計來把風險從別人轉嫁給我們的。那麼人們何時會注意?

作者團隊的研究發現:當警告不是含糊籠統的(「警告——造訪此網站可能危害您的電腦!」),而是具體明確的(「您即將造訪的網站已被確認含有對您構成重大風險、且無任何實質益處的軟體。它會試圖以設計來竊取您銀行帳戶與信用卡資訊、藉以詐騙您的惡意程式感染您的電腦」)時,人們最為注意。

Google 可用性團隊的後續研究嘗試了許多想法:用臉孔讓警告在心理上更突出(無效)、簡化文字(有幫助)、讓安全的預設值既吸引人又顯眼(也有幫助)。優化這些因素把遵循率從約 35% 提升到約 50%。

然而如果你想阻止絕大多數人點擊已知的惡意 URL,自願遵循是不夠的。你要嘛在防火牆擋掉它們,要嘛在瀏覽器擋掉(Chrome 與 Firefox 對不同類型的憑證錯誤就是這麼做的)。

系統面的議題#

並非所有釣魚攻擊都涉及心理學。有些涉及密碼輸入與儲存的技術機制,以及更廣泛的系統議題。

猜測次數能否被限制#

安全工程師有時把密碼系統分成「線上」(猜測受限,如 ATM PIN)與「離線」(不受限)。但這些詞現在已不太準確:

  • 有些離線系統可以限制猜測,例如支付卡用實體防篡改把你限制在三次 PIN 猜測。
  • 有些線上系統反而不能。例如你用 Kerberos 登入,竊聽線路的對手可以觀察到用你的密碼加密的金鑰從伺服器流向你的客戶端、以及用該金鑰加密的資料在線上流動,於是他能慢慢試遍所有可能的密碼。

最常見的陷阱是:平常會限制猜測次數、但突然不再限制的系統——當它被駭、單向加密的密碼檔連同加密金鑰一起外洩時。這時壞人就能悠哉地拿整本密碼字典去對付每一個帳戶。

六種威脅模型#

密碼可猜性最終取決於所選密碼的熵與允許的猜測次數,但這要放在特定威脅模型的脈絡中:

  1. 針對某一帳戶的針對性攻擊:入侵者試圖猜出特定使用者的密碼,例如猜辦公室對手的登入密碼以直接搞破壞。
  2. 針對特定目標之任一帳戶的滲透企圖:敵人試圖駭入你在任何地方擁有的任何帳戶,以取得有助於接管其他帳戶或直接造成傷害的資訊。
  3. 針對某目標系統之任一帳戶的滲透企圖:入侵者只想拿到該系統任一使用者的登入。這是釣魚者試圖駭入目標銀行任一帳戶好洗贓款的經典情況。
  4. 針對任何系統之任一帳戶的滲透企圖:入侵者只想在某個領域中隨便拿一個帳戶。例如壞人猜任何線上郵件服務的密碼好發垃圾郵件;或針對性攻擊者想在目標公司網域中拿到任一機器的登入作為灘頭堡。
  5. 利用一個系統的突破去滲透相關系統:入侵者已有灘頭堡,現在想向內陸推進以攻佔更高價值目標。
  6. 阻斷服務攻擊:攻擊者可能想阻擋一或多名合法使用者使用系統,可能針對特定帳戶或全系統。

你能被阻斷服務嗎#

偵測到密碼猜測時,基本上有三種對策:鎖定(lockout)、限速(throttling)、保護性監控(protective monitoring)

銀行可能在三次 PIN 錯誤後凍結你的卡;但如果他們在三次密碼錯誤後凍結你的線上帳戶,就對阻斷服務攻擊門戶洞開。服務也可能意外失敗:組態不良的系統可能用過期憑證產生重複失敗。

所以許多商業網站現在用限速而非鎖定。在軍事系統中,你可能連限速都不想要——以免取得網路存取的敵人用大量偽登入嘗試把它塞住;這時保護性監控可能是首選,並準備好在危機時放棄限速。

Bonneau 與 Preibusch 蒐集了主要網站使用帳戶鎖定與各類速率控制的統計,發現:熱門、成長中、有能力的網站傾向更安全,支付網站也是,而內容網站表現最差。

微軟研究院的 Tian、Herley 與 Schechter 研究了如何正確地做鎖定或限速。要點包括:

  • 懲罰對弱密碼的猜測(否則攻擊者先猜弱密碼就佔了便宜)。
  • 在保護選了弱密碼的使用者時更積極
  • 不要懲罰反覆送出同一個錯誤密碼的 IP 或客戶端。

保護自己還是保護他人#

接下來:系統需要在多大程度上保護使用者與子系統彼此不受侵害?在任何人都能開帳戶的全球系統中(如手機系統與提款機系統),你必須假設攻擊者已經是合法使用者,並確保沒有人能以別人的代價使用服務。

  • 個人層面:回想上一章關於親密伴侶虐待的討論——人們選的密碼往往容易被配偶或伴侶猜到,密碼救回問題也一樣。所以必須思考受虐者要如何取回自己的安全。
  • 系統層面:子系統之間互相認證用的密碼一大堆,伺服器對伺服器環境中幾乎沒有機制能強制密碼品質,而且有許多眾所周知的問題(例如 Java 信任金鑰庫檔案的預設密碼是 changeit)。

開發團隊常共用密碼,而這些密碼最後跑進正式系統——在愛丁堡公爵郵件被駭三十年後仍然如此

在單一大型服務公司內,你可以用具名的密碼金鑰、並確保每個名稱都會呼叫底層硬體安全模組來鎖死;甚至可以用 SGX 之類機制把金鑰綁到已知軟體。但那要花真錢,而錢還不是唯一的問題:企業系統元件常託管在不同服務公司,這讓採用更好實務也成了困難的協調問題。結果是伺服器密碼常出現在腳本或其他明文檔案裡,最後跑進 Dropbox 或 Splunk。

回想史諾登的話:駭進一家典型大公司是小事一樁——只要對一名系統管理員做魚叉式釣魚,然後一路串下去。

本章大部分在講「魚叉式釣魚一名系統管理員」那部分;但別忽略「一路串下去」那部分。

對密碼輸入的攻擊#

介面設計#

常見廠牌的提款機有些把鍵盤垂直裝在頭部高度,讓扒手能輕鬆看著女性輸入 PIN,然後從她手提包裡拿走皮夾。那個鍵盤對設計它的男性而言高度合理,但矮幾英吋的女性就暴露了。

在公共場合輸入卡號或 PIN 時,作者通常用身體或另一隻手遮住打字的手——但你不能假設所有客戶都會這麼做。許多人對遮擋 PIN 感到不自在,因為那是不信任的訊號,尤其當他們在超市排隊、旁邊站著朋友時。

英國銀行發現 20% 的使用者從不遮擋 PIN——然後拿這點去責怪那些 PIN 被頭頂監視攝影機竊取的客戶,而不是去設計更好的 PIN 輸入裝置。

可信路徑與假終端#

**可信路徑(trusted path)**是某種能確保你正透過不開放竊聽的通道登入真實機器的手段。

假終端攻擊可回溯到分時運算的黎明:一台公共終端機被留著跑一支看起來就像平常登入畫面的攻擊程式,要求輸入使用者名稱與密碼。毫無戒心的使用者照做後,它會存下密碼、回覆「抱歉,密碼錯誤」然後消失,並喚起真正的密碼程式。使用者以為自己打錯字,於是再輸入一次密碼。

這就是 Windows 有**安全注意序列(secure attention sequence)**的原因:按 Ctrl-Alt-Del 保證會帶你到真正的密碼提示。但到了 Windows 10,這個機制被移除了——為了替 Windows 平板鋪路,也因為幾乎沒人懂它。

**ATM 側錄器(skimmers)**是裝在提款機吞卡口、複製卡片資料並用攝影機記錄客戶 PIN 的裝置。詐騙者也部署惡意 PIN 輸入裝置,甚至有人因在銀行分行的終端機上加裝竊密硬體而入獄。

長期解方是從容易複製的磁條卡轉向難得多的晶片卡。無論如何,若終端機可能含有惡意硬體或軟體,光靠密碼是不夠的。

用技術手段擊敗重試計數器#

許多小孩發現,腳踏車密碼鎖通常可以在幾分鐘內破解——依鬆緊程度逐一解出每個轉盤。同樣的想法在許多電腦系統上奏效。

技術案例:從 TENEX 計時攻擊到 iPhone 的 PIN 計數器

PDP-10 TENEX 作業系統逐字元檢查密碼,一旦有字元錯誤就停止。這開啟了計時攻擊(timing attack):攻擊者反覆把猜測的密碼放在記憶體中適當位置,讓它作為檔案存取請求的一部分被驗證,然後看它被拒絕要花多久。第一個字元錯誤幾乎立刻回報,第二個字元錯誤要久一點,第三個再久一點。

於是你可以一個接一個猜出字元。原本從 A 個字元的字母表中選出的 N 字元密碼平均需要 A^N/2 次猜測,現在只要 A·N/2 次。

(記住:三十年後,你今天在建的系統可能只剩下它比較有新聞價值的安全失敗被人記得。)

同樣的錯誤正在嵌入式系統的世界裡重演一遍

  • 某款遙控車鎖裝置,只要鑰匙圈送出的位元組一錯,接收器上的紅色指示燈就亮了。
  • 某些智慧卡上,可以藉由嘗試每個可能的輸入值並觀察卡片耗電量,然後在輸入錯誤時發出重置,來判定客戶 PIN。原因是錯誤 PIN 會使 PIN 重試計數器遞減,而寫入存放該計數器的 EEPROM 記憶體會造成數毫安的電流突波——可以及時被偵測到,好在寫入完成前重置卡片。

iPhone 的 PIN 重試計數器:作者的同事 Sergei Skorobogatov 注意到 iPhone 把敏感資料加密存在快閃記憶體中,於是打造了一個轉接器,能在數次 PIN 嘗試後把加密的記憶體內容存下並還原到原始狀態。這讓他能試遍全部一萬個可能的 PIN,而非 Apple 試圖施加的十次上限。

(這是為了推翻時任 FBI 局長 Comey「iPhone 無法被駭、所以應命令 Apple 製作含後門的作業系統升級」的論證。)

對密碼儲存的攻擊#

密碼在儲存處往往是脆弱的。

四則密碼儲存的災難
  • MIT 的 CTSS(1960 年代):曾發生一人在編輯「當日訊息」、另一人在編輯密碼檔的情況。因為一個軟體臭蟲,兩個編輯器的暫存檔被對調了——於是每個登入的人都被一份密碼檔迎接。

  • 1980 年代末某英國銀行:因程式錯誤,發給所有客戶同一個 PIN。由於 PIN 處理程序意味著銀行裡沒有人能看到別人的 PIN,這個臭蟲直到數千張客戶卡片寄出之後才被發現。

  • 2019 年:為 Biostar 與 AEOS 生物辨識門禁系統(客戶包括 83 國的銀行與警隊)提供服務的資安公司,把一個含超過一百萬人身分、明文密碼、指紋與臉部辨識資料的資料庫毫無保護地放在線上;從網際網路掃描中發現此事的資安研究者,能夠把自己加進使用者名單

  • 稽核日誌:當系統記錄失敗的密碼嘗試時,日誌通常會含有大量密碼——因為使用者把「使用者名稱、密碼」的順序打錯位了。

    如果日誌保護不當,看到一筆「使用者名稱 = e5gv*8yp」之失敗登入紀錄的人,只要拿它當密碼去試所有有效的使用者名稱就行了。

單向加密與密碼破解#

這類事件教會人們用單向演算法加密密碼來保護它們(此創新歸功於 Roger Needham 與 Mike Guy)。密碼輸入時通過一個單向函數,只有在符合先前儲存的值時才允許登入。

  1. 產生一把隨機金鑰,在此脈絡中歷史上稱為 salt
  2. 用一個慢速、密碼學上強健的單向函數把密碼與 salt 結合;
  3. 同時儲存 salt 與雜湊值。

有些使用加密密碼檔的系統讓它可被廣泛讀取。Unix 曾是首要例子——/etc/passwd 所有使用者都能讀,所以任何使用者都能取走它,把字典裡的所有密碼加密後與檔中的加密值比對(這正是 Crack 軟體多年來的用途)。

多數現代作業系統算是修好了這個問題:在現代 Linux 發行版中,密碼加了 salt、用 5000 輪 SHA-512 雜湊,並存在只有 root 能讀的檔案裡。

但仍有密碼救回工具(例如你忘了 Office 文件的密碼時),而這類工具也能被取得 root 存取權的騙子使用;外面也還有很多設計不良、密碼檔以其他方式脆弱的系統。

還有憑證填充:系統被駭、密碼被破解(或根本就沒加密)後,拿去其他系統試,捕捉大量重複使用密碼的人。

一個值得考慮的反制是欺騙(deception),它能在堆疊的各層運作:

  • 蜜罐系統:只要有人登入就發警報。
  • 系統上的蜜罐帳戶
  • 密碼金絲雀(password canaries):真實帳戶的假加密密碼。

遠端密碼檢查#

許多系統遠端檢查密碼,用密碼協定保護傳輸中的密碼,而密碼安全與網路安全的互動可能很複雜:

  • Kerberos(常用於區域網路):伺服器送給你一把用你的密碼加密的金鑰;若你知道密碼就能解密它,並用它取得可存取資源的票證。它並不總能在對手能竊聽加密流量時保護弱密碼。

  • TLS(網頁伺服器):加密你從瀏覽器到伺服器的流量。但若伺服器被駭,TLS 保護不了你。

  • SAE(Simultaneous Authentication of Equals):一個較新的協定,設計來即使密碼可猜也能建立安全工作階段,自 2018 年起被 WPA3 WiFi 認證標準採用。

  • OAuth:允許存取委任的協定,讓你授權一個網站用另一個網站提供的機制來認證你。由 Twitter 自 2006 年開發,現在被 Google、微軟與 Facebook 等主要服務商用來讓你登入媒體與其他網站。

    隨之而來的風險是跨站攻擊。我們現在(2019)看到 OAuth 被威權國家的國家行為者用來釣當地的人權捍衛者:手法是建立一個名字聽起來合理的惡意 app(例如「Outlook Security Defender」),寄一封看似來自微軟的信要求存取權。如果目標回應,他們就落到一個微軟網頁上,被要求授權該 app 存取自己的資料。

絕對極限#

如果你對保護密碼的密碼演算法與作業系統安全機制有信心,那麼密碼猜測攻擊成功的機率,就是「密碼熵」(若為中央指派)或「使用者心理」(若可自選)的函數。

依美國國防部密碼管理指引,若 L 是密碼最大生命期、R 是登入嘗試速率、S 是密碼空間大小,則密碼在其生命期內被猜出的機率為 P = LR/S

這種「可證明安全」的教條有其問題,首先是攻擊者的目標:他們想破解某個特定帳戶,還是任何帳戶?

如果一支軍隊有一百萬個可能的密碼與一百萬名使用者,而任一帳戶三次密碼錯誤就觸發警報,那麼攻擊者可以對每個不同帳戶各試一個密碼。要阻止這件事,你的速率控制就不能只針對每個帳戶,而必須針對所有帳戶的總和

一個具體計算:英國政府的樣板密碼

Unix 系統過去限制八字元密碼,所以有 96^8(約 2^52)種可能密碼。某些英國政府系統過去以固定的子音/母音/數字樣板(如 CVCNCVCN,例如 fuR5xEb8)隨機發放密碼,以便好記。

如果密碼不區分大小寫,猜中機率會急遽下降,只有 1/(21^4 × 5^2 × 10^2),約 2^-29。

所以若攻擊者能每秒猜 100 個密碼——也許分散在網路上數百台機器的一萬個帳戶上以避免觸發警報——他們大約需要 500 萬秒、約兩個月就能進去。

若你在防禦這種系統,可能會覺得做速率控制是明智的:設定每個使用者帳戶每十秒最多一次密碼猜測,或許再依來源 IP 限制。你也可以計數並分析失敗的登入嘗試:是否有一連串猜測顯示攻擊者正在用殭屍網路?

而當你注意到之後要怎麼做?你要把系統關掉嗎?歡迎回到阻斷服務的世界。

商業網站的情況是:每秒 100 次密碼猜測,可能就意味著每秒一個帳戶淪陷,因為使用者的密碼選擇很糟。對一個有一億帳戶的網頁服務來說,這也許不是大事——但仍值得試著找出工業規模猜密碼攻擊的來源。

使用密碼管理器#

自 1980 年代起就有公司販售能替多個應用記住密碼的單一登入系統;1990 年代中瀏覽器出現、人們開始登入數十個網站後,密碼管理器成了大眾市場產品。瀏覽器廠商注意到了,開始免費提供大致相同的功能。

選擇隨機密碼並讓瀏覽器記住它們,可以是務實的做法:瀏覽器只會把密碼填入正確 URL(IE)或相同主機名與欄位名(Firefox)的網頁。瀏覽器讓你設定主密碼,它會加密所有個別網站密碼,而你只在瀏覽器更新時需要輸入它。

  • 你可能忘記主密碼。
  • 所有密碼可能一次全部淪陷,因為惡意程式作者能想辦法駭進常見產品。用瀏覽器時這尤其是個問題;而另一個問題是主密碼往往不是預設值,所以許多使用者根本沒設。

用瀏覽器的一個優點是,你也許能在手機與筆電的瀏覽器之間同步密碼。

第三方密碼管理器能提供更多:替你選長隨機密碼、辨識跨多個網站共用的密碼、提供更可控的備份與救回方式,還能幫你追蹤帳戶,讓你知道自己是否在某個宣布外洩的系統上有密碼。

許多銀行試圖停用密碼儲存,方式是在網頁中設 autocomplete="off" 或使用其他也會擋掉密碼管理器的伎倆。

銀行認為這改善了安全,但作者完全不信服。阻止人們使用密碼管理器或瀏覽器自帶的儲存,大概會讓多數人使用更弱的密碼。

銀行可能主張關掉自動完成使裝置失竊後的淪陷更難,也可能阻止惡意程式從瀏覽器或密碼管理器的資料庫竊取密碼;但該產品提供的釣魚防護也被關掉了,這可能讓一般客戶暴露於更大的風險。它也不方便:有家突然停用密碼儲存的銀行因客戶反彈,隔天就得縮回去。

作者自己的做法是:用不同瀏覽器做不同用途,讓它們儲存低價值密碼;對郵件與銀行這類重要帳戶則一律手動輸入密碼,並一律用書籤而非點連結導航。

  • 你的筆電掛掉時怎麼辦?手機掛掉時?
  • 有人說服你的電信商把你的門號連到他們的 SIM 卡時?
  • 你死掉時呢——或者你病倒、伴侶需要管理你的東西時?他們知道去哪裡找主密碼嗎?

把它們寫在一本書裡可以是合理的,如果你(和你的遺囑執行人)只需要記住「《遠大前程》第 169 頁」。但寫在你隨身攜帶的日誌本裡、寫在一頁標題為「密碼」的紙上,就沒那麼高明了。很少有人把這些全都做對。

我們會擺脫密碼嗎#

密碼很煩,所以許多人討論過擺脫它們,而從筆電轉向手機給了我們機會。沒有鍵盤的 IoT 裝置激增,也將迫使我們在某些用途上不用密碼。

少數公司已試著完全擺脫它們。例如純 app 營運的網路銀行 Monzo,把「用指紋、圖形鎖、PIN 還是密碼保護手機」留給客戶決定。

用簡訊而非密碼認證的最熱門 app 大概是 WhatsApp。作者預期這會更普及,所以我們會看到更多基於手機接管的攻擊:從 SIM 交換、Android 惡意程式、SS7 與 RCS 駭入,到單純的實體竊盜。這類情況下的救回往往意味著一次郵件迴圈(使你的郵件密碼比以往更關鍵),或打給客服中心報上你母親的婚前姓。所以事情改變的幅度,可能比表面上看起來小。

Bonneau 等人 2012 年分析了各種選項。認證系統可以用許多標準評估:對竊盜、實體觀察、猜測、惡意程式與其他內部淪陷、其他驗證方之外洩、釣魚與針對性冒充的韌性;還有易用性、易學性、是否需要多帶東西、錯誤率、救回難易度、每位使用者成本,以及是否為任何人都能使用的開放設計。

他們的結論是:多數有淨效益的方案都是單一登入的變體——OpenID 確實已普及,許多人用 Google 或 Facebook 登入報紙,儘管有明顯的隱私代價。

除此之外,任何安全改善都涉及放棄密碼的一或多項好處:容易、有效率、便宜。

該調查給予實體認證代幣(如讓人用銀行卡登入網路銀行的 CAP 讀卡機)高安全評價;多國的銀行監理機關已經強制雙因子認證。綁在銀行卡上的東西提供了更傳統的信任根——至少對傳統實體分行銀行而言,客戶可以走進分行辦一張新卡。受國家級攻擊者鎖定的公司(如 Google 與微軟)現在都發給全體員工某種認證代幣。

老話說認證是「你有的東西、你知道的東西,或你是什麼」——或者用 Simson Garfinkel 那句迷人的改寫:「你曾經有過的東西、你已經忘記的東西,或你曾經是什麼。

第三個選項——生物辨識——自高階手機開始提供指紋讀取器後開始廣泛使用。某些國家(如德國)發給公民含指紋的身分證,這可能在其他一切都失效時提供替代的信任根。

可能改變這件事的,是越來越多根本沒有使用者介面、因而必須用其他機制認證的裝置。一種越來越常見的取徑是首次使用即信任(trust on first use),又稱「復活小鴨(resurrecting duckling)」——取自小鴨會與孵化後看到的第一個移動動物產生連結的事實。

最後,你應該認真想想如何認證那些依資料保護法行使權利、要求取得個人資訊副本的客戶或其他人

2019 年 James Pavur 冒充其未婚妻寄出 150 份這類請求。86 家公司承認持有她的資訊,許多有常識地要求她的登入與密碼來認證她。但約四分之一願意接受郵件地址或電話號碼作為認證,另有 16% 索取容易偽造的身分證明。

他蒐集到關於她的完整個人資訊,包括信用卡號、社會安全號碼與母親的婚前姓。一家她從未往來的威脅情報公司,還寄來一份她已淪陷的帳戶與密碼清單。

鑑於在歐盟未於 30 天內回應這類請求會面臨鉅額罰款,你最好事先想好如何應付,而不是把它丟給法務辦公室的助理臨場發揮。

而如果你廢除了密碼,然後一位前客戶宣稱手機被偷了,你要怎麼辦?如果你持有從未當過你客戶之人的個資,你又要如何識別他們?

CAPTCHA#

我們能不能有利用大腦強項而非弱點的保護機制?這個領域最成功的創新大概是 CAPTCHA——「完全自動化、用來區分電腦與人類的公開圖靈測試」。

概念是:人能輕鬆解出這類問題,電腦則覺得難。它們由 Luis von Ahn 等人發明,靈感來自圖靈那個著名的測試——把電腦放一間房、人放另一間,請一個人試著分辨它們。這個測試被反轉過來,好讓電腦能分辨人與機器。

CAPTCHA 在 2003 年大規模投入使用,用來阻止垃圾郵件者用腳本在免費郵件服務上開數千個帳戶,並讓攻擊者較難對大量既有帳戶各試幾個簡單密碼。

早期版本試圖使用 AI 中的已知「難題」,例如在雜訊背景上辨識扭曲文字。想法是破解 CAPTCHA 等同於解出該 AI 問題,所以攻擊者實際上得動手做,或是想出電腦科學上的真正創新。

而早期系統提出的許多影像辨識問題,一旦有聰明人認真去解,其實一點也不難。

還有協定層次的攻擊:von Ahn 曾提到,理論上垃圾郵件者可以讓人們解 CAPTCHA 作為存取免費色情的代價。這很快就發生了:垃圾郵件者做了一個「一次解一個 CAPTCHA 就替一名女性脫掉一件衣服」的遊戲。

  • 幾年內,商業 CAPTCHA 破解工具上市。
  • 再過幾年,受人類視覺系統啟發的訊號處理技術所構成的通用攻擊,已能相當有效率地解出至少一部分多數類型的文字 CAPTCHA。
  • 地下市場的資安經濟學研究顯示,到 2011 年主戰場已轉向使用人力:日收入僅數美元國家的人,每解一千個 CAPTCHA 收費約 50 美分。

2014 年起,CAPTCHA 被 ReCAPTCHA(von Ahn 的另一項發明)取代。這裡的想法是讓一群使用者做一件有用的工作,並交叉比對他們的答案。

該服務起初請人轉錄 Google 圖書中讓 OCR 軟體困惑的文字片段;近期則給你八張圖的謎題問「點出所有含店面的影像」,這有助於 Google 訓練其視覺辨識 AI 系統

它對付廉價人力攻擊的方式,是出兩三道多選題並花上數十秒,而不是允許快速回應。

小結#

心理學對安全工程師很重要,因為欺騙,也因為可用性

  • 現今多數真實攻擊以使用者為目標。
  • 各種形式的釣魚是主要的國家安全威脅、發展與維持網路犯罪基礎設施的主要手段,也是線上銀行系統的主要威脅之一
  • 其他形式的欺騙構成了網路犯罪生態系的其餘大部分,而該生態系在數量與價值上大致與傳統犯罪相當。

部分解方是資安可用性,但這個領域長期被忽視,被認為不如密碼學或作業系統來得光鮮。那是我們這一行的嚴重錯誤。

自 2000 年代中期起,我們才開始認識到讓一般人以安全方式使用系統的重要性。自 2010 年代中期起,我們也開始認識到必須讓一般程式設計師的日子也好過一些——許多攻破真實系統的資安臭蟲,正是「工具太難用」的結果,從使用不安全預設值的密碼 API,到 C 程式語言。

把可用性做對也直接有利於商業:PayPal 靠著成為更安全、更方便的線上購物方式,建立了一千億美元的事業。

本章快速掃過了與欺騙及人為錯誤相關的心理學研究,然後以認證作為案例研究。資安可用性的早期工作多半聚焦於密碼系統,那引出了數十個有趣問題。

我們現在不只有實驗室能量測的資料(可猜性、可記憶性、使用者可訓練性),也有只能在實地觀察的因素:真實系統如何崩潰、真實攻擊如何規模化,以及不同玩家面對的誘因如何導向不安全的均衡。

一個收尾的洞見:為什麼我們對恐怖主義焦慮、對網路犯罪無感

2008 年第一屆資安與人類行為工作坊,在一場關於風險的長時間討論結束時,心理學家 Nick Humphrey 總結道:

「我們都同意,人們對恐怖主義注意太多、對網路犯罪注意不夠。但對心理學家而言這是顯而易見的。如果你想讓人們在機場放鬆,把坦克和槍拿走,放一些舒服的沙發、在喇叭裡播莫札特,人們很快就會放鬆。而如果你想讓人們在線上更警戒,就讓每個人用《大白鯊》當螢幕保護程式。但那不會發生,因為電腦業正卯足全力讓電腦看起來比以前沒那麼可怕。

而政府當然希望人們對恐怖主義感到焦慮,因為那會抬高警察預算並幫助政客連任。

研究問題#

作者找研究題目的元演算法是:先看應用,再看鄰近學科。

  • 應用面的例子是「安全的可用性(safe usability)」:當汽車、醫療器材這類攸關性命的產品不只取得軟體與網路連線、還取得複雜介面甚至自己的 app 時,我們如何設計它們,讓它們不會因意外或惡意而傷害人?
  • 鄰近學科的例子(也是資安與人類行為工作坊的主題):我們能從研究「人如何面對風險」的學科學到什麼——從人類學、心理學到社會學、歷史與哲學。2020 年的活動邀請了頂尖犯罪學家。

疫情現在提示我們,也許該與建築師合作。他們正在研究人們如何能在身體上保持距離、卻在社會上保持投入,而他們的專長是理解形式如何促成人類經驗與人類互動

設計不只是把程式碼寫出來而已。