
Raspberry Pi RP2350 해킹 챌린지: 보안 부팅과 OTP 잠금으로 보호되는 128비트 OTP 비밀을 추출하며, Pico 2 보드용 설정 스크립트와 펌웨어를 포함합니다.
Raspberry Pi RP2350 해킹 챌린지 및 버그 바운티에 오신 것을 환영합니다!
4명의 우승자를 축하합니다! 우승자들에 대한 내용은 여기에서 확인하세요.
2024년에 이 챌린지를 개발하고 시작하는 데 도움을 주신 Thomas Roth와 Hextree.io 팀에 큰 감사를 드립니다!
RP2350 해킹 챌린지가 종료되었습니다.
환상적인 제출물들이 있었습니다! 2025년 1월 14일에 우승자를 발표하고 세부 내용을 공개하겠습니다.
아직 성공 사례가 보고되지 않았습니다.
상금을 $20,000로 두 배로 늘립니다!
챌린지 기간을 연장하여 이제 2024년 12월 31일 자정(영국 시간)까지 진행됩니다.
목표는 간단합니다: OTP ROW 0xc08에 숨겨진 비밀을 덤프할 수 있는 공격을 찾는 것입니다. 비밀은 128비트 길이이며, OTP_DATA_PAGE48_LOCK1과 RP2350의 보안 부팅으로 보호됩니다!
성공했다고 생각되면 세부 내용과 함께 [email protected]으로 이메일을 보내주세요. 커스텀 비밀이 숨겨진 Pico2를 보내드립니다. 이를 추출하는 데 성공하면 $20,000를 획득합니다!
행운을 빕니다!
이 챌린지를 위해 여러분의 RP2350에 다음과 같은 영구적이고 되돌릴 수 없는 변경을 수행합니다:
crit1.secure_boot_enable을 통한 보안 부팅 활성화 (단, 공개 키 사용)crit1.debug_disable을 통한 디버그 비활성화ec_private_key.pem 및 ec_public_key.pem. 자체 키를 생성하려면 keygen.sh를 실행하여 openSSL을 사용해 새 키를 생성할 수 있습니다../write_otp_secret.sh - OTP는 "지울" 수 없으므로 이 작업은 되돌릴 수 없습니다../read_otp_secret.sh를 실행하여 이 쓰기가 성공했는지 확인할 수 있습니다mkdir buildcd buildcmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..makecd ..enable_secureboot.sh를 실행하여 칩에서 보안 부팅을 활성화합니다 (이 작업은 보안 부팅을 되돌릴 수 없게 활성화합니다! 키 백업을 반드시 보관하세요!)
lock_chip.sh를 실행하세요디버그 버전은 추출해야 하는 OTP 비밀을 읽는 방법을 보여주며, 칩 내부에서 무슨 일이 일어나고 있는지에 대한 디버그 출력도 제공합니다.
printf 등은 폴트 인젝션 공격에 취약할 수 있으므로 보안 버전에서는 이를 비활성화했습니다.
우리의 "골든" 챌린지 Pico 2는 바이너리가 RAM에 복사된 상태로 보안 버전 펌웨어를 실행합니다.
이 챌린지에 참여함으로써 여러분은 기기에 보안 부팅을 영구적으로 활성화하게 됩니다.
설치하려는 모든 펌웨어는 직접 서명해야 합니다. CMakeLists.txt에 다음을 추가하기만 하면
다른 프로젝트에 대해서도 서명을 활성화할 수 있습니다 (이는 pico_add_extra_outputs 위에 있어야 합니다). 그리고
ec_private_key.pem을 소스 디렉토리에 복사하세요.
# 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)
이 챌린지의 약관, 조건 및 규칙은 여기를 참조하세요.
rp2350_hacking_challenge_debug_version.uf2 또는 rp2350_hacking_challenge_secure_version.uf2 중 하나를 복사합니다