當前位置:
首頁 > 探索 > 睡一覺就一無所有了,手機驗證碼是怎麼泄露的?

睡一覺就一無所有了,手機驗證碼是怎麼泄露的?

手機驗證碼,這個看似安全的「雙因子驗證」方式,實際上存在著巨大的安全隱患。如何在危險的網路環境中保護自己的信息和財產安全?果殼網邀請網路安全專家tk教主為大家一解簡訊竊取的秘密。

豆瓣上那個關於多個賬號被盜刷的帖《這下一無所有了》最近比較火。

受害者的手機在半夜連續接到了100多條驗證碼,醒來發現自己支付寶等賬號被盜,損失很重。

發生了什麼呢?僅從這些描述,其實還不足以斷定攻擊者採用了怎樣的方式。有些人猜測這是通過無線監聽竊取了驗證碼簡訊,還有人說睡覺前關機就可以防止被無線監聽。

不幸的是,安全問題從來都是比較複雜的。竊取簡訊不一定只能通過無線監聽;而即使真是通過無線監聽攻擊的,睡覺前關機也不一定就能防止

但還是可以說一下,為什麼銀行支付寶等機構會選擇使用簡訊驗證碼這個機制,這個機製為什麼不夠安全,以及普通用戶到底有什麼能做的。

簡訊驗證碼到底起什麼作用?

普遍意義上來說,信息系統是不太靠得住的。若干年前,網路安全環境比較糟糕的時候,絕大部分電腦都被至少一個惡意軟體感染過。現在情況好一些,惡意軟體感染量比過去少多了,但從伺服器側泄露數據的事兒仍然很多。再加上壞人手裡還有過去十幾年間陸續竊取的各種數據,所以我們在考慮安全問題的時候,只能假設每個人的基本信息:姓名、地址、身份證號、常用密碼等等在壞人手上都有一份。

為了能在靠不住的信息系統里比較靠得住地進行一些重要操作,人們用了很多辦法,其中一個叫「雙因子驗證」(Two-factor verification)。

比如你要用電腦進行網銀轉賬。設計網銀安全體系的人就要假設你的賬號密碼早晚會被壞人竊取。在這種情況下怎麼防止壞人用你的賬號密碼登錄你的網銀呢?

大家比較熟悉的「U盾」就是一種解決辦法。這個設備是獨立於電腦而存在的。要在電腦上操作網銀,把你賬戶里的錢轉給別人,就需要把這個設備連在電腦上。壞人沒有你的「U盾」,所以即使拿到了你的賬戶密碼,也動不了你的錢。在這裡,你的密碼是一個驗證因子,U盾是另一個驗證因子。需要密碼+U盾才能驗證身份登錄網銀轉賬,這就是雙因子驗證。

雙因子驗證這個思路其實很古老,比計算機技術古老得多。有些銀行金庫的門需要由兩個人分別保管的兩把鑰匙一起操作才能開啟,這就是雙因子驗證。美軍如果要發射民兵核導彈,不但需要兩個操作員各自用確認鑰匙開一把鎖才能驗證發射代碼的正確性,還需要兩人把兩把發射鑰匙插進兩個發射孔同時轉動,兩個孔還設計得距離遙遠以防一個人同時轉兩把鑰匙,這就是它的高級版本。

U盾這種解決辦法是相對比較安全的。但網路安全領域有這麼一個「不可能三角「:「安全-方便-廉價「這三者無法同時達成。

U盾方案的成本不高,安全性也不錯,但不夠方便。因為如果要隨時使用網銀,就要隨時攜帶U盾。

於是一些對安全性要求沒有那麼高的場合,人們廣泛使用了另一種驗證因子:手機簡訊驗證碼。手機總是要隨身帶的,所以這種方法比用U盾要方便得多。

手機相對於電腦,是一個獨立設備。簡訊驗證碼相對於用戶口令,也是獨立的。如果我們假設攻擊者即使掌握了很多用戶個人數據,能入侵用戶電腦,也仍無法獲取手機簡訊,那麼用手機簡訊作為一個獨立驗證因子也是可靠的。

但是因為網路環境的變化,簡訊驗證這種方式正在面臨著問題。

簡訊驗證的漏洞

在非智能手機時代,要入侵手機竊取簡訊是比較困難的——不是不可能,但比較困難。但隨著智能手機的普及,入侵手機竊取簡訊已經變得比較容易。比如,很多APP都有讀取簡訊的許可權。只要這些APP中的任意一個存在漏洞,或者乾脆本身就是惡意的,那你的簡訊也就危險了。

