Secure Boot는 소프트웨어가 실행되기 전에 무결성과 진위 여부를 확인하는 보안 메커니증
즉, 보안 부팅을 통해 내장된 장치를 부팅할 때 인증 되지 않거나 수정된 소프트웨어를 탐지(및 실행을 거부할 수 있음) 할수 있습니다.
보안부팅은 공격자가 장치에서 지속성을 얻는 능력을 감소시킨다.
소프트웨어가 변경되거나 위조되지 않았는지 확인하여 장치를 안전하게 유지한다.
CPU -> 부트로더 -> 커널 -> RoofFileSystem(RootFS)의 순서로 각각의 시그니처 & 무결성 정보를 확인, 이미지에 변조가 없다면, 정상적으로 부팅이 완료되게 하는 기술
- 저비용으로 구현할 수 있는 보안 기능
- De-Face 공격 (펌웨어 및 구동 페이지 변조로, 해킹 당한 표시 및 오작동을 일으키는 방식), 업데이트 및 펌웨어 변조 공격 등에 대한 효과적 대비책
Root-of-Trust 구축
보안 부팅을 수행하려면 ‘신뢰할 수 있는 루트’가 필요하다.
이는 본질적으로 모든 추가 단계에 대한 근거 진실을 확립하고 신뢰 체인을 불변의 것으로 고정시킵니다.
코드의 첫 번째 블록은 보안 부팅 로직을 실행해야합니다.
다음 부팅 단계에 대한 시스템을 준비하고 검증하는것이 목표이다.
이중요한 코드 블록은 엄격한 감사를 받아야 하며 복잡성은 최소화해야한다. 시스템의 변경 불가능한 부분인 이 코드 섹션의 취약성이나 버그는 하드웨어를 완전히 교체해야만 복구할 수 있는 경우가 많습니다.
소프트웨어 이미지 확인
보안 부팅 구현을 구축하는 다음 단계는 소프트웨어 이미지를 확인하는 것. 일반적으로 보안 부팅에서 정품 인증 및 무결성을 확인하는데 사용되는 두가지 방법이 있다.
- 대칭 알고리즘을 이용한 안전한 부팅 검증
부트 코드를 검증하는 한가지 방법은 MAC(Message Authentication Code,메시지 인증 코드)라는 대칭암호 알고리즘을 사용하는 것.
CMAC & HMAC 알고리즘을 사용하면 부팅 시간이 빨라진다.
대칭 알고리즘에 사용되는 개인 키는 HSM과 같은 보호된 보안 환경 내에 안전하게 저장되어야함. - 비대칭 알고리즘을 이용한 안전한 부팅 검증
비대칭 알고리즘을 사용하여 코드를 확인. RSA & ECDSA 알고리즘 사용
신뢰 사슬 구축
보안 부팅을 수행할 때 신뢰 사슬을 구축하기 위한 몇가지 방법이 있다.
가장 간단한 방법으로는, 첫번 째 부팅을 통해 전체 이미지를 확인한다. 모놀리식 부팅은 깔끔하고 간단하지만 부팅 시간이 필요하기 때문에 실제 상황에서는 거의 작동하지 않습니다.
임베디드 장치는 전원을 켠 후 밀리초 이내에 기본 작업을 실행해야하는 경우가 많다. 이러한 경우 단계적 접근을 취해야한다.
보다 고급화된 솔루션을 사용하면 실행 및 검증의 일부를 병렬로 실행할 수 있다. 이것은 멀티코어 시스템에서 가장 일반적이다.
이미지 크기와 복잡성이 증가함에 따라 타이밍 요구 사항을 충족하기 위해 암호화 하드웨어 가속기가 필요해짐.
결론
Secure Boot 는 안전한 신뢰 사슬 시스템을 만드는데 필수적이다,
- 인증
- 무결성
유효성 검사에 실패할 경우 제재 적용
Secure Boot는 소프트웨어 업데이트 전략과 공존해야함.
참조
'Vehicle security' 카테고리의 다른 글
자율주행 차량용 라이다 센서 기술 동향 (1) | 2024.12.29 |
---|---|
자율주행차 보안모델 Part Ⅰ : 자율주행차 및 서비스 - 1장 개요 (0) | 2024.06.26 |
커넥티드카 동향 (0) | 2024.06.23 |
자율주행차 책임론 (1) | 2024.06.23 |
V2X 통신/보안 표준 (0) | 2024.06.23 |