メインコンテンツにスキップ

OneKey ハードウェアウォレットデバイスにインストールされたファームウェアのオープンソースコード検証

OneKey avatar
対応者:OneKey
今週アップデートされました

この記事では、OneKeyハードウェアウォレットデバイスにインストールされたファームウェアの一貫性を、GitHub上の対応するオープンソースコードと認証するためのステップバイステップガイドを提供します。

重要

OneKeyハードウェアウォレットに内蔵されているセキュリティチップは、製造時に公式のマルチシグネチャで署名されています。ハードウェアウォレットのファームウェアがハッカーによって悪意を持って改ざんされた場合、起動時に「非公式ファームウェア検出(Unofficial Firmware Detected)」というメッセージが表示されます。

プロセス

標準ファームウェア Bluetoothファームウェア

ステップ1:最新のファームウェアをダウンロードしてインストールする

  • OneKeyハードウェアウォレットをUSBケーブルでコンピュータに接続します。

  • ハードウェアウォレットデバイスが検出されると、ウェブサイトにウォレット情報が表示されます。

  • ハードウェアウォレットのファームウェアの最新バージョンを選択してダウンロードします。

  • ウェブサイト上の指示に従ってファームウェアをインストールし、OneKeyハードウェアウォレットで確認します。

ステップ2:OneKeyハードウェアウォレットでチェックサムを取得する

  • OneKeyハードウェアウォレットで「デバイスについて」に移動します。

  • OneKeyハードウェアウォレットデバイスの詳細なファームウェア情報を見つけます。

  • あなたのデバイスのファームウェア情報から、ファームウェアのチェックサムの最初の7桁を取得できます。

    • 例えば、4.9.0[fccbac8-5ff2c88]

    • "fccbac8"はデバイスファームウェアのバージョンIDです。

    • "5ff2c88"はデバイスファームウェアのチェックサムの最初の7桁です。

ステップ3:GitHubソースコードのチェックサムを計算する

  • OneKeyファームウェアGitHubリリースウェブサイトを訪れます:https://github.com/OneKeyHQ/firmware/releases

  • チェックサムを計算したいファームウェアバージョンを見つけます。

  • Assetsの下のbinファイルをダウンロードするためにクリックします。

github release bin.png
  • オペレーティングシステムでターミナルを開きます(macOS/Linuxが必要)。

  • ご利用のOneKeyハードウェアウォレットモデルに基づいて、Checksumを計算するための対応するコマンドを選択して実行してください。

    • OneKey Classic & OneKey Mini:

      • tail -c +1025 /path/to/(file path) | shasum -a 256 -b

    • OneKey Touch:

      • tail -c +2561 /path/to/(file path) | shasum -a 256 -b

ステップ4:チェックサムを比較する

  • ステップ3で手動で計算したチェックサムの最初の7桁と、ステップ2で取得したデバイスのチェックサムを比較してください。

  • 2つの値が一致する場合、インストールされたファームウェアがGitHub上のオープンソースコードと一致していることを示します。

ステップ1:最新のファームウェアをダウンロードしてインストールする

  • OneKeyハードウェアウォレットをUSBケーブルでコンピュータに接続します。

  • ハードウェアウォレットデバイスが検出されると、ウェブサイトにウォレット情報が表示されます。

  • ハードウェアウォレットのファームウェアの最新バージョンを選択してダウンロードします。

  • ウェブサイト上の指示に従ってファームウェアをインストールし、OneKeyハードウェアウォレットで確認します。

ステップ2:OneKeyハードウェアウォレットでチェックサムを取得する

  • OneKeyハードウェアウォレットで「デバイスについて」に移動します。

  • OneKeyハードウェアウォレットデバイスの詳細なファームウェア情報を見つけます。

  • あなたのデバイスのファームウェア情報から、ファームウェアのチェックサムの最初の7桁を取得できます。

    • 例えば、2.3.1[96bb143-5affc8f]

    • "96bb143"はデバイスファームウェアのバージョンIDです。

    • "5affc8f"はデバイスファームウェアのチェックサムの最初の7桁です。

ステップ3:GitHubソースコードのチェックサムを計算する

pro-bluetooth-firmware-github-release-signed.png
  • ダウンロードしたbinファイルがある同じフォルダでターミナルを開きます。(macOS/Linuxが必要)。

  • 以下のコマンドを使ってPythonを起動します: python3。(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-github-release.png

ステップ4:チェックサムを比較する

  • ステップ3で手動で計算したチェックサムの最初の7桁と、ステップ2で取得したデバイスのチェックサムを比較してください。

  • 2つの値が一致する場合、インストールされたファームウェアがGitHub上のオープンソースコードと一致していることを示します。

OneKeyチームがGitHubリリースで署名して公開したファームウェアファイルの一貫性と、OneKey GitHubリポジトリに公開保存されている対応するオープンソースコードとの一貫性を確認したい場合は、この記事を参照してください。

こちらの回答で解決しましたか?