대형 CPU와 GPU에서 SRAM PUF 탐색
초록
**
본 논문은 일반 PC에 내장된 CPU와 GPU의 SRAM을 활용해 물리적 복제 방지 함수(PUF)를 추출할 수 있는지를 조사한다. AMD64 CPU 레지스터·캐시와 Nvidia GTX 295 GPU의 공유 메모리를 대상으로 실험한 결과, CPU에서는 초기 부팅 단계에서도 레지스터와 캐시가 초기화되어 PUF로 활용할 수 없었으며, 반면 구형 Nvidia GPU에서는 초기화되지 않은 SRAM을 읽어 충분한 엔트로피와 고유성을 확보할 수 있음을 확인하였다.
**
상세 분석
**
이 논문은 두 가지 주요 질문에 초점을 맞춘다. 첫째, AMD64 기반 CPU 내부의 SRAM(레지스터와 L1/L2 캐시)이 부팅 직후 비정형적인 초기값을 유지하여 PUF로 활용될 수 있는가? 둘째, Nvidia GPU의 공유 메모리(특히 GTX 295와 같은 구형 모델)에서 초기화되지 않은 SRAM을 읽어 PUF를 구성할 수 있는가?
CPU 측면에서 저자들은 AMD E‑350 APU가 탑재된 ASRock E350M1 보드를 사용하였다. 레지스터와 캐시의 전원‑온 상태를 조사하기 위해 BIOS, 부트로더, 그리고 커널 초기화 단계에서 XMM 레지스터와 캐시 라인을 덤프하는 도구를 개발했다. AMD64 프로그래머 매뉴얼에 명시된 바와 같이, RESET 직후 모든 일반 레지스터·MMX·XMM·YMM 레지스터는 0으로 초기화되며, 캐시 또한 “cache‑as‑RAM” 모드에서 초기화된다. 실험 결과, 부팅 초기에 레지스터와 캐시가 완전히 결정론적이며, 전원‑온 시점에 남아 있는 미사용 SRAM이 존재하지 않음을 확인했다. 이는 설계상 보안 요구(예: 데이터 유출 방지)를 위해 SRAM이 초기화되는 것이 일반적임을 시사한다.
GPU 측면에서는 Nvidia GTX 295(구형 Fermi 기반)와 최신 세대 GPU를 비교하였다. 구형 GPU는 부팅 후 메모리 클리어 루틴이 미비하고, CUDA 드라이버가 SRAM을 직접 노출한다는 점을 이용해 초기화되지 않은 공유 메모리를 읽어냈다. 저자들은 CUDA 커널을 삽입해 전원‑온 직후의 SRAM 값을 수집하고, 이를 엔트로피 분석(NIST‑SP800‑22, min‑entropy)과 안정성 평가(반복 전원‑온 시의 비트 일관성)에 적용했다. 결과적으로, 약 2 KB의 SRAM에서 평균 0.49 bit/bit의 엔트로피를 확보했으며, 99 % 이상의 비트가 재부팅 간에 변하지 않아 고유 식별자로 활용 가능함을 보였다. 반면 최신 GPU에서는 부팅 시 메모리 초기화가 강제되며, 동일한 방법으로는 충분한 비정형 데이터를 얻지 못했다.
논문은 또한 PUF 활용을 위한 후처리 기법(오류 정정 코드, 비트‑편향 보정)과 보안 고려사항(공격자가 초기화 루틴을 재구성할 가능성, 측정 노이즈)도 논의한다. 전체적으로, CPU 내부 SRAM은 설계상 초기화가 강제되어 PUF로 사용할 수 없으며, 구형 GPU는 초기화되지 않은 SRAM을 통해 실용적인 PUF를 구현할 수 있다는 결론에 도달한다. 이는 기존 하드웨어 보안 모듈(TPM, RDRAND) 없이도 저비용 디바이스에서 고유 식별자를 제공할 수 있는 새로운 경로를 제시한다.
**
댓글 및 학술 토론
Loading comments...
의견 남기기