KeyFrame內部研究專用

Black Hat Europe | LINE-Break: Cryptanalysis And Reverse Engineering Of Letter Sealing

Black Hat·6月27日週六·37 min英文

三句話摘要

Line應用端到端加密協議(Letter Sealing)V2版的安全分析,揭示其在重放、冒充、洩露等方面的關鍵漏洞。 Line的Letter Sealing協議本質上依賴伺服器信任而非加密保證,需立即採用Signal等經過充分驗證的開源標準協議,切勿自行設計加密系統。 無狀態設計造成訊息完整性缺陷:協議不維護訊息計數狀態,伺服器可任意重放、阻止或重排訊息,使用者無法檢測丟失,這是協議根本性設計侷限。

重點整理

重點
  • 1

    無狀態設計造成訊息完整性缺陷:協議不維護訊息計數狀態,伺服器可任意重放、阻止或重排訊息,使用者無法檢測丟失,這是協議根本性設計侷限。

  • 2

    惡意勾結導致身份偽造風險:當惡意使用者與伺服器配合時,可透過在群聊中聲稱訊息來自他人(使用他人公鑰簽名),同時在伺服器層面攔截並重新標記傳送者身份,實現完整冒充。

  • 3

    明文洩露破壞隱私保護:貼紙與URL預覽功能完全不加密,每次輸入匹配的詞語即自動下載貼紙、洩露使用者agent與完整URL(含私密token),形成行為追蹤與審查風險。

  • 4

    金鑰管理機制不足以支撐前向保密:一對一通訊生成後永不更新除非解除安裝應用,群聊僅在成員變化時更新,無連續金鑰輪換,協議根本不具備前向保密特性。

實用技巧與重點

乾貨
  • 技術架構:
  • 金鑰交換:ECDH(橢圓曲線Diffie-Hellman)
  • 加密演算法:AES-GCM(取代V1的AES-CBC+自定義MAC)
  • 訊息結構:鹽值(16位元組) + 計數器 + 隨機位元組(4) → 12位元組nonce + AAD後設資料 + AES-GCM加密體
  • 發現的攻擊及技術實現:
  • 重放攻擊:修改Thrift編碼的計數器後設資料第一位元組為255,使其從正數(偶數編碼)變負數(奇數編碼),伺服器拒絕並自動重放舊訊息無限次
  • 訊息冒充:在加密層使用他人公鑰+在後設資料層標記他人身份,中間人在伺服器轉發時修改傳送者標記
  • 訊息控制:伺服器可阻止、重排訊息(透過控制時間戳),使用者端無計數狀態無法察覺
  • 資訊洩露:貼紙下載、URL預覽都以明文包含user agent與完整連結
  • 覆蓋範圍限制:
  • 不加密:貼紙、訊息反應(emoji)、官方賬號通訊、50人以上群聊
  • Line公司宣告要點:
  • 承認重放/阻止/重排為協議設計限制(無狀態架構)
  • 依賴伺服器端檢查防冒充(但對惡意伺服器無效)
  • 貼紙/URL預覽為可選功能,使用者可禁用
  • 承諾更新加密協議
  • Signal協議對位元性:
  • 雙棘輪機制:DH棘輪(每輪通訊生成新金鑰對注入隨機性) + 對稱棘輪(每條訊息不同金鑰)
  • 訊息金鑰匯出:鏈金鑰→單向函式遞推→每條訊息獨立金鑰,單條洩露不影響歷史
  • 群聊:共享群金鑰 + per-sender金鑰,防止冒充

結論

結論

Line的Letter Sealing協議本質上依賴伺服器信任而非加密保證,需立即採用Signal等經過充分驗證的開源標準協議,切勿自行設計加密系統。

完整解析

詳細

Line是LY集團旗下的超級應用,在日本、臺灣、泰國、印尼等東南亞地區擁有近10億使用者,在日本和臺灣的滲透率高達80-90%,是使用者日常生活的核心工具。該應用內建的Letter Sealing是端到端加密層。V1版本曾被安全研究者指出訊息完整性問題,Line升級至V2宣稱已修復所有漏洞。但此次分析發現V2仍存在多個根本性缺陷。

協議採用ECDH金鑰交換配合AES-GCM加密。一對一通訊中,Alice和Bob各生成永久金鑰對(僅在解除安裝時更新),透過ECDH推導共享金鑰,再用該金鑰加密訊息。群聊則由發起者生成共享群金鑰,分別用每個成員的一對一金鑰加密後分發。關鍵問題在於:計數器(表示第N條訊息)雖在加密層包含,但伺服器會覆寫後設資料中的計數器為0,且協議無狀態設計讓客戶端無法驗證訊息順序。

研究人員透過中間人攻擊演示了漏洞。僅修改單一位元組(計數器改為255)利用Thrift編碼特性(正數編為偶數,負數編為奇數),使伺服器識別為非法值並自動重放老訊息。由於缺乏客戶端狀態驗證,使用者無法察覺訊息丟失。這種攻擊對一對一聊天永久有效,對群聊在成員不變時持續有效。訊息也可被伺服器任意阻止或重排,完全由伺服器控制的時間戳決定順序。

冒充攻擊在群聊中最為嚴重。當惡意Alice與伺服器勾結時,Alice在端到端加密層聲稱訊息來自Bob(使用Bob公鑰推導加密金鑰),同時在後設資料中標記Bob身份。伺服器雖不能看到加密內容,但可攔截訊息再修改後設資料傳送者標記為Alice,讓其他群成員收到看似來自Bob但內容由Alice選擇的訊息。這徹底破壞了認證屬性。

更隱蔽的威脅來自未加密的貼紙與URL功能。貼紙是Line的核心賣點,應用在使用者每次輸入時檢查本地詞典是否有對應貼紙,若無則從伺服器下載。這意味著使用者每輸入一個詞就向伺服器洩露其輸入內容——即使尚未傳送訊息。貼紙預覽的相鄰動畫也被一併下載,最終傳送貼紙時完全明文,包含user agent資訊。URL預覽亦然:為生成網頁縮圖,整個URL(含所有token和私密路徑)都以明文傳送到伺服器。這允許伺服器進行行為追蹤、審查特定URL的使用者,甚至透過政治貼紙識別支持者。

協議無法實現端到端加密的四大安全屬性:保密性因洩露而破壞,完整性因冒充而無保障,認證性因冒充而失效,前向保密性因無金鑰輪換機制而不存在。相比之下,Signal協議透過雙棘輪機制——DH棘輪在每輪通訊生成新金鑰對注入隨機性,對稱棘輪為每條訊息派生不同加密金鑰——確保單條金鑰洩露不影響歷史訊息,且透過金鑰繫結防止冒充和訊息篡改。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。