《物聯網生存指南》:身分認證程序漸趨困難,竊取認證資料則漸趨容易

《物聯網生存指南》:身分認證程序漸趨困難,竊取認證資料則漸趨容易
Photo Credit: Shutterstock / 達志影像

我們想讓你知道的是

現在有三種基本方法可用來認證身分:知道的資訊、身體的特點、擁有的品項。密碼是我們知道的資訊。我們之所以能使用密碼進行認證,是因為應該只有我們本人才知道這項資訊。

文:布魯斯・施奈爾(Bruce Schneier)

辨識網際網路使用者的身分愈發困難

在《紐約客》(New Yorker)雜誌於一九九三年刊載的一篇著名漫畫裡,有兩隻狗正在交談,對白是:「在網際網路上,沒人知道你是狗。」接著在二○一五年《紐約客》的一篇後續漫畫中,另外兩隻狗討論道:「還記得當年在網際網路上大家都不知道你是誰的時候嗎?」

在網際網路上,這兩種說法都正確無誤。我們隨時都在證明自己就是我們所聲稱的那個人,通常是靠輸入應當只有我們知道的密碼來證明這一點。同時,某些系統讓罪犯和異議分子可在祕密通訊的同時,向主管機關隱瞞自己的身分。不過有許多案例顯示主管機關最後還是能找出那些人是誰。另外,有部分系統提供匿名通訊的功能,其中某些簡單到在建立使用者帳戶時根本無須提供關聯的姓名。最後,駭客可在身分未遭識破下侵入地球另一端的網路,但是同樣地,安全性公司與政府有時也能識別出駭客身分。

如果各位覺得上述所有內容聽來令人困惑又彼此矛盾,那是因為確實如此。

認證程序漸趨困難,竊取認證資料則漸趨容易

美國國家安全局特定入侵行動單位組織的首長基本上等於是美國的首席駭客。二○一六年,時任特定入侵行動單位的喬伊斯(Rob Joyce)罕見地發表了公開談話。簡而言之,喬伊斯表示大眾都高估了零日漏洞,他反而會透過竊取認證資料來侵入網路。

喬伊斯說的沒錯。雖然軟體漏洞如此糟糕,但駭客最常使用的網路入侵手段卻是濫用認證程序。駭客會竊取密碼,也會策畫中間人攻擊(man-in-the-middle attack)好趁有人合法登入時搭個順風車,或者假冒成獲得授權的使用者。竊取認證資料不需要找出零日漏洞或未修補的漏洞,遭發現的機率也比較低,同時還讓攻擊者能更靈活地施展手段。

上述說法不只適用於美國國家安全局,也適用於所有駭客。中國駭客正是利用這種手段在二○一五年侵入美國人事管理局。塔吉特公司在二○一四年遭遇的犯罪攻擊行動,也是從竊取登入認證資料開始。伊朗駭客在二○一一年到二○一四年期間,竊取了美國、以色列與其他國家的政治和軍事領袖登入認證資料。某個激進駭客(hacktivist)在二○一五年利用竊取的認證資料,侵入網路武器製造商駭客小隊公司,而且將該公司幾乎所有專利文件都公諸於世。俄羅斯在二○一六年攻擊美國民主黨全國委員會時,也是利用竊取的認證資料。

根據一份調查顯示,有百分之八十的外洩事件都是因濫用或錯誤使用認證資料所致。Google曾從二○一六年中旬至二○一七年中旬期間觀察Gmail使用者,發現每星期都會有一千兩百萬起釣魚攻擊成功。

由於認證程序無所不在,所以也使竊取認證資料成為有效的攻擊手段。所有個人或專有資料都會受到某種形式的認證程序防護,因此存在許多破解認證程序的機會。我們難以讓認證程序兼具易用與安全的特性,而且在許多情況下,那是不可能達成的目標。此外,大多數系統的設計都是讓某人在獲得認證後,就可執行幾乎所有作業。

使用者名稱與密碼是最常見的認證機制,大家都非常熟悉這種機制。由於需要記住的密碼太多,因此我們可能採取了所有會大幅降低體制安全性的行為,例如選擇弱式密碼、重複使用重要密碼,或是將寫下的密碼留在公共場合中。

