短信驗(yàn)證碼的背后
引:短信(SMS)驗(yàn)證碼已經(jīng)被各種各樣的應(yīng)用作為雙重認(rèn)證的主要手段之一,為什么還要將生物特征識(shí)別作為作為雙重認(rèn)證的趨勢(shì)之一呢?短信驗(yàn)證碼是否是安全的呢?如果不安全的話,背后的機(jī)制又是什么呢?本文編譯自Roger Piqueras Jover的一篇文章https://queue.acm.org/detail.cfm?id=3425909,希望在選擇將短信作為雙重認(rèn)證方式的時(shí)候,多一些考量,多一點(diǎn)兒思考。
早在上世紀(jì)90年代中后期,互聯(lián)網(wǎng)開(kāi)始成為了PSTN線路繁忙的主要因素之一。在接下來(lái)的十年里,互聯(lián)網(wǎng)在線服務(wù)完全改變了社會(huì)與科技的互動(dòng)。從電子郵件到電子商務(wù),這些服務(wù)越來(lái)越多地將人們和互聯(lián)網(wǎng)聯(lián)系在一起。
雖然密碼的概念在許多技術(shù)領(lǐng)域中很普遍,但除了銀行卡的密碼外,一般大眾對(duì)此知之甚少,是互聯(lián)網(wǎng)向他們介紹了密碼安全的概念。從那時(shí)起,人們意識(shí)到他們必須記住密碼才能訪問(wèn)他們的電子郵件賬戶、最喜歡的電子商務(wù)網(wǎng)站等等。
在那個(gè)時(shí)候,只需要一個(gè)密碼就可以解鎖一個(gè)賬戶,而且密碼要求非常寬松。網(wǎng)絡(luò)安全的前景遠(yuǎn)沒(méi)有現(xiàn)在這么具有挑戰(zhàn)性,特別是在消費(fèi)者賬戶的安全方面。對(duì)于某些行業(yè)也有例外,例如銀行業(yè),密碼要求稍微嚴(yán)格一些,在成為其他網(wǎng)站的一種選擇之前,使用了主要基于 IP 地理位置的隱式雙因素認(rèn)證。然而,普通消費(fèi)者通常只需要一個(gè)簡(jiǎn)單的密碼就可以訪問(wèn)高度安全的數(shù)據(jù)存儲(chǔ)庫(kù),同樣的密碼經(jīng)常被多個(gè)賬戶重復(fù)使用。
如今,互聯(lián)網(wǎng)安全需要更多的關(guān)注。電子郵件賬戶多年來(lái)不僅成為高度敏感和私人數(shù)據(jù)的大型儲(chǔ)存庫(kù),也成為了互聯(lián)網(wǎng)上數(shù)字足跡的單一故障點(diǎn)。例如,大多數(shù)在線服務(wù)都允許通過(guò)向用戶的電子郵件帳戶發(fā)送電子郵件來(lái)重置密碼。因此,如果一個(gè)電子郵件帳戶被入侵,許多其他帳戶也可能在短期內(nèi)被入侵。
隨著安全威脅格局的改變,密碼的使用方式及其復(fù)雜性要求發(fā)生了變化。盡管許多在線服務(wù)并沒(méi)有真正遵循最佳實(shí)踐,但人們普遍認(rèn)為,密碼應(yīng)該是高度復(fù)雜的,以便最大限度地利用它們的熵,從而大大增加破解密碼所需的時(shí)間。
然而,增加密碼的復(fù)雜性不是正確的解決方案。密碼短語(yǔ)被證明具有更高的熵,也更容易被記住。另一方面,強(qiáng)制密碼輪換,再加上嚴(yán)格的密碼復(fù)雜性策略,可能會(huì)導(dǎo)致更弱的密碼。此外,作為一個(gè)經(jīng)驗(yàn)法則,現(xiàn)在已經(jīng)認(rèn)識(shí)到,如果密碼不存在于任何外泄憑證的公共存儲(chǔ)庫(kù)中,那么密碼可能不一定需要輪換。
隨著密碼的安全性、可用性和易于記憶性不斷面臨挑戰(zhàn),安全行業(yè)認(rèn)識(shí)到,網(wǎng)絡(luò)賬戶的安全性不應(yīng)該只由用戶知道的東西(如密碼)來(lái)保護(hù)。有點(diǎn)類(lèi)似于銀行的做法,需要用戶擁有的東西(例如銀行卡)和用戶知道的東西(例如卡密碼) ,在某些情況下還要求使用雙重認(rèn)證。第二重認(rèn)證必須是用戶擁有的東西,一個(gè)顯而易見(jiàn)的簡(jiǎn)單選擇就是用戶的手機(jī)。
為在線帳戶啟用雙因素身份驗(yàn)證對(duì)其安全性至關(guān)重要。每個(gè)人都應(yīng)該在(至少)自己的電子郵件賬戶,以及存儲(chǔ)關(guān)鍵和敏感數(shù)據(jù)(如信用卡號(hào)碼)的其他賬戶中啟用這個(gè)功能。加密貨幣交換賬戶通常是網(wǎng)絡(luò)犯罪分子的目標(biāo),也應(yīng)該通過(guò)多種形式的身份驗(yàn)證加以保護(hù)。這些賬戶所保護(hù)的東西具有潛在的高額貨幣價(jià)值,這使它們成為一個(gè)有趣的案例,用來(lái)研究什么可能是第二種形式身份驗(yàn)證的最佳選擇。例如,短消息服務(wù)(SMS)作為第二種形式的身份驗(yàn)證,對(duì)于某些類(lèi)型的在線賬戶是個(gè)好主意,但對(duì)于那些在網(wǎng)上交易中擁有大量加密貨幣的人來(lái)說(shuō),它并不是最佳選擇。
基于短信的身份驗(yàn)證是保護(hù)在線賬戶安全的常用選項(xiàng),而且它們肯定比單獨(dú)使用密碼更安全。然而,蜂窩網(wǎng)絡(luò)的安全史表明,短信并不是一種安全的通信方式。從流氓基站到更復(fù)雜的攻擊,有許多已知的方法可以在本地和遠(yuǎn)程竊聽(tīng)或者暴力破解文本信息。因此,對(duì)于存儲(chǔ)具有較高財(cái)務(wù)價(jià)值的資產(chǎn)(如加密貨幣)的賬戶,此方法不是最可靠的方法。
基于短信的多因素身份驗(yàn)證的安全挑戰(zhàn)主要有蜂窩安全缺陷、七號(hào)信令協(xié)議的利用,以及被稱為SIM卡交換的簡(jiǎn)單而高效的欺詐方法?;谶@些認(rèn)知,我們可以判斷用戶的在線賬戶是否應(yīng)該使用短信驗(yàn)證。
短信 vs 一次性令牌應(yīng)用
對(duì)于標(biāo)準(zhǔn)的消費(fèi)者在線賬戶,提供第二重認(rèn)證的兩個(gè)主要選擇通常是通過(guò)短信或利用用戶智能手機(jī)上應(yīng)用程序生成的一次性令牌。后者更為安全,應(yīng)用于高度安全和敏感的賬戶,但前者的使用最廣泛,在某些情況下可能是一個(gè)有效的選擇。然而,除了它們的安全性之外,這兩種選擇在便捷性性和可用性方面有著非常不同的優(yōu)點(diǎn)和缺點(diǎn)——這是安全設(shè)計(jì)時(shí)需要考慮的重要因素。
應(yīng)用程序生成的令牌
應(yīng)用程序在用戶設(shè)備上生成的一次性令牌是對(duì)在線賬戶實(shí)現(xiàn)雙因素身份驗(yàn)證的最安全方法,無(wú)需消費(fèi)者使用非標(biāo)準(zhǔn)硬件(如 RSA 令牌等,這些在企業(yè)場(chǎng)景中更常見(jiàn))。除此之外,還有一些優(yōu)點(diǎn)和缺點(diǎn)。
無(wú)論哪種選擇的主要考慮因素之一都是網(wǎng)絡(luò)連接性。應(yīng)用程序生成的令牌不需要網(wǎng)絡(luò)連接,其便利性與通過(guò)短信接收令牌的網(wǎng)絡(luò)連接性的嚴(yán)格要求形成對(duì)比。雖然網(wǎng)絡(luò)連接被認(rèn)為是無(wú)處不在,但是在一些情況下,用戶可能需要在超出電信網(wǎng)絡(luò)的覆蓋范圍時(shí)訪問(wèn)一個(gè)帳戶。
基于應(yīng)用程序的令牌傳遞的另一個(gè)優(yōu)點(diǎn)是,這些應(yīng)用程序通??梢耘c多個(gè)在線賬戶一起注冊(cè)和使用。然而,用智能手機(jī)應(yīng)用生成令牌的主要可用性挑戰(zhàn)在于,管理這樣一個(gè)應(yīng)用程序(以及它所利用的加密資料)需要額外的努力。一般來(lái)說(shuō),將智能手機(jī)備份到云端是最常用的方法,它不會(huì)將這些加密資源保存為備份數(shù)據(jù)的一部分。這些資料也不會(huì)保存在計(jì)算機(jī)未加密的本地備份上。即使在使用密碼鎖定本地備份時(shí),也不是所有都與密碼一起存儲(chǔ)。例如,如果用戶的智能手機(jī)丟失或被盜,甚至如果他們買(mǎi)了一部新手機(jī),這可能會(huì)導(dǎo)致用戶被鎖定在他們自己的賬戶之外。在這些情況下,所謂的“備份代碼”很重要。根據(jù)經(jīng)驗(yàn),在新的智能手機(jī)完全安裝完畢、雙重認(rèn)證應(yīng)用重置之前,用戶永遠(yuǎn)不要擦除舊的智能手機(jī)。
短信令牌
通過(guò)短信接收的雙因素身份驗(yàn)證令牌對(duì)于典型用戶來(lái)說(shuō)往往工作得很好,因?yàn)樗鼈儗?duì)用戶來(lái)說(shuō)很容易。不需要在用戶的設(shè)備上安裝應(yīng)用程序,也不需要任何的備份代碼管理或備份計(jì)劃來(lái)處理丟失或被盜的設(shè)備。當(dāng)用戶得到一個(gè)新設(shè)備時(shí),不需要重置雙重認(rèn)證系統(tǒng),因?yàn)槎绦排c電話號(hào)碼綁定在一起,而電話號(hào)碼在新設(shè)備上通常是保持不變的。
缺點(diǎn)是,基于短信的身份驗(yàn)證需要蜂窩網(wǎng)絡(luò)的主動(dòng)連接。盡管大多數(shù)基于短信的通信發(fā)生在 IP上,短信的第二重認(rèn)證令牌通常是通過(guò)蜂窩網(wǎng)絡(luò)的標(biāo)準(zhǔn)短信發(fā)送的。因此,僅有 Wi-Fi 連接是不夠的,還需要有效的蜂窩連接。這在某些情況下是具有挑戰(zhàn)性的,在這些情況下手機(jī)服務(wù)參差不齊或者網(wǎng)絡(luò)不可用,或者連接受限于802.11網(wǎng)絡(luò)。
盡管存在安全挑戰(zhàn),但基于短信的身份驗(yàn)證令牌是一種廣泛使用的選擇,目前的設(shè)備制造商都支持。例如,蘋(píng)果最近在 iOS 14中宣布了一項(xiàng)新功能,強(qiáng)化了短信代碼,以防止試圖欺騙用戶的惡意應(yīng)用程序利用短信代碼( https://developer.Apple.com/news/?id=z0i801mg)。
基于短信認(rèn)證的安全挑戰(zhàn)
盡管雙重身份認(rèn)證很方便,并且被大量的在線服務(wù)使用,但是通過(guò)短信進(jìn)行雙重身份認(rèn)證仍然面臨著巨大的安全挑戰(zhàn)。這些技術(shù)包括對(duì)蜂窩網(wǎng)絡(luò)協(xié)議的一些復(fù)雜威脅(要求對(duì)手靠近目標(biāo)受害者)和SIM卡交換技術(shù)(盡管技術(shù)復(fù)雜度要低得多),這些技術(shù)沒(méi)有范圍限制,可以以接近零的成本實(shí)施。例如,移動(dòng)通信系統(tǒng)中最大的安全威脅之一是 SIM 卡交換,這是一個(gè)系統(tǒng)性問(wèn)題,涉及到移動(dòng)運(yùn)營(yíng)商如何在其客戶服務(wù)平臺(tái)上驗(yàn)證用戶身份。
移動(dòng)電話網(wǎng)絡(luò)安全
第一代移動(dòng)網(wǎng)絡(luò)(1G)缺乏對(duì)加密的支持,傳統(tǒng)的2G GSM網(wǎng)絡(luò)缺乏相互認(rèn)證,采用了過(guò)時(shí)的加密算法。GSM 協(xié)議棧開(kāi)放源碼實(shí)現(xiàn)的廣泛可用性導(dǎo)致了許多可能的 GSM 無(wú)線電鏈路漏洞(如圖3所示)。具體來(lái)說(shuō),部署惡意的 GSM 基站并對(duì) GSM 連接實(shí)施全面的 MITM 攻擊所需的技術(shù)和工具都已經(jīng)商品化了,盡管它們要求對(duì)手在物理上接近給定的目標(biāo)。低成本的軟件無(wú)線電和 GSM 協(xié)議棧的開(kāi)源實(shí)現(xiàn)可用于攔截移動(dòng)通信,包括了 SMS 消息。在不太嚴(yán)格的近距離限制下,通過(guò)在回復(fù)針對(duì)另一用戶的尋呼信道消息時(shí)觸發(fā)競(jìng)爭(zhēng)條件,可以攔截 SMS 的流量。
在3G 和 LTE (Long-term Evolution)移動(dòng)網(wǎng)絡(luò)中,采用了更強(qiáng)大的加密算法和雙向認(rèn)證標(biāo)準(zhǔn)來(lái)加強(qiáng)保密性和認(rèn)證。正因?yàn)槿绱?,LTE 通常被認(rèn)為是安全的,因?yàn)樗哂邢嗷フJ(rèn)證和強(qiáng)大的加密方案。因此,保密性和認(rèn)證被錯(cuò)誤地認(rèn)為已經(jīng)得到了充分的保證。然而,LTE 移動(dòng)網(wǎng)絡(luò)仍然容易受到協(xié)議漏洞、位置泄露和流氓基站的攻擊。
盡管有強(qiáng)大的用戶通信和相互認(rèn)證的加密保護(hù),但是大量的控制平面(信令)消息通過(guò) LTE 無(wú)線鏈路定期交換。在執(zhí)行連接的認(rèn)證和加密步驟之前,移動(dòng)設(shè)備與任何 LTE 基站(真實(shí)的或流氓的)進(jìn)行實(shí)質(zhì)性的對(duì)話,這些基站用正確的廣播信息為自己做廣播。從移動(dòng)設(shè)備的角度來(lái)看,來(lái)自基站消息的隱含信任造成了嚴(yán)重威脅。許多具有關(guān)鍵安全影響的操作在被這些隱式信任的消息觸發(fā)時(shí)執(zhí)行,這些消息既沒(méi)有經(jīng)過(guò)身份授權(quán),也沒(méi)有經(jīng)過(guò)身份驗(yàn)證。
在大規(guī)模網(wǎng)絡(luò)攻擊的時(shí)代,最大的民用通信系統(tǒng)必須依賴于隱私協(xié)議,而不僅僅是基于看起來(lái)合法的基站隱式信任。反之亦然,基站隱式信任來(lái)自移動(dòng)設(shè)備的所有預(yù)認(rèn)證消息。
雖然一個(gè)惡意的 LTE 基站不能發(fā)動(dòng)一個(gè)完整的 MITM 攻擊,但是一些技術(shù)可以悄悄地將一個(gè)現(xiàn)代智能手機(jī)降級(jí)為一個(gè)易受攻擊的 GSM 連接。所有這些技術(shù)的共同點(diǎn)是他們利用并濫用了這種預(yù)認(rèn)證信息。
隨著業(yè)界準(zhǔn)備迎接5G 時(shí)代的到來(lái),這種下一代移動(dòng)網(wǎng)絡(luò)的安全架構(gòu)正受到嚴(yán)格審查。然而,目前大多數(shù) LTE 中基于消息的預(yù)認(rèn)證協(xié)議漏洞仍然適用于5G 網(wǎng)絡(luò)。因此,鑒于目前這種移動(dòng)通信系統(tǒng)的規(guī)范,悄悄地降低智能手機(jī)成為GSM 鏈路的連接仍然是可能的。通過(guò)利用這些漏洞,對(duì)手可以成功地?cái)r截通過(guò)短信發(fā)送的雙重認(rèn)證令牌。
然而,通過(guò)攔截 GSM 流量從 SMS 消息中攔截令牌是技術(shù)上最復(fù)雜的選擇。盡管這種攻擊可以通過(guò)低成本的軟件無(wú)線電和對(duì)開(kāi)源工具的小修改來(lái)實(shí)施,但絕大多數(shù)通過(guò)攔截通過(guò)SMS傳遞的身份驗(yàn)證令牌進(jìn)行的欺詐都利用了SS7或SIM卡交換中的漏洞。
SS7安全性
七號(hào)信令是30多年前開(kāi)發(fā)的體系結(jié)構(gòu)和協(xié)議。它為 PSTN 的一些功能提供帶外信令支持,即呼叫建立、計(jì)費(fèi)、路由和信息交換。從1988年開(kāi)始,當(dāng)移動(dòng)運(yùn)營(yíng)商開(kāi)始利用它進(jìn)行帶外信令時(shí),該協(xié)議的安全性主要依賴于運(yùn)營(yíng)商之間的隱含信任。它被認(rèn)為是一個(gè)封閉的可信網(wǎng)絡(luò),并且沒(méi)有內(nèi)置認(rèn)證。因此,這個(gè)網(wǎng)絡(luò)和協(xié)議的安全特性很小,取決于全球少數(shù)國(guó)家的控制或大公司的運(yùn)營(yíng)商。但現(xiàn)在情況不同了,由于移動(dòng)設(shè)備的使用量急劇增加,以及過(guò)去全球移動(dòng)虛擬網(wǎng)絡(luò)運(yùn)營(yíng)商數(shù)量的增加,導(dǎo)致運(yùn)營(yíng)商的數(shù)量大大增加。
3GPP在20世紀(jì)90年代和21世紀(jì)初為 SS7增加了兩個(gè)新的協(xié)議: MAP和 CAMEL。其目的是支持移動(dòng)網(wǎng)絡(luò)提供的一些新服務(wù),以及為移動(dòng)運(yùn)營(yíng)商提供的新功能。同時(shí),MAP 提供了全局地理定位設(shè)備的服務(wù)。遺憾的是,這些新的 SS7子協(xié)議都沒(méi)有添加身份驗(yàn)證或安全特性。
SS7中有一些關(guān)鍵的安全漏洞,這些漏洞可以被用來(lái)對(duì)用戶進(jìn)行地理定位,并在幾乎任何地方攔截他們的通信,還可以通過(guò)黑客入侵的 femtocells 進(jìn)入 SS7網(wǎng)絡(luò),在一些特殊的情況下,還可以從移動(dòng)運(yùn)營(yíng)商那里購(gòu)買(mǎi)訪問(wèn)權(quán)。更糟糕的是,利用 CAMEL 協(xié)議的漏洞可以遠(yuǎn)程攔截電話和短信。
一旦攻擊者可以訪問(wèn) SS7網(wǎng)絡(luò)的入口點(diǎn),就 GSM 而言,只需要一條消息就可以修改 MSC (移動(dòng)交換中心)中給定目標(biāo)的注冊(cè)。從那一刻開(kāi)始,MSC 將與攻擊者取得聯(lián)系。
現(xiàn)代 LTE 網(wǎng)絡(luò)大部分基于 ss7的服務(wù)都遷移到 Diameter 協(xié)議。這個(gè)新協(xié)議提供了一些改進(jìn),仍然有一些漏洞,其中大部分是從 SS7 繼承的缺陷,因此,類(lèi)似的遠(yuǎn)程攔截呼叫和短信仍可能存在于 LTE 中。只要距離目標(biāo)足夠近,悄悄地將智能手機(jī)降級(jí)到安全性更低的 GSM 連接是很簡(jiǎn)單的。
利用 SS7網(wǎng)絡(luò)及其協(xié)議中的安全缺陷是截獲通過(guò) SMS 傳輸?shù)碾p重身份驗(yàn)證令牌的一種相當(dāng)有效的方法。一般來(lái)說(shuō),這是一種被黑客團(tuán)體所使用的攻擊載體,在MITRE ATT&CK的框架內(nèi)已經(jīng)被考慮到,并被許多技術(shù)公司廣泛采用,作為其安全體系的一部分。
SIM 卡交換
盡管短信截取技術(shù)利用了蜂窩網(wǎng)絡(luò)協(xié)議和遺留 SS7網(wǎng)絡(luò)中的缺陷,但 SIM 交換才是對(duì)短信通信的頭號(hào)安全威脅。
如圖5所示,SIM 交換攻擊包括了對(duì)移動(dòng)運(yùn)營(yíng)商的欺騙,通常是通過(guò)與客服部門(mén)的電話通話,將賬戶移植到新的 SIM 卡上。例如,打電話者可以聲稱電話在海外丟失,需要在新購(gòu)置的電話和新的 SIM 卡上盡快恢復(fù)使用權(quán)。
一旦攻擊者成功地將受害者的賬戶移植到自己 SIM 卡上,剩下的攻擊就相當(dāng)簡(jiǎn)單了。從那時(shí)起,攻擊者將成為受害者的手機(jī)號(hào)任何電話和短信的目的地。因此,攻擊者將接收到請(qǐng)求的任何雙重身份驗(yàn)證令牌。
這種類(lèi)型的攻擊實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,并且占據(jù)了大多數(shù)需要攔截身份驗(yàn)證令牌的漏洞。鑒于 SIM 卡交換攻擊所需的低成本和低努力,欺詐和詐騙團(tuán)伙正在設(shè)計(jì)更復(fù)雜的方法來(lái)擴(kuò)大他們可以接管的賬戶數(shù)量。例如,SIM 交換者賄賂客服人員為他們進(jìn)行交換,甚至利用惡意軟件攻擊呼叫中心使用的遠(yuǎn)程桌面技術(shù)。
有趣的是,基于 SIM 卡交換攻擊的欺詐性網(wǎng)上賬戶收購(gòu)并不復(fù)雜,而且難以緩解。對(duì)于網(wǎng)上銀行和金融服務(wù)的普通消費(fèi)者而言,SIM 卡交換可以說(shuō)仍是最大的安全風(fēng)險(xiǎn)之一。
結(jié)束語(yǔ)
盡管短信認(rèn)證非常流行且易于使用,但它可以說(shuō)是雙重認(rèn)證中最不安全的形式之一。但是,這并不意味著它是一個(gè)保護(hù)在線帳戶的無(wú)效方法。
誠(chéng)然,有一些服務(wù)不應(yīng)使用通過(guò)短信發(fā)送的令牌ーー例如銀行和金融服務(wù)、加密貨幣服務(wù),以及任何包含敏感金融信息、信用卡號(hào)碼等的服務(wù)。個(gè)人電子郵件地址也屬于這一類(lèi)。如果電子郵件賬戶是用戶在線數(shù)字身份的基石,那么接管電子郵件賬戶可能會(huì)帶來(lái)毀滅性的后果。
另一方面,有許多基于短信的在線服務(wù)對(duì)普通消費(fèi)者來(lái)說(shuō)已經(jīng)足夠了ーー例如,任何不存儲(chǔ)敏感或財(cái)務(wù)信息的普通賬戶,攻擊者無(wú)法輕易將其貨幣化,從而阻止他們首先嘗試接管賬戶。
在決定哪種多因素身份驗(yàn)證方法是最合適的時(shí)候,其他的變量也應(yīng)該考慮進(jìn)來(lái)。對(duì)于一個(gè)擁有數(shù)百萬(wàn)粉絲的知名個(gè)人而言,社交媒體賬戶的安全性影響與對(duì)于一個(gè)只有少數(shù)粉絲的賬戶而言是非常不同的。因此,盡管使用短信作為某些社交媒體賬戶的第二個(gè)認(rèn)證因素是完全有效的,但對(duì)于名人的賬戶來(lái)說(shuō),選擇一種不同的認(rèn)證方式是明智的。
目前的安全形勢(shì)與二十年前大不相同。無(wú)論在線賬戶的關(guān)鍵性質(zhì)如何,無(wú)論選擇何種方法,使用雙重身份驗(yàn)證都應(yīng)該是默認(rèn)選項(xiàng)。隨著大量泄密和其他入侵事件的發(fā)生,許多用戶名和密碼組合落入了不法之徒手中,使得密碼攻擊變得廉價(jià)且容易實(shí)現(xiàn)。















 
 
 









 
 
 
 