
Défi de hacking du Raspberry Pi RP2350 : extraire un secret OTP de 128 bits protégé par le secure boot et le verrouillage OTP, avec des scripts d'installation et un firmware pour les cartes Pico 2.
Bienvenue au défi de hacking et au bug bounty Raspberry Pi RP2350 !
Regardez notre vidéo explicative rapide :

Félicitations aux 4 gagnants ! Découvrez-les tous ici.
Un immense merci à Thomas Roth et à l'équipe de Hextree.io pour nous avoir aidés à développer et lancer ce défi en 2024 !
Le défi de hacking RP2350 est terminé.
Nous avons reçu des soumissions fantastiques ! Nous annoncerons les gagnants et publierons les détails le 14 janvier 2025.
Aucune faille n'a encore été signalée.
Nous doublons le prix à 20 000 $ !
Nous avons prolongé la durée du défi, il se déroule désormais jusqu'à minuit le 31 décembre 2024 (heure du Royaume-Uni)
L'objectif est simple : trouvez une attaque qui vous permet d'extraire un secret caché dans OTP ROW 0xc08 - le secret fait 128 bits de long, et est protégé par OTP_DATA_PAGE48_LOCK1 et le secure boot du RP2350 !
Si vous pensez avoir trouvé une faille, envoyez-nous un email à [email protected] avec les détails - nous vous enverrons un Pico2 avec un secret personnalisé caché à l'intérieur. Si vous parvenez à l'extraire, vous gagnez les 20 000 $ !
Bonne chance !
Pour ce défi, nous effectuerons les modifications persistantes et irréversibles suivantes sur votre RP2350 :
crit1.secure_boot_enable (mais avec des clés publiques)crit1.debug_disableec_private_key.pem et ec_public_key.pem. Si vous souhaitez générer vos propres clés, vous pouvez exécuter keygen.sh pour en générer de nouvelles avec openSSL../write_otp_secret.sh - c'est irréversible, car nous ne pouvons pas « effacer » l'OTP../read_otp_secret.shmkdir buildcd buildcmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..makecd ..enable_secureboot.sh (Cela active irréversiblement le secure-boot ! Assurez-vous de conserver une sauvegarde de vos clés !)
La version debug montre comment lire le secret OTP que vous devez extraire, et fournit également quelques sorties de débogage sur ce qui se passe dans la puce.
Comme les printfs etc. pourraient être sensibles aux attaques par injection de fautes, nous les avons désactivés dans la version sécurisée.
Notre Pico 2 de défi « golden » exécutera la version sécurisée du firmware, avec le binaire copié en RAM.
En participant à ce défi, vous activez de manière permanente le secure-boot sur votre appareil.
Tout firmware que vous souhaitez installer doit être signé par vous-même. Vous pouvez activer
la signature pour d'autres projets en ajoutant simplement ceci au CMakeLists.txt (cela doit être au-dessus de pico_add_extra_outputs) et en copiant le
ec_private_key.pem dans votre répertoire source.
# 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)
Veuillez consulter ici pour les conditions générales et les règles de ce défi.
lock_chip.shrp2350_hacking_challenge_debug_version.uf2 soit rp2350_hacking_challenge_secure_version.uf2