攻擊者會利用我們的這類行為。他們會猜測密碼、從電腦和遠端伺服器竊取密碼,在竊得某系統的密碼後,攻擊者會嘗試於其他系統上使用該密碼。他們會猜測用來備援認證程序的「祕密問題」的答案,也會欺騙使用者,讓使用者自行揭露答案。

在二○一六年三月十九日,當時擔任希拉蕊總統競選陣營主席的波德斯塔(John Podesta)收到一封聲稱是Google安全警示的電子郵件,但其實寄件者是代號「魔幻熊」(Fancy Bear)的俄羅斯情報單位。IT部門向波德斯塔提供了錯誤建議,導致他按下信中連結,並在偽造的Google登入頁面內輸入密碼,讓俄羅斯情報單位能存取他十年來的電子郵件。

波德斯塔是釣魚攻擊的受害者,雖然取笑他很容易,但我反而更感到同情。受害者可能極難辨別經過精心設計的釣魚郵件,對不熟悉科技的人來說更是如此。而且即使波德斯塔抵抗了三月十九日那封電子郵件的誘惑,魔幻熊駭客可能會一次又一次地繼續嘗試,而且他們只要走運一次,即可達成目標。

釣魚攻擊可以是鎖定對象的行動,也可是大規模攻擊。在一起於二○一七年發現的大規模釣魚攻擊中,詐騙者在駭入帳戶後,即傳送電子郵件給該帳戶使用者的聯絡人。該電子郵件內含有一個偽裝成Google文件檔案的蠕蟲,會在受害者登入時收集他們的Google認證資料,隨後該蠕蟲又會再將自己轉寄給受害者的所有聯絡人。Google在發現蠕蟲後將其禁用,不過Google估計已有一百萬名Gmail使用者受到該蠕蟲影響。

若要說我們從以上所有事件學到了什麼教訓,那就是密碼非常不安全。雖然低安全性需求的應用可使用密碼機制,但對安全性要求較高的應用就不適合使用密碼了。

現在有三種基本方法可用來認證身分:知道的資訊、身體的特點、擁有的品項。密碼是我們知道的資訊。我們之所以能使用密碼進行認證,是因為應該只有我們本人才知道這項資訊。

如生物辨識等機制則是利用我們身體的特點。生物辨識可透過指紋、臉部掃描、虹膜掃描、掌形等等許多不同方法進行。例如iPhone和Google Pixel手機都讓使用者能利用指紋或臉部進行身分識別,藉此登入裝置。

擁有的品項則是指某種認證裝置(token),這是可隨身攜帶並用來認證身分的東西。以前這類品項可能是實體裝置,在裝置的螢幕上會顯示一個不斷變換的數字,也可能是需要插入電腦的卡片或加密鎖(dongle),或是可用來解鎖系統的實體鑰匙。現在則比較可能是某種應用程式或手機簡訊。

我們可以透過某些方法駭入上述所有系統。利用照片、假手指之類即可愚弄生物辨識系統。攻擊者只要挾持手機,就能存取儲存在手機中的應用程式或簡訊。一般而言,以密碼取代上述任何一種認證程序,也無法帶來多少改善。

但若同時採用其中兩種機制,也就是雙因素認證(two-factor authentication),即可提升安全性。Google和Facebook都提供透過智慧型手機簡訊進行的雙因素認證(當然這也不是完美的措施,已有某些版本遭到駭客破解)。斯普林特公司(Sprint)、T-Mobile、威訊無線(Verizon)和AT&T正聯手合作,以建置一個類似的體系。Google在二○一七年為高風險使用者推出進階保護計畫(Advanced Protection Program),除了採行其他安全性保護措施之外,此計畫還要求使用者必須隨身攜帶認證裝置,並利用該裝置進行認證。我在哈佛大學的網路也採用其中一種體系,除了需要密碼(我知道的資訊)外,亦需與我的智慧型手機互動(我擁有的品項)。

