(つ`ω´)つ says to Ubuntu 台灣社群
我的 USB 隨身碟裡藏有一個加密保險庫 (★ 109 分) Phantomdrive 是一款完全開放原始碼的 USB(通用序列匯流排)隨身碟,插入電腦時只會顯示為 8 GB,作業系統(OS)無法偵測磁碟剩餘空間。使用者只要在明文檔案中寫入 `password:密碼`,韌體便會偵測這次寫入,清除尚未寫入磁碟的密碼內容,解除掛載可見區段,再掛載第二個隱藏區段,並以 AES-256(進階加密標準的 256 位元版本)就地加密或解密資料。作者希望藉此降低一般搜查、強制要求解密或不尊重隱私權的執法人員發現機密資料的機率。 裝置核心採用 CH569 晶片,負責 USB 3、SD/eMMC(嵌入式多媒體記憶體)介面與 AES 加密運算。由於記憶體價格受到 AI 需求推高,作者改用 SD 卡作為儲存媒介,並以環氧樹脂封閉外殼,使拆解者若要取出 SD 卡,幾乎必須破壞整支裝置。密碼處理採用金鑰衍生函式(KDF,Key Derivation Function):先以每支裝置的唯一序號作為鹽值(salt),再執行 100,000 次 SHA-256 雜湊運算,解鎖約需 3 秒。作者沒有採用 Argon2 等需要大量記憶體的 KDF,原因是 CH569 的硬體資源不足;使用者若需要更高防護,可增加運算次數、改用其他裝置,或再搭配軟體加密。 文章也比較了不同 AES 模式。AES-CTR(Counter,計數器模式)速度較快,實測寫入約 9 MB/秒、讀取約 20 MB/秒,但若計數器重複使用,攻擊者可能藉由多次取得的密文推回資料;AES-XTS(Tweaked Codebook,磁碟加密常用模式)可避免這類計數器重用問題,卻使速度降至約 6 MB/秒寫入與 10 MB/秒讀取。韌體不理解檔案系統,只處理 USB 的區塊讀寫命令,因此在每次寫入時逐字搜尋 `password:` 字串;若一般資料剛好包含這段文字,可能意外觸發解鎖流程。作者表示已用功能測試及 OpenSSL 實作驗證加密結果,但這仍屬工程測試,而非完整的第三方安全稽核。 Hacker News 的主要質疑集中在威脅模型與密碼強度。部分留言認為,對付一般邊境臨檢或不熟悉特殊硬體的人員,裝置偽裝成普通 USB 隨身碟確實可能有用;但若國家級對手(state-level adversary,具備政府資源的調查者)已決定檢查裝置,商業數位鑑識工具可直接逐位元複製整支磁碟,還能由專業廠商辨識隱藏區段。預設名稱「Phantomdrive」、8 GB 容量、內建 SD 卡,以及 X 光或拆解時可見的特殊結構,也可能提高懷疑程度。留言者並指出,100,000 次 SHA-256 主要限制的是裝置本身的解鎖速度,攻擊者可先複製資料,再用更強大的硬體離線猜測;AES-CTR 也存在可在不知道金鑰的情況下翻轉密文位元、竄改解密內容的風險。較穩妥的建議包括使用真正隨機且足夠長的密碼、讓硬體只負責切換可見與隱藏區段,再交由 VeraCrypt 或 LUKS 等成熟工具加密;不過也有人認為,對低強度搜查而言,這項開放原始碼硬體仍是有趣且實用的技術案例。 👥 68 則討論、評論 💬 https://news.ycombinator.com/item?id=48974862