하드웨어 보안의 최신 동향
TCG가 정한 DICE(Device Identifier Composition Engine)의 구조로 올바른 것은?
- A모든 기기에 같은 비밀 값을 넣어 두고, 펌웨어가 업데이트되어 바뀌어도 제조 시와 같은 키를 계속 사용한다
- B부팅할 때마다 서버에서 새 키를 네트워크로 다운로드하여 사용하고, 기기 안에는 비밀 값을 아무것도 갖지 않게 해 둔다
- C기기 고유의 비밀과 다음 계층 펌웨어의 측정값으로부터 그 계층의 비밀을 도출하고, 각 계층은 다음으로 넘어가기 전에 자신의 비밀을 읽을 수 없게 한다
정답과 해설 보기
정답: C. 기기 고유의 비밀과 다음 계층 펌웨어의 측정값으로부터 그 계층의 비밀을 도출하고, 각 계층은 다음으로 넘어가기 전에 자신의 비밀을 읽을 수 없게 한다
DICE에서는 전원을 켠 직후에 동작하는 작은 하드웨어나 ROM의 코드가, 기기 고유의 비밀(UDS)과 처음에 동작하는 펌웨어의 해시값으로부터 일방향 함수로 CDI라고 부르는 비밀을 만듭니다. 그 펌웨어는 다시 다음 계층의 측정값을 사용해 다음 계층의 CDI를 만들고, 자신의 CDI를 지운 뒤 제어를 넘깁니다. 펌웨어가 바뀌어 쓰이면 도출되는 비밀도 바뀌므로, 변조된 펌웨어는 올바른 키를 내세울 수 없으며, 뒤 계층이 탈취되어도 앞 계층의 비밀은 새어 나가지 않습니다. TPM이 없는 작은 마이컴에서도 적은 하드웨어로 기기 식별과 증명을 실현할 수 있습니다.