目前我們也開始看到另一種選擇,那就是差異化認證(differential authentication)。當我們使用自己的電腦時,Facebook可能允許我們只使用密碼進行認證,但如果我們用的是新電腦或陌生的電腦,Facebook可能就會要求進行更廣泛的認證。就銀行而言,如果我們執行例行交易,或許銀行只會要求我們完成一般認證程序;但若我們想進行高額轉帳,或轉帳到其他國家的帳戶,銀行可能就會要求我們完成更多認證程序。此外也有研究探討以生物辨識特徵為基礎的連續驗證程序,例如若某系統了解我們打字或滑動畫面的習慣,就可在我們突然出現異常行為時,向我們的帳戶提出警告。

認證程序總是需要在安全性與易用性之間做出取捨。無論麻煩的系統有多麼安全,覺得麻煩的使用者都會避免使用該系統。例如我們會把密碼寫在便利貼裡,並將便利貼貼在螢幕上(在新聞稿照片與影片的背景中,常會看到上面寫有密碼的便利貼)。相較於密碼,生物辨識的最大優勢之一是較容易使用。

我有個朋友過去從不鎖住智慧型手機,因為她覺得輸入密碼太麻煩。後來她改用內含指紋讀取機的Google Pixel後,因為用起來實在太輕鬆了,所以她開始鎖住手機。雖然我們可以爭論是否使用複雜密碼才是更安全的選擇,但無庸置疑的是比起完全停用認證功能,我朋友現在已經安全多了。

經營認證系統並不容易,Google和Facebook都為第三方提供認證服務,而許多零售商、部落格與遊戲都讓使用者利用自己的Google或Facebook帳戶登入,如此即可有效地將身分識別和認證作業外包給前述公司。某些國家也採取同樣做法。例如我在第一章曾提到具有安全性漏洞的愛沙尼亞國民身分識別系統,該系統讓愛沙尼亞公民與外國居民可存取多種公家服務,包含投票在內。印度已建立了一個生物辨識國民身分證系統,未來會供政府機關和公司行號採用。就連美國都設有Login.gov,這是提供公部門使用的服務,可進行集中化的身分識別與認證作業。

這類系統一方面相當好用,因為許多服務都可利用單一的強認證與身分識別系統作為建置基礎。然而從另一方面來說,這類系統會成為單點故障(single point of failure)的隱憂,因此帶有龐大風險。

智慧型手機現在已進化為幾乎所有事務的中央化安全樞紐,我們可透過智慧型手機存取所有帳戶,電子郵件、聊天客戶端、社群網站、銀行和信用卡網站等等都包含在內。手機也是物聯網的中央控制器中樞,我們在控制手邊的物聯網裝置時,可能都是透過智慧型手機來進行,從Tesla、調溫器到連網玩具皆不例外,而前述所有系統都需仰賴手機的認證功能。我們不需要分別登入電子郵件、Facebook、Tesla或調溫器的個別帳戶,因為這些公司全都假設只要我們能存取自己的手機,那麼我們就是本人。

這是重大的單點故障問題。駭客可以取信於威訊無線或AT&T等手機通信商,讓該公司將受害者手機號碼的控制權,轉移到駭客本人控制的裝置上。一旦駭客成功得手,而且其實意外地容易辦到,駭客就可重設受害者所有使用手機號碼備援的帳戶,例如Google、推特、Facebook、蘋果等等。駭客會重設銀行帳戶,隨後偷走裡面的所有財產。未來,我們將需要對周遭一切進行認證,例如汽車、家電、環境等,因此帳戶遭侵入的影響將會格外深遠。

其他某些攻擊行為則企圖利用有效認證之便。駭客可以監視使用者的電腦,等到使用者登入真正的銀行交易網站時,駭客就會操控使用者看到的畫面與傳送至銀行的資料,藉此更改使用者的轉帳目的地等等。這稱為「中間人攻擊」,而且即使銀行設立雙因素認證措施,這種手段同樣能夠奏效。

若要防禦這類攻擊,相關人員可以監視系統,找出帳戶遭駭客侵入的跡象,隨後再實施差異化認證程序。也就是說,銀行可能注意到某個客戶剛才試圖轉五萬美元到一個位於羅馬尼亞的帳戶,然而他從未與該帳戶進行過任何金融交易,於是銀行會打電話給該客戶,好在放行轉帳前再次確認。若使用信用卡購買高額商品的地點,跟信用卡的實際所在地點不同,或是出現使用信用卡購買禮物卡的交易時,信用卡發卡公司就可能會提出警示,並且暫緩交易以進行驗證。

