
Desafío de hacking de Raspberry Pi RP2350: extrae un secreto OTP de 128 bits protegido por arranque seguro y bloqueo OTP, con scripts de configuración y firmware para placas Pico 2.
¡Bienvenido al desafío de hacking y bug bounty del Raspberry Pi RP2350!
Mira nuestro vídeo explicativo rápido:

¡Enhorabuena a los 4 ganadores! Lee sobre todos ellos aquí.
¡Un enorme agradecimiento a Thomas Roth y al equipo de Hextree.io por ayudarnos a desarrollar y lanzar este desafío allá por 2024!
El Desafío de Hacking del RP2350 ha concluido.
¡Ha habido algunas contribuciones fantásticas! Anunciaremos los ganadores y publicaremos los detalles el 14 de enero de 2025.
Todavía no se ha reportado ninguna vulneración.
¡Estamos duplicando el premio a $20,000!
Hemos ampliado el plazo del desafío, ahora se extiende hasta la medianoche del 31 de diciembre de 2024 (hora del Reino Unido)
El objetivo es sencillo: Encuentra un ataque que te permita volcar un secreto oculto en OTP ROW 0xc08 - el secreto tiene 128 bits de longitud, ¡y está protegido por OTP_DATA_PAGE48_LOCK1 y el arranque seguro del RP2350!
Si crees que has encontrado una vulneración, escríbenos a [email protected] con los detalles - te enviaremos un Pico2 con un secreto personalizado oculto en él. Si consigues extraerlo, ¡ganas los $20,000!
¡Buena suerte!
Para este desafío realizaremos los siguientes cambios persistentes e irreversibles en tu RP2350:
crit1.secure_boot_enable (pero con claves públicas)crit1.debug_disableec_private_key.pem y ec_public_key.pem. Si quieres generar tus propias claves puedes ejecutar keygen.sh para generar nuevas usando openSSL../write_otp_secret.sh - esto es irreversible, ya que no podemos "borrar" la OTP../read_otp_secret.shmkdir buildcd buildcmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..makecd ..enable_secureboot.sh (¡Esto habilita el arranque seguro de forma irreversible! ¡Asegúrate de mantener una copia de seguridad de tus claves!)
La versión de depuración muestra cómo leer el secreto OTP que necesitas extraer, y también proporciona algo de salida de depuración sobre lo que está ocurriendo en el chip.
Como los printfs, etc. podrían ser susceptibles a ataques de inyección de fallos, los hemos deshabilitado en la versión segura.
Nuestro Pico 2 de desafío "golden" ejecutará la versión segura del firmware, con el binario copiado a la RAM.
Al participar en este desafío estás habilitando permanentemente el arranque seguro en tu dispositivo.
Cualquier firmware que quieras instalar en el firmware tendrás que firmarlo tú mismo. Puedes habilitar
la firma para otros proyectos simplemente añadiendo esto al CMakeLists.txt (esto debe estar por encima de pico_add_extra_outputs) y copiando el
ec_private_key.pem a tu directorio de código fuente.
# 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)
Consulta aquí los términos, condiciones y reglas de este desafío.
lock_chip.shrp2350_hacking_challenge_debug_version.uf2 o rp2350_hacking_challenge_secure_version.uf2