하드웨어 보안의 최신 동향
A면과 B면 2개의 영역을 사용해 펌웨어를 업데이트하는 기기에서, 롤백 방지를 위해 eFuse에 기록하는 최저 버전 번호를 새 버전 번호로 올리는 시기로 가장 적절한 것은?
- A새 펌웨어의 다운로드를 시작한 시점에 즉시 최저 버전 번호를 새 버전 번호로 올려 둔다
- B새 펌웨어의 서명을 확인하고, 그 면에서 부팅하여 정상적으로 동작하는 것을 확인한 뒤에 번호를 올린다
- C제조 시에 기록한 최저 버전 번호 그대로 두고, 펌웨어를 업데이트해도 번호는 한 번도 올리지 않는다
정답과 해설 보기
정답: B. 새 펌웨어의 서명을 확인하고, 그 면에서 부팅하여 정상적으로 동작하는 것을 확인한 뒤에 번호를 올린다
번호를 먼저 올려 버리면, 새 펌웨어가 도중에 망가져 있거나 부팅에 실패했을 때 원래 면에 남아 있는 이전 버전도 '최저 버전보다 오래되었다'며 거부되어 기기가 부팅할 수 없게 됩니다. 그래서 새 버전을 비어 있는 면에 쓰고, 서명을 확인하고, 그 면에서 부팅하여 정상적으로 동작하는 것을 확인한 뒤(커밋) 최저 버전 번호를 올립니다. 올린 뒤에는 취약점이 있는 이전 버전으로 되돌려지는 것을 막을 수 있습니다. 반대로 번호를 한 번도 올리지 않으면, 올바르게 서명된 이전 버전을 되써 넣는 공격을 막을 수 없습니다.