「但是:連結世界意味著我們也連結了所有壞東西與所有壞人,而現在每一個社會與政治問題都以軟體的形式表達出來。我們經歷了一個可怕的『糟糕』覺醒時刻,但我們還遠遠沒想出該拿它怎麼辦。」——Benedict Evans
「如果你為自由而奔走,你很可能會發現自己在吧台不對的那一端、跟壞人一起喝酒。」——迪菲(Whit Diffie)
當安全工程撞上人類社會的複雜度#
作者所在的劍橋安全群經營一個部落格,討論最新的入侵與破解。許多攻擊取決於特定的應用,很多酷炫的研究也是。但並非所有應用都相同:如果我們的部落格軟體被駭,那只是給殭屍網路多一台伺服器;但有些 app 能被偷走錢、有些人倚賴它們取得隱私、有些調節權力,而有些會殺人。
- 自主與遙控載具;
- 機器學習,從對抗式學習到 AI 在社會中更普遍的議題;
- 隱私技術;
- 電子選舉。
它們的共同點是:從前安全工程是關於管理技術中的複雜度及其所有可利用的副作用,而如今我們正撞上人類社會中的複雜度。
- 自駕車之所以困難,是因為同一條路上開著其他車的人。
- AI 之所以困難,是因為深度神經網路這類酷炫的新模式比對工具,不只能挑出人類行為中真實的模式(有時是意料之外的),也會挑出虛假的。
- 隱私之所以困難,是因為社會中人類互動的豐富性。
- 而選舉之所以困難,不只因為「以同時保有隱私與可稽核性的方式計票」的技術難度,還因為政治玩家在投票流程上下游所使用的各式各樣骯髒手段。
所有這些問題都以各種方式探索著「人能做什麼」與「機器能做什麼」之間的邊界。
自主與遙控載具#
航空先驅 Lawrence Sperry 於 1912 年發明第一具自動駕駛儀,並在 1914 年於巴黎一場「更安全飛機」競賽中舉起雙手飛過評審面前展示它。過程中他與父親 Elmer 發明了人工地平儀。
如今在 2020 年,你的手機裡三件都有。 四十年間,成本下降了六個數量級,質量下降了四個數量級。
無人機與自駕車的簡史
在空中,V1 與 V2 這類早期武器用了雙陀螺自動駕駛儀,而冷戰給了我們戰斧巡弋飛彈。
緊隨其後的是各種無人航空載具(UAV),於 1982 年以色列與敘利亞戰爭中首度大規模使用:以色列空軍用它們做偵察與誘餌,以極小損失殲滅了敘利亞空軍。
下一代 UAV 中最知名的是「掠食者」,最初設計為偵察載具,能在目標區中高空盤旋數小時,後被改造成掛載地獄火飛彈攻擊地面目標。
20 世紀愛好者一直在造小型無線電遙控模型飛機,但 FAA 直到 2006 年才發出第一張商用無人機許可。 2010 年 Parrot 推出能用智慧手機透過 wifi 控制的四旋翼機 AR Drone,2013 年 Amazon 宣布正在考慮用無人機送貨。2020 年的主要應用是空拍。但也有叛亂與犯罪用途——無人機被用來把毒品與手機送給囚犯,而叛亂分子把無人機裝上簡易爆炸裝置當武器。
近期興趣的激增主要在自駕車與卡車。
獎金無人認領,因為沒有載具完成賽程;但隔年史丹佛一支由機器人學家 Sebastian Thrun 領導的隊伍拿走了獎金(此時已加倍為兩百萬)。 他們的機器人 Stanley 用機器學習與機率推理來應付地形感知、碰撞避免、以及在濕滑崎嶇地形上的穩定車輛控制。
DARPA 2007 年的下一項挑戰從沙漠移到模擬都市環境;參賽者必須偵測並避開其他車輛,並遵守道路規則。這孵化出一個研究社群,技術開始快速改善。
受 DARPA 挑戰啟發,Google 於 2009 年聘請 Thrun 領導「Chauffeur 專案」,目標是造出全自駕車。這在 2010 年被宣布,激起一場涉及科技業與汽車業的市場競賽。
Tesla 是 2014 年第一個推出產品的,其「Autopilot」軟體以空中更新方式推出,能在高速公路或走走停停的車陣中接手控制。
當時機器學習的炒作週期已在進行中,而自駕車搭上了順風車。 Tesla 的馬斯克預測 2018 年就會全自駕,Google 的 Sergey Brin 說 2017 年。炒作週期一如既往地過去了。作者 2020 年寫作時,Waymo 正在鳳凰城一片 50 平方英里的區域營運有限的自駕車服務。該服務在下雨或沙塵暴時不提供,並由控制中心的人類即時監控。
為什麼那麼難:其他用路人不可預測#
自動化能處理某些由此產生的危害:若前車突然煞車,機器人能更快反應。主動車距控制巡航能減少駕駛疲勞,甚至在足夠多車輛使用後減少壅塞(因為它抑制了震波在車流中的傳播)。
但即使在這裡也有極限。 當工程師把技術延伸到自動緊急煞車時,「無法推斷其他駕駛意圖」就成了限制因素。
例如你在開闊的鄉間道路上開車,前車打了轉彎燈並開始減速。你維持速度,因為你預期等你到那裡時它已經離開路面了;就算沒有,你也只要超車就好。但自動緊急煞車可能不理解這點,所以當你太靠近那台轉彎的車時它就啟動,把你甩向安全帶。
但每一項新的輔助技術都要花好幾年最佳化與除錯,而把十幾項組合成一具自動駕駛儀並不直接。
Stanley 中同時進行的程序處理路徑規劃、轉向控制與障礙避免;這使用了 22 公尺內的雷射測距儀、更遠處的彩色攝影機、以及再更遠的雷達。這些系統各自又得解決許多子問題(例如視覺系統必須適應變化的光線條件與路面顏色)。
Stanley 接著必須靠大量測試來最佳化,其目標函數是極大化「災難性失敗之間的平均距離」(災難性失敗定義為人類安全駕駛接手)。
Elaine 當時推著一輛腳踏車,而視覺系統在「把她辨識為行人」與「辨識為別的東西」之間搖擺,但最終她沒被辨識為行人,因為她不在行人穿越道上。
自動緊急煞車本可能讓車停下來,但它被關掉了,「以減少車輛行為古怪的可能」——換句話說,因為誤警率很惱人。最終 Uber 倚賴的是安全駕駛——而他不幸當時正在看電視。
而我們數十年來就知道:倚賴人類在緊急時接手是要花時間的。 人得對警報做出反應、分析主控台的警報顯示、掃視環境、取得態勢感知、進入光流、並取得有效控制。即使在商用航空,飛行組員在自動駕駛儀失效後也要約八秒才能正確重獲控制。你不能期待車裡的安全駕駛做得好多少。
自動化的分級與極限#
汽車工程師學會訂出五級自動化:
- 駕駛輔助:軟體控制轉向或速度其中之一,其餘由人類駕駛做。
- 部分自動化:軟體在某些模式下同時控制轉向與速度,但人類駕駛負責監控環境,並在軟體迷惘時零預警地接手。
- 有條件自動化:軟體監控環境並控制轉向與速度,但假設人類能在它迷惘時接手。
- 高度自動化:軟體在某些駕駛條件下監控環境並駕駛車輛,不假設人類能介入。若它迷惘了,就停在路邊。
- 完全自動化:軟體能做人類能做的一切。
保險業者認為「自主」與「自動駕駛儀」這類詞很危險,因為它們讓客戶以為車輛運作在第四級,而那可能導致事故。亞利桑那的車禍可以看成:車輛運作在第二級,而安全駕駛運作在第三級。
第四級往往假設有一位備援駕駛坐在控制中心裡,監看數十輛「自主」車,但他們不會有足夠頻寬像現場安全駕駛那樣迅速理解危害。他們感覺不到路噪與加速度、無法使用周邊視覺,而最重要的是,他們並未沉浸在對安全駕駛(或降落飛機)至關重要的光流場中。
John Naughton 說得好:市區送貨司機的工作相當保險,因為那需要各種判斷,例如你能不能雙排停車、或甚至擋住一條窄街半分鐘,好衝上門口放個包裹,任憑後面的車按喇叭。
另一個難題是兩側都停滿車的雜亂郊區街道,你得不斷用揮手、點頭甚至只是眼神接觸,與迎面來車協商誰先走。 即使現行的第二級系統在橫越車流轉彎時也常有困難,因為它們無法做這種心照不宣的協商。它們最後只能比人類駕駛謹慎得多、等一個更大的空隙,這惹惱了後面的人類駕駛。
而如果你曾試著在劍橋這種大學城的腳踏車學生潮中把車擠過去、或在印度的都市交通中開車,你就知道應付人類交通的複雜度在許多其他情況下也很難。你的自駕車連警察要你停車的手勢都偵測得到嗎?更別提八個學生扛著一張床、或一場印度廟會遊行了。
第二級系統的種種缺陷,以及為何救不了想救的命
- Tesla 無法總是可靠偵測靜止車輛(它用視覺、聲納與雷達,但沒有光達)。北卡羅萊納一位 Tesla 駕駛在追撞一輛靜止的警車後被起訴。
- 某同事的 Range Rover 無法總是偵測鋪面道路與草地之間的邊界。
- 許多車在小圓環上有問題,更別提坑洞與其他粗糙路面。作者第一次搭這種車時,過減速丘時時速近 30 英里,牙齒都被震得咯咯響。
- 道路施工讓自動車道保持系統大亂,因為被覆蓋過的舊白線在某些光線條件下可能又亮又黑、非常顯眼,導致車在新舊標線之間令人作嘔地來回擺盪。
所以我們本該能靠一套「在高速公路上讓你的車保持在車道內、煞車以避免碰撞、並在你不回應提示音時把車停到路邊」的系統來救人命。為什麼這沒有發生?
作者懷疑我們得拆解至少三個不同因素:
- 風險恆溫器:人們靠採取更冒險的行為來適應「感知到的風險降低」。如第 3 章所述,強制繫安全帶的法律讓人開得更快,整體效果只是把傷亡從車內乘員轉移到行人與自行車騎士,而非整體減少。
- 可供性(affordances):若一套駕駛輔助系統讓開車更容易、且看似更安全,人們就會放鬆並假設它更安全——使其中一些人傾向承擔更多風險。
- 業界的行銷以微妙的方式最小化風險:Tesla 把它的自動轉向功能叫「自動駕駛儀」,誤導駕駛以為他們能看電視或小睡。飛機上的自動駕駛儀並非如此,但多數非飛行員不理解這點。
如何駭一輛自駕車#
到 2008 年,人們在研究引擎控制單元的防篡改:業界開始用軟體控制引擎輸出功率,所以你的車是 120 匹還是 150 匹馬力,取決於一個軟體開關——人們自然會試著駭它。
- 2010 年,Karl Koscher 等人展示如何駭一輛新款福特,引起了學界注意。車輛的內部資料通訊使用沒有強認證的 CAN 匯流排,所以取得(比方說)音響控制權的攻擊者能把這個存取權升級為操作門鎖與煞車。
- 2015 年,Charlie Miller 與 Chris Valasek 透過行動電話連線駭進一輛載著自願記者的 Jeep Cherokee,讓車減速並把它開下路面,引起媒體注意。這迫使克萊斯勒召回 140 萬輛車做軟體修補,讓公司花掉超過十億美元。這終於引起了業界的注意。
像對克萊斯勒吉普那樣的遠端漏洞利用可能就能做到。 多數現代車用於內部資料通訊的 CAN 匯流排信任它所有的節點;若其中之一被顛覆,它可能被重新程式化成持續發送——這種「喋喋不休的白痴」會讓整條匯流排無法使用。
若那是動力系統匯流排,車子就幾乎無法駕駛:駕駛仍有一些轉向控制,但轉向與煞車都沒有動力輔助。若車子正在高速行駛,就有嚴重的事故風險。
「惡意行為者可能駭進數百萬輛車、同時造成數萬起道路交通事故」的可能性是不可接受的,因此這類漏洞必須被修補。但修補很貴:一輛普通汽車可能含有來自 20 家廠商的 50–100 個電子控制單元,而讓它們順暢協作所需的整合測試代價高昂。
2017 年馬斯克告訴聽眾:「原則上,如果有人能駭掉所有自主的 Tesla,他們可以說——我是說純粹當惡作劇——他們可以說『把它們全部送到羅德島』……那會是 Tesla 的終結,而羅德島會有很多憤怒的人。」
他的聽眾笑了,而三年後才知道他並不完全是在開玩笑:幾個月前,一名駭客取得了控制 Tesla 整個車隊的「母艦」伺服器的控制權;幸好他是白帽並向 Tesla 通報了。
在光譜的另一端,行為藝術家 Simon Weckert 2020 年 2 月拉著一輛裝有 99 支 Android 手機的手拉車走遍柏林,讓 Google 地圖在他所到之處都登記出一場塞車。
隨著先進駕駛輔助系統越來越倚賴雲端設施,這類間接攻擊的空間會增加。
公司也會盡可能利用輔助系統。 既然自駕卡車的最初夢想似乎還很遙遠,我們是否該預期會有遊說要求放寬駕駛工時的法定上限? 卡車公司可能主張:一旦卡車在高速公路上自動駕駛,司機只需在到達與出發時做真正的工作,所以他該一班工作十小時而非八小時。但若這項技術的淨效果是讓卡車司機用同樣的錢工作更久,它就會招致怨恨、甚至被破壞。
AI 與機器學習#
「人工智慧」一詞在不同時代意味著不同的東西。 對圖靈這樣的先驅,它涵蓋從圖靈測試到教電腦下西洋棋。1960 年代它意味著文字處理;1980 年代因日本宣布「第五代計算」大型研究計畫而有一波研究激增,其中大部分投入以規則為基礎的系統。
一場海變始於 2011 年,當時有人訓練了一個深度卷積神經網路,在辨識手寫數字與中文字上做得與人類一樣好、在交通號誌上比人類更好。隔年 Krizhevsky、Sutskever 與 Hinton 用類似的深度神經網路在分類 120 萬張影像上取得破紀錄的結果。競賽於是展開。
最壯觀的成果出現在 2016 年,Google Deepmind 的 AlphaGo 擊敗了世界圍棋冠軍李世乭。這引起了全世界的注意。在那之前很少研究生想研究機器學習;此後很少人想研究別的。
對 ML 系統的攻擊#
由於垃圾郵件過濾以使用者回饋為其真值,垃圾郵件商學會了把垃圾郵件寄到自己在大型網頁郵件商那裡控制的帳號,並標記為「非垃圾」。「毒害分類器的訓練資料」是個相當通用的攻擊。
對機器學習系統至少有四類攻擊:
二、在推論階段攻擊模型的完整性,例如讓它給出錯誤答案。2013 年 Christian Szegedy 等人發現,2012 年被發現能極好地分類影像的深度神經網路,對「對抗樣本」很脆弱——被極輕微擾動的影像會被誇張地誤分類。
想法是選一個能極大化模型預測誤差的擾動。結果是神經網路有大量這樣的盲點,而它們與訓練資料以非顯而易見的方式相關。決策空間是高維的,這讓盲點在數學上不可避免;而神經網路的決策邊界是曲折的,讓它們不明顯。
研究者很快提出了真實世界的對抗樣本,從「會讓汽車視覺系統把 30mph 速限標誌讀成 60mph 的小貼紙」,到「會讓戴著它的男人被誤認為女人、或根本不被辨識出來的彩色眼鏡」。
更甚者,許多攻擊結果是可轉移的,所以攻擊者不需要對模型的完整存取權(所謂的白盒攻擊)。許多攻擊能在一個模型上開發,然後對「用相同資料、甚至只是類似資料訓練」的另一個模型發動(黑盒攻擊)。
柯克霍夫原則在機器學習中適用,一如在安全的幾乎所有其他地方。
機密性攻擊的一個變體是萃取敏感的訓練資料。 大型神經網路含有大量狀態,而處理離群值最簡單的方法往往就是把它們背下來。所以若某家企業宣稱「用一百萬筆病歷訓練的分類器不是個資,因為它是『統計機器學習』」,請小心。
四、阻斷服務:一種方法是挑選會讓分類器花最久時間的樣本。在直通式管線(如典型的影像處理任務)中,一張令人困惑的影像可能多花 20% 的時間;但在自然語言處理這類更複雜的任務中,你能觸發例外處理並把速度拖慢數百倍。
第一,必須採取系統安全的取徑、端到端地看問題。 正如我們清理網路服務的輸入、做滲透測試、並有負責任揭露與更新的機制,我們對 ML 系統也需要做同樣的事。
第二,我們得注意過去二十年在卡片詐欺、垃圾郵件與入侵偵測這些「早期 ML 系統被實地使用」領域的經驗。 如第 21 章所述,ML 系統在真實世界的網路入侵偵測上大致是無效的;Sommer 與 Paxson 最早給出好的解釋:訓練資料的缺乏、理論與實務的距離、評估的困難、錯誤的高成本,以及最重要的——無法應付新奇的攻擊。
- 一是單純把分類器調鈍,這是至少一套用於汽車的機器視覺系統所採取的做法。讓它較不敏感,你就讓它較不容易被騙,然後用雷達與超音波這類其他感測器互補,好讓視覺系統本身沒那麼關鍵。
- 另一種策略是往反方向走,把你系統中的某個 ML 元件做得如此脆弱,以致攻擊會觸發警報——屆時你就切換到防禦模式(例如低敏感度的跛行回家模式,或停下來等人類接手)。換句話說,你把態勢感知建進去,讓系統不斷自問:「我現在正被攻擊嗎?」這正是人類的運作方式。
ML 與社會#
普林斯頓的土耳其研究生 Aylin Caliskan 注意到,從土耳其文到英文的機器翻譯帶有性別偏見:雖然土耳其文沒有文法性別,土耳其句子的英譯會把醫生指派為「他」、護士為「她」。進一步調查後,她與指導教授發現:實質上所有在用的機器翻譯系統不只有性別歧視,還有種族歧視。
基於機器學習的自然語言系統吸入其訓練資料的偏見。若大型平台的 ML 引擎接著把偏見瀰漫到「數百家下游公司所倚賴、且做出影響數十億人之決定」的系統中,那就是真實的公共政策議題。
當保險公司用郵遞區號層級的理賠統計決定保費水準時,人們發現許多少數族裔區域承受高保費或被排除在承保之外,違反了反歧視法。
作者在 2008 年第二版寫道:「若你用資料探勘技術建入侵偵測系統,你就有嚴重的歧視風險。若你使用神經網路技術,你將無法向法院解釋你決策背後的規則是什麼,所以要為自己辯護可能很難。不透明的規則也可能違反歐洲資料保護法,該法賦予公民知悉『用來處理其個資之演算法』的權利。」
AI/ML 淘金熱催生了數千家新創,其中許多在行銷上比在產品上強。
Manish Raghavan 等人調查了用於就業篩選與招聘的「AI」系統,發現數十家公司宣稱其系統能把新進人員與公司需求配對。多數宣稱自己不歧視,然而由於很少雇主保有全面且可取用的員工績效資料,這類系統究竟要如何被訓練都完全不清楚,更別提用了這種系統的公司要如何為一場歧視訴訟辯護。
應徵者很快就學會了玩弄系統,例如用白色字體把「Oxford」或「Cambridge」偷偷塞進履歷。
- ML 在「感知」任務上有真實進展,例如人臉辨識、Shazam 這類產品的歌曲辨識、從掃描影像做醫學診斷、以及語音轉文字——在這些任務上它已取得熟練人類的能力。
- ML 在「判斷」任務上有一些進展,例如內容推薦與垃圾郵件、仇恨言論的辨識。這些有許多連熟練人類都意見相左的困難邊緣案例。執行它們的系統往往倚賴大量人類輸入——從數十億郵件使用者按「回報垃圾郵件」,到大型科技公司雇用的數萬名內容審查員。
- ML 在「社會預測」任務上毫無進展,例如預測員工績效、學業成果與未來的犯罪行為。一項由 Matthew Sagalnik 與 400 多位合作者進行的廣泛研究結論是:就人生結果能被預測的程度而言,用「基於少數幾個變數的簡單線性迴歸」就能做得一樣好。
在「預測哪些孩子可能轉向犯罪」的案例中,多年來就已知這類指標可能帶有深刻的污名。 如第 10 章所述,若你告訴老師哪些孩子曾與社福單位接觸,老師對他們的期望就會較低。兒童福利法與隱私法都反對分享這類指標。
那麼,若懵懂的行政人員買了宣稱「用讓 AlphaGo 擊敗李世乭之難以理解的魔法」來做預測的軟體,傷害會有多大?
至於「預測性警務」,研究暗示它可能只是「讓電腦替『把慣犯抓起來』的政策背書」的另一種方式。
Google 與微軟資助大型研究計畫以「開發造福社會的 AI」,或許本身就說明了問題。時間會告訴我們那是否會導出有份量的成果,還是只是公關。
隱私強化技術與作業安全#
即使你不在 Facebook 上脫口說出所有想法,社會結構——誰跟誰混在一起——也說明了很多,而且變得可見得多。
如第 11 章所述,研究顯示只要四個 Facebook 按讚,仔細的觀察者就能在多數時候判斷你是異性戀還是同性戀;而這個觀察導向了劍橋分析醜聞等事件。
即使你完全不用 Facebook,「誰聯絡了誰」的流量資料也會向能取得它的人洩漏很多。這對與當局衝突的人(例如吹哨者)可能造成問題。
若 Alice 宣稱 Bob 批評了國王,Bob 總是能宣稱相反的版本——是 Alice 提議示威以增加國會權力,而他基於忠誠拒絕了。
換句話說,許多通訊是「可否認的」。合理可否認性至今仍是某些通訊的重要特徵,從日常生活到情報與外交的最高層。
一個相關的議題是匿名。 直到工業革命之前,多數人住在小村莊裡,而搬進城鎮是一種解脫——事實上是一場革命:你可以改變宗教、或投票給土地改革候選人,而不必擔心地主把你趕出農場。
在若干方面,網際網路的效果是把我們帶回一個「電子村莊」:電子通訊不只縮短了距離,在某些方面也縮短了我們的自由。
十個有隱私問題的人:從傳教士到候選人
為了讓事情更具體,考慮一些有特定隱私問題的人:
- Andrew 是德州的傳教士,其網站吸引了一些伊朗的皈依者。該國處決改變宗教的穆斯林公民。 他懷疑有些聯絡他的人不是真皈依者,而是在獵捕叛教者的宗教警察。
- Bella 是你十歲的女兒,老師警告她在網路上要保持匿名。你該給她什麼訓練?
- Charles 是心理分析師,看的是有憂鬱、焦慮等問題的私人病患。過去他在一棟不起眼的房子裡執業,病患可以低調造訪。封城以來,他不得不使用 Skype 與 Zoom 這類工具。
- Dai 是越南的人權工作者,與試圖成立獨立工會、微型金融合作社的人聯絡。警察經常騷擾她。
- Elizabeth 在一家為併購案提供顧問的投資銀行擔任分析師。她想在不讓收購標的察覺其興趣(甚至不讓對方知道有任何人感興趣)的情況下調查該標的。
- Firoz 是住在德黑蘭的男同志,而在那裡同性戀是死罪。
- Graziano 是巴勒摩的法官,正在設立一條熱線讓人們舉報黑手黨活動。他知道未來會有些在辦公室值勤的警察拿黑手黨的錢——而潛在舉報者也知道這一點。
- Hristo 協助難民進入英國以申請庇護。他從比利時運作,並需要與法國、英國等地的同事協調。
- Irene 是一家好鬥報社的調查記者,邀請吹哨者聯絡她。她夢想拿下下一個史諾登。
- Justin 正在競選公職。Irene 會樂於挖他家人的黑料;還有許多其他人想讀他的電郵、從他的社群帳號發種族歧視推文、或把他的競選資金匯到北韓。
若 Andrew 叫他的皈依者下載並使用 Wickr,那麼假扮成皈依者的警察間諜就會讓國家防火牆偵測任何使用它的人。Andrew 必須讓他的流量看起來無害——好讓警察即使知道叛教者的流量長什麼樣,也認不出皈依者。
若只有幾十個人用 Wickr,警察大可把他們的門全部踹開。所以問題不只是 Wickr 是否比 Signal 或 Skype 更安全的產品,而是那個國家有多少人在用它。
誘因也截然不同。 Andrew、Charles、Dai、Graziano 與 Irene 都費心保護他們打交道的脆弱對象,而 Firoz 感興趣的那些網站並不太在乎他的安全。
成功與失敗的門檻也不同:Hristo 只有在警方超越合理懷疑證明其罪責時才會入獄;而單是懷疑就可能對 Elizabeth 或 Firoz 是壞消息。失敗的代價也不同:Elizabeth 搞砸了可能損失一些錢,而 Justin 可能失去職涯、Firoz 可能失去性命。
加密手機與它們的宿命#
過去加密你的電郵可能很危險:若你是全國僅有的 20 個使用 PGP 的人之一,那就讓你成為嫌疑人。
假設 Hristo 用 Signal 安排 Kevan 用快艇載八個人穿越英吉利海峽。但若皇家海軍的巡邏艇逮捕了 Kevan,而他們在他手機上找到 Hristo 的訊息,他就面臨引渡。 若 Kevan 或 Hristo 也用同一支手機與家人聊天,那可能幫助警方用流量分析繪出他們的網路。
所以問題不只是「如何讓網路難以追蹤」,還有「當人被抓時能查扣到什麼證據」。
於是出現了「加密手機」的市場,它們不只提供加密通訊,也試圖支援作業安全(opsec)。
手機通常被改造成: 不能執行 app(那可能監視你);麥克風與攝影機可能被停用(好讓情報機關不能把它們變成監控裝置);GPS 也可能被停用;它們無法被標準的警方鑑識服務站讀出;而它們是一個封閉系統(含手機與訊息伺服器)的一部分,其中你不是靠電話號碼、而是靠使用者 ID 來識別對方。
加密手機公司發現有些人願意為一支手機付超過一千美元或歐元,並為相關服務的半年訂閱再付同樣的錢。市場涵蓋各式各樣的人,從加密貨幣經營者、間諜,到洗錢者與毒販。
- 2016 年,荷蘭與加拿大當局突襲了市場領導者 Ennetcom 並逮捕其負責人。
- 2017 年輪到 PGP Safe,四名荷蘭人被捕。2018 年荷蘭警方也宣稱破解了一個叫 Iron Chat 的系統。
- 2018 年的市場領導者是 Phantom Secure;美、澳、加當局關閉了該系統。其執行長 Vincent Ramos 承認向全球毒販供應手機,量刑聽證會上檢方讀出他發給同事的一則訊息:「我們他媽的發了……去買一台全新的 Range Rover。因為我這週剛談成一大筆生意。錫那羅亞販毒集團,就是這麼回事。」他被判九年徒刑。
- 下一個市場領導者 EncroChat 使用改造過的 Android 手機。2020 年法國與荷蘭警方駭進其主伺服器,並用執法惡意程式感染了全球在用的全部 5 萬台裝置,即時把訊息複製給警方。 6 月 13 日 EncroChat 意識到自己被駭,建議客戶立刻丟掉手機。歐洲各地隨後有數百人被捕。
事實上 PGP 在 1990 年代剛出來時,就被臨時愛爾蘭共和軍在對抗英國統治的叛亂中採用。 在那之前,警方的一大頭痛是如何與愛爾蘭共和軍線人不著痕跡地定期接觸——那些線人住在痛恨警察、且線人會被殺害的民族主義社區裡。
PGP 讓接觸變得容易:線人只要把自己的私鑰告訴聯絡官,警方就能蒐集他所有的流量。他甚至能靠寄一封加密郵件給自己來回報。
就地取材#
過去,隱蔽可以意味著藏在顯眼處。 每個國家的菁英都有他們常去的地方,所以若一位資深公務員想見一位知名記者,他們能在倫敦的紳士俱樂部或維吉尼亞的鄉村俱樂部公開閒聊,而沒人會注意。
所以在試圖臨機湊出匿名通訊時,第一件要問的是:你們已經共享哪些俱樂部或平台? 中國是難題之一,它在防火長城封鎖了我們熟悉的多數服務。即使在那裡,我們也能找到對使用者內容開放、且有加密通訊的平台:三個例子是 LinkedIn、GitHub 與 Amazon 書評。
我們許多使用者的共同點是「間歇性威脅」:多數時候完全沒有威脅,但偶爾它可能變得嚴重。即使是龐大的秘密警察隊伍,一次也只能辦這麼多案子。
第三個因素是能力(包括支援)與動機。 在所有使用者中,投資銀行家 Elizabeth 可能是最簡單的案例:她的工作合法、有 IT 團隊支援;Tor 若小心使用能提供相當好的匿名性,而且賭注不高。Graziano 面對更高風險,但背後有經驗豐富的警察組織。Dai、Firoz、Hristo 則在毫無稱職技術支援的情況下面對極端危害。
若你不想讓一根針被找到,就堆一座更大的乾草堆。 所以 Firoz 可能在公寓裡散落大量電子雜物,作為「那支在加密磁區中藏了違禁品的記憶棒」的掩護。
這一切最終回到「諜報技藝(tradecraft)」。什麼有效會因時因地而異,因為那取決於當地對手實際上做什麼。要擊敗例行的流量分析,也許只要找份接待員的日班工作就夠了:如果全城的人都會打電話到診所,那麼「某人打過診所」這件事就傳達不了什麼資訊。
龐德先生,詹姆士·龐德#
以色列派了 26 名摩薩德探員的小組到杜拜刺殺一名資深哈瑪斯官員。過去這類刺殺是隱蔽的,但這次阿聯當局蒐集並檢視了所有閉路電視畫面,把它與探員的住宿與過境紀錄關聯起來。 結果發現其中十二人使用英國護照——許多是發給移民以色列的英國人、但貼上探員照片的——外加六本愛爾蘭、四本法國、三本澳洲與一本德國護照。英國與澳洲因護照犯行驅逐了以色列外交官。
在現代的無所不在監控世界中,邊境的生物辨識與線上護照資料庫,讓用假名旅行難得多。
個人資訊的武器化持續進行。到那個十年結束時,軍方擔心中國正在蒐集每一位入伍人員的個人資訊以供未來資訊戰使用,而情報機關開始懷疑傳統間諜活動的時代是否已經結束。
當這麼多關於幾乎每個人的事都被知道時,要進行隱蔽行動就很難。
選舉#
作者 2020 年寫作時,人們正擔憂即將舉行之美國選舉的進行方式與可信度。由於投票系統的巨大多樣性,美國選舉多年來一直是投票技術的試驗場。
在其背後是另一個故事:享有權力的菁英如何不斷操縱制度以緊抓權力不放。
早期選舉毫無隱私可言:羅馬選民排在其候選人身後,而公開唱名投票直到 19 世紀仍是常態,導致賄選與恫嚇。
- 英格蘭的張力在於社會階級:貴族在 1215 年取得一些權利,其後是一系列改革中的其他有產者。1832 年的第一次現代改革引入了重劃選區——工業革命中興起的英格蘭城市很少有國會議員,而其他選區選民極少、議員由當地地主挑選。最終在 1872 年引入了秘密投票。
- 同時在美國,故事更關於種族。 內戰終結了奴隸制並把選舉權擴及所有男性;但重建失敗後,前邦聯各州設計出識字測驗與其他法律以阻止黑人公民投票。
時至今日,英美等地的政客仍以正當與不正當的手段,設法讓自己的支持者比對手投更多票。
從機械投票機到懸掛選票屑:美國投票技術史
許多城市與州有政治「機器」,不只動員選票也操縱選票,利用了「美國選舉在州與郡層級而非全國層級組織」這件事。在紐約,坦慕尼協會的 Boss Tweed 有時塞票匭,有時乾脆讓選區人員編造結果。
為了反制,發明家想出從透明票匭到「拉桿時撥動機械計數器之投票機」的一切。
在路易斯安那,Long 兄弟擊敗了封條、把計數設成想要的結果,統治該州多年。最終人們意識到:郡政府大樓裡維護與設定機器的技師才控制著結果。
機械投票機有約 100 位元的可程式性,典型是開口銷與其他機械連桿的形式,而沒別人看得懂。磨損也能掩護竄改:技師能靠敲掉相關齒輪上的幾個齒,讓他們不喜歡的候選人少計票。
穿孔卡與「懸掛選票屑」:
計票機拒絕了超過 10 萬張選票,而小布希對高爾的多數只有 537 票。最終最高法院叫停重新計票,把選舉判給了小布希。
這造成了如此大的爭議,以致國會 2002 年通過《協助美國投票法》,撥了 38 億美元購買更新的選舉設備。一場淘金熱隨之而來。
後來的研究顯示,約四分之一用 DRE 機器投出的票至少含有一個錯誤(定義為與選民意圖不同的票)。這種「翻票」在 2006 年佛州 Sarasota 被廣泛通報,而根因是可用性還是技術並不清楚。無論如何,三分之一的選民忽略了審核畫面上的錯誤票。
2003 年夏天,領先的投票機供應商 Diebold 在一次安全疏失中把原始碼留在一個公開網站上。 Yoshi Kohno 等人分析後發現該設備「遠低於其他脈絡中所期待的最低安全標準」:選民能投無限多票、內部人能識別選民、而外部人也能駭進系統。
幾乎像是接了台詞一樣,Diebold 執行長(他積極參與小布希總統連任競選)寫道:「我承諾協助俄亥俄州明年把其選舉人票交給總統。」
光學掃描與各州的評估:
佛羅里達與俄亥俄跟進並得出類似結論。所有被評估的設備都有嚴重安全缺失:該加密的資料沒加密;加密做得很爛(例如金鑰以明文存在密文旁邊);緩衝區溢位;毫無用處的實體安全;SQL 注入;能被竄改的稽核日誌;以及未記載的後門。
首先,數百個郡使用「選票標記裝置」,讓選民在觸控螢幕上做選擇,然後機器印出一張他們能目視檢查、並投入票匭的投票單。但有些機器分別做出人類可讀與機器可讀的記號,而若這種機器能被駭,它就能印出一張「文字寫著高爾、但條碼寫著布希」的選票。
所以關於「你檢查什麼、以及怎麼檢查」有很多細節;最佳實務是為「風險限制稽核」而設計。在英國,黃金標準仍是手寫紙本選票。
軟體獨立性#
我們必須假設計票軟體有 bug、而且它可能是惡意的,所以我們不該必須倚賴它,而「能做人工重計」是至關重要的緩解。但實務上要怎麼做到?
以光學掃描而言,這可能意味著把每個票匭的票分開捆放,好讓候選人能挑戰「我們來手動清點第 17、37 與 169 號箱」,而這能被迅速完成。若計票結果接近、或發現不一致,你就再手動清點更多箱。
這是個有趣的密碼設計問題,因為你需要同時支援匿名性與可稽核性:選民需要有信心自己的票被正確計入,但為了防止買票,他們必須無法向任何其他人證明這一點——選票必須是「無收據的」。
經過三十多年研究,如今已有被充分理解的機制。 例如微軟研究院的免費 Election Guard 系統,利用 El-Gamal 加密的同態性質,讓「把兩張加密選票相乘」等同於「把兩張明文選票相加」,從而讓加密選票能被計數。
它只解決了問題中「計票」的部分。 一如電子簽章裝置,你沒有可信的使用者介面,所以你仍得擔心選票標記裝置或掃描器中的 bug 與木馬。你仍需要稽核。
你仍得擔心對選民登記、選民名冊、結果彙總、以及結果公布的攻擊。而若投票蒐集裝置是選民手機上的一個 app,你還得像處理郵寄投票那樣擔心買票與恫嚇,並擔心手機惡意程式與設計實作的品質。
為什麼電子選舉很難#
他們做了一些測試,發現領先廠商 Nedap 的機器易受 Tempest 攻擊:坐在投票所外的觀察者用簡單設備就能看出選民選了哪個政黨。行動者取得了他們想要的政治結果:阿姆斯特丹地方法院撤銷了所有 Nedap 機器的認證。
近年也有許多圍繞人口登記的角力:如第 7 章所述,低度開發國家靠重新核發國民身分證來操縱選舉,並讓較不可能支持總統的族群更難拿到證件。
即使登記機制相當穩健(如印度的 Aadhaar 生物辨識系統),當局也能直接攻擊投票權:莫迪政府 2019 年通過一項法律,剝奪了許多穆斯林(特別是邊境地區的)的選舉權。
這是一本非常老的劇本。 直到 20 世紀,英國的選舉史是關於窮人能否投票,而美國的是關於黑人能否投票。即使在 2000 年的佛州,因登記弊端而被剝奪投票權的選民,也多於因懸掛選票屑而被爭議的選票。
歐巴馬在 2008 與 2012 年有效使用了 Facebook,促使其他人研究社群媒體;2016 年大選由川普勝出——他不只在使用 Twitter 上遠比希拉蕊嫻熟,最後付的 Facebook 廣告費也顯著較少。
如第 8 章所述,Google 與 Facebook 使用的廣告競價機制會把你的出價乘上一個叫「廣告品質」的因子(人們會點擊該廣告、並在社群媒體上分享它的機率)。結果是「極端主義偏誤」:煽動性的廣告比較便宜。
雖然個別問題(選民登記、投票、計票、結果彙總與稽核)都有相當穩健的解法,把它們組成一個穩健的系統卻不簡單。用於登記選民、記錄選票與計票的電腦系統,有若干性質讓它們幾乎是「穩健設計、實作、測試與部署」的病態案例:
- 選舉日期不可移動,準備好與否,軟體都必須在那時部署。
- 不同地區與國家有不同需求,而且會隨時間改變。
- 在選舉之間的漫長空檔中,有經驗的人員會離職,know-how 流失。
- 作業系統與其他軟體必須更新以修補已知漏洞,而更新也可能以無法預見的方式弄壞安全性(一次 Windows 更新讓 EV2000 投票機把上一位選民的選擇高亮顯示給下一位選民)。然而多數在美國使用的投票機已不再生產,那麼更新要從哪裡來、又要如何測試?
- 選舉是高壓事件,這增加了出錯的可能性。
選舉的「客戶」是輸掉的一方;而在沒有任何救濟希望的情況下(不論透過法院、還是透過下次的選票),對民主機制的信任就會開始崩壞。
但並沒有一個「設計者」來確保機制與法律在整個選舉週期中都對齊。相反地,通常是現任者調整法律、購買投票機,並在當地政治文化所能容忍的範圍內,為自己這方創造盡可能多的大小優勢。
而雖然投票機制能支撐民主共識,它們無法取代共識:破壞結果的其他方式太多了。若底層的社會契約侵蝕了,超級黨派化的環境可能讓現任者覺得自己不敢交出權力。最壞的情況下,結果可能是內戰與失敗國家。
小結#
- 自駕車能應付空曠的沙漠道路,卻覺得有人類駕駛的真實交通困難得多。
- 機器學習機制只能走這麼遠;它們也許擅長模式比對,卻缺乏理解,這在堆疊的所有層次開啟了新的濫用可能——尤其當人們急著把它們用於本質上不適合的社會預測任務時。
- 隱私強化工具與技術是探索「人類複雜度之安全後果」的一種方式,但不論我們多努力加密與匿名化,社會結構總會以某種方式透出來。
- 最後是選舉;當現任統治者準備好做一切他們認為能全身而退的事(不論在法律之內或之外)以留任時,我們能學到很多關於技術與法律之極限的東西。
傳統軟體工程工具幫助開發者在從系統複雜度之山上摔下來之前爬得更高。那麼,什麼樣的工具、技術與治理流程,適合用來應付真實社會的複雜度?而這又如何與政治互動?這些是本書第三部分將試圖處理的主題。
研究問題#
人機互動大師 Ben Shneiderman 主張:人類控制加上廣泛自動化,是讓系統可靠、安全且可信的甜蜜點。 這對飛控系統與維生機器很自然,但要把它擴展到推薦系統與仇恨言論偵測則不簡單。人類要如何對一家大型科技公司每秒做出的數百萬個過濾決定做品管?而其上的治理該長成什麼樣?
他指出,政府鍾愛的多層級安全那種簡單的規則系統從來就不自然,人們總得打破它們才能把工作做完。
在這類系統中,技術與行為互相適應,但系統開發者的權力大得多、誘因也不同(他們想要資料,而使用者想要隱私)。人類用來大規模協商規則的基本機制是市場競爭與政府管制。這兩者單獨都不夠,而科技與政治之間的互動甚至可能侵蝕「選出一個政府」的機制本身。
我們工程師需要在乎這些議題,並試著理解它們。