文章列表

EP28 - 你還在用手機收簡訊驗證碼嗎?

Podcast連結


本集內容大綱

常見驗證身份方式

你知道的東西 (Something you know)

用戶已知的相關訊息,可以是密碼、PIN、安全問題 (例如第一隻寵物的名字、出生醫院、就讀幼稚園和母親婚前姓等等)。

驗證方式: 用問題的方式請用戶回答

你擁有的東西 (Something you have)

用戶擁有的實體物件,手機、電腦、鑰匙和感應卡都可以算在這個範疇內

驗證方式: 輸入手機驗證碼、刷感應卡、RSA token

你是誰 (Something you are)

各種生物特徵,例如指紋、虹膜、聲紋、掌紋和臉等等

驗證方式: 指紋辨識、臉部辨識、虹膜驗證、TouchID、FaceID

多因素驗證的必要性

概念類似把資訊或帳號用更多層的保護包裹起來,這樣即便其中一層關卡被擊潰,還有第二層、第三層甚至更多層的保護。

情境想像 (有使用多因素驗證):

  1. 資料外洩→駭客取得帳號密碼→沒有用戶手機→無法取得手機驗證碼→無法輕易取得帳號控制權
  2. 手機被小偷偷走→沒有用戶帳號密碼→無法輕易取得帳號控制權

為什麼不要使用手機作為多因素驗證工具

這裡指手機驗證方式是提供手機號碼給他人作為驗證身份的管道。

透過傳簡訊或是打電話的方式取得一組一次性使用密碼,透過在網頁上輸入這組密碼來驗證身份。

1. 簡訊內容的字元限制

每則簡訊內容都有160字元的限制(不是使用GSM的話只能夠傳送70個字元),在這麼少字元的情況下,發送者所能提供的資訊很有限,接收者很難去判斷每封簡訊的真實性。

2. 國家/地區/電信公司/裝置上的差異

為了支援在各種不同狀況與平台下能夠傳遞訊息,簡訊的設計上無法太複雜,舉凡加密、驗證等等的安全措施都無法被加上。

3. 未加密

簡訊和電話原本的設計上沒有考慮到太多的資安層面,因此訊息和通話都是沒有被加密的。在沒有加密的狀況下,透過適當的工具就能夠攔截簡訊或竊聽通話內容,可能會有Man in the Middle Attack 中間人攻擊的狀況發生。

除此之外,攻擊者還有辦法透過這些工具精準的定位手機,網路上甚至有這類型的駭客服務。

相關新聞:For $500, this site promises the power to track a phone and intercept its textsBlack Hat: Intercepting Calls and Cloning Phones With FemtocellsGSM, 3G, 4G, 5G interceptors, cellular tapping & eavesdropping

4. 不穩定的電信服務

用手機簡訊驗證時都有遇過,有時馬上就收到簡訊,有時卻會要等很久,甚至有時候根本收不到的情況。

技術上難以追蹤每則簡訊是否正確無誤送達收件者的手機 (電信商只能知道簡訊被發送),再加上不同電信服務間的差異讓手機簡訊驗證很不穩定也很難以信賴。

5. 易受到社交工程 - SIM Swapping

實際上用戶是和電信公司租用手機門號,電信公司才有門號的完整掌控權,電信公司想要停掉或轉移門號都很容易,電信公司的客服人員很多都有權限這麼做。

SIM Swapping- 攻擊者透過社交工程欺騙和說服電信公司的客服,假裝他遺失了手機,請客服將你的門號轉移到一張新的SIM卡上。而這個過程中,客服要驗證用戶身份的方式,往往都是靠一些比較私人的個資,像是身分證字號、生日、地址等等的資訊,也就是說,如果我們的這些個資在資料外洩中被駭客取得了,他們就可以利用這些資訊騙過電信公司的客服,取得我們的門號。

SIM Swapping在最近幾年越來越常見,2019年九月時,Twitter的執行長 Jack Dorsey也受到 SIM Swapping的攻擊,當時Twitter有透過簡訊發推特的功能,因此駭客在取得 Jack Dorsey的門號控制權後,就透過簡訊發了一些仇恨性言論。

相關新聞:Hackers Hit Twitter C.E.O. Jack Dorsey in a ‘SIM Swap.’ You’re at Risk, Too. (Published 2019)

前幾年有一名記者就好奇社交工程到底有多厲害,他在駭客年會Defcon上請了一名社交工程專家來駭他,而這名社交工程專家就在記者的面前,打電話給記者的手機電信公司假裝是他的老婆,並透過一系列的社交工程手法後,不僅從電信公司客服口中知道了許多記者的個資,還取得了他的門號控制權。

