Zum Hauptinhalt springen

Überprüfung der OneKey Pro-Firmware mit Open-Source-Code

Heute aktualisiert

Dieser Artikel führt Sie durch den Prozess, zu überprüfen, ob die auf Ihrem OneKey Pro Hardware-Wallet installierte Firmware mit der Open-Source-Firmware übereinstimmt, die im offiziellen OneKey GitHub-Repository veröffentlicht wurde. Durch den Vergleich der SHA-256-Prüfsumme können Sie sicherstellen, dass die Firmware aus einer zuverlässigen Quelle stammt und die Sicherheit Ihres Geräts gewährleisten.


Was ist eine Prüfsumme?

Eine Prüfsumme ist eine Methode zur Überprüfung der Datenintegrität. Sie berechnet aus einer Datei eine alphanumerische Sequenz mit fester Länge, die anschließend verwendet werden kann, um zu bestätigen, ob die Datei verändert wurde.


⚠️ Wichtige Hinweise

  • Der Secure-Element-Chip in jedem OneKey-Hardware-Wallet ist werkseitig mit der offiziellen Multisignaturprüfung vorinstalliert.

  • Wenn das Gerät mit inoffizieller Firmware geflasht wird, zeigt das Gerät beim Start „Unoffizielle Firmware" an.

  • Dieser Artikel bietet zusätzliche Schritte, um zu bestätigen, ob die aktuelle Firmware exakt mit der auf GitHub veröffentlichten Version übereinstimmt.


Verifizierungsprozess

Schritt 1: Laden Sie die neueste offizielle Firmware herunter und installieren Sie sie

  1. Verbinden Sie Ihr OneKey-Hardware-Wallet über ein USB-Kabel mit Ihrem Computer.

  2. Die Website erkennt automatisch Ihre Gerätedaten. Anschließend können Sie die neueste Firmware auswählen und installieren.

  3. Befolgen Sie die Anweisungen auf dem Bildschirm und bestätigen Sie die Installation auf Ihrem Hardware-Wallet.


Schritt 2: Prüfsumme der Geräte-Firmware abrufen

  1. Navigieren Sie auf Ihrem Hardware-Wallet zu Systemeinstellungen → Geräteinfo.

  2. Im Bereich mit den Firmware-Informationen sehen Sie die Firmware-Version und deren Prüfsumme.

    • Beispiel: 4.9.0[fccbac8-5ff2c88]

      • fccbac8 → Firmware-Versions-ID

      • 5ff2c88 → Erste sieben Zeichen der Firmware-Prüfsumme


Schritt 3: Prüfsumme der Firmware von GitHub berechnen

  1. Suchen Sie die Firmware-Version, die zu Ihrem Gerät passt, und laden Sie die .bin-Datei unter Assets herunter.

⚠️ Hinweis: Die .bin-Datei enthält mehrere Teile:

  • MCU (Hauptcontroller-Firmware)

  • Eine oder mehrere Secure Element (SE)-Firmwares

  • Signaturinformationen

Für die Überprüfung müssen Sie nur die MCU-Firmware extrahieren.


Firmware extrahieren

Speichern Sie das folgende Skript als split_firmware.sh (für macOS/Linux):

#!/bin/bash

if [ $# -ne 1 ]; then
echo "Verwendung: $0 <binary_file>"
exit 1
fi

INPUT_FILE="$1"


TOTAL_FILE_SIZE=$(stat -f %z "$INPUT_FILE")

MAGIC=$(dd if="$INPUT_FILE" bs=1 count=4 2>/dev/null)

calculate_total_size() {
local offset=$1
local size_bytes=$(dd if="$INPUT_FILE" bs=1 skip="$offset" count=4 2>/dev/null | od -An -tu4)
echo $((size_bytes + 1024))
}

if [[ "$MAGIC" == "TRZF" ]]; then
TOTAL_SIZE=$(calculate_total_size 12)
elif [[ "$MAGIC" == "OKTV" ]]; then
HEAD1_SIZE=$(dd if="$INPUT_FILE" bs=1 skip=4 count=4 2>/dev/null | od -An -tu4)
HEAD1_SIZE=$(echo $HEAD1_SIZE)
FILE_SIZE_BYTES=$(dd if="$INPUT_FILE" bs=1 skip=$((HEAD1_SIZE + 12)) count=4 2>/dev/null | od -An -tu4)
TOTAL_SIZE=$((HEAD1_SIZE + 1024 + FILE_SIZE_BYTES))
else
echo "Unbekanntes Dateiformat"
exit 1
fi

dd if="$INPUT_FILE" bs=1 count="$TOTAL_SIZE" of=firmware.bin 2>/dev/null

REMAINING_SIZE=$((TOTAL_FILE_SIZE - TOTAL_SIZE))
if [ $REMAINING_SIZE -gt 0 ]; then
SECOND_HEADER=$(dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" count=4 2>/dev/null)
if [[ "$SECOND_HEADER" == "TF89" ]]; then
dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" of=se.bin 2>/dev/null
echo "Erfolgreich aufgeteilt: firmware.bin und se.bin extrahiert."
else
echo "Zusätzliche Daten vorhanden, aber zweiter Datei-Header ist nicht 'TF89'. Es wurde nur firmware.bin extrahiert."
fi
else
echo "Keine zusätzlichen Daten, es wurde nur firmware.bin extrahiert."
fi

Führen Sie das Skript aus:

chmod +x split_firmware.sh ./split_firmware.sh onekey-firmware.bin

Nach der Ausführung erhalten Sie firmware.bin (den MCU-Firmware-Inhalt).


Prüfsumme berechnen

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

tail -c +2561 firmware.bin | shasum -a 256 -b

Dies gibt einen langen SHA-256-Hash aus, z. B.:

abcdef1234567890... -

Nehmen Sie die ersten sieben Zeichen, z. B. abcdef1.


Schritt 4: Ergebnisse vergleichen

  • Vergleichen Sie die ersten sieben Zeichen der berechneten Prüfsumme mit der Prüfsumme, die auf Ihrem Gerät angezeigt wird.

  • Wenn sie übereinstimmen, bedeutet dies, dass Ihre Firmware identisch mit dem auf GitHub veröffentlichten Open-Source-Code ist.


✅ Warum das wichtig ist

  • Sie können sicher sein, dass Ihr Gerät Firmware aus dem offiziellen Open-Source-Repository von OneKey verwendet.

  • Zusammen mit der im Secure Element integrierten Multisignaturprüfung stellt dies die Integrität und Sicherheit der Firmware Ihres Hardware-Wallets sicher.

Hat dies deine Frage beantwortet?