某些銀行應用程式會透過智慧型手機應用程式監視使用者的所在位置。當使用者的信用卡出現在其他地點的購物交易時,銀行就會鎖卡。在企業網路方面,有一整個產業的產品可用來監視網路,藉此找出駭客成功侵入的跡象。不過那些產品的品質不一,而且又是一場攻擊者與防禦者之間的軍備競賽。

我們需要簡單易用且高度安全的認證程序,這兩者是彼此牴觸的需求,因此需要激盪出聰明的發想才能獲得進展。然而即使能夠有所進展,認證程序仍舊會變得比現在更不方便,這是必然的結果。

這種情況總是會讓我想起我祖父母那一輩的人從未習慣過使用住家鑰匙。他們老是不鎖上大門,更厭惡因為必須鎖門而造成的各種不便,例如必須記得鎖門、要一直隨身攜帶鑰匙、朋友得有鑰匙才能進來等等。然而對我而言,那全是我這輩子早已習慣的不便。當然,我曾經把自己鎖在家門外,結果必須打電話請妻子幫忙,或是偶爾得付錢請鎖匠開鎖。可是在我眼裡,為了擁有一個防盜措施更為妥善的住家,這些不便都是小事。安全帶也一樣。在我小時候,沒有人會繫安全帶,但現在的小孩會要求大人繫上安全帶後才能開車。同樣地,我也適應了雙因素認證系統,為了換取能更妥善抵禦駭客的帳戶,那只是小小的不便而已。

認證是網際網路+的核心。幾乎所有電腦化設備都會使用某種認證系統,藉此了解應與誰對話、應聽命於誰、可受誰控制。未來從汽車與核能廠等大型裝置與設施,到玩具、智慧型燈泡等小型裝置與設備等等,都會採用認證系統。我們將需要隨時向周遭一切認證自己的身分,而周遭一切也會向我們認證其身分。

網際網路+將有許多部分需仰賴身分識別與認證程序,但是目前我們仍未打造出任何可擴充的可靠系統,以執行這些作業。未來調溫器需要與暖爐通訊,家電則需與電表通訊,玩具也需要彼此通訊。

更新作業需要經過認證,以防攻擊者欺騙我們安裝惡意更新程式,那也是電腦蠕蟲Stuxnet所使用的其中一種伎倆。不過多年來,駭客一直利用有效的簽署授權機構來建立有效的認證簽章,以供惡意更新之用。隨後在第五章所探討的許多供應鏈漏洞,都是源自錯誤認證。

前述某些通訊作業事關重大,例如汽車將會彼此通訊,以傳達車載感測器的偵測結果與其用意。醫療器材除了會彼此通訊外,也會跟醫生通訊,並據此改變行為。地方電力公司將需跟社區內所有大型電器通訊。不同的建築系統也會彼此通訊。就像我們在第二章所了解的一樣,未來所有裝置都需要接收經過認證的安全性修補程式。未來,前述所有程序將需要自動執行,每天的執行次數都會達到數百萬次,而且是持續不斷地進行。

我們不知道該如何據此向上進行調整。現在我們用來讓鄰近裝置對彼此認證的協定是藍牙協定,而藍牙協定只有在人類參與設定程序時才能運作。例如在配對手機和汽車時,其實是藉此將手機和汽車彼此認證,好讓它們可在無須人力介入下互相通訊。但是,這種做法只有在需配對的裝置數量不多時才可行。如果需要互相通訊的裝置有好幾千個,我們就不可能以手動方式將所有裝置一一配對。此外,雖然可透過智慧型手機等中央認證樞紐進行所有認證作業,也就是採用軸輻模式(hub-and-spoke model),但那仍舊只能解決部分問題。

攻擊將會造成慘重後果。如果我可以向某人的裝置假冒成他,就可以利用那個人。這是未來盜用身分的寫照,那將相當駭人。如果我可以向某人的裝置饋送錯誤資訊,就能操控裝置造成傷害。如果我可以矇騙某位人士的裝置,讓裝置以為我比實際上更值得信任,就能代表那位人士下指令。我們無法全然了解這類攻擊會造成的後果,因為我們尚未完全了解那些系統的規模。

