在玩了大約 4 天的 #YubiHSM 後,我對這個選擇感到有點高興!😁 不過,它在一些地方也有所不足,所以你的體驗可能會有所不同(還有一些地方我希望它能表現得更好)。🧵
它的優勢在於其功能、相對的優雅性和易用性。 與直接與 YubiKey 設備交互不同,HSM 通常是通過一個網絡伺服器來暴露的。這使得您可以遠程使用 HSM(雖然有一些棘手的操作安全問題)。
Yubico 提供了一個可以與 YubiHSM 通訊的 CLI shell,這很好,因為你可以立即開始(你真的不想在這裡自己開發協議)。不過,缺點是,它... 不是我們現在習慣的高端 CLI。它有很多技術負債和陷阱。
不幸的是,YubiHSM並不常見,因此來自其他語言的介面庫幾乎不存在。Yubico提供Python庫,所以你要麼使用它,要麼退回到命令行... 只要記住那些潛在的陷阱。
我對於「腳槍」的主要問題是「哎呀,我簽署了無效的東西」。好吧,確實是哎呀,因為你永遠無法解釋那個審計日誌條目,也無法證明你簽署了什麼(主要是因為你甚至不知道或無法證明它)。這使我們面臨壞的一面:審計。
YubiHSM 自稱擁有防篡改的簽名審計日誌。好吧,簽名的部分結果證明只是行銷,實際上並沒有簽名。 審計日誌 *是* 哈希鏈接的,不幸的是,沒有簽名的話,它對於離線審計也是無用的,因為任何日誌都可以被偽造並哈希。
審計 YubiHSM 的唯一方法是與其建立實時連接。這是因為你可以證明你已連接到 Yubico HSM(通過簽名證書),所以如果你信任 Yubico 及其 HSM 硬體,那麼當它說它的哈希值是 H 時,你就會相信它。但這是互動式的。
另一個缺點是審計日誌僅包含它執行的操作,但不包含數據。這在某種程度上是可以理解的,但也使得日誌的實用性大大降低:你的腳本循環了10次並簽署了空字符串?好吧,這裡有10個惡意簽名的機會。
此外,至少目前為止,我還沒有找到一種方法來向審計員證明某個特定的密鑰*確實*在設備上。如果你給審計員訪問權限來驗證你的密鑰,那麼是的,這樣是可行的,但這感覺就是不對。沒有這樣的情況下,我只能證明*在某個時刻我擁有密鑰*。
我個人的痛苦是因為我想為我的 @dark_dot_bio 項目創建一份透明度報告,但這在使用 YubiHSM 時似乎半無法實現。 如果你的威脅模型是保護密鑰不受壞人的侵害,那麼 YubiHSM 是完美的。然而,如果你想證明沒有濫用,那就運氣不好了。
總的來說,市場上似乎沒有更好的產品在我能夠負擔的價格範圍內,所以 YubiHSM 只能這樣了,但任何考慮這個的人,請注意,審計能力假設了很多可以避免的信任,但實際上並沒有。完。
2.39K