하드웨어 보안의 최신 동향
메모리 암호화에 변조 검출과 리플레이 방지를 추가하는 회로를 생각한다. 64바이트 캐시 라인마다 8바이트 MAC(변조를 검출하기 위한 부호)과, 쓰기 때마다 증가하는 8바이트 카운터를 주기억장치에 저장한다고 한다. 카운터를 보호하기 위한 트리의 몫은 고려하지 않을 때, 보호하는 데이터의 양에 대해 추가로 필요한 저장 용량의 비율은?
- A12.5%
- B20%
- C25%
정답과 해설 보기
정답: C. 25%
1라인당 추가 정보는 8 + 8 = 16바이트이므로 16 ÷ 64 = 25%입니다. 실제 방식에서는 카운터 자체를 바꿔 쓸 수 없도록 카운터를 묶어서 보호하는 트리(무결성 트리)도 필요하며, 그만큼 용량이 더 늘어납니다. 용량뿐 아니라 데이터를 한 번 읽을 때마다 MAC이나 카운터, 트리의 노드도 읽어야 하므로 지연과 메모리 대역폭의 부담이 커집니다. 이 때문에 큰 메모리를 보호하는 VM형 TEE의 대부분은 2020년대 중반 시점에서 완전한 리플레이 방지 트리를 사용하지 않고 다른 방법으로 무결성을 보호하는 설계를 택하고 있습니다.