另外,對於用電腦訪問的業務來說,簡訊驗證碼是相對獨立的一個因子。但對在手機上訪問的業務來說,簡訊驗證碼就沒那麼獨立了。電腦淪陷後,簡訊可能還是安全的。但手機淪陷後,簡訊也很可能也會被攻擊者拿到

而甚至不入侵手機也可以竊取到簡訊。前幾年,有些運營商推出了「簡訊保管箱」業務,用戶可以用電腦在運營商網站上在線讀取簡訊——也就是說,如果你的電腦被入侵了,簡訊也就保不住了,不再是一個獨立可信的因子。所以一些網路犯罪者就開始利用這一點。最終「簡訊保管箱」業務被取消了。

現在運營商雖然不在網站上保存簡訊了,但有些手機有自動把簡訊備份到雲端的功能。如果開啟了這個功能,那麼攻擊者只要掌握了你的雲端賬號,就可以訪問到簡訊。這時候,簡訊也不再是一個獨立可信的因子了。

那麼如果手機上不開啟任何會把簡訊保存到雲端的功能,也能保證手機不被入侵,是不是簡訊就不會被竊取了呢?即使你今天仍在使用諾基亞黑白屏手機,簡訊還是可能被竊取。因為簡訊所用的無線信道並不那麼可靠。雖然目前國內3G/4G已經普及,但大部分地區只是上網走3G/4G,簡訊還是通過不安全的GSM網路在發送,而GSM是非常容易被監聽的

在十幾年前,如果要通過監聽無線信號竊取簡訊,所用設備至少價值幾十萬元。但在今天,數千元就能買到同樣功能的設備。如果要求不高並且願意自己動手,花上不到一百元也能做出勉強可用的設備。我 2013年做過一個相關主題的演講,其中談到了這類設備成本下降對安全的威脅。下面這張圖就是當時通過監聽無線信號獲取到的一條運營商流量提醒簡訊

作者通過監聽無線信號獲取的簡訊

有人說晚上睡覺前把手機關機就能防止通過無線監聽竊取簡訊。這話只對了一半。你們想一下:給別人發簡訊的時候,如果對方手機關機了,簡訊是不是仍然可以發的出去?所以,睡覺前把手機關機也許可以防止攻擊者到你的附近竊取簡訊,但無法阻止攻擊者在簡訊發送者附近竊取簡訊。比如攻擊者要竊取A公司給你發的驗證碼,只需要在A公司發簡訊的設備附近監聽無線信號即可。而對攻擊者來說,在A公司發簡訊的設備附近進行監聽顯然是更划算的做法。因為只要在這一個地方,就能實現竊取所有A公司發出的驗證碼。

有辦法防備簡訊驗證碼的漏洞嗎?

靠簡訊實現雙因子驗證,總還是比完全沒有雙因子要強的。但因為存在上面這些問題,所以在今天,簡訊驗證碼也許仍然可以作為一個驗證因子,但各公司在設計業務安全體系的時候,對它的信任度需要調低一些。至少需要結合地理位置信息、設備信息、用戶特徵等等來綜合判斷。而不能像很多年前一樣,僅憑一個簡訊驗證碼就確定用戶身份。

用戶也不是毫無辦法,可以嘗試開通VoLTE功能,讓簡訊也通過3G/4G網路傳輸,增加通過無線監聽竊取簡訊的難度。具體方法是:

電信用戶發送「KTVoLTE」到10001,

移動用戶發送「KTVoLTE」到10086,

聯通用戶發送「VBNCDGFBDE」到10010。

但目前不一定所有運營商在所有城市都支持了VoLTE。如果對安全比較重視,建議單獨準備一台手機,這台手機禁用WiFi,禁用移動網路,僅用於打電話發簡訊。所有重要的驗證碼都只用這台手機來接收。至於「睡覺前關機」,也許有那麼一點用。但手機畢竟是個聯絡工具,萬一家人夜裡有急事找你呢?

至於運營商,為阻止通過無線監聽竊取簡訊的攻擊,應加快2G網路的淘汰,儘早讓簡訊業務默認都使用VoLTE。手機廠商也應向用戶提供關閉2G支持的選項。否則,即使運營商默認用了VoLTE,攻擊者還是可能有辦法讓用戶的通信降級到GSM。而各公司自建的用來發送簡訊的「貓池」,也應升級為使用VoLTE來發送。

作者:tombkeeper

編輯:ent、劈柴


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 果殼網 的精彩文章:

恐怕你從來沒看過這種月全食、火星合月的天照
你剛剛錯過了一個全銀河系最浪漫的節日,下次可別忘了

TAG:果殼網 |