EVITA 프로젝트의 이해(1)
더 이상 미룰 수 없는 자동차 보안
2016년 01월호 지면기사  / 글│김 정 민 책임연구원 _ jmkim@infobank.net, 김 지 성 연구원 _ jskim0421@infobank.net, iAuto Lab, Infobank

유럽의 선진 자동차 관련 기업들은 일찍부터 자동차 보안 관련 프로젝트를 진행해왔다. 그 중 하나가 EVITA이다. EVITA 프로젝트의 출범 이유와 요구사항, 관련 기술 및 시큐리티 프레임워크의 하드웨어 기술인 HSM 설계를 소개한다. 이를 통해 자동차 보안에 대한 관심과 연구개발이 더욱 활발해지기를 바란다.


자동차 보안 배경

 

현시점에서 자동차의 전장부품 연구는 크게 두 가지 방향으로 진행 중이다. 하나는 차량 통신의 통합이고, 다른 하나는 기능의 중앙 집중화다. 차량에 적용되는 통신 기법은 다양하다. CAN, LIN, FlexRay, MOST등이 있고, Ethernet을 도입하려는 연구 역시 활발하다. Ethernet의 적용은 여러 통신방식을 통합할 수 있는 기술로서 주목받고 있다. 이와 더불어 차량의 여러 ECU를 통합하려는 연구 역시 활발하게 진행 중이다. 70개가 넘는 ECU의 기능을 통합하고 그 수를 줄임으로써 자동차의 중량을 줄이고 ECU관리를 효율적으로 할 수 있다. 여기에 전장부품 개발을 위한 표준 제정 및 인터페이스 표준화를 통해 개발을 용이하게 하고 여러 공급사들이 각 소프트웨어의 일부 모듈을 개발해 생산할 수 있는 형태로 진행 중이다.

기존 차량 통신은 차량 내부의 전장부품간 통신으로 국한됐던 반면, 점차 차량 간 통신(V2V), 차와 센터 간 통신(V2I), 차와 개인 휴대단말기 간 통신(V2N) 등 자동차와 외부 시스템간 통신을 요구하는 기능이 개발되고 있다.

이러한 차량 외부 통신으로 인해 자동차 보안은 새로운 국면을 맞고 있다. 자동차 보안에서는 차량 내부 정보의 보안과 여러 기능이 안전하게 수행되는 것이 중요하기 때문에 차량 내부에서 사용되는 데이터의 무결성, 확실성, 신뢰성을 요구하게 된다. 이러한 요구사항을 만족하기 위해서는 각 기능의 보안 요구 수준에 따라 해당 프로그램을 수행하는 영역을 다르게 하는 방법, 인터페이스의 분리 등의 추상화 기능, 효율적 보안 기능 수행을 위한 하드웨어 지원 등 복합적인 기술이 필요하다.

EVITA(E-safety Vehicle Intrusion proTected Applications) 프로젝트는 이와 같은 자동차 환경의 변화에 따라 요구되는 차량 보안을 위해 암호화 과정에서 사용되는 정보나 차량 제어, 사용자 정보 등 중요한 정보들을 해킹이나 도청 등으로부터 보호하기 위한 시스템 설계 및 인터페이스 설계 등을 목적으로 The seventh European Framework Program에서 2008년 10월부터 2011년 12월까지 진행한 프로젝트다.

이 글은 EVITA의 목적과 범위를 알아보고, 목적에 부합하는 요구사항의 기술, 그에 따라 필요한 기술의 정리와 더불어 하드웨어 지원의 필요성 및 하드웨어 기능 영역, 그리고 EVITA에서 진행했던 기술 적용 예시를 알아본다.


EVITA 목적과 범위

 

EVITA 명세서의 목적은 현재와 미래에 필요한 애플리케이션을 개발할 때 보안기능을 만족시키는 요구사항을 기술하고, 이를 토대로 시큐리티 프레임워크(security framework)를 정의하는 데 있다.

