OneKeyがリリースしたオープンソースコードとファームウェアファイルの一貫性を認証します

OneKeyハードウェアウォレットは完全にオープンソースのファームウェアを特徴としています。関連製品のオープンソースファームウェアコードはOneKeyのGitHubリポジトリで閲覧できます。大量生産を目指したファームウェアファイルが正式にリリースされる前に、OneKeyチームはGitHubの自動ビルドツール(GitHub CI)を使用して、各ファームウェアリポジトリからファームウェアソースコードをコンパイルし、パッケージ化します。その後、ファイルは内部のOneKeyスタッフによって署名され、正式にリリースされます。

この記事では、公式チームのMulti-Sigの前後でファイルのチェックサムを比較することにより、ファームウェアファイルとオープンソースコードの一貫性を確認する自己検証方法を提供します。

異なるファイルのソースデータの一貫性をSHA-256暗号ハッシュ関数を使用して確認する方法については、この記事を参照してください。

オープンソースファームウェアリポジトリ

OneKey Pro
OneKey Classic 1S
OneKey Classic
OneKey Touch
OneKey Mini

ファームウェアのリリースプロセス

公式の標準ファームウェアまたはBluetoothファームウェアがリリースの準備ができたとき、OneKeyチームは対応するリポジトリのActionを実行してオープンソースコードをコンパイルします。コンパイルが成功すると、ファイルはGitHub Artifactsストレージにアップロードされ、チームが内部のMulti-Sigを完了するのを待ちます。その後、OneKeyのCDNに配置されます。 config.json ファイルを更新した後、OneKeyアプリと OneKeyファームウェア更新ウェブサイト からユーザーにアップデート通知が送られ、ファームウェアのアップグレードを促します。具体的なプロセスについては、以下の図を参照してください。

onekey github verifiy.png

検証対象

  1. "OneKeyチームが署名したファームウェアファイル"がOneKeyのオープンソースリポジトリの"GitHub CIが事前に署名したファームウェアファイル"から派生したものであることを確認します。
  2. "OneKeyチームが署名したファームウェアファイル"と"OneKey公式CDNに保存されたファームウェアファイル"の一貫性を確認します。

検証の前提条件

標準ファームウェア Bluetoothファームウェア
✔  GitHub CIからの事前署名ファームウェアファイル (署名なし)
  • 公式のOneKeyハードウェアファームウェアGitHubリリースに移動します: https://github.com/OneKeyHQ/firmware/releases
  • 検証したいファームウェアバージョンを見つけて、GitHub Actionリンクをクリックします。

github action.png

  • Artifactsの下のファームウェア名をクリックしてダウンロードします(GitHubへのログインが必要です)。

2.png

✔  OneKeyチームによって署名されたファームウェアファイル (署名あり)
  • 公式のOneKeyハードウェアファームウェアGitHubリリースに移動します: https://github.com/OneKeyHQ/firmware/releases
  • 検証したいファームウェアバージョンを見つけます。
  • Assetsの下のbinファイルをクリックしてダウンロードします。

github release bin.png

✔  OneKey公式CDNに保存されたファームウェアファイル (署名あり)
  • OneKey CDNファイルに移動します: https://data.onekey.so/config.json

  • 検証したいファームウェアバージョンを見つけます。
  • "url"フィールドの下のリンクをコピーします。
  • 新しいブラウザウィンドウで開くと、binファイルが自動的にダウンロードされます。

3.png

検証手順

以下は、先に設定した2つのターゲットの検証手順です:

標準ファームウェア Bluetoothファームウェア
ターゲット1の検証プロセス
  • ターミナルを開きます。
  • 以下のコマンドを実行します(OneKeyチームによって署名されたファームウェアファイル) :
    • tail -c +1024 /path/to/(file path) | shasum -a 256
  • 以下のコマンドを実行します(GitHub CIからの事前署名ファームウェアファイル):
    • tail -c +1024 /path/to/(file path) | shasum -a 256
  • 2つのコマンドによって生成されたチェックサムを比較します。結果が一致した場合、"OneKeyチームが署名したファームウェアファイル"OneKeyのオープンソースリポジトリの"GitHub CIが事前に署名したファームウェアファイル"から派生したものであることが確認できます。

7.png

標準ファームウェアでは、1024バイトの署名結果がCIバージョンのファームウェアに追加され、デバイスの起動時にブートローダーによって検証されます。

ターゲット2の検証プロセス
  • ターミナルを開きます。
  • 以下のコマンドを実行します(OneKeyチームによって署名されたファームウェアファイル):
    • shasum -a 256 (file path)
  • 以下のコマンドを実行します(OneKey公式CDNに保存されたファームウェアファイル):
    • shasum -a 256 (file path)
  • 2つのコマンドによって生成されたチェックサムを比較します。結果が一致した場合、2つのファームウェアファイルのコードの一貫性が確認されます。

6.png

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています