하드웨어 보안의 최신 동향

VM형 TEE(AMD SEV-SNP·Intel TDX·Arm CCA)와 기밀 컴퓨팅, 메모리 무결성 보호와 그 부담, 증명(attestation)의 검증, GPU 기밀 컴퓨팅, CHERI·MTE·포인터 인증·섀도 스택에 의한 메모리와 제어 흐름 보호, 로우해머와 TRR·PRAC·ECC의 한계, MDS와 retpoline·IBRS, 대책에 의한 성능 저하, 양자 내성 암호의 하드웨어(수론 변환·키 크기·구현상 주의점), 공개된 신뢰의 근간과 DICE, 안전한 펌웨어 업데이트, HBOM, 칩렛 보안, 분할 제조·IC 카무플라주·로직 로킹, 역설계, FIPS 140-3·공통 평가 기준·PSA Certified·SESIP, 인증 디버그와 라이프사이클, 스캔 체인, 전압 글리치·레이저·전자기 펄스에 의한 오류 주입을 계산 문제를 섞은 객관식 문제로 학습합니다.

10문제 연습하기이 분야에서 무작위 10문제 · 약 5분 이 분야 연습하기이 분야의 모든 문제를 무작위 순서로 풀어요 취약 문제최근에 틀린 문제만 다시 풀어요

하드웨어 보안의 최신 동향: 핵심 정리

하드웨어 보안은 클라우드와 AI, IoT 기기의 확산과 함께 보호 대상도 공격 수법도 크게 바뀌어 왔습니다. 클라우드 사업자의 관리자로부터도 데이터를 보호하는 기밀 컴퓨팅, 포인터 오류를 하드웨어로 막는 구조, 양자 컴퓨터 시대를 대비한 암호 하드웨어, 많은 회사가 관여하는 반도체 공급망을 지키는 방법 등이 현재의 큰 주제입니다. 여기서는 '하드웨어 보안' 분야의 기초 위에서 더 새롭고 깊은 내용을 학습합니다.

먼저 기밀 컴퓨팅으로서 VM형 TEE와 엔클레이브형의 차이와 신뢰해야 하는 범위(TCB), 암호화뿐 아니라 무결성 보호가 필요한 이유와 그 저장 용량 부담의 계산, 증명 보고서에서 검증자가 확인하는 것, Arm CCA의 렐름, GPU를 포함한 기밀 컴퓨팅을 다룹니다. 이어서 CHERI의 케이퍼빌리티, MTE의 태그가 우연히 일치할 확률의 계산, 포인터 인증, 섀도 스택과 간접 분기 보호에 의한 제어 흐름 무결성을 학습합니다. DRAM에 대한 공격에서는 로우해머가 미세화로 일어나기 쉬워지는 이유, TRR이 회피된 연구, ECC의 한계, DDR5의 PRAC, 리프레시 빈도와 활성화 횟수의 계산을, 일시적 실행 공격에서는 MDS, retpoline과 IBRS, 대책에 의한 성능 저하의 계산을 다룹니다. 후반에서는 수론 변환에 의한 다항식 곱셈의 고속화, ML-KEM의 키 크기, 캡슐화 해제 구현상의 주의점, 암호를 교체할 수 있는 하드웨어의 설계, OpenTitan과 Caliptra, DICE, A/B 방식의 업데이트와 롤백 방지, HBOM, 칩렛 사이의 신뢰, 분할 제조·IC 카무플라주·로직 로킹, 역설계를 전제로 한 키 보호 방법을 학습합니다. 마지막으로 FIPS 140-3의 레벨, 공통 평가 기준의 EAL, PSA Certified와 SESIP의 합성 개념, 인증 디버그, 라이프사이클과 RMA, 스캔 체인 보호 방법, 전압 글리치·레이저·전자기 펄스에 의한 오류 주입과 그 성공 확률이나 대책 효과의 계산을 확인합니다. 공격 절차가 아니라 설계자와 방어하는 쪽의 관점에서 원리와 대책을 이해하는 것을 목표로 합니다. 계산 문제의 값은 오답 선택지의 값도 포함하여 Python으로 계산해 확인했습니다. 제품 이름, 규격의 버전, 연도는 각 문제에서 밝힌 시점의 정보입니다. 사이드 채널 공격, Spectre·Meltdown·KPTI, 전력 분석, 오류 주입과 로우해머의 기본, 시큐어 부트, TPM, TEE·TrustZone·엔클레이브, PUF, 진성 난수 생성기, 하드웨어 트로이 목마, JTAG의 비활성화는 '하드웨어 보안', ML-KEM·ML-DSA의 표준과 HSM은 '암호 기술의 기초와 응용', DRAM의 리프레시와 로우해머라는 현상의 이름은 'DRAM', 칩렛과 UCIe는 '첨단 패키징(3D와 칩렛)', 스캔 설계는 '테스트와 검사', A/B 방식의 펌웨어 업데이트는 '임베디드 시스템과 펌웨어', ISO/SAE 21434는 '차량용 반도체와 기능 안전' 분야에서 다룹니다.

