
Sfida di hacking per Raspberry Pi RP2350: estrai un segreto OTP a 128 bit protetto da secure boot e blocco OTP, con script di configurazione e firmware per le schede Pico 2.
Benvenuti alla sfida di hacking e al bug bounty del Raspberry Pi RP2350!
Guardate il nostro breve video esplicativo:

Congratulazioni ai 4 vincitori! Leggete tutto su di loro qui.
Un enorme ringraziamento a Thomas Roth e al team di Hextree.io per averci aiutato a sviluppare e lanciare questa sfida nel 2024!
La RP2350 Hacking Challenge si è conclusa.
Ci sono state alcune candidature fantastiche! Annunceremo i vincitori e pubblicheremo i dettagli il 14 gennaio 2025.
Non è ancora stata segnalata alcuna violazione.
Raddoppiamo il premio a $20.000!
Abbiamo esteso la durata della sfida, che ora si protrae fino a mezzanotte del 31 dicembre 2024 (ora del Regno Unito)
L'obiettivo è semplice: trovare un attacco che permetta di estrarre un segreto nascosto nella ROW 0xc08 dell'OTP - il segreto è lungo 128 bit ed è protetto da OTP_DATA_PAGE48_LOCK1 e dal secure boot dell'RP2350!
Se pensate di aver trovato una violazione, scriveteci a [email protected] con i dettagli - vi spediremo un Pico2 con un segreto personalizzato nascosto al suo interno. Se riuscite a estrarlo, vincete i $20.000!
Buona fortuna!
Per questa sfida apporteremo le seguenti modifiche persistenti e irreversibili al vostro RP2350:
crit1.secure_boot_enable (ma con chiavi pubbliche)crit1.debug_disableec_private_key.pem e ec_public_key.pem. Se volete generare le vostre chiavi potete eseguire keygen.sh per generarne di nuove usando openSSL../write_otp_secret.sh - questa operazione è irreversibile, poiché non possiamo "cancellare" l'OTP../read_otp_secret.shmkdir buildcd buildcmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..makecd ..enable_secureboot.sh (Questo abilita irreversibilmente il secure-boot! Assicuratevi di conservare un backup delle vostre chiavi!)
La versione debug mostra come leggere il segreto OTP che dovete estrarre, e fornisce anche un output di debug su ciò che accade nel chip.
Poiché i printf ecc. potrebbero essere suscettibili ad attacchi di fault-injection, li abbiamo disabilitati nella versione secure.
Il nostro Pico 2 "golden" della sfida eseguirà la versione secure del firmware, con il binario copiato in RAM.
Partecipando a questa sfida abilitate permanentemente il secure-boot sul vostro dispositivo.
Qualsiasi firmware vogliate installare dovrete firmarlo voi stessi. Potete abilitare
la firma per altri progetti semplicemente aggiungendo questo al CMakeLists.txt (deve essere sopra pico_add_extra_outputs) e copiando
ec_private_key.pem nella vostra directory sorgente.
# Signing and hashing
pico_sign_binary(project_name ${CMAKE_CURRENT_SOURCE_DIR}/ec_private_key.pem)
pico_hash_binary(project_name)
pico_set_otp_key_output_file(project_name ${CMAKE_CURRENT_LIST_DIR}/otp.json)
Consultate qui i termini, le condizioni e le regole di questa sfida.
lock_chip.shrp2350_hacking_challenge_debug_version.uf2 oppure rp2350_hacking_challenge_secure_version.uf2