새로운 애플리케이션의 보안 요구사항이 늘어남에 따라 시큐리티 프레임워크는 다양한 애플리케이션 기능의 보안이 가능하도록 설계돼야 한다. 이는 새로운 기능이나 새로운 요구사항이 추가될 때 기존의 시큐리티 프레임워크에 적용이 쉽게 진행되도록 설계됨을 의미한다. 효과적이고 유지하기 쉬운 설계를 위해서 다음과 같은 내용이 충족돼야 한다.

- 적용되는 보안 기능들의 표준화
- 보안 기능의 단계적 설정 가능
- 다른 차량 기기로의 쉬운 이식
- 자동차의 수명 주기 동안 지속적으로 업데이트가 가능할 것
- 새로운 보안 기능 및 요구사항의 통합 및 확장
- 애플리케이션 개발자가 쉽게 사용 및 적용이 가능할 것
- 각 모듈별로 여러 보안 수준 적용이 가능할 것

위에서 언급한 내용은 전장부품의 보안에 초점을 맞추고 있다. 이는 차량 간 통신이나 차량과 외부 기지국 혹은 서비스 서버등과의 통신 설계는 포함되지 않는다.

위와 같은 목적을 통해서 EVITA는 여러 모듈이나 인터페이스 형태로 보안 기능을 제공한다. 이는 애플리케이션 개발자가 사용하기에 용이하도록 설계돼야 한다. 또한 기능에 따라 소프트웨어와 하드웨어 형태의 기능으로 구성돼야 한다. 이에 대해 간단히 요약하면 다음과 같다.

- 사용자의 인증과 권한 제어를 전장부품에 쉽게 적용 가능
- 통신 제어, 멀웨어 방지, 침입 확인 및 대응 기술 제공
- 데이터나 애플리케이션, 계산 수행 과정의 구획화 및 분리
- 개인정보와 중요 정보의 은닉 기능
- 보안정책과 업데이트에 대한 일관적인 관리
- 차량 내에 신뢰할 수 없는 애플리케이션의 동작을 한정적으로 운영되도록 하는 환경 제공
- 인증과 권한 제어를 담당하는 소프트웨어 모듈
- 보안 저장 기능 및 암호의 가속, 연산의 보안 등을 담당하는 하드웨어 모듈


EVITA 시큐리티 프레임워크위한 보안 요구사항

 

차량 내에서 동작하는 전장부품은 다양한 통신방식을 제공하고 있으며, 최근의 화두인 멀티미디어 데이터 통신을 위해 보다 빠르고 차량 외부 시스템과 통신할 수 있는 기술이 연구되고 있다. 하지만, 저 사양 혹은 단순 기능을 제공하는 센서를 위해 LIN, CAN과 같은 통신 방식 역시 여전히 사용된다. 이러한 통신방식은 보안을 위한 기술 적용이 돼 있지 않고 아직 개발 중이다.
그 이유는 CAN이나 LIN의 경우, 기본적인 구조로 인해 보안 성능을 높이기 위한 기존 기법들이 네트워크에 상당한 과부화를 유발하기 때문이다.

예를 들어 특정 CAN Message에 대한 인증을 위해 Message Authentication Code(MAC)를 추가로 보내면, CAN Message는 최대 8 byte이므로 Message Authentication Code의 크기에 따라 추가로 전송하는 message가 발생하게 된다. 예컨대 MAC의 크기가 16 byte이면 한 개의 CAN Message의 인증을 위해 추가로 2개의 CAN Message를 전송해야 한다. 이는 현재 CAN 네트워크의 bus load로 볼 때 엄청난 부담이 될 수밖에 없다.

EVITA 프로젝트는 앞서 언급한 것과 같은 차량에서 위협이 될 수 있는 요소 및 보안 사항에 대한 분석과 적용 가능 기술을 파악한 후 요구사항을 정리했다. 이는 다음과 같은 목적이 있다.

- 전장부품 내에 허가되지 않은 통신을 허락하지 않는다.
- 보안이나 모바일 커머스 등의 애플리케이션에 대한 허가되지 않은 업데이트 및 수정을 금지한다.
- 운전자의 개인정보를 보호한다.
- 제조업체 및 보급품의 지적재산권을 보호한다.

위와 같은 목적을 기반으로 8개의 기능적 요구사항이 도출된다.

