하드웨어 보안의 최신 동향

10년 이상 사용되는 임베디드 기기의 SoC를 설계한다. 앞으로의 암호 이행(양자 내성 암호로의 이행 등)에 대비하는 하드웨어와 펌웨어의 설계로 적절한 것은?

  1. A서명을 확인하는 방식과 공개 키는 부팅용 ROM에 한 세트만 기록하고, 나중에 누구도 바꿀 수 없도록 고정해 두는 것이 가장 안전하다
  2. B부팅 시 검증에서 여러 방식이나 키를 다룰 수 있는 여지를 남기고, 가속기는 여러 방식에서 쓸 수 있는 부품으로 하여, 업데이트로 방식을 교체할 수 있게 한다
  3. C암호 가속기는 현재 사용하는 타원 곡선 암호의 곡선 하나만을, 면적이 가장 작아지도록 전용 회로로 만들어 넣어 두면 된다
정답과 해설 보기

정답: B. 부팅 시 검증에서 여러 방식이나 키를 다룰 수 있는 여지를 남기고, 가속기는 여러 방식에서 쓸 수 있는 부품으로 하여, 업데이트로 방식을 교체할 수 있게 한다

하드웨어는 제조한 뒤에 다시 만들 수 없으므로, 하나의 방식만 회로나 ROM에 고정하면 그 방식이 안전하지 않게 되었을 때 기기 자체를 다시 만들게 됩니다. 부팅용 ROM에서 eFuse에 두는 키의 해시값을 여러 개 가질 수 있게 하거나 방식을 고를 수 있게 해 두면, 키나 방식을 나중에 전환할 수 있습니다. 가속기도 해시 함수(SHA-2나 SHA-3), 다항식 곱셈, 큰 정수의 연산 등 여러 방식에서 쓸 수 있는 부품으로 해 두면, 펌웨어 업데이트로 새로운 방식에 대응하기 쉬워집니다. 펌웨어 서명에는 해시 함수에만 안전성을 의존하는 LMS나 XMSS 같은 방식을 쓰는 선택지도 있으며, 그 경우에는 한 번밖에 쓸 수 없는 키를 두 번 쓰지 않도록 서명하는 쪽에서의 상태 관리가 필수입니다.

이 분야 연습하기 분야로 돌아가기

하드웨어 보안의 최신 동향의 다른 문제

  1. OpenTitan이나 Caliptra처럼 신뢰의 근간(Root of Trust) 회로의 설계를 공개하는 활동의 이점으로 가장 적절한 것은?
  2. TCG가 정한 DICE(Device Identifier Composition Engine)의 구조로 올바른 것은?
  3. A면과 B면 2개의 영역을 사용해 펌웨어를 업데이트하는 기기에서, 롤백 방지를 위해 eFuse에 기록하는 최저 버전 번호를 새 버전 번호로 올리는 시기로 가장 적절한 것은?
  4. 하드웨어 자재 명세서(HBOM)의 설명으로 올바른 것은?
  5. 여러 회사의 칩렛을 하나의 패키지에 조합할 때의 보안에 관한 생각으로 적절한 것은?