부트 롬

Boot ROM

부트 ROM 또는 부트ROM은 컴퓨터 부팅에 사용되는 마스크 ROM의 일종이다.[1]

작전

전압이 안정화되고 하드웨어가 부팅을 시작할 준비가 되면 프로세서는 Boot ROM이 메모리에 매핑된 주소로 점프한다.그런 다음 부팅 ROM의 코드는 프로세서에 의해 실행된다.

그런 다음 부트 ROM은 부팅에 필요한 하드웨어 버스와 주변 장치를 초기화한다.어떤 경우에는 부트롬이 RAM을 초기화할 수 있고, 어떤 경우에는 부트로더에 달려 있다.

하드웨어 초기화가 끝나면 외부 주변장치(eMMC, microSD 카드 등) 또는 데이터 전송을 위한 버스의 특정 프로토콜(USB, UART 등)을 통해 부트 로더를 로드하려고 시도할 것이다.

의 많은 시스템에서는 부트롬이 부트 로더를 로딩하려고 하는 주변 장치나 버스, 그리고 그것을 시도하는 순서를 구성할 수 있다.이 구성은 시스템 내부전자 퓨즈를 그 정보를 인코딩하는 데 사용되는 칩에 불어 넣거나 부팅 시 시스템의 특정 핀을 높거나 낮은 칩에 올려놓음으로써 수행될 수 있다.

일부 부트 ROM은 부트 로더디지털 서명을 확인하고 실행을 거부하며 서명이 유효하지 않거나 인증된 키로 서명되지 않은 경우 부트를 중지할 수 있다.일부 부트로 서명 확인에 필요한 공개 키의 해시는 칩의 시스템 내부에 있는 전자 퓨즈로 인코딩된다. 부트롬의 일부 시스템도 퍼블릭 키 인프라를 지원하며 CA 공개 키의 해시는 대신 전자 퓨즈에 인코딩되며, 부트롬은 인증된 키로 해당 키를 CA 공개 키(전자 퓨즈에 해시가 인코딩된 키)로 검증하여 부트 로더가 서명되었는지 확인할 수 있다.[2][3]

그런 다음 이 기능을 사용하여 보안 기능을 구현하거나 신뢰 체인의 하드웨어 루트로 사용할 수 있지만, 일단 구성되면 사용자는 부트 로더를 원하는 것으로 교체할 수 있는 자유를 거부받는다.그 때문에 그것은 무료 소프트웨어 커뮤니티로부터 강한 우려를 불러일으켰다.[4]

부트 로더로 뛰기 직전에 칩의 일부 시스템도 메모리 매핑에서 부트롬을 제거하지만 다른 시스템도 그렇지 않아 이후 분석에서 부트롬을 덤프할 수 있다.[3]부트 ROM이 여전히 보이는 경우 부트 로더는 부트 ROM의 코드(때로는 문서화되기도 함)를 호출할 수 있다.

RAM으로 일시 중단

칩의 시스템RAM으로 일시 중단 모드로 전환되면 대부분의 경우 RAM이 자체 새로 고침 모드로 전환되는 동안 프로세서가 완전히 꺼진다.그럴 때, 재개 시 부트 ROM이 다시 실행되며 많은 부트 ROM은 칩의 시스템RAM에 일시 중단되었음을 감지할 수 있고 커널로 직접 뛰어들어 재개할 수 있으며, 커널에서 다시 전원을 켜고 컴퓨터가 이전에 있던 상태를 복구하는 작업을 한다.

특정 구현

올위너

의 많은 올위너 시스템(A10, A20, A64)에서 부트 ROM은 USB를 통해 부트 로더가 로드되기를 기다리거나(특정 PIN이 높은 경우) 고정된 순서로 여러 주변 장치에서 부팅을 시도한다.[5]

의 일부 올위너 시스템에서는 볼로이더들의 서명을 확인할 수 있다.[6]그러나 제조되고 있는 대부분의 장치들은 그것에 대해 구성되지 않았다.이를 통해 자유오픈 소스 소프트웨어U-Boot와 같은 부트로더에서 사용하는 과 장치의 많은 Allwin 시스템에 대한 지원을 추가할 수 있게 되었다.[7]

사과

iOS 기기에서 부팅 ROM은 "SecureROM"[8]이라고 불린다. 그것은 iBoot의 벗겨진 버전이다.특별한 키 조합을 이용해 활성화할 수 있는 장치 펌웨어 업그레이드(DFU) 메커니즘을 제공한다.[9]

NXP

에 탑재된 NXP 시스템의 Boot ROM은 칩에 탑재된 시스템의 특정 핀을 통해 주변 장치를 구성할 수 있도록 지원한다.I에.MX6 제품군도 에퓨즈를 통한 부팅 순서 구성을 지원한다.

