이번에 회사에서 SHE라는 게 진행 중인 프로젝트에 적용된다고 하여 SHE라는 걸 알아보게 되었다.
SHE(Secure Hardware Extension, 이하 SHE)은 "마이크로 컨트롤러에 대한 on-chip 확장"이라고 Autosar에서 제공하는 문서에 정의되어 있다. SHE의 주요 목적은 암호화 키에 대한 제어권을 소프트웨어 도메인에서 하드웨어 도메인으로 이동하여 소프트웨어 공격으로부터 해당 키를 보호하기 위한 것으로 보안 솔루션을 대체하기 위한 것은 아니기 때문에 사양에서 변조 방지가 필요하지는 않다.
앞서 설명한 목적 이외에도 다른 목적들이 있는데, 어떤 것들이 있는지 알아보자.
SHE의 목적
- 소프트웨어 공격으로부터 암호화 키를 보호
- 정품 소프트웨어 환경 제공
- 보안은 기본 알고리즘의 강도와 키의 기밀성에 따라서만 결정
- 분산 키 소유권 허용
- 유연성은 높이고 비용은 낮게 유지
SHE의 목적의 위에서 설명한 것과 같고 주로 Key를 보호하는데에 중점을 두고 있다. 이어서 SHE는 위 그림과 같이 암호화 키와 추가 해당 정보들을 저장할 수 있는 저장영역, AES 구현, 마이크로 컨트롤러의 CPU에 연결하는 제어로직으로 구성되어 있다. SHE는 위의 블록도와 항상 동일하게 구성되는 건 아니고 다양하게 구성될 수 있다.
이어서 SHE의 요구사항, 알고리즘, 암복호화 등 중요 특징에 대해서 알아보자.
SHE의 요구사항
- SHE는 마이크로 컨트롤러의 on-chip 주변장치로 구현되어야하며 명시적으로 지정된 연결을 제외하고 다른 연결을 해서는 안된다. 추가로 칩 제작 중 적절한 기능을 보장하기 위해 추가 리소스를 포함해야 할 경우 외부 핀에서 액세스 할 수 있는 모든 경우 포트를 물리적, 영구적으로 차단해야 한다.
- SHE는 전용인터페이스 또는 내부 주변 장치 버스를 통해 여러 가지 방법으로 CPU에 연결될 수 있으며 상호 연결은 다른 주변 장치나 외부 개체가 CPU와 SHE 간 전송되는 데이터를 수정할 수 없는 방식으로 구현해야 한다.
- SHE는 보안을 강화하기 위해 특별한 프로세스로 제작할 필요가 없으며, 물리적 공격에 대비하여 시스템을 강화하기 위해 어떠한 조치도 필요하지 않다.(ex, etching the chip casing open, differential power analysis, glitching attacks.)
- SHE는 소프트웨어 및 하드웨어 디버깅을 위한 내부 또는 외부 디버거가 연결되어 활성화될 때마다 상태 신호로 알려야 합니다. 디버거의 예로는 JTAG, BDM 등이 있다.
SHE의 요구사항들은 위와 같은데 SHE를 구현한다면 해당 조건들은 반드시 참고하여 적용할 수 있도록 하자.
SHE의 알고리즘
- SHE의 모든 암호화 작업은 AES128에 의해 처리되며 AES의 대기시간은 Key Schedule을 포함하여 단일 블록에 대한 암/복호화가 2us미만으로 유지되어야 한다.
- AES의 성능은 플래시 메모리의 5%를 Secure Boot 할 수 있을 만큼 충분히 높아야 하며 10ms 이내에 마이크로컨트롤러의 최소 32 kByte, 최대 128 kByte를 지원해야 한다.
- 플래시 메모리가 요청한 것보다 느릴 경우 플래시 메모리는 Secure Boot에 대한 요소를 제한해야 하며 제한 사항은 데이터시트에 명시해야 한다.
SHE의 암복호화
- 데이터의 암복호화를 위해 SHE는 단일 블록을 처리할 수 있는 ECB, CBC 모드를 지원해야 한다.
- SHE는 AES 블록 길이의 배수만 처리할 수 있다. 즉 필요에 따라서 패딩이 필요하다.
- 입력, 출력, 키 입력 및 중간 결과는 CPU에서 직접 액세스 할 수 없지만 SHE 컨트롤러 로직의 정책에 따라 액세스 권한을 부여해야 한다.
SHE의 Data Storage
- SHE는 키와 MAC을 저장하기 위한 메모리가 필요하며 마이크로컨트롤러를 재부팅 후 사용이 가능한 비휘발성 메모리가 필요하다. 임시 정보를 저장하려면 휘발성 메모리가 필요하며 휘발성 메모리는 재부팅 시 정보가 손실될 수 있다.
- SHE의 메모리는 SHE 제어 로직을 통해서만 접근 가능해야 하며 디버깅 및 테스트 기능을 포함한 CPU 또는 기타 주변장치는 메모리에 액세스 할 수 없어야 한다.
- SHE의 휘발성 메모리와 주고받는 데이터가 다른 주변장치와 공유되는 버스(BUS)를 통해 전송되어야 하며 이러한 데이터가 다른 인스턴스에서 읽히거나 수정되지 않는다는 것을 보장해야 하며 아래와 같은 경우는 예방조치를 취해야 한다.
- 추가로 개별 키를 SHE 내부에 저장해야 합니다.
- 모든 데이터는 버스에 넣기 전에 위에 설명된 키를 사용하여 ECB 모드에서 AES로 암호화하거나 읽을 때 각각 해독해야 한다.
- 메모리에 대한 쓰기 액세스는 SHE에 의해서만 가능해야 하며, SHE와 해당 메모리 사이의 연결에 대한 쓰기 액세스는 SHE에 의한 읽기/쓰기 액세스 동안 다른 주변 장치에 대해 금지되어야 한다.
- 아래 그림은 SHE에 구현된 모든 키의 개요를 제공한다.
위에 작성된 내용들과 같이 SHE에 대해서 알아보았는데, Autosar에서 제공하는 SHE에 관한 내용들은 막대한 내용들이 있다. 그렇게 많은 내용들은 하나의 블로그 포스팅으로 정리한다는 것은 힘들기 때문에 문서에서 SHE의 정의나 특징과 같은 내용들을 위주로 요약해 보았다.
자세한 내용이 궁금하다면 아래 링크를 참조하여 알아보도록 하자.
https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TR_SecureHardwareExtensions.pdf
'Automotive' 카테고리의 다른 글
SecOC, Secure Onboard Communication 이란? (0) | 2024.05.26 |
---|---|
자동차 개발 프로세스 역량 평가 기준, ASPICE (0) | 2024.05.18 |
자동차 기능안전, ISO26262와 ASIL (0) | 2024.05.17 |
기능 안전의 시작과 파생, ISO/IEC Guide 51 (0) | 2024.05.17 |