Ana içeriğe geç

OneKey Pro Firmware'nin Kaynak Kodu ile Doğrulanması

Bu hafta güncellendi

Bu makale, OneKey Pro donanım cüzdanınızda yüklü olan aygıt yazılımının, resmi OneKey GitHub deposunda yayınlanan açık kaynaklı aygıt yazılımıyla eşleştiğini doğrulama sürecinde size rehberlik edecektir. SHA-256 Sağlama Toplamını karşılaştırarak, aygıt yazılımının güvenilir bir kaynaktan geldiğinden emin olabilir ve cihazınızın güvenliğini garanti edebilirsiniz.


Sağlama Toplamı Nedir?

Sağlama Toplamı, veri bütünlüğünü doğrulama yöntemidir. Bir dosyadan, dosyanın değiştirilip değiştirilmediğini doğrulamak için kullanılabilecek sabit uzunlukta alfanümerik bir dizi hesaplar.


⚠️ Önemli Notlar

  • Her OneKey donanım cüzdanının içindeki güvenli eleman çipi fabrikada resmi çoklu imza doğrulaması ile önceden yüklenmiştir.

  • Cihaz, resmi olmayan aygıt yazılımı ile flaşlanırsa, cihaz başlatıldığında "Resmi Olmayan Aygıt Yazılımı" görüntüler.

  • Bu makale, mevcut aygıt yazılımının GitHub'da yayınlanan sürümle tam olarak eşleşip eşleşmediğini doğrulamak için ek adımlar sağlar.


Doğrulama Süreci

Adım 1: En Son Resmi Aygıt Yazılımını İndirin ve Kurun

  1. OneKey donanım cüzdanınızı bir USB kablosuyla bilgisayarınıza bağlayın.

  2. Web sitesi cihaz bilgilerini otomatik olarak algılayacaktır. Ardından en son aygıt yazılımını seçip kurabilirsiniz.

  3. Ekrandaki talimatları izleyin ve donanım cüzdanınızdaki kurulumu onaylayın.


Adım 2: Cihaz Aygıt Yazılımı Sağlama Toplamını Alın

  1. Donanım cüzdanınızda Sistem Ayarları → Cihaz Hakkında yolunu izleyin.

  2. Aygıt yazılımı bilgileri bölümünde, aygıt yazılımı sürümünü ve Sağlama Toplamını göreceksiniz.

    • Örnek: 4.9.0[fccbac8-5ff2c88]

      • fccbac8 → Aygıt Yazılımı Sürüm Kimliği

      • 5ff2c88 → Aygıt Yazılımı Sağlama Toplamının ilk yedi karakteri


Adım 3: GitHub'dan Aygıt Yazılımı Sağlama Toplamını Hesaplayın

  1. Cihazınızla eşleşen aygıt yazılımı sürümünü bulun ve Varlıklar altındaki .bin dosyasını indirin.

⚠️ Not: .bin dosyası birden fazla parça içerir:

  • MCU (ana denetleyici aygıt yazılımı)

  • Bir veya daha fazla Güvenli Eleman (SE) aygıt yazılımı

  • İmza bilgileri

Doğrulama için, yalnızca MCU aygıt yazılımını ayıklamanız gerekir.


Aygıt Yazılımını Ayıklama

Aşağıdaki komut dosyasını split_firmware.sh olarak kaydedin (macOS/Linux için):

#!/bin/bash

if [ $# -ne 1 ]; then
echo "Usage: $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 "Unknown file format"
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 "Split successfully: firmware.bin and se.bin extracted."
else
echo "Extra data exists but second file header is not 'TF89'. Only firmware.bin is extracted."
fi
else
echo "No extra data, only firmware.bin extracted."
fi

Komut dosyasını çalıştırın:

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

Çalıştırmadan sonra firmware.bin (MCU aygıt yazılımı gövdesini) elde edeceksiniz.


Sağlama Toplamını Hesaplayın

Terminalinizde aşağıdaki komutu çalıştırın:

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

Bu, uzun bir SHA-256 hash çıktısı verecektir, örn.:

abcdef1234567890-

Hesaplanan Sağlama Toplamının ilk yedi karakterini alın, örn. abcdef1.


Adım 4: Sonuçları Karşılaştırın

  • Hesaplanan Sağlama Toplamının ilk yedi karakterini cihazınızda görüntülenen Sağlama Toplamı ile karşılaştırın.

  • Eşleşirlerse, bu, aygıt yazılımınızın GitHub'da yayınlanan açık kaynak koduyla aynı olduğu anlamına gelir.


✅ Neden Önemlidir

  • Cihazınızın doğrudan OneKey'in resmi açık kaynak deposundan oluşturulan aygıt yazılımını çalıştırdığından emin olabilirsiniz.

  • Güvenli elemanın yerleşik çoklu imza doğrulaması ile birlikte bu, donanım cüzdanı aygıt yazılımınızın bütünlüğünü ve güvenliğini garanti eder.

Bu cevap sorunuzu yanıtladı mı?