controlpro
[논문 정리] Dismantling DST 80 - based Immobiliser Systems 본문
저번학기에 스마트 카드 부채널 분석을 시도했고 이번에는 모빌리티쪽 부채널 분석을 시도하려고 한다.
0. Contributions
Reconvering and reverse engineering immobiliser firmware
- Renesas 78K0 microcontroller에서 fault attack을 시도함.
- DST80 cipher가 있는 immobiliser firmware를 역공학
Security analysis of key diversification schemes
- 도요타 현대 기아의 key diversification 분석
- DST80암호 복잡도를 2^80에서 2^24 으로 낮춤(현대, 기아에 대해서)
Practical attakcs on DST80 transponder
- 키 공간을 2^80 에서 2^41 낮추고 공격을 했음.
- 정확한 구성만 있다면, 두개의 lookup table과 네번의 challenge로 공격이 가능하다.
A portable profiled side channnel attack aon the key loading procedure
- profling attack 부채널 분석 시도
- 키가 로드하는 과정의 부채널 분석의 시도가 들어간듯??
1. 관련 시스템 조사
- PKE , RKE 시스템 두가지가 있음
PKES(passive key Entry and Start)
LF 수신기와 LF 송신기로 구성되어 있음. LF 수신기는 운전자가 항상 소지하는 키 포브에 내장되어있고, LF 송신기는 차량에 장착되어 있다. 키 포브와 차량간 LF 통신을 개시하는 가장 일반적인 방식은 운전자석 도어 손잡이를 당김으로써 스위치를 수동으로 활성화하는 것이다. LF 통신을 개시하고 키 포브의 반응을 검증하여 차문 잠금을 해제하는 잠시동안만 활성화된다.

RKE 옛날 시스템(지금도 많이 사용됨.)
2. DST80 시스템
보통 80bit의 키를 가지고 있고 keyL, keyR 두개의 chunks로 나누어서 사용된다. 응답기는 32bit의 시리얼 넘버를 가지고 검증이 되고 그중에 3bytes는 인증키?이고 1bytes는 제조사 넘버이다. 그리고 DST80에 메모리가 존제하는 데 메모리에는 다음과 같은 정보가 존재 한다.

2.1 인증 프로토콜
DST80 프로코톨은 DST40프로토콜과 동일하게 동작을 한다. reader는 5bytes 짜리 Challenge를 생성하게 되고 응답기는 이를 받게 된다. 응답기는 5bytes를 공유키를 바탕으로 반응을 보낸다.(16bit의 Block Check Character정보와 24bit signature)

2.2 펌웨어 분석
현대 기아일 경우 8bit microcontroller로 구성 되어 있다. (STM8AF6266). 이 컨트롤러는 8kb 메모리를 가지고 있다. 원래는 read out protection이 걸려서 읽을 수 없게 나오는 데, 이경우는는 없는 것으로 생각한다. 따라서 이번에는 firmware를 EEPROM에 SWIM interface와 ROTF(24bit 주소 체계로 되어 있음)를 사용해서 분석을 했다. 만약에 read out protection이 걸려 있다면, 공격자는 따로 공격을 해야한다. [BFP19] 나와 있는 공격을 시도해야한다.
따로 도요타는 굳이 안해!
결국에는 이번에 Security Set command를 target으로 공격을 시도했음. 78K0 시리얼 은 block erase , chip erase , write 정도적용하고 Securtiy set이라는 명령어는 securtiy bit가 포함된 byte를 보내는 것으로 한다.
2.3 Reverse enginnering the cipher
DST80이 보통 스마트 키에 들어있는 시스템에 있으므로 분석을 wlsgod. DST40 비슷한 암호로써 unbalanced Fesitel network로 구조가 되어 있고 200round를 돌아서 응답을 계산한다. 80bit의 암호화 키를 가지고 있고 두개의 키 부분으로 나누어 져 있다. reader로 부터 생성된 40bit의 challenge로 인해 40bit에 초기화 되고 각라운드 마다 2bit를 계속 바꾸는 걸로 이루어 져 있다.



다음과 같은 알고리즘으로 이루어 져있다. 여기서 각 아래 적혀있는 숫자는 각각 몇번째 bit로 구성되어 있는 지 확인하는 것이다. 라운드 키 스케줄은 다음과 같고 각각의 암호는 다음과 같다.

초기 상태 s는 아까 reader로 부터 받았던 challenge의 상태이다. 위에서 나왔던 DST80_Merge를 통해서 키를 생성하고 KeyR과 KeyL통해서 암호화를 진행하게 된다.
3. 분석 기법

다음과 같은 분석 도구를 사용
DPA를 사용해서 DST80의 초기의 40bit, 즉 KeyL의 상위 20bit와 KeyR의 상위20bit를 알 수 있다. 현재 공격자는 초기 라운드의 40bit에 댛서 분석을 진행 했고 처음 Round 키를 알아내면 모든 키를 분석할 수 있다.(DST40의 경우 전부 DST80의 경우는 40bit만). DST80를 모두 분석을 진행하려면 결국에는 다른 라운드의 라운드키를 분석하거나, 전수 조사 공격을 하면 될 것이다.