詐騙集團不用破解加密






今天有人傳了一個詐騙案例給我。一位要買海外保險的人,在付款當天被騙走將近 14 萬台幣。她跟保險經紀人事後各自打開手機,看到的對話紀錄不一樣——她手機上有的訊息,經紀人手機上沒有;經紀人手機上有的,她手機上沒有。兩個人是在電話裡逐句核對,才發現這件事。
今天先不聊 AI,來看這件事技術上怎麼發生的。原始貼文的留言有提到是 WhatsApp。我把內容丟給 ChatGPT 來回問了幾輪,也自己下載 WhatsApp 測了其中一段。看下來有兩種情況:一種完全不用技術,一種不用破解任何加密,用 WhatsApp 本來就有的兩項功能就做得到。
有一點跟技術無關,而且兩種情況都能防:正式款項臨時改成匯到個人帳戶,不管對方是誰,都直接當成詐騙處理。保險、學費、房款、海外金融商品都一樣。
付款當天發生的事
下面每一條都是貼文的說法,先照原樣列出來:
- 海外保險核保花了一個月,上週四通過。貼文說保險經紀人(以下簡稱保經)和保險公司都是本來就認識的人
- 保費只收人民幣或美金。當天去銀行,人民幣不夠,她打電話給保經問美金電匯帳號
- 通話中一直有奇怪的聲音,但對方是認識的人,所以沒有多想
- 保經說要等公司午休結束才能給美金帳戶,電話就掛了
- 掛完電話,訊息馬上進來:「還是你匯台幣,我跟公司拿台幣帳戶」
- 對方報出保費 31,000 人民幣,給了一個台灣的個人帳戶
- 她自己換算後分兩筆轉出去,合計接近 14 萬台幣。對方回「公司收到費用了」
- 當天 19:00,保經那邊看到「她」一直開口要借 9,800 人民幣。後面還提了一筆 50 萬台幣的換匯,保經沒有答應
- 20:00,保經跑去問共同朋友,懷疑帳號被盜。三方通電話核對紀錄,才發現兩邊看到的不一樣
貼文提到電話裡有雜音,這點我覺得不用過度解讀——雜音更可能是收訊、藍牙或 App 切換。要完成這場詐騙,攻擊者不必監聽電話,能讀到並操作聊天帳號就夠了。
如果這整套說法全部成立,那付款這一段裡被換掉的只有收款帳戶:要買的保險是真的、核保是真的、保費金額是真的、剛剛通完電話的也是真的。前面九成資訊都對,人就會放過最後那一成。
所有「證據」都是兩個人自己講的
往下推之前要先看清楚一件事:「兩邊紀錄不一樣」這個結論,來源是雙方各自拿手機出來對。哪些訊息在、哪些自己沒發過,全部是單方面的說法,截圖也可以是整理過的。
所以這個案子有兩種情況。
第一種情況(完全不用技術):其中一方本來就有問題。 保經那端是內鬼的話,什麼漏洞都不用,一句「我沒傳過」就能造出「兩邊紀錄不一樣」,成本是零。這不是在指控誰,是說做技術推論的時候不能假裝它不存在。
這種情況比較無解,因為它是信任問題,不是技術問題。換掉 WhatsApp 也沒有用——改用 LINE、改用 Email、當面談、走紙本,只要對方是你信得過的人而對方決定騙你,一樣成立。後面那些檢查步驟對這種情況一點忙都幫不上。
第二種情況(不用破解加密,用兩項內建功能):兩邊都是受害人。 那就代表至少有一邊被駭,也可能兩邊都是。
第一種情況沒有技術可以談,所以後面講的都是第二種——假設雙方都是真的受害人,技術上要怎麼做到。
端對端加密擋的是中間人
先講清楚一個觀念:端對端加密(E2EE,訊息在你手機上加密、在對方手機上解密)要擋的是中間人攻擊——有人站在你跟對方中間那條線上,把訊息攔下來讀或改。這個中間人包括同一個 Wi-Fi 底下的人、電信商,也包括 WhatsApp 自己的伺服器。E2EE 做到的是:那條線上任何人拿到的都只有一團看不懂的亂碼。
它的守備範圍就到這裡為止。兩頭收發訊息的裝置本身它不管,那是它的前提,不是它保護的對象。只要攻擊者變成其中一個端點——登入你的帳號、把他的裝置掛到你帳號底下、控制你的手機——加密完全擋不住他,因為他已經站在解密後的那一側。
要冒充你,不必破解加密,只要變成你的裝置。
已連結的裝置本身就是一個合法端點
WhatsApp 的「已連結的裝置」(linked devices,網頁版、桌面版、平板,2023 年起也能綁另一支手機,用主手機掃 QR Code 或輸入 8 位數連結代碼綁定)最多可以掛四台。
這裡有兩件事要分開看,機制不一樣。
掛上去當下的歷史訊息,是主手機打包的。官方文件寫得很直接:主手機把近期對話加密成一包傳給新裝置,解密金鑰另外用一則端對端加密的訊息送過去;新裝置存進自己的本機資料庫之後,金鑰就刪掉,之後讀的是自己那份。而且不是所有訊息和對話都會同步過去。
掛上去之後的新訊息,跟主手機沒有關係。WhatsApp 2021 年改成多裝置架構以後,每一台連結裝置有自己的身分金鑰;傳訊息給你的人,是對你名下的每一台裝置各自加密一份送出來。所以主手機關機,連結裝置照樣收得到、也照樣傳得出去。
合起來的意思是:連結裝置不是主手機的鏡像,是一個完整的對等端點。
對詐騙集團來說這條路成本很低。只要騙到一次掃碼、或一組連結代碼——假客服、假活動頁、假投票連結、假「驗證身分」的 QR Code——接下來就能:
- 讀到後續所有對話
- 用真的帳號發真的訊息
- 在付款當下即時介入
不用 root、不用越獄、不用碰加密。那些訊息在對方眼裡跟本人傳的沒有任何差別,因為它們確實是從本人帳號送出去的。
加上為自己刪除,兩邊就對不起來
光是掛一台裝置,還解釋不了「我手機上沒有那些訊息」。這要靠第二項功能。
WhatsApp 刪訊息分兩種:
| 功能 | 效果 |
|---|---|
| 為自己刪除 | 只刪掉自己這一端的副本,對方看到的完全不受影響 |
| 為所有人刪除 | 對方那邊的內容會消失,但會留下「此訊息已刪除」的提示 |
攻擊者把自己的裝置掛到 A 的帳號底下,流程就是:用 A 的身分傳訊息給 B,B 收到(這確實是從 A 帳號送出的),然後在 A 這一端「為自己刪除」。
結果就是 B 手機上看得到 A 在借錢,A 手機上看不到自己傳過。
這一段我自己下載 WhatsApp 測過。刪除要同步到其他裝置大概需要 5 秒,所以那則訊息會先在主手機上出現幾秒鐘,然後消失,而且消失得沒有留下任何痕跡——對話看起來就像從來沒有那句話。兩邊各自刪一次,兩支手機就都看不到自己「傳出去」的那幾句,只剩下對方傳來的那一半。
那 5 秒是聊天視窗裡唯一的破綻。但要剛好在那幾秒低頭看手機才會發現;付款當天人在銀行、在講電話、在算匯率,多半不會。
這不是伺服器存了兩套紀錄,也不是有人改了誰的資料庫。是兩項正常功能疊在一起的結果。
掛一台只能解釋單向
一台連結裝置只能解釋單向:B 收到 A 發出的怪訊息,A 自己看不到。
但這個案子是雙向的——她收到「保經」給的台幣帳戶,保經那邊也說自己沒發過那段。要湊出完整劇情,至少要下面其中一種:
- 兩邊都被掛上連結裝置,攻擊者同時扮演雙方
- 只掛其中一邊,另一邊用假帳號或假畫面補位
- 兩邊裝置都被木馬控制,直接偽造畫面
- 其中一方比對時看的是網頁版、備份或截圖,基準跟主手機本來就不同
貼文描述的是「兩邊完全不一樣」,這四種裡最能完整解釋這個結果的是第 1 種,但它要攻破兩個帳號;純以成本算,第 2 種其實更低。
為什麼不先懷疑木馬改資料庫
我一開始的猜測是:兩邊手機都中木馬,直接改本機資料庫,偽造成對方傳來的訊息。
技術上做得到,但要先繞過 App sandbox。Android 給每一支 App 一個唯一的 Linux user ID,跑在自己的 process 裡,App 資料預設不給別的 App 讀寫;iOS 用 sandbox 和 entitlements 做同一件事。一般的惡意 App 碰不到 WhatsApp 的私有資料夾,要碰得先把整支手機的權限撬開——root、越獄、鑽系統漏洞,或是讓手機被一份公司管理設定檔接管。
就算繞過去了,改資料庫還要面對訊息 ID、時間戳記、已讀回條、加密 session、同步狀態——改壞一個欄位,訊息就消失、排序亂掉或 App 直接 crash,下次同步還可能被伺服器狀態蓋回去。
比起這些,偷掛一台連結裝置便宜太多。詐騙集團要的是錢,不是炫技。能用一次掃碼或一組代碼解決的事,不會去逆向資料庫格式。
如何避免
聊天截圖看不出來。要防這種手法,或是懷疑自己已經中了,該做的是這幾件事:
- WhatsApp →(iPhone:設定/Android:右上角 ⋮ 選單)→ 已連結的裝置,把不認識的裝置全部登出。這是第一優先
- 開兩步驟驗證(自己設的 PIN 或密碼);任何六位數簡訊驗證碼、八位數連結代碼,不管誰問都不要給、也不要幫別人輸入
- 沒申請卻收到驗證碼,代表有人正在拿你的號碼註冊
- 換一台乾淨裝置登入,比對聊天紀錄。假訊息只存在原本那支手機的話,才比較像本機偽造
- 已經匯款就打 165 並通知銀行圈存。原本那支手機先不要重灌,重灌會把鑑識證據洗掉
聊天視窗裡看到的任何東西,都不能拿來當成驗證身分的依據。
以上是我跟 ChatGPT 討論出來的技術推論,只有「為自己刪除」的實際行為是我自己下載測過的。沒有人真的檢查過那兩支手機,而且「兩邊紀錄不一樣」本身也是雙方自己的說法,實際情況還是要靠鑑識。
原始貼文:https://www.facebook.com/share/1Bu1SwiZVh/ WhatsApp 多裝置架構:https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/