newsence
來源篩選

Carelessness versus craftsmanship in cryptography

Hacker News

The article discusses how default initialization vectors in popular AES libraries lead to critical security vulnerabilities and compares the contrasting responses of different software maintainers to these systemic risks.

newsence

密碼學中的粗心大意與工匠精神

Hacker News
10 天前

AI 生成摘要

本文探討了熱門 AES 函式庫中預設的初始化向量如何導致嚴重的安全性漏洞,並對比了不同軟體維護者在面對這些系統性風險時截然不同的處理態度。

背景

資安公司 Trail of Bits 近期揭露了兩款廣受歡迎的加密函式庫 aes-js 與 pyaes 存在嚴重的設計缺陷。這兩款工具在實作 AES-CTR 模式時,竟然允許使用者在未指定初始化向量(IV)的情況下,自動套用固定的預設值,這將導致金鑰與 IV 重複使用的安全性災難。

社群觀點

針對這項爭議,Hacker News 的討論聚焦於加密函式庫的設計哲學與開發者的維護責任。部分技術評論者指出,AES 本身僅是底層原語,其應用場景極其廣泛,因此很難定義一個放諸四海皆準的預設 IV 處理方式。有人提議函式庫應自動將隨機生成的 IV 附加在密文前端,以降低使用門檻;但反對者認為,IV 的生成往往與特定協議或硬體環境的隨機性品質有關,且在某些情境下,如磁帶備份或特定通訊協議,IV 是透過雜湊唯一識別碼衍生而來,而非隨機產生。因此,社群普遍達成的一項共識是:高階加密介面應強制要求輸入 IV,絕對不應提供預設常數,否則這種簡化行為無異於在程式碼中埋下地雷。

在責任歸屬方面,社群出現了兩極化的聲音。一方觀點認為,開源軟體多以「現狀」提供,使用者不應過度苛責或霸凌志願開發者,特別是這些專案已多年未更新,使用者應自行承擔風險。然而,另一派意見則反駁,付費加密軟體未必品質更佳,且既然這些函式庫已被數十萬個專案引用,開發者即便不打算修復,也應在 README 明確標註專案已停止維護並存在資安風險,而非以戲謔的態度回應資安警告。

此外,討論也觸及了資安審計公司的角色。有留言質疑 Trail of Bits 既然收取高額審計費用,應主動提供修補程式而非僅是公開指責。但隨即有網友澄清,Trail of Bits 確實有與願意配合的維護者協作開發修復分支,問題核心在於原作者的應對態度。整體而言,社群認為這起事件反映了「工匠精神」與「粗心大意」的本質差異:優秀的工具應引導使用者避開陷阱,而非為了表面上的易用性而犧牲核心安全。

延伸閱讀

在討論中,有參與者提到若開發者需要更安全、更高階的加密介面,應考慮使用如 crypto_secretbox 這類提供組合模式(Combined mode)的工具,這類工具會自動處理認證碼與密文的封裝,比直接操作原始 AES 函式庫更能避免人為失誤。