하드웨어 보안

타이밍 공격(timing attack)이 성립하는 원리와 대표적인 대책의 조합으로 올바른 것은?

  1. A처리가 너무 빠른 점을 이용한다. 일부러 처리를 느리게 한다
  2. B시계의 시각이 어긋나 있는 점을 이용한다. 시계를 맞춘다
  3. C비밀 값에 따라 처리 시간이 달라지는 점을 이용한다. 비밀 값과 관계없이 같은 시간에 끝나는(정수 시간, constant-time) 구현으로 한다
정답과 해설 보기

정답: C. 비밀 값에 따라 처리 시간이 달라지는 점을 이용한다. 비밀 값과 관계없이 같은 시간에 끝나는(정수 시간, constant-time) 구현으로 한다

예를 들어 키의 비트가 1일 때만 추가 계산을 하는 구현에서는, 처리 시간을 여러 번 측정하면 키의 비트를 알 수 있습니다. 대책은 비밀 값에 따라 분기나 반복 횟수, 메모리를 읽는 위치가 달라지지 않도록 작성하는 정수 시간 구현입니다. 일률적으로 처리를 느리게 하거나 무작위 대기 시간을 더하는 것만으로는, 측정 횟수를 늘리면 차이가 드러나므로 충분하지 않습니다.

  • A. 일률적으로 느리게 해도 시간 차이가 남아 있으면 유출됩니다.
  • B. 시계의 시각 문제가 아닙니다.
  • C. 올바릅니다. 분기와 메모리 읽기 방식이 비밀에 의존하지 않도록 합니다.
이 분야 연습하기 분야로 돌아가기

하드웨어 보안의 다른 문제

  1. 위 비밀번호 비교 함수에 숨어 있는 문제와 대책의 조합으로 올바른 것은?
  2. 캐시를 이용한 사이드 채널 공격이 성립하는 주된 이유는?
  3. Spectre라고 불리는 투기적 실행 취약점의 원리로 올바른 것은?
  4. 투기적으로 실행된 명령의 결과가 취소되어도 Spectre와 같은 공격으로 정보가 유출되는 이유로 올바른 것은?
  5. 일부 CPU에서 문제가 된 Meltdown이라고 불리는 취약점의 원리로 올바른 것은?