這類型的攻擊手法不僅僅會發生在手機電信業者上,也會發生在其他各個領域跟公司上。2020年11月網域名稱供應商GoDaddy就受到類似的攻擊,駭客假冒是網域的擁有者請GoDaddy的客服幫忙,客服在上當以後就將一些網址的控制權交給駭客,導致這些網站和Email被駭客控制。

相關新聞:GoDaddy Employees Used in Attacks on Multiple Cryptocurrency Services駭客網釣GoDaddy員工騙到網域控管資料,以駭入GoDaddy代管客戶系統

6. 雙因素的特性逐漸模糊

過去因為接電話和收簡訊的主要方法只有透過手機而已,因此在驗證身份的分類中會被歸類為你擁有的東西。

現在因為Voice over IP,也就是透過網路來打電話和接收簡訊的技術已經很成熟也很普及了,大家可以透過Skype或是Google Hangout這類型的服務取得一組電話號碼,在網頁或是App上打電話和傳簡訊。

這類型的電話號碼就不會像是傳統的那樣綁在一支手機或是一張SIM卡上,而是你只要知道Skype或是Google的帳號密碼就可以使用的。

蘋果的用戶只要使用一個的iCloud帳號,就可以在Mac上收iPhone的簡訊或是接電話這類型的功能,也是類似的概念。

這些新的功能都逐漸地讓手機簡訊驗證在你擁有的東西和你知道的事情這兩個類型之間的界線變得很模糊,逐漸失去他雙因素的特性。

推薦的雙因素/多因素驗證方式

U2F 實體金鑰

youtuberhack yubikey

Yubico公司所推出的第五代YubiKey系列實體金鑰 。(圖片來源:Yubico - Discovery YubiKeys)

使用方法: 登入時在電腦上插入這個實體金鑰,並按一下金鑰上的按鈕就可以進行驗證

特性:

  • 各大公司跟平台都有支援U2F標準FIDO 2.0,在Windows、Mac、Android、iPhone上都可以使用。
  • 一個實體金鑰可以用在很多不同的地方,並不是說一個金鑰只能給一個帳號用,也就是說一個實體金鑰可以同時給Google、Facebook、微軟等等的帳號用。
  • 實體金鑰上不會儲存任何你的私人資訊,弄丟了也不用擔心駭客可以從他上面拿到你的資訊。
  • 內建的防釣魚功能。當我們在帳號上綁定實體金鑰時,他會記錄你是在哪個網站綁定的。也就是說當我們在Google上綁定一個實體金鑰後,如果我們想要在一個釣魚網站上登入Google帳戶的話,實體金鑰不會讓我們登入。

以目前來說,符合FIDO 2.0 標準的實體金鑰是最有效能防止釣魚詐騙的一種工具。

TOTP密碼產生器

TOTP(Time-based One Time Password) 基於時間的一次性密碼產生器

audrey googleauthenticator

使用方法: 在登入時除了要輸入你的帳號密碼,還要輸入身分驗證器裡所生成的六位數密碼

特性:

  • 六位數密碼每30秒會更換一次,增加破解的困難度
  • 產生的六位數密碼與你帳戶的帳號密碼沒有關係,即使你在不同的帳戶上使用相同的帳號密碼,身分驗證器產出來的密碼還是會不同
  • 身分驗證器裡綁定的帳戶無法輕易被複製或轉移,他人無法輕易把你的手機上身分驗證器內的資訊轉移到他們手機的身分驗證器裡
  • 認定有安裝身分驗證器的這支手機是屬於你的,能夠存取這個身分驗證器就代表是你本人
  • 能有效抵禦上述的三種密碼攻擊,能防止99%的帳號密碼被盜
  • 使用上較麻煩,每次登入都需要拿出手機查看六位數密碼
  • 還有很多網站不支援身分驗證器

很有效的加強安全性的工具,但並非完美,需要搭配其他工具或是措施才能比較安全

提醒

跟其他常見的驗證方式比起來,簡訊驗證碼是最不安全的一種,因此當你有其他選擇時會建議大家不要用手機簡訊作為驗證方式。

但如果只有手機簡訊驗證碼這一個選項的話,還是建議大家要使用,畢竟再怎麼不安全,也一定會比不使用雙因素驗證來的安全。

Reference

Alex Weinert from Microsoft -It’s Time to Hang Up on Phone Transports for Authentication

Tozny -What’s next after SMS one-time passwords?