Vehicle security

Secure Boot (보안부팅)

xoheon 2024. 6. 28. 21:32

Secure Boot는 소프트웨어가 실행되기 전에 무결성과 진위 여부를 확인하는 보안 메커니증

 

 

즉, 보안 부팅을 통해 내장된 장치를 부팅할 때 인증 되지 않거나 수정된 소프트웨어를 탐지(및 실행을 거부할 수 있음) 할수 있습니다.

 

 

 

보안부팅은 공격자가 장치에서 지속성을 얻는 능력을 감소시킨다.

 

 

 

소프트웨어가 변경되거나 위조되지 않았는지 확인하여 장치를 안전하게 유지한다.

 

 

CPU -> 부트로더 -> 커널 -> RoofFileSystem(RootFS)의 순서로 각각의 시그니처 & 무결성 정보를 확인, 이미지에 변조가 없다면, 정상적으로 부팅이 완료되게 하는 기술

  • 저비용으로 구현할 수 있는 보안 기능
  • De-Face 공격 (펌웨어 및 구동 페이지 변조로, 해킹 당한 표시 및 오작동을 일으키는 방식), 업데이트 및 펌웨어 변조 공격 등에 대한 효과적 대비책

Root-of-Trust 구축

 

 

보안 부팅을 수행하려면 ‘신뢰할 수 있는 루트’가 필요하다.

 

 

 

이는 본질적으로 모든 추가 단계에 대한 근거 진실을 확립하고 신뢰 체인을 불변의 것으로 고정시킵니다.

 

 

 

코드의 첫 번째 블록은 보안 부팅 로직을 실행해야합니다.

 

 

 

다음 부팅 단계에 대한 시스템을 준비하고 검증하는것이 목표이다.

 

 

이중요한 코드 블록은 엄격한 감사를 받아야 하며 복잡성은 최소화해야한다. 시스템의 변경 불가능한 부분인 이 코드 섹션의 취약성이나 버그는 하드웨어를 완전히 교체해야만 복구할 수 있는 경우가 많습니다.


 

소프트웨어 이미지 확인 


보안 부팅 구현을 구축하는 다음 단계는 소프트웨어 이미지를 확인하는 것. 일반적으로 보안 부팅에서 정품 인증 및 무결성을 확인하는데 사용되는 두가지 방법이 있다.  

 

  1. 대칭 알고리즘을 이용한 안전한 부팅 검증
    부트 코드를 검증하는 한가지 방법은 MAC(Message Authentication Code,메시지 인증 코드)라는 대칭암호 알고리즘을 사용하는 것.
    CMAC & HMAC 알고리즘을 사용하면 부팅 시간이 빨라진다.
    대칭 알고리즘에 사용되는 개인 키는 HSM과 같은 보호된 보안 환경 내에 안전하게 저장되어야함. 
  2. 비대칭 알고리즘을 이용한 안전한 부팅 검증
    비대칭 알고리즘을 사용하여 코드를 확인. RSA & ECDSA 알고리즘 사용

신뢰 사슬 구축

보안 부팅을 수행할 때 신뢰 사슬을 구축하기 위한 몇가지 방법이 있다.

가장 간단한 방법으로는, 첫번 째 부팅을 통해 전체 이미지를 확인한다. 모놀리식 부팅은 깔끔하고 간단하지만 부팅 시간이 필요하기 때문에 실제 상황에서는 거의 작동하지 않습니다.

 

임베디드 장치는 전원을 켠 후 밀리초 이내에 기본 작업을 실행해야하는 경우가 많다. 이러한 경우 단계적 접근을 취해야한다.

보다 고급화된 솔루션을 사용하면 실행 및 검증의 일부를 병렬로 실행할 수 있다. 이것은 멀티코어 시스템에서 가장 일반적이다.

이미지 크기와 복잡성이 증가함에 따라 타이밍 요구 사항을 충족하기 위해 암호화 하드웨어 가속기가 필요해짐.


결론

Secure Boot 는 안전한 신뢰 사슬 시스템을 만드는데 필수적이다,

  1. 인증
  2. 무결성

유효성 검사에 실패할 경우 제재 적용

Secure Boot는 소프트웨어 업데이트 전략과 공존해야함.


참조

https://www.renesas.com/us/en/blogs/introduction-about-secure-boot-automotive-mcu-rh850-and-soc-r-car-achieve-root-trust-1