newsence
來源篩選

Rust at Scale: An Added Layer of Security for WhatsApp

Hacker News

Meta's engineering blog details how WhatsApp is leveraging the Rust programming language to enhance its security infrastructure, particularly for handling sensitive data and mitigating potential vulnerabilities at scale.

newsence

Rust大規模應用:為WhatsApp增添一層安全保障

Hacker News
大約 1 個月前

AI 生成摘要

Meta工程部落格闡述了WhatsApp如何利用Rust程式語言來強化其安全架構,特別是在處理敏感資料和大規模緩解潛在漏洞方面。

背景

Meta 近期分享了 WhatsApp 如何在大規模環境下導入 Rust 語言,以提升其媒體處理庫 Wamedia 的安全性與效能。這項工程涉及將原本超過 16 萬行的 C++ 程式碼重構為約 9 萬行的 Rust 程式碼,並宣稱這是目前全球規模最大的 Rust 函式庫部署案例,覆蓋超過 30 億使用者。

社群觀點

Hacker News 的討論首先聚焦於「全球最大規模部署」的說法。部分開發者質疑此頭銜的準確性,指出 Android 系統本身已大量採用 Rust,且其裝機量可能不亞於 WhatsApp;同時,Chromium 瀏覽器也整合了多個 Rust 函式庫,如處理字體與圖片編碼的組件,其影響力同樣遍及全球。此外,關於 WhatsApp 是否仍在使用 Signal 的 libsignal 函式庫也引發討論,有留言指出 WhatsApp 早期確實整合了 C 語言版本的 libsignal,但目前的 Wamedia 顯然是 Meta 自行研發的成果。

在技術實踐層面,社群對 Meta 採用的「差異化模糊測試」驗證策略表示高度讚賞。開發者認為,重寫舊有系統最困難的挑戰不在於撰寫新語言,而是在於如何維持與舊系統「臭蟲級別」的相容性。由於現實世界中的媒體檔案往往不符合規範,若 Rust 解析器過於嚴謹,反而會導致原本在 C++ 版本能正常開啟的檔案失效。透過讓新舊版本並行運作並比對輸出結果,Meta 成功在不破壞使用者體驗的前提下完成遷移,這種漸進式的驗證被視為比「砍掉重練」更具參考價值的工程實踐。

針對 Rust 帶來的二進位檔案體積增加問題,討論區展開了深入的技術辯論。雖然 Rust 標準函式庫會增加約 200KB 至 300KB 的開銷,但在 WhatsApp 高達 170MB 的應用程式體積中,這點增量幾乎可以忽略不計。有經驗的開發者分享,透過 LTO 連結優化與 Buck2 建置系統,可以有效剔除未使用的程式碼。然而,也有觀點批評這類文章過於偏向公關宣傳,未能深入探討如何應對 Rust 生態系中常見的供應鏈安全風險,或是如何處理 C++ 與 Rust 混合開發時的複雜調用問題。

最後,討論延伸到了 WhatsApp 的端到端加密(E2EE)可信度。儘管 Meta 強調安全性提升,但部分資深用戶對其封閉原始碼的特性感到不安,認為即便通訊協定安全,客戶端軟體仍可能存在後門或元數據洩漏。社群中存在一種矛盾的情緒:一方面認可 Rust 在消滅記憶體安全漏洞上的貢獻,另一方面則對 Meta 掌握全球 30 億人通訊命脈的現狀保持警惕,甚至討論起在健身器材等嵌入式設備上過度使用 Android 系統所導致的硬體浪費與維護困境。

延伸閱讀

  • 影片資源:Microsoft is Getting Rusty: A Review of Successes and Challenges(探討微軟在 Windows 與 Azure 導入 Rust 的經驗)。
  • 技術工具:min-sized-rust(GitHub 上的 Rust 二進位體積優化指南)。
  • 定義文件:IETF 關於端到端加密(E2EE)的定義草案。