關於 Keystone 产品開源的介紹

在 Keystone 的開源之路上,我們又往前邁出了重要一步。本文將全面介紹我們已經開源的所有項目,以及 Keystone 如何實現開源和我們未來的開源理念。

Keystone 開源了哪些代碼和設計

在 Keystone 中,已經開源的項目有:安全芯片的固件代碼、硬件電路設計和 BOM 物料清單、錢包應用層代碼和部分安卓系統層代碼。同時还發布了第三方代碼審計報告,我們也是首家公開此報告的硬件錢包公司。

Keystone 設備原理圖(電路圖)和物料清單(BOM)都已經在 GitHub 發布。如果您對 DIY 自己的硬件錢包特別感興趣,那這些內容就為您展示了如何一步一步 DIY Keystone 硬件錢包,同時你也可以通過這些內容來研究 Keystone 的內部構造。

我們是第一家開源安全芯片固件代碼的硬件錢包公司(也是目前已知的硬件錢包中唯一一家開源硬件錢包廠商),另外,我們的安全芯片 Datasheet 也是開源的。由於涉及到安全芯片廠商的知識產權,我們與其他硬件錢包一樣,只能實現部分開源(通用微控制器 MCU 也無法開源底層代碼)。但是,由於安全芯片固件代碼是開源的,您可以驗證以下重要的加密操作:

  • 如何根據隨機熵生成助記詞和主私鑰
  • 如何派生子私鑰和公鑰
  • 如何在安全芯片中完成整個簽名過程
  • 如何讓私鑰永遠不離開安全芯片

Keystone 还允許用戶自行投擲骰子生成隨機熵值,進而派生私鑰,從而減少了對安全芯片底層代碼(真隨機數生成器)的依賴。如何驗證這個結果,您可以在此處找到答案。對於想要進一步驗證安全元件操作過程的測試人員,可以在與我們簽署保密協議之後,拿到開發版。

Keystone 使用的是安卓操作系統,它為我們的開發提供了成熟的工具鏈,比如相機(用來掃描二維碼)、觸摸屏(增強可讀性,預防錯誤)以及其他功能,讓用戶有更好的操作體驗。安卓的安全芯片在許多支付程序和銀行終端中普遍應用,所以安全係數很高,因此我們在安卓操作系統上構建了一個完全開源的錢包應用層。但是,由於操作系統層某些部分的所屬權屬於各個廠商,所以這部分也不能完全開源。為了進一步提高安全性,防止安卓系統可能發生的攻擊,您可以在我們的開源代碼中查看我們做了哪些操作:

  • 關閉 adb 並刪除 adb 後台進程
  • 刪除不相關的系統進程和應用程序
  • 阻止安裝第三方應用程序
  • 修補 Linux 內核漏洞

在 Keystone 開源這件事情上,我們还接受了具有公信力的第三方代碼審核,並將審計報告發布在了 Github 上。我們選擇了中國最好的代碼審計供應商之一:一家由前 360 公司的核心人員和主要項目負責人創建的審計公司,他們在區塊鏈相關產品和防禦安卓黑客方面經驗豐富。大家可以看到,我們已經修復了報告中提到的大大小小所有問題,僅有的兩個未修復的問題,其本身是低風險問題,未修復的原因主要是跟我們業務邏輯有沖突。具體如下:

  • PVE010:這個問題與我們的業務邏輯有沖突——我們允許用戶使用指紋授權交易。並且,在安全芯片內,有多重機製確保種子或助記詞不被泄露。比如,安全芯片的所有數據全部默認加密,而且想要竊取種子或者助記詞,主要方式是安裝病毒固件到 Keystone 中,但是只有我們官方簽名的固件包才能進行固件升級,並且,固件升級也依賴用戶的密碼授權,這就杜絕了廠商作惡的可能性。
  • PVE011:這個問題也與我們的業務邏輯有沖突——為了保護用戶的硬件錢包免受旁路攻擊,我們設計了多重拆機自毀機製。Keystone 設備一旦檢測到暴力拆機,可以主動銷毀私鑰等敏感數據。如果刪除數據依賴用戶輸入密碼,那拆機自毀機製就無法發揮作用。

使用多重簽名實現信任最小化

實現信任最小化最有效的方法之一就是支持比特幣 PSBT 多重簽名或者以太坊的 Gnosis Safe 多簽。

正如 Michael Flaxman 在此播客中所提到的,多重簽名錢包中每增加一個簽名者,安全性就會提高一個等級,即使增加的簽名方是閉源硬件錢包。因為如果攻擊著想要攻擊一筆多簽交易,他就必須攻擊所有參與簽名的硬件錢包。如果您使用的是來自不同供應商的硬件錢包,那這種情況將難以實現。

目前,我們以經完成了與 Gnosis SafeBlue WalletSpectreWasabi WalletSparrowBTCPay ServerElectrum Wallet、Fully Noded 等多個數字貨幣錢包的兼容,並且支持 PSBT 多重簽名。多重簽名被認為是安全儲存數字貨幣的最佳選擇,用戶可以使用 Keystone 硬件錢包作為簽名者創建多重簽名錢包,以此驗證未簽名的多重簽名交易。您可以在本文中查看此功能的重要性。

下一步計畫

目前,為了防止網絡釣魚攻擊,Keystone 僅允許用戶通過簽名的固件包進行升級, Ledger、Trezor 和 Keepkey 用戶最近都成為網絡釣魚攻擊的受害者。所以只是單單提醒用戶謹慎安裝第三方固件不足以應對威脅,因為並非所有用戶都具備必要的背景知識,能意識到固件升級過程中潛在的網絡攻擊。

僅允許由我們簽署的固件包進行升級確實防範了大量網絡攻擊,但也有缺點,那就是用戶必須信任我們發布的固件升級包。為了減小這種信任,並滿足那些想要自定義固件的高級用戶,我們未來會發布 Cypherpunk 版本的 Keystone,這個版本的 Keystone 不再預裝任何固件,因此用戶必須編譯自己的固件,在 Github 上選擇可用的私鑰進行簽名,並且,用戶可以自行替換升級包校驗的秘鑰對,從而只識別用戶自行簽名的升級包。

作為目前區塊鏈社區中支持多重簽名這一最佳解決方案的一員,我們非常自豪地告訴大家,我們與 NunchukColdCardBitBox 的開發人員一起起草了 BIP129(比特幣安全多重簽名設置,BSMS )。該 BIP 將比特幣多重簽名的安全性,提升到了一個全新的水平。不久的將來,我們也將實施此 BIP 準則。

羅馬不是一天建成的

關於開源,我們為什麼要一步一步實現?有這樣幾個原因。首先,我們有責任保護我們的用戶免受日益增加的黑客攻擊,而將代碼開源的同時也將暴露漏洞,行業內有一句話:「security through obscurity」。所以,Keystone 硬件錢包開源的同時也產生了新的潛在威脅。我們需要執行更嚴格的代碼標準,對這些漏洞進行分析修復,然後才能發布。

世界上沒有絕對的事情,也沒有任何電子產品永遠是完全透明100%開源的,但開源對區塊鏈社區來說仍然非常重要。開源代碼不僅使內部工程師作惡變得更加困難,而且還能促進硬件錢包與軟件錢包等其他產品的集成。現在我們的產品與其他軟件錢包的兼容性越來越高,這也是我們理應為比特幣社區做出的貢獻,同時這也有助於減少用戶對我們產品的信任依賴。

Subscribe to Keystone 硬件錢包
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.