칩에 있는 여러 NXP 시스템의 Boot ROM은 1단계 부트 로더(eMMC, microSD, USB 등)를 로딩하는 여러 가지 방법을 가지고 있다.

칩의 여러 NXP 시스템을 구성하여 부트로더의 서명을 확인할 수 있다.칩에 이러한 시스템이 탑재된 많은 장치는 구성 없이 판매되었으며, 사용자가 원하는 부팅 로더를 설치할 수 있으며, 여기에는 Das U-Boot[10] Barebox와 같은 여러 개의 Free오픈 소스 소프트웨어 부팅 로더가 포함된다.

텍사스 인스트루먼트

위에 있는 여러 텍사스 인스트루먼트 시스템의 부트 ROM은 칩 위에 있는 시스템의 특정 핀을 통해 주변 장치를 구성할 수 있도록 지원한다.

칩에 있는 여러 텍사스 인스트루먼트 시스템의 부트 ROM은 1단계 부트 로더( 참조 매뉴얼에 있는 시스템에서는 MLO라고 함)를 로드하는 여러 가지 방법을 가지고 있다.

  • 다양한 저장 장치(MMC/SD/eMMC, NAND 등)에서 로딩할 수 있다.
  • MMC/SD/eMMC를 사용하면 카드 섹터(매뉴얼에서는 RAW 모드라고 함) 또는 FAT12/16/32 파티션에서 직접 로드할 수 있다.
  • USB나 UART에서도 로딩이 가능하다.

의 OMAP36xx 시스템에서 부트 ROM은 섹터 0x0과 0x20000(128KB)[11]에서 1단계 부트 로더를, 의 AM3358 시스템에서는 0x40000(256KiB)과 0x60000(384KiB)을 추가로 찾는다.[12]두 경우 모두 최대 크기는 128KiB이다.는 (1단계) 부트로더칩의 시스템 내부에 있는 sram에 탑재되기 때문이다.

의 OMAP와 AM335x 시스템을 구성하여 볼로이더의 서명을 확인할 수 있다.칩에 이러한 시스템을 탑재한 많은 장치들이 구성되지 않은 채 판매되었고, 그 장치들에는 Das U-Boot[13], Coreboot[14], Barebox와 같은 여러 개의 Free 및 오픈 소스 소프트웨어 부트로더를 포함하여 사용자가 원하는 부트로더를 설치할 수 있다.

알려진 취약성 및 취약성

사과

iOS를 실행하는 장치에서는 (Limera1n과[15] 같은) 부트 ROM 공격이 iOS 탈옥에 사용되기도 한다.iOS에 영향을 미치는 악용에 비해 기기를 탈옥하려는 사람들의 장점은 부팅 ROM은 수정할 수 없기 때문에(그리고 iOS를 실행하는 장치는 부팅 ROM에 코드를 추가할 퓨즈가 없기 때문에) 애플은 기존 장치의 취약성을 고칠 수 없다는 것이다.

닌텐도 스위치

닌텐도 스위치의 부트 ROM에는 사용자가 원하는 부트 로더를 실행할 수 있는 취약성이 포함되어 있었다.[16][17]

참고 항목

참조

  1. ^ Bin, Niu; Dejian, Li; Zhangjian, LU; Lixin, Yang; Zhihua, Bai; Longlong, He; Sheng, Liu (August 2020). "Research and design of Bootrom supporting secure boot mode". 2020 International Symposium on Computer Engineering and Intelligent Communications (ISCEIC): 5–8. doi:10.1109/ISCEIC51027.2020.00009. ISBN 978-1-7281-8171-4. S2CID 231714880.
  2. ^ Secure boot (Mk II)
  3. ^ a b Emulating Exynos 4210 BootROM in QEMU, 7 March 2018
  4. ^ Single-board computers
  5. ^ BROM linux-sunxi article
  6. ^ SID Register Guide article on the linux-sunxi wiki
  7. ^ U-Boot page on linux-sunxi wiki
  8. ^ "Bootrom article on The iPhone Wiki".
  9. ^ Todesco, Luca. "The One Weird Trick SecureROM Hates" (PDF). Archived (PDF) from the original on 2019-11-08.
  10. ^ imx6.txt
  11. ^ OMAP36xx reference manual (swpu177aa.pdf), 26.4.7.6 MMC/SD Cards
  12. ^ AM3358 reference manual (spruh73p.pdf), 26.1.8.5 MMC / SD Cards.
  13. ^ README.omap3
  14. ^ Beaglebone Black
  15. ^ "limera1n article on the iPhone wiki".
  16. ^ "Hackers find an 'unpatchable' way to breach the Nintendo Switch". Engadget. Archived from the original on 2020-11-09. Retrieved 2021-09-30.
  17. ^ Vulnerability Disclosure: Fusée Gelée, 28 October 2021