광자 방출로 유도한 레이저 결함 주입으로 RP2350의 보안 디버그 활성화

1 week ago 27

RP2350 A4에서 영구적으로 비활성화한 디버그 기능을 레이저 결함 주입으로 다시 활성화해, Secure 영역의 메모리 접근과 코어 제어에 성공함 광자 방출 현미경(PEM) 으로 DEBUGEN 비트 변화에 따른 발광 위치를 좁힌 뒤, 수 마이크로미터 떨어진 두 지점에 레이저를 반복 조사해 Secure 디버그를 활성화함 복구 리셋(rescue reset) 으로 펌웨어 실행 전에 칩을 대기시켜 OTP 런타임 잠금이 적용되지 않도록 한 뒤, 해킹 챌린지 구성의 128비트 비밀값 전체를 추출함 DEBUGEN_LOCK 은 소프트웨어 쓰기를 막지만 레이저로 인한 비트 변경은 막지 못했으며, 펌웨어 기반 감시와 접근 제한도 이번 부팅 전 추출을 방지하지 못함 공격에는 파괴적 물리 접근, 하드웨어 보안 전문성, 약 25만 달러의 실험 장비가 필요하며, OTP 설정부터 제어 레지스터와 리셋 동작까지 전체 보안 강제 경로를 검토해야 함 RP2350의 보안 모델과 디버그 우회 경로 RP2350은 부팅 시 각 프로세서 소켓에서 Arm Cortex-M33 또는 RISC-V Hazard3를 선택할 수 있는 듀얼코어 마이크로컨트롤러임 OTP에 저장한 공개키 지문으로 서명된 펌웨어를 인증하는 보안 부팅, Armv8-M TrustZone, 영구 디버그 비활성화 설정을 지원함 클록이나 전원 조작에 따른 타이밍 교란을 감지하기 위한 글리치 감지기도 포함함 Raspberry Pi는 RP2350 Hacking Challenge로 보안 검증을 장려해 왔으며, 첫 챌린지는 원래 칩을 대상으로 2024년 8~12월 진행됨 여러 발견 사항을 수정한 뒤 출시한 A4 리비전이 이번 실험 대상임 OTP 메모리에는 영구 보안 설정과 부팅 공개키 지문을 저장하며, 각 비트는 한 번만 0에서 1로 변경할 수 있음 128바이트 페이지마다 PAGEn_LOCK0이 선택적 읽기/쓰기 키와 키 미입력 시 동작을 설정함 PAGEn_LOCK1의 LOCK_S와 LOCK_NS는 하드웨어가 강제하는 Secure/Non-secure 권한으로, 읽기/쓰기에서 읽기 전용이나 접근 불가로만 강화할 수 있음 RP2350 데이터시트에 따르면 중요 플래그는 연속된 OTP 8개 행에 걸친 3-of-8 투표 방식으로, 잠금 비트는 다수결을 사용하는 3중 중복 방식으로 인코딩됨 런타임 잠금(소프트 잠금) 은 OTP 리셋 시 영구 LOCK_S/LOCK_NS 값으로 초기화됨 펌웨어는 다음 OTP 리셋까...

Read Entire Article