因此我們需要身分識別。當我們親自或在網際網路上設定帳戶時,需要證明自己的身分,而身分識別程序的強度則視帳戶類型而定。若為銀行,我們需要前往分行辦公室,進行面對面互動的強式身分識別程序。若使用信用卡購物,則要進行強度較弱的認證,這種認證會根據我們知道的各種個人資訊來執行。有時身分識別會與電話號碼、地址、國民身分證或駕照相關聯。

Facebook採用「實名」政策:Facebook使用者應使用自己的真實姓名,然而除非發生某種爭議,否則Facebook不會進行任何驗證作業。Google則會在使用者建立Gmail帳戶時要求提供電話號碼,但使用匿名的「拋棄式手機」電話號碼同樣能完成建立程序。有時進行身分識別還不需要任何根據。例如我的Reddit帳戶只是一個獨特的使用者名稱,唯一可用來識別身分的項目就是使用者名稱本身,以及我透過該使用者名稱發表的所有貼文,因此Reddit帳戶就像是假名一樣。

若將某種事物跟我們的身分建立關聯,代表我們能透過某種可靠方式證明自己就是本人,且他人無法冒充我們。這也包含認證程序在內,不過這類可靠方式的強度還要更高一些。我們可以對匿名銀行帳戶進行認證,證明自己跟上星期存錢的人是同一個人。而對銀行帳戶進行身分識別程序,即可證明帳戶中的財產在我們的名下。

身分識別向來都不是萬無一失的措施。我第一次申請護照時,需要親自前往政府的辦事處。若要假冒他人身分,我必須要能偽造護照辦事處要求的「原始證明文件」,也就是為了取得新的身分證明文件而需要的身分證明文件,雖然偽造很難,但並非不可能。某些人曾偽造原始證明文件,以假名取得真正的駕照。如果政府從人民一出生就開始追蹤人民,那麼上述手法會較難成功,但是那種做法本身也有其他問題。

從遠端假冒身分向來比較容易成功。同樣地,這也是安全性和便利性之間的權衡。那些希望贏得我們注意的大公司總是偏好選擇便利性,我們也是一樣。於是到頭來,大眾與企業都需要由某種力量推一把,才能朝安全性邁進。

書籍介紹

本文摘錄自《物聯網生存指南: 5G世界的安全守則》,貓頭鷹出版

作者:布魯斯・施奈爾(Bruce Schneier)
譯者:但漢敏

透過以上連結購書,《關鍵評論網》將由此獲得分潤收益。

建立安全數位世界的第一本書

你開著車,突然收音機不聽使喚,接著是雨刷、空調、引擎……

  • 2016年,烏克蘭的高壓變電所被搖控關閉。
  • 2017年的某個週末,全球有15萬台印表機突然開始印起各種嘲諷訊息。

以上這些,在這個萬物與網路高度連結的時代可能愈來愈容易發生。
在這樣的網路世界裡,我們該如何自處?

全面連結=全面的危險?

我們愈來愈依賴網路透過電子產品來控制現實世界,包括智慧家居、自動車、核能電廠與其他重要的基礎建設。在以上的前提下,依賴網路可能造成一些嚴重的後果,包括程式錯誤導致人身財產、交通安全,甚至國家安全問題。這些危險的根源可能很難發覺,目前大部分對這類缺失的態度也傾向被動。作者在本書中進一步提出這些漏洞被武器化的可能性。在戰略考量之下,造成的後果是百姓的生命財產安全會受到嚴重影響。

如何打造更安全的網際網路

在說明目前科技發展可能遭遇的問題後,本書第二部分提出了一些解決方案。作者提出各種設計原則,希望藉此一併提升裝置、資訊、演算法、網路連結、網際網路甚至重要基礎建設的安全性。這些原則包括日漸受到重視的資訊透明度、各式情境下的責任歸屬以及功能性的修補。

getImage
Photo Credit: 貓頭鷹出版

責任編輯:潘柏翰
核稿編輯:翁世航