하드웨어 보안의 최신 동향 전체 문제 (40)

  1. 기밀 컴퓨팅에 쓰이는 TEE 중 가상 머신 전체를 보호하는 VM형(AMD SEV-SNP, Intel TDX 등)과 애플리케이션의 일부를 보호하는 엔클레이브형(Intel SGX 등)의 차이에 대한 설명으로 올바른 것은?
  2. VM형 TEE에서 가상 머신의 메모리를 암호화하는 것만으로는 불충분하다고 여겨져, AMD의 SEV-SNP처럼 메모리의 무결성을 보호하는 구조가 추가된 이유로 올바른 것은?
  3. 메모리 암호화에 변조 검출과 리플레이 방지를 추가하는 회로를 생각한다. 64바이트 캐시 라인마다 8바이트 MAC(변조를 검출하기 위한 부호)과, 쓰기 때마다 증가하는 8바이트 카운터를 주기억장치에 저장한다고 한다. 카운터를 보호하기 위한 트리의 몫은 고려하지 않을 때, 보호하는 데이터의 양에 대해 추가로 필요한 저장 용량의 비율은?
  4. 기밀 컴퓨팅에서 이용자의 검증 서버(검증자)가 VM형 TEE로부터 받은 증명(attestation) 보고서를 확인한 뒤에 데이터를 복호화하는 키를 넘겨준다. 검증자가 확인하는 내용의 조합으로 가장 적절한 것은?
  5. 2020년대 중반 시점에서 데이터센터용 일부 GPU는 CPU의 TEE와 조합하여 기밀 컴퓨팅에 사용할 수 있는 기능을 갖추고 있다. 이 구조의 개념으로 올바른 것은?
  6. Arm CCA(Confidential Compute Architecture)에서 도입된 렐름(Realm)의 설명으로 올바른 것은?
  7. CHERI라고 불리는 명령어 집합 확장에서 쓰이는 케이퍼빌리티(capability)의 설명으로 올바른 것은?
  8. Arm의 MTE(메모리 태깅 확장)에서는 메모리의 16바이트마다 4비트 태그를 붙이고, 포인터의 상위 비트에도 4비트 태그를 넣어, 접근할 때마다 둘이 일치하는지를 CPU가 확인한다. 해제한 영역을 가리키는 오래된 포인터로 그 영역에 접근하는 오류를 생각한다. 영역을 다시 할당할 때의 새 태그가 16가지 중에서 균일하게 무작위로 선택된다고 하면, 태그가 우연히 일치하여 오류를 놓칠 확률은?
  9. Arm의 포인터 인증(PAC) 구조로 올바른 것은?
  10. Intel의 CET(제어 흐름 강제 기술) 등에서 채택된 하드웨어 섀도 스택의 설명으로 올바른 것은?
  11. 제어 흐름 무결성을 하드웨어로 지원하는 기능에 대해, 함수에서의 복귀를 보호하는 것과 함수 포인터 등에 의한 간접 호출이나 점프를 보호하는 것의 조합으로 올바른 것은?
  12. DRAM의 미세화가 진행될수록 로우해머가 일어나기 쉬워진다고 하는 이유로 올바른 것은?
  13. DRAM 내부의 TRR(타깃 로우 리프레시)에 의한 로우해머 대책이 연구에서 회피된 적이 있는 이유로 올바른 것은?
  14. 'ECC가 있는 메모리를 사용하면 로우해머 걱정은 없다'라는 생각의 문제점으로 올바른 것은?
  15. 2024년에 갱신된 DDR5 규격(JESD79-5C)에 추가된 PRAC(행별 활성화 계수)의 개념으로 올바른 것은?
  16. 같은 뱅크에서 행을 활성화할 수 있는 최단 간격을 간단히 tRC = 50 ns로 한다. 리프레시 주기가 64 ms일 때, 어떤 행이 리프레시된 후 다음에 리프레시될 때까지 이웃한 1개 행을 활성화할 수 있는 횟수는 최대 64 ms ÷ 50 ns가 된다. 리프레시 빈도를 2배로 했을 때 이 최대 횟수는?
  17. 2019년에 공표된 MDS(마이크로아키텍처 데이터 샘플링)라고 불리는 취약점의 특징으로 올바른 것은?
  18. 간접 분기의 예측을 악용하는 Spectre의 변종(분기 타깃 인젝션)에 대한 대책인 retpoline과 IBRS의 설명 조합으로 올바른 것은?
  19. 어떤 처리는 투기적 실행에 대한 대책을 넣기 전에 10초가 걸렸고, 그동안 시스템 콜을 500만 회 호출했다. 대책을 넣으면 시스템 콜 1회당 처리 시간이 0.4 µs에서 0.6 µs로 늘어나고, 그 이외 부분의 시간은 변하지 않는다고 한다. 처리 전체 시간의 증가 비율은?
  20. 격자 기반 양자 내성 암호에서는 차수 n = 256인 다항식의 곱셈을 여러 번 수행한다. 계수끼리 모두 곱하는 소박한 방법으로는 약 n²회, 수론 변환(NTT)을 사용하는 방법으로는 약 n log₂ n회의 곱셈이 필요하다고 하면, NTT를 사용함으로써 곱셈 횟수가 대략 몇 분의 1이 되는지에 가장 가까운 것은?
  21. ML-KEM-768의 공개 키는 1,184바이트, 암호문은 1,088바이트이고, 타원 곡선 키 교환 X25519의 공개 값은 32바이트이다. ML-KEM-768 공개 키의 크기가 X25519 공개 값의 몇 배인지로 올바른 것은?
  22. ML-KEM의 캡슐화 해제에서는 받은 암호문을 개인 키로 복호화한 결과로부터 암호문을 다시 한번 만들어, 받은 암호문과 일치하는지를 비교한다. 이 부분의 구현상 주의점으로 올바른 것은?
  23. 10년 이상 사용되는 임베디드 기기의 SoC를 설계한다. 앞으로의 암호 이행(양자 내성 암호로의 이행 등)에 대비하는 하드웨어와 펌웨어의 설계로 적절한 것은?
  24. OpenTitan이나 Caliptra처럼 신뢰의 근간(Root of Trust) 회로의 설계를 공개하는 활동의 이점으로 가장 적절한 것은?
  25. TCG가 정한 DICE(Device Identifier Composition Engine)의 구조로 올바른 것은?
  26. A면과 B면 2개의 영역을 사용해 펌웨어를 업데이트하는 기기에서, 롤백 방지를 위해 eFuse에 기록하는 최저 버전 번호를 새 버전 번호로 올리는 시기로 가장 적절한 것은?
  27. 하드웨어 자재 명세서(HBOM)의 설명으로 올바른 것은?
  28. 여러 회사의 칩렛을 하나의 패키지에 조합할 때의 보안에 관한 생각으로 적절한 것은?
  29. 반도체 설계를 보호하는 기술과, 주로 상정하는 신뢰할 수 없는 상대의 조합으로 올바른 것은?
  30. 칩의 층을 한 장씩 깎아 내어 전자 현미경으로 촬영하거나 X선으로 내부를 촬영하여 회로를 읽어 내는 역설계를 전제로 했을 때, 설계의 사고방식으로 적절한 것은?
  31. 암호 모듈 인증 기준인 FIPS 140-3의 보안 레벨 1~4에 대해, 물리적 안전성 요구의 설명으로 올바른 것은?
  32. 보안 제품을 평가하는 국제 규격인 공통 평가 기준(Common Criteria, ISO/IEC 15408)의 EAL(평가 보증 등급)이 나타내는 것으로 올바른 것은?
  33. IoT 기기용 보안 인증 프레임워크인 PSA Certified나 SESIP에서 중시되는 합성(컴포지션)의 개념으로 올바른 것은?
  34. 출하한 제품의 디버그 포트를 제조사의 기술자만 열 수 있게 하는 인증 디버그의 설계로 가장 적절한 것은?
  35. 보안 칩의 라이프사이클 상태를 테스트, 프로덕션(본 운용), 고장품 해석(RMA) 등으로 나누어 관리한다. 프로덕션 상태에서 고장 해석을 위해 RMA 상태로 옮길 때의 처리로 적절한 것은?
  36. 스캔 테스트를 위한 스캔 체인이 암호 처리를 하는 칩에서 공격 경로가 될 수 있는 이유와 그 대책의 조합으로 올바른 것은?
  37. 전원 전압을 한순간만 낮추는 전압 글리치로 칩이 오동작하는 주된 이유로 올바른 것은?
  38. 오류 주입 공격 중 레이저를 사용하는 방법과 전자기 펄스를 사용하는 방법의 특징 조합으로 올바른 것은?
  39. 어떤 오류 주입 시도가 1회에 성공할 확률이 0.1%이고, 각 회의 결과는 서로 독립이라고 한다. 1,000회 시도했을 때 적어도 1회 성공할 확률에 가장 가까운 것은?
  40. 펌웨어 서명 확인을 오류 주입의 1회 시도로 건너뛸 확률이 1/1,000이라고 한다. 같은 확인을 2곳에서 수행하여, 둘 다 건너뛰지 않으면 공격이 성공하지 않도록 했다. 1회 시도로 2곳을 동시에 노릴 수 있고, 각각이 건너뛰어지는 것은 서로 독립적으로 확률 1/1,000로 일어날 때, 공격이 성공할 때까지의 시도 횟수의 기댓값은?

네트워크와 보안의 다른 분야