1. 보안 연관 이벤트의 무결성: 특정 중요 정보를 다루는 동작들은 무결성과 신뢰성이 기반이 된 상태에서 이루어진다.
2. ECU의 펌웨어 설정 및 설치의 무결성: ECU의 펌웨어 추가, 업데이트 혹은 전장부품의 새로운 설정은 무결성과 신뢰성이 기반이 된 상태에서 이루어진다. 특히 무결성과 신뢰성을 가지는 보안 모듈에 대해서 더욱 보호가 되어야 한다.
3. 안전한 실행 환경: 보안이 신뢰할 수 있는 연산 영역이 존재하여 외부침입에 의한 연산 오류로부터 보호돼야 한다.
4. 차량 접근 제어: 자동차 동작 기능 및 정보들에 접근이 통제돼야 한다.
5. 소프트웨어 동작의 신뢰성: 조작된 설정에 의해 소프트웨어가 오동작을 일으키지 않아야 한다.
6. 애플리케이션이 사용하는 정보가 기밀성 유지 및 접근 제어를 위한 저장 기능에 의해 관리돼야 한다.
7. 차량 내부 및 외부 통신에 대한 기밀성: 통신 시 보안 기능이 있어서 송수신되는 정보의 기밀성이 유지돼야 한다.
8. 개인정보보호 정책이 존재해야 한다.

EVITA 프로젝트는 위와 같은 8가지 보안 요구사항과 이러한 보안 기능으로 인해 성능 저하가 발생하면 안 된다는 기능 요구사항을 정의했다. 따라서 이에 대한 보안기능들을 살펴보고, 요구사항에 맞는 기능들을 분석 적용해서 시큐리티 프레임워크에 대한 구조를 설계했다.


시큐리티 프레임워크 설계 위한 보안 기술

 

시큐리티 프레임워크 설계는 다양한 보안 기술에 대한 이해가 필요하다. EVITA에서 설계한 시큐리티 프레임워크를 이해하기 위해서는 여러 관점에서 시큐리티 프레임워크의 구성을 파악하고 분류하면서 필요한 기술을 파악하는 것이 필요하다. EVITA에서는 시큐리티 프레임워크 구성을 위한 기술을 네트워크 보안 기술과 호스트 기반의 보안 기술로 나누어 분석했다.

네트워크 보안 설계는 일반적으로, 보안을 위한 통신 프로토콜 기술과 네트워크상에서 연결을 위한 자원에서 구현되는 보안 기술이 있다. 이러한 기술들은 네트워크의 구성에 따라 보안 영역이 결정되고 각 호스트의 보안을 공유한다.

호스트 기반의 설계는 종단 간 보안 설계 기술을 포함한다. 각 호스트에서 사용하게 되는 보안 기술로는 대표적으로 데이터 암호화 기술이 이에 속한다. 데이터 암호화 기술은 네트워크를 구성하는 두 호스트 간에 데이터를 송수신 할 때, 보내는 쪽에서는 암호화하고 중간의 전송 과정에는 아무 조건이 없고 이를 수신하는 측에서 올바른 방법으로 복호화 하는 방식이다. 이와 같이 호스트 기반의 기술들은 종단 간 보안 기능으로 구성된다.

EVITA는 또 다른 관점에서 시큐리티 프레임워크의 보안 기능을 수행하는 계층을 구분했는데, 이는 보안 기능의 애플리케이션, 보안 기반의 운영체제, 보안 기반의 추상화 프로그램의 형태로 분류했다.

애플리케이션 보안의 경우, 보안에 관련된 기능을 하부 계층과 관계없이 사용하게 되고 독립적인 데이터 처리를 수행한다.
보안 기반의 운영체제에서는 신뢰성있는 연산 영역을 운영하는 기능을 포함한다. 예를 들어 보안 기능의 메모리 영역 설정, 시스템 콜의 제어 기능 등을 가지고 운영체제의 판단에 따라 이를 제어하게 된다.

보안 기반의 추상화 프로그램은 주로 데이터 흐름의 제어를 담당하는 기능을 포함한다. 데이터 흐름을 물리적 전장부품에 대한 제약에서 벗어나 여러 전장부품의 자원을 공유하고, 이에 대한 보안을 위한 인증 및 제어 기능을 제공한다.

