Skip to content

Instantly share code, notes, and snippets.

@openoms
Last active May 4, 2025 06:33
Show Gist options
  • Save openoms/3df017ad9183cbd64b99152049905473 to your computer and use it in GitHub Desktop.
Save openoms/3df017ad9183cbd64b99152049905473 to your computer and use it in GitHub Desktop.
Blockstream Jade links

A $46-os S3 pro (GC0308 kamerás) már tökéletesen működik, így gyakorlatilag megkapjuk a Jade Plus verziót, töredék áron. Biztonsági szint azonos a gyárival secure boot esetén. Hajrá!

telegram-cloud-photo-size-4-5994646624699271224-y

Vásárlás:

PIN szerver:

  • https://t.me/huszonegy/1954/36959 A Blockstream Jade hardvertárca egyedi biztonsági modellt használ az úgynevezett „blind oracle” (vak jós) segítségével, amely egy külső szerveren futó titkosítási mechanizmus. A Jade PIN-alapú védelmet alkalmaz, amely három kulcs kombinációjára épül:

    A felhasználó által megadott PIN

    A Jade titkos kulcsa

    A szerver (oracle) titkos kulcsa

Hogyan működik?

A felhasználó PIN-t állít be az inicializálás során.

A Jade és az oracle szerver egy titkos csatornát hoznak létre egy Elliptic Curve Diffie-Hellman (ECDH) kulcscsere segítségével.

A PIN nem kerül közvetlenül tárolásra a készüléken, hanem része a kulcsgenerálási folyamatnak.

Ha a felhasználó helyesen adja meg a PIN-t, a szerver elküldi a titkos részét a Jade-nek, így a titkosítás feloldható.

Védelem és biztonsági előnyök

A PIN nem ellenőrizhető közvetlenül, csak az oracle szerver segítségével.

Ha háromszor rossz PIN-t adunk meg, a szerver és a Jade is törli a kulcsokat, így az eszköz nem törhető brute force támadással.

A helyreállító kulcs (seed) erősen titkosított, így ha a Jade eszközt ellopják, az önmagában nem elegendő a pénzeszközök ellopásához.

Mi történik, ha egy támadó megszerzi a PIN-t?

A támadó önmagában a PIN birtokában nem tud hozzáférni a titkos kulcshoz, mert az ECDH kulcscsere során a szerver és a Jade közötti interakció is szükséges.

Ha túl sok rossz próbálkozás történik, a szerver törli a szükséges kulcsot, így az eszköz használhatatlanná válik a támadó számára.

Ez a megoldás lehetővé teszi a Blockstream Jade számára, hogy nyílt forráskódú maradjon, mivel nincs szüksége beépített biztonsági chipre (secure element). A vak jós szerver gyakorlatilag ezt a funkciót tölti be anélkül, hogy közvetlenül hozzáférne a felhasználói adatokhoz.

Secure boot (Windows)

  1. pontositanod kell majd az mkdefaults.dat.json file-t "CONFIG_SECURE_BOOT_SIGNING_KEY="c:/jade-diy-v2.pem"", (megkell adni a teljes utvonalat)
  2. C:\Espressif\tools\idf-python\3.11.2 copy python.exe es nevezd at python3.exe
  3. python tools\mkdefaults.py configs\sdkconfig_display_ttgo_tdisplays3procamera.defaults NDEBUG SECURE
  4. espsecure.py generate_signing_key --version 2 c:/jade-diy-v2.pem
  5. idf.py bootloader
  6. bootloader.bin felirasa (az eszkozt download modba kell inditani)
  7. idf.py build
  8. jade.bin felirasa
  9. idf.py monitor
  10. varni majd eszkoz ujrainditasa
  11. 1-2 perc amig lefut a secure boot
  12. kesz

Secure boot using TailsOS

  • boot with persistent storage and admin rights

INSTALL DEPS

cd ~/Persistent
mkdir jade-diy && cd jade-diy
mkdir esp
cd esp
git clone -b v5.4 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf && git checkout 67c1de1eebe095d554d281952fde63c16ee2dca0 && ./install.sh --enable-gdbgui esp32 esp32s3
python tools/idf_tools.py install qemu-xtensa

. ~/Persistent/jade-diy/esp/esp-idf/export.sh

## check: 
# $ ls -l /dev/ttyACM0                                                                                                                     14:37:07
# crw-rw----+ 1 root dialout 166, 0 Apr 15 14:37 /dev/ttyACM0
sudo usermod -aG dialout $USER

git clone --recursive https://github.com/Blockstream/Jade.git /persistent/jade
cd ~/Persistent/jade-diy/jade
git submodule update --init --recursive
cp configs\sdkconfig_display_ttgo_tdisplays3procamera.defaults sdkconfig.defaults
  • Edit mkdefaults.dat.json file (use a full path)
"CONFIG_SECURE_BOOT_SIGNING_KEY=/home/amnesia/Persistent/jade-diy/jade-diy-v2.pem",  
python tools\mkdefaults.py configs\sdkconfig_display_ttgo_tdisplays3procamera.defaults NDEBUG SECURE

GENERATE THE SIGNING KEY

idf.py secure-generate-signing-key --version 2 /home/amnesia/Persistent/jade-diy/jade-diy-v2.pem
  • alternative commands
espsecure.py generate_signing_key --version 2 /home/amnesia/Persistent/jade-diy/jade-diy-v2.pem
openssl genrsa -out /home/amnesia/Persistent/jade-diy/jade-diy-v2.pem 3072

WRITE

# write bootloader.bin (switch the device to download mode)
idf.py bootloader
# write jade.bin
idf.py build
idf.py monitor
# wait then reboot the device
# 1-2 mins for the secure boot to run
# DONE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment