本文提供了詳細的流程步驟,協助您驗證您的 OneKey 硬件錢包設備上安裝的系統韌體應用了和 OneKey GitHub 儲存庫中一致的開源韌體程式碼。透過使用 SHA-256 計算 Checksum(校驗和)的方式比對不同檔案的程式碼一致性,確保您可以安全放心地使用 OneKey 硬件錢包。
Checksum 是一種用於檢查資料完整性的方法,它透過對資料進行某種計算,得到一個簡短的、固定大小的數字和字母的組合序列。這個序列就是 Checksum,也被稱為「校驗和」。
重要提示
OneKey 硬件錢包內建的安全晶片在出廠時刻有多重簽名。如果設備被寫入了非官方簽名的韌體,在開機時就會顯示「非官方韌體 (Unofficial Firmware)」的提示。
驗證流程
系統韌體
步驟一:下載並安裝最新的官方韌體
訪問 OneKey 官方韌體更新網站。
透過 USB 線將您的 OneKey 硬件錢包連接到您的電腦。
一旦您的硬件錢包設備被偵測到,您將能在網站上看到您的硬件錢包資訊。
選擇並下載您的硬件錢包對應韌體的最新版本。
依照網站上提供的指示安裝韌體,並在您的 OneKey 硬件錢包上確認安裝。
步驟二:在您的 OneKey 硬件錢包上取得 Checksum
在您的 OneKey 硬件錢包上找到「關於設備 (About Device)」這一欄(通常在系統設定下)。
在您的 OneKey 硬件錢包設備上找到詳細的韌體資訊。
您可以從韌體資訊中取得設備韌體的 Checksum 的前七位。
例如:4.9.0[fccbac8-5ff2c88]
「fccbac8」 是您的設備韌體的版本 ID。
「5ff2c88」 是您的設備韌體的 Checksum 的前七位。
步驟三:計算 GitHub 原始碼的 Checksum
訪問 OneKey 正式韌體發佈的網站:https://github.com/OneKeyHQ/firmware/releases
找到您想要計算 Checksum 的韌體版本。
點擊下載 Assets 下的 bin 檔案。
在您的作業系統中打開終端機 (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 上的開源程式碼一致。
藍牙韌體
步驟一:下載並安裝最新的官方藍牙韌體
訪問 OneKey 官方韌體更新網站。
透過 USB 線將您的 OneKey 硬件錢包連接到您的電腦。
一旦您的硬件錢包設備被偵測到,您將能在網站上看到您的硬件錢包資訊。
選擇並下載您的硬件錢包對應藍牙韌體的最新版本。
依照網站上提供的指示安裝韌體,並在您的 OneKey 硬件錢包上確認安裝。
步驟二:在您的 OneKey 硬件錢包上取得 Checksum
在您的 OneKey 硬件錢包上找到「關於設備 (About Device)」這一欄(通常在系統設定下)。
在您的 OneKey 硬件錢包設備上找到詳細的藍牙資訊。
您可以從「藍牙」處取得設備藍牙韌體的 Checksum 的前七位。
例如:2.3.1[96bb143-5affc8f]
「96bb143」 是您設備的藍牙韌體的版本 ID。
「5affc8f」 是您設備的藍牙韌體的 Checksum 的前七位。
步驟三:計算 GitHub 原始碼的 Checksum
訪問 OneKey GitHub 的 Release 頁面(選擇對應的硬件錢包型號):
OneKey Classic & Classic 1S: https://github.com/OneKeyHQ/bluetooth-firmware-classic/releases
找到您想要驗證的藍牙韌體版本。
點擊下載「Assets」下的 bin 檔案。
在您下載的 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 儲存庫公開儲存的對應開源程式碼的一致性,請參考這篇文章。