跳至主要內容

OneKey 硬件錢包設備韌體開源程式碼驗證

今日已更新

本文提供了詳細的流程步驟,協助您驗證您的 OneKey 硬件錢包設備上安裝的系統韌體應用了和 OneKey GitHub 儲存庫中一致的開源韌體程式碼。透過使用 SHA-256 計算 Checksum(校驗和)的方式比對不同檔案的程式碼一致性,確保您可以安全放心地使用 OneKey 硬件錢包。

Checksum 是一種用於檢查資料完整性的方法,它透過對資料進行某種計算,得到一個簡短的、固定大小的數字和字母的組合序列。這個序列就是 Checksum,也被稱為「校驗和」。

重要提示

OneKey 硬件錢包內建的安全晶片在出廠時刻有多重簽名。如果設備被寫入了非官方簽名的韌體,在開機時就會顯示「非官方韌體 (Unofficial Firmware)」的提示。

驗證流程

系統韌體

步驟一:下載並安裝最新的官方韌體

  • 透過 USB 線將您的 OneKey 硬件錢包連接到您的電腦。

  • 一旦您的硬件錢包設備被偵測到,您將能在網站上看到您的硬件錢包資訊。

  • 選擇並下載您的硬件錢包對應韌體的最新版本。

  • 依照網站上提供的指示安裝韌體,並在您的 OneKey 硬件錢包上確認安裝。

步驟二:在您的 OneKey 硬件錢包上取得 Checksum

  • 在您的 OneKey 硬件錢包上找到「關於設備 (About Device)」這一欄(通常在系統設定下)。

  • 在您的 OneKey 硬件錢包設備上找到詳細的韌體資訊。

  • 您可以從韌體資訊中取得設備韌體的 Checksum 的前七位。

    • 例如:4.9.0[fccbac8-5ff2c88]

    • fccbac8」 是您的設備韌體的版本 ID。

    • 5ff2c88」 是您的設備韌體的 Checksum 的前七位。

步驟三:計算 GitHub 原始碼的 Checksum

  • 在您的作業系統中打開終端機 (Terminal)(需要 macOS/Linux 作業系統)。

  • 根據您的 OneKey 硬件錢包型號,選擇執行下面對應的指令來計算 Checksum。

    • OneKey Mini & OneKey Classic:

      • tail -c +1025 /path/to/(檔案路徑) | shasum -a 256 -b

    • OneKey Touch:

      • tail -c +2561 /path/to/(檔案路徑) | shasum -a 256 -b

步驟四:比對 Checksum

  • 比較步驟三中手動計算的 Checksum 的前七位與步驟二中取得的設備 Checksum。

  • 如果兩個值匹配,這表明安裝的韌體與 GitHub 上的開源程式碼一致。

藍牙韌體

步驟一:下載並安裝最新的官方藍牙韌體

  • 透過 USB 線將您的 OneKey 硬件錢包連接到您的電腦。

  • 一旦您的硬件錢包設備被偵測到,您將能在網站上看到您的硬件錢包資訊。

  • 選擇並下載您的硬件錢包對應藍牙韌體的最新版本。

  • 依照網站上提供的指示安裝韌體,並在您的 OneKey 硬件錢包上確認安裝。

步驟二:在您的 OneKey 硬件錢包上取得 Checksum

  • 在您的 OneKey 硬件錢包上找到「關於設備 (About Device)」這一欄(通常在系統設定下)。

  • 在您的 OneKey 硬件錢包設備上找到詳細的藍牙資訊。

  • 您可以從「藍牙」處取得設備藍牙韌體的 Checksum 的前七位。

    • 例如:2.3.1[96bb143-5affc8f]

    • 96bb143」 是您設備的藍牙韌體的版本 ID。

    • 5affc8f」 是您設備的藍牙韌體的 Checksum 的前七位。

步驟三:計算 GitHub 原始碼的 Checksum

  • 在您下載的 bin 檔案的相同資料夾下,打開一個 Terminal。(需要 macOS/Linux 作業系統)

  • 在命令列中輸入 python3 指令喚起 Python。(下載 Python

  • 複製下面的指令。

    • exec("""\nimport struct, hashlib\nwith open("ota.bin", mode="br") as f:\n f.seek(0x0C)\n codelen = struct.unpack("i", f.read(4))[0] - 512\n f.seek(0x600)\n print("".join(format(x, "02x") for x in hashlib.sha256(f.read(codelen)).digest()))\n""")

  • 將(上面指令中的)ota.bin 改成您下載的 bin 檔案的檔名。

  • 執行指令獲得 Checksum 校驗和。

步驟四:比對 Checksum

  • 比較步驟三中手動計算的 Checksum 的前七位與步驟二中取得的設備藍牙韌體 Checksum。

  • 如果兩個值匹配,這表明安裝的藍牙韌體與 GitHub 上的開源程式碼一致。

如果您希望驗證 OneKey 團隊在 GitHub 發佈的簽名後韌體檔案與 OneKey GitHub 儲存庫公開儲存的對應開源程式碼的一致性,請參考這篇文章

是否回答了您的問題?