위에서 언급한 여러 기능을 구현하기 위해서 암호화 모듈, 인증 모듈, 보안 네트워크 통신 모듈, 권한 모듈 등 다양한 기능들을 토대로 시큐리티 프레임워크가 설계됐고, 실제 개발을 위한 전개 과정에서 특성에 따라 소프트웨어로 구현될 부분과 하드웨어로 구현될 부분을 나누어 기술하고 있다.


하드웨어 기반의 보안 기술

 

시큐리티 프레임워크를 설계할 때 기밀 유지나 연산의 신뢰성, 성능에 대한 요구사항을 만족시키기 위해 다양한 보안 기술이 필요하다. 특히 Trusted Computing, Cryptographic Hardware, Smartcards, Tamper Protection, Physically Unclonable Functions 등의 하드웨어로 구현되는 기술들이 필요하다. 이 중 EVITA에서 정의하는 HSM(Hardware Secure Module)에서는 Trusted Computing과 Cryptographic Hardware 기능을 제공했다.

Trusted computing은 연산의 신뢰성을 위해 사용된다. 이 기술은 운영체제에서 필요로 하는 보안 기술과 더불어 보안이 취약한 응용 프로그램과의 연동이나 분산화 되어 있는 환경에서 사용되는데, 이를 좀 더 자세히 살펴보면 Trusted Platform Module이라 불리는 암호화 기능과 Core Root of Trust for Measurement라 불리는 pre-BIOS 기능, 애플리케이션과 운영체제 사이의 보안 인터페이스 기능을 하는 Trusted Software Stack 등으로 나뉜다.

Trusted Platform Module은 기능 동작을 위해 필요한 연산을 보안이 유지되는 곳에서 수행하는 것을 의미한다. 이에 대한 세부 기능으로는 다음과 같은 것들이 있다.

- 하드웨어 기반의 난수 발생
- 암호화 엔진
- 해시 함수 엔진
- 보안저장매체(ROM, RAM, EEPROM)

Core Root of Trust Measurement는 전장부품의 부팅 시 변조나 허가받지 않은 소프트웨어가 동작하는 것을 방지하는 기능이다. 부팅 과정에서 전장부품의 이전 저장되어 있는 상태와 비교해 변동 사항이 없음을 확인함으로써 전장부품에 대한 침입이 없음을 증명하게 된다.
Trusted Software Stack은 보안 운영체제나 애플리케이션에게 제공되는 보안 기능들에 대한 소프트웨어 모듈이나 컴포넌트를 의미한다. 이를 위해 암호화 인터페이스를 제공하고 보안 동작을 위한 보안 키를 관리한다.

이밖에 위에서 언급한 Trusted Computing을 다루는 소스들이 존재하여 운영체제나 애플리케이션들이 해당 소스를 이용해 Trusted computing 기능을 사용하게 된다.

Trusted computing 외에 암호화 엔진이 사용되는 또 다른 이유는 암호화 가속 기능으로 기존의 기능처리 시간 요구사항을 만족시키기 위함이다. 암호화처럼 계산 양이 많고 복잡한 계산을 소프트웨어로 구현할 경우 많은 자원을 사용하며 시간이 많이 소모된다.

이 경우 원래 기능의 시간적 요구사항을 만족시키지 못하는 문제가 발생할 수 있고 저 사양 전장부품의 경우 해당 문제가 더 빈번하게 발생할 수 있다. 따라서 암호화 기능이 필요한 부분에 하드웨어 지원이 필요하다.


전장부품 통신 환경에 필요한 보안 하드웨어

 

자동차 전장부품의 통신 환경은 여러 통신 기술들의 집중화와 다양성이 커지면서 탄력적이고 여러 단계를 제공하는 보안 기술이 요구된다. 다양한 보안 기술을 제공하기 위해서 보안 하드웨어가 제공돼야 한다. 여러 단계의 보안 기술을 적용하기 위해서 자동차에 존재하는 전장부품을 ECU와 센서, 액추에이터로 분류할 수 있다. 이는 각 전장부품의 역할과 성능에 대한 요구사항이 다르기 때문이다.

