受害者的手機(jī)在半夜連續(xù)接到了100多條驗(yàn)證碼,醒來(lái)發(fā)現(xiàn)自己支付寶等賬號(hào)被盜,損失很重。
發(fā)生了什么呢??jī)H從這些描述,其實(shí)還不足以斷定攻擊者采用了怎樣的方式。有些人猜測(cè)這是通過(guò)無(wú)線監(jiān)聽(tīng)竊取了驗(yàn)證碼短信,還有人說(shuō)睡覺(jué)前關(guān)機(jī)就可以防止被無(wú)線監(jiān)聽(tīng)。
不幸的是,安全問(wèn)題從來(lái)都是比較復(fù)雜的。竊取短信不一定只能通過(guò)無(wú)線監(jiān)聽(tīng);而即使真是通過(guò)無(wú)線監(jiān)聽(tīng)攻擊的,睡覺(jué)前關(guān)機(jī)也不一定就能防止。
但還是可以說(shuō)一下,為什么銀行支付寶等機(jī)構(gòu)會(huì)選擇使用短信驗(yàn)證碼這個(gè)機(jī)制,這個(gè)機(jī)制為什么不夠安全,以及普通用戶到底有什么能做的。
短信驗(yàn)證碼到底起什么作用?
普遍意義上來(lái)說(shuō),信息系統(tǒng)是不太靠得住的。若干年前,網(wǎng)絡(luò)安全環(huán)境比較糟糕的時(shí)候,絕大部分電腦都被至少一個(gè)惡意軟件感染過(guò)。現(xiàn)在情況好一些,惡意軟件感染量比過(guò)去少多了,但從服務(wù)器側(cè)泄露數(shù)據(jù)的事兒仍然很多。再加上壞人手里還有過(guò)去十幾年間陸續(xù)竊取的各種數(shù)據(jù),所以我們?cè)诳紤]安全問(wèn)題的時(shí)候,只能假設(shè)每個(gè)人的基本信息:姓名、地址、身份證號(hào)、常用密碼等等在壞人手上都有一份。 為了能在靠不住的信息系統(tǒng)里比較靠得住地進(jìn)行一些重要操作,人們用了很多辦法,其中一個(gè)叫“雙因子驗(yàn)證”(Two-factor verification)。
比如你要用電腦進(jìn)行網(wǎng)銀轉(zhuǎn)賬。設(shè)計(jì)網(wǎng)銀安全體系的人就要假設(shè)你的賬號(hào)密碼早晚會(huì)被壞人竊取。在這種情況下怎么防止壞人用你的賬號(hào)密碼登錄你的網(wǎng)銀呢?
大家比較熟悉的“U盾”就是一種解決辦法。這個(gè)設(shè)備是獨(dú)立于電腦而存在的。要在電腦上操作網(wǎng)銀,把你賬戶里的錢(qián)轉(zhuǎn)給別人,就需要把這個(gè)設(shè)備連在電腦上。壞人沒(méi)有你的“U盾”,所以即使拿到了你的賬戶密碼,也動(dòng)不了你的錢(qián)。在這里,你的密碼是一個(gè)驗(yàn)證因子,U盾是另一個(gè)驗(yàn)證因子。需要密碼+U盾才能驗(yàn)證身份登錄網(wǎng)銀轉(zhuǎn)賬,這就是雙因子驗(yàn)證。 雙因子驗(yàn)證這個(gè)思路其實(shí)很古老,比計(jì)算機(jī)技術(shù)古老得多。有些銀行金庫(kù)的門(mén)需要由兩個(gè)人分別保管的兩把鑰匙一起操作才能開(kāi)啟,這就是雙因子驗(yàn)證。美軍如果要發(fā)射民兵核導(dǎo)彈,不但需要兩個(gè)操作員各自用確認(rèn)鑰匙開(kāi)一把鎖才能驗(yàn)證發(fā)射代碼的正確性,還需要兩人把兩把發(fā)射鑰匙插進(jìn)兩個(gè)發(fā)射孔同時(shí)轉(zhuǎn)動(dòng),兩個(gè)孔還設(shè)計(jì)得距離遙遠(yuǎn)以防一個(gè)人同時(shí)轉(zhuǎn)兩把鑰匙,這就是它的高級(jí)版本。
U盾這種解決辦法是相對(duì)比較安全的。但網(wǎng)絡(luò)安全領(lǐng)域有這么一個(gè)“不可能三角“:“安全-方便-廉價(jià)“這三者無(wú)法同時(shí)達(dá)成。 U盾方案的成本不高,安全性也不錯(cuò),但不夠方便。因?yàn)槿绻S時(shí)使用網(wǎng)銀,就要隨時(shí)攜帶U盾。
于是一些對(duì)安全性要求沒(méi)有那么高的場(chǎng)合,人們廣泛使用了另一種驗(yàn)證因子:手機(jī)短信驗(yàn)證碼。手機(jī)總是要隨身帶的,所以這種方法比用U盾要方便得多。
手機(jī)相對(duì)于電腦,是一個(gè)獨(dú)立設(shè)備。短信驗(yàn)證碼相對(duì)于用戶口令,也是獨(dú)立的。如果我們假設(shè)攻擊者即使掌握了很多用戶個(gè)人數(shù)據(jù),能入侵用戶電腦,也仍無(wú)法獲取手機(jī)短信,那么用手機(jī)短信作為一個(gè)獨(dú)立驗(yàn)證因子也是可靠的。
但是因?yàn)榫W(wǎng)絡(luò)環(huán)境的變化,短信驗(yàn)證這種方式正在面臨著問(wèn)題。
短信驗(yàn)證的漏洞
在非智能手機(jī)時(shí)代,要入侵手機(jī)竊取短信是比較困難的——不是不可能,但比較困難。但隨著智能手機(jī)的普及,入侵手機(jī)竊取短信已經(jīng)變得比較容易。比如,很多APP都有讀取短信的權(quán)限。只要這些APP中的任意一個(gè)存在漏洞,或者干脆本身就是惡意的,那你的短信也就危險(xiǎn)了。
另外,對(duì)于用電腦訪問(wèn)的業(yè)務(wù)來(lái)說(shuō),短信驗(yàn)證碼是相對(duì)獨(dú)立的一個(gè)因子。但對(duì)在手機(jī)上訪問(wèn)的業(yè)務(wù)來(lái)說(shuō),短信驗(yàn)證碼就沒(méi)那么獨(dú)立了。電腦淪陷后,短信可能還是安全的。但手機(jī)淪陷后,短信也很可能也會(huì)被攻擊者拿到。 而甚至不入侵手機(jī)也可以竊取到短信。前幾年,有些運(yùn)營(yíng)商推出了“短信保管箱”業(yè)務(wù),用戶可以用電腦在運(yùn)營(yíng)商網(wǎng)站上在線讀取短信——也就是說(shuō),如果你的電腦被入侵了,短信也就保不住了,不再是一個(gè)獨(dú)立可信的因子。所以一些網(wǎng)絡(luò)犯罪者就開(kāi)始利用這一點(diǎn)。最終“短信保管箱”業(yè)務(wù)被取消了。
現(xiàn)在運(yùn)營(yíng)商雖然不在網(wǎng)站上保存短信了,但有些手機(jī)有自動(dòng)把短信備份到云端的功能。如果開(kāi)啟了這個(gè)功能,那么攻擊者只要掌握了你的云端賬號(hào),就可以訪問(wèn)到短信。這時(shí)候,短信也不再是一個(gè)獨(dú)立可信的因子了。
那么如果手機(jī)上不開(kāi)啟任何會(huì)把短信保存到云端的功能,也能保證手機(jī)不被入侵,是不是短信就不會(huì)被竊取了呢?即使你今天仍在使用諾基亞黑白屏手機(jī),短信還是可能被竊取。因?yàn)槎绦潘玫臒o(wú)線信道并不那么可靠。雖然目前國(guó)內(nèi)3G/4G已經(jīng)普及,但大部分地區(qū)只是上網(wǎng)走3G/4G,短信還是通過(guò)不安全的GSM網(wǎng)絡(luò)在發(fā)送,而GSM是非常容易被監(jiān)聽(tīng)的。 在十幾年前,如果要通過(guò)監(jiān)聽(tīng)無(wú)線信號(hào)竊取短信,所用設(shè)備至少價(jià)值幾十萬(wàn)元。但在今天,數(shù)千元就能買(mǎi)到同樣功能的設(shè)備。如果要求不高并且愿意自己動(dòng)手,花上不到一百元也能做出勉強(qiáng)可用的設(shè)備。我 2013年做過(guò)一個(gè)相關(guān)主題的演講,其中談到了這類(lèi)設(shè)備成本下降對(duì)安全的威脅。下面這張圖就是當(dāng)時(shí)通過(guò)監(jiān)聽(tīng)無(wú)線信號(hào)獲取到的一條運(yùn)營(yíng)商流量提醒短信: 作者通過(guò)監(jiān)聽(tīng)無(wú)線信號(hào)獲取的短信 有人說(shuō)晚上睡覺(jué)前把手機(jī)關(guān)機(jī)就能防止通過(guò)無(wú)線監(jiān)聽(tīng)竊取短信。這話只對(duì)了一半。你們想一下:給別人發(fā)短信的時(shí)候,如果對(duì)方手機(jī)關(guān)機(jī)了,短信是不是仍然可以發(fā)的出去?所以,睡覺(jué)前把手機(jī)關(guān)機(jī)也許可以防止攻擊者到你的附近竊取短信,但無(wú)法阻止攻擊者在短信發(fā)送者附近竊取短信。比如攻擊者要竊取A公司給你發(fā)的驗(yàn)證碼,只需要在A公司發(fā)短信的設(shè)備附近監(jiān)聽(tīng)無(wú)線信號(hào)即可。而對(duì)攻擊者來(lái)說(shuō),在A公司發(fā)短信的設(shè)備附近進(jìn)行監(jiān)聽(tīng)顯然是更劃算的做法。因?yàn)橹灰谶@一個(gè)地方,就能實(shí)現(xiàn)竊取所有A公司發(fā)出的驗(yàn)證碼。
有辦法防備短信驗(yàn)證碼的漏洞嗎?
靠短信實(shí)現(xiàn)雙因子驗(yàn)證,總還是比完全沒(méi)有雙因子要強(qiáng)的。但因?yàn)榇嬖谏厦孢@些問(wèn)題,所以在今天,短信驗(yàn)證碼也許仍然可以作為一個(gè)驗(yàn)證因子,但各公司在設(shè)計(jì)業(yè)務(wù)安全體系的時(shí)候,對(duì)它的信任度需要調(diào)低一些。至少需要結(jié)合地理位置信息、設(shè)備信息、用戶特征等等來(lái)綜合判斷。而不能像很多年前一樣,僅憑一個(gè)短信驗(yàn)證碼就確定用戶身份。
用戶也不是毫無(wú)辦法,可以嘗試開(kāi)通VoLTE功能,讓短信也通過(guò)3G/4G網(wǎng)絡(luò)傳輸,增加通過(guò)無(wú)線監(jiān)聽(tīng)竊取短信的難度。具體方法是: 電信用戶發(fā)送“KTVoLTE”到10001, 移動(dòng)用戶發(fā)送“KTVoLTE”到10086, 聯(lián)通用戶發(fā)送“VBNCDGFBDE”到10010。 但目前不一定所有運(yùn)營(yíng)商在所有城市都支持了VoLTE。如果對(duì)安全比較重視,建議單獨(dú)準(zhǔn)備一臺(tái)手機(jī),這臺(tái)手機(jī)禁用WiFi,禁用移動(dòng)網(wǎng)絡(luò),僅用于打電話發(fā)短信。所有重要的驗(yàn)證碼都只用這臺(tái)手機(jī)來(lái)接收。至于“睡覺(jué)前關(guān)機(jī)”,也許有那么一點(diǎn)用。但手機(jī)畢竟是個(gè)聯(lián)絡(luò)工具,萬(wàn)一家人夜里有急事找你呢? |
|
來(lái)自: 昵稱27492377 > 《安全意外危險(xiǎn)》