Die Konsistenz der Firmware-Dateien mit dem von OneKey veröffentlichten Quellcode authentifizieren

Die OneKey-Hardware-Wallet verfügt über vollständig offene Firmware. Sie können den offenen Quellcode der Firmware für die entsprechenden Produkte im GitHub-Repository von OneKey einsehen. Bevor die für die Serienproduktion vorgesehenen Firmware-Dateien offiziell veröffentlicht werden, verwendet das OneKey-Team die Build-Automatisierungstools von GitHub (GitHub CI), um den Quellcode der Firmware aus den jeweiligen Firmware-Repositories zu kompilieren und zu erstellen. Die Dateien werden dann vom OneKey-Team signiert, bevor sie offiziell veröffentlicht werden.

Dieser Artikel bietet eine Selbstverifizierungsmethode, bei der die Checksumme der Dateien vor und nach der Multi-Signatur des offiziellen Teams verglichen wird, um die Konsistenz zwischen den Firmware-Dateien und dem offenen Quellcode zu überprüfen.

Für Methoden zur Überprüfung der Konsistenz der Quelldaten verschiedener Dateien mithilfe der SHA-256-Kryptographiefunktion (Vergleich der Checksummen) siehe diesen Artikel.

Open-Source-Firmware-Repositories

OneKey Pro
OneKey Classic 1S
OneKey Touch
OneKey Mini

Firmware-Release-Prozess

Wenn die offizielle Standard-Firmware oder die Bluetooth-Firmware zur Veröffentlichung bereit ist, führt das OneKey-Team die entsprechende Aktion im Repository aus, um den Quellcode zu kompilieren. Nach erfolgreicher Kompilierung werden die Dateien im GitHub-Artefaktspeicher hochgeladen und warten auf den Abschluss der internen Multi-Signatur des Teams, bevor sie in das CDN von OneKey gestellt werden. Nach der Aktualisierung der config.json Datei werden Aktualisierungsbenachrichtigungen über die OneKey App und die OneKey Firmware-Update-Website gesendet, um die Benutzer aufzufordern, ihre Firmware zu aktualisieren. Siehe das Diagramm unten für den spezifischen Prozess.

onekey github verifiy.png

Ziele

  1. Überprüfen, dass die "Von OneKey Team signierte Firmware-Datei" aus der "Von GitHub CI vor-signierten Firmware-Datei" im OneKey-Open-Source-Repository abgeleitet ist.
  2. Überprüfen der Konsistenz zwischen der "Von OneKey Team signierten Firmware-Datei" und der "Von OneKey offiziell im CDN gespeicherten Firmware-Datei."

Voraussetzungen

System-Firmware Bluetooth-Firmware
✔  GitHub CI vor-signierte Firmware-Datei herunterladen (nicht signiert)
  • Navigieren Sie zur offiziellen OneKey-Hardware-Firmware-GitHub Veröffentlichung: https://github.com/OneKeyHQ/firmware/releases
  • Finden Sie die Firmware-Version, die Sie überprüfen möchten, und klicken Sie auf den GitHub-Aktionslink.

github action.png

  • Klicken Sie auf den Firmware-Namen unter Artefakte, um herunterzuladen (ein Login bei GitHub ist erforderlich).

2.png

✔  OneKey Team signierte Firmware-Datei herunterladen (signiert)
  • Navigieren Sie zur offiziellen OneKey-Hardware-Firmware-GitHub Veröffentlichung: https://github.com/OneKeyHQ/firmware/releases
  • Finden Sie die Firmware-Version, die Sie überprüfen möchten.
  • Klicken Sie, um die Binärdatei unter Assets herunterzuladen.

github release bin.png

✔  OneKey offiziell im CDN gespeicherte Firmware-Datei herunterladen (signiert)
  • Navigieren Sie zur OneKey CDN-Datei: https://data.onekey.so/config.json
  • Finden Sie die Firmware-Version, die Sie überprüfen möchten. 
  • Kopieren Sie den Link im Feld "url".
  • Öffnen Sie ihn in einem neuen Browserfenster, um die Binärdatei automatisch herunterzuladen.

3.png

Schritte

Unten sind die Prüfungs Schritte für die beiden zuvor festgelegten Ziele:

System-Firmware Bluetooth-Firmware
Überprüfungsprozess Von GitHub CI vor-signierten Firmware- Datei (System)
  • Öffnen Sie das Terminal.
  • Führen Sie den folgenden Befehl aus (OneKey Team signierte Firmware-Datei):
    • tail -c +1024 /path/to/(dateipfad) | shasum -a 256
  • Führen Sie den folgenden Befehl aus (GitHub CI vor-signierte Firmware Datei):
    • tail -c +1024 /path/to/(dateipfad) | shasum -a 256
  • Vergleichen Sie die Checksummen, die von den beiden Befehlen generiert wurden. Wenn die Ergebnisse übereinstimmen, kann bestätigt werden, dass die "Von OneKey Team signierte Firmware-Datei" aus der "Von GitHub CI vor-signierten Firmware- Datei" im OneKey-Open-Source-Repository stammt.

7.png

Für die Systemfirmware wird ein 1024-Byte-Signaturergebnis zur CI-Version der Firmware hinzugefügt, das beim Start des Geräts vom Bootloader verifiziert wird.

Überprüfungsprozess Von OneKey Team signierte Firmware-Datei (System)
  • Öffnen Sie das Terminal.
  • Führen Sie den folgenden Befehl aus (OneKey Team signierte Firmware-Datei):
    • shasum -a 256 (dateipfad)
  • Führen Sie den folgenden Befehl aus (Von OneKey offiziell im CDN gespeicherte Firmware- Datei):
    • shasum -a 256 (dateipfad)
  • Vergleichen Sie die Checksummen, die von den beiden Befehlen generiert wurden. Wenn die Ergebnisse übereinstimmen, wird die Konsistenz des Codes der beiden Firmware-Dateien bestätigt.

6.png

War dieser Beitrag hilfreich?
1 von 1 fanden dies hilfreich