예를 들어 ECU와 센서 사이의 통신에는 우선 각 전장부품이 공용 키를 가지고 있어야 한다. 이 공용 키는 통신을 위해 계속 사용돼야 하는 키이므로 비휘발성 저장매체에 저장돼야 하기 때문에 보안 기능이 있는 비휘발성 저장매체가 각 전장부품에 존재해야 한다. 그리고 통신을 통한 정보 이동에서 암호화 기능이 필요하므로 양쪽에 암호화 모듈이 필요하다. 이는 사양에 따라 하드웨어 혹은 소프트웨어로 구현된다.

이외에 통신의 주체에 대한 확신을 위해 Message Authentication Code와 같이 인증 기능이 요구된다. ECU의 경우, 위에서 언급한 기능들을 수행하기 위해 독립적인 타이머나 프로세서, 난수 발생 모듈 등의 기능이 필요하다. 반면, 센서의 경우 ECU와 같은 고 사양의 전장부품이 아니므로 암호화모듈이 소프트웨어로 제공되거나 내부 RAM에 보안 기능이 없을 수 있다. ECU의 경우에도 어떤 기능의 ECU인가에 따라서 요구되는 기능이 달라질 수 있다.

HSM 일반적 구조

HSM은 자동차에서 보안을 위해 필요한 기능 중 하드웨어로 구현되는 부분을 말한다. 여기에는 보안 기능을 위한 코프로세서가 동작하도록 설계돼 있다. 이에 대한 설계도는 그림 1과 같다.

 

HSM은 암호화 기능을 포함하고 명확성을 확인하는 기능과 전자서명 기능을 포함했다. 이 뿐만 아니라 난수 발생 기능과 비대칭 암호화 엔진도 포함돼 있다. 이러한 암호화 기능 이외에 보안 저장매체 기능이 존재하고, 이를 동작시키기 위한 CPU가 포함됐다. 그리고 보안 기능들을 애플리케이션에서 사용할 수 있도록 인터페이스가 존재한다. 그런데 실제 HSM을 구현하는 과정에서 인터페이스를 구현하는 방식에 따라 아래와 같이 분류할 수 있고 장단점이 존재한다. EVITA에서는 여러 구현방식에 대해 장단점을 파악하고 시큐리티 프레임워크 설계에 맞는 방식을 택했다.

- HSM 칩이 주 CPU와 분리된 경우: HSM과 주 CPU가 다른 칩으로 구성돼 있어서 추가적인 핀이 필요하고, 그에 따라 가격도 올라간다. 게다가 안전성도 떨어지게 된다. 이는 두 연결 핀이 해킹 가능한 지점이 되기 때문이다. 이 경우는 사용기간이 짧은 전장부품이나 보안 요구도가 낮은 애플리케이션을 구동할 때 사용할 수 있다.

- HSM과 주 CPU가 한 칩에 있지만 HSM이 상태 기계(state machine)에 따라 동작하는 경우: 위에서 언급한 인터페이스 방식보다 보안이 유지되고 경제적이지만 HSM의 동작이 고정적이다. 새로운 암호 알고리즘이나 업데이트 등이 불가능하다.

- HSM과 주 CPU가 한 칩에 있고 HSM이 프로그래밍 가능한 경우: HSM에 programmable CPU가 적용돼 있어서 암호화 기능에 대해 다양한 구현이 가능하다.

따라서 다양한 외부 애플리케이션에서 보안 기능을 사용할 수 있고 새로운 암호 알고리즘이나 동작에 대한 업데이트가 용이하다. EVITA의 요구사항을 만족하기 위해서는 이와 같은 형태의 HSM이 구성돼야 한다.

EVITA의 요구사항에서 언급한 바와 같이, 보안 기능은 다양한 성능을 선택 가능하게 하는 설계가 요구되는데, 이는 가격적인 측면에서도 중요하다. 자동차에 들어가는 전장부품 중 그 필요 기능에 따라 하드웨어 성능도 다르게 설계돼야 가격적인 면을 고려할 수 있게 된다. 따라서 EVITA에서는 HSM의 보안수준을 3종류(full, medium, light)로 구분했다. 그림 2는 전장부품마다 필요한 HSM의 보안 수준을 나타낸다.

헤드 유닛처럼 V2X 메시지를 처리하는 경우는 빠른 비대칭 암호화 처리 및 키관리, 인증 기능 등이 필요하므로 full HSM이 필요하고, 각 ECU의 경우 비대칭 암호의 처리는 상대적으로 덜 중요하고 대칭키 암호화 처리나 키 관리 등의 기능을 수행하기 위해서 medium HSM이 사용된다. 센서나 액추에이터와 같이 상대적으로 저 사양 및 보안 요구사항이 낮은 경우 light를 사용한다.

 

그림3은 full HSM에서 지원하는 기능을 보여준다. 이는 크게 두 부분으로 나뉘는데, 암호화 기능을 담당하는 Cryptographic 빌딩 블록과 애플리케이션 코어와 연결을 위한 logic 빌딩 블록으로 나뉜다. Cryptographic 빌딩 블록은 ECC-256-GF, WHIRLPOOL, AES-128, AESPRNG, Counter 등으로 구성된다. 이외에 programmable CPU, 보안 저장장치, 하드웨어 인터페이스로 구성돼 있다.

HSM medium은 full HSM에서 ECC-256-GF와 WHIRLPOOL 기능을 제외한 나머지 부분을 포함한다. 이외에 CPU 성능이 낮아도 된다. 이를 그림 4에서 확인할 수 있다.

 

다시 정리하면, medium HSM은 대칭 암호화 기능과 이를 위한 난수 발생 모듈, Counter로 이루어진 Cryptographic 빌딩블록과 보안 저장매체(RAM, 비휘발성 메모리)와 ARM Cortex-M3 수준의 CPU, 하드웨어 인터페이스로 구성돼 있다.

센서와 액추에이터에 사용되는 HSM은 통신 종단 간 보안을 유지하기 위해 사용된다. 이들은 기능적으로 복잡한 연산이나 판단이 필요하지 않고 입력받은 정보나 들어온 명령을 수행하는 동작을 하므로 정보에 대한 암호화 처리가 필요하다. 따라서 그림 5와 같이 AES-128과 같은 대칭 암호 엔진과 부수적으로 필요한 AES-PRNG, counter 등의 모듈을 포함시켰다. 보안 저장매체의 경우 선택적으로 포함될 수 있으나 기본적으로는 포함되지 않았다. 이는 위에서 언급한 바와 같이 센서와 액추에이터의 기능적 특성에 기인한다.


HSM이 적용된 서비스 예시

 

EVITA 프로젝트에서 시큐리티 프레임워크를 설계하고 실제로 구현해 보기 위해 Active Brake 서비스에 이를 적용했다.
Active brake는 자동차의 내부 통신과 외부정보를 이용해 제동 시스템을 제어하는 서비스를 의미한다.

 

그 림 6에서 보는 바와 같이 차량내부의 전장부품 정보와 차량 외부 시스템으로부터 수신한 정보를 수집하는 Communication Unit, 실제 제동을 제어하는 섀시, 제동 시에 출력을 제어하는 파워트레인으로 구 성 된 다 . Active brake 서비스는 주변의 자동차나 외부 시설에서 교통상황이나 위험상황을 파악해 Communication Unit을 통해 전달하면, 이를 확인하고 섀시에서 제동을 하는 동시에 정차를 위해 파워트레인 출력을 줄이게 된다. ECU 간의 통신을 통해 각 동작을 위한 정보를 주고받게 되고, 여기에 시큐리티 프레임워크를 적용했다. 이 중 HSM이 동작하는 부분은 그림 7과 같다.


외부 통신을 위한 Communication Unit에는 full HSM이 들어가고 주변 환경 센서와 제동을 위한 액추에이터는 light HSM이 적용된다. 파워트레인의 출력을 제어하는 ECU에는 medium HSM으로 설계하게 된다.
시큐리티 프레임워크에서 사용되는 소프트웨어 기술은 다음 호로 넘긴다.  



AEM_Automotive Electronics Magazine


<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>


  • 100자평 쓰기
  • 로그인


  • 세미나/교육/전시

TOP