---
id: P-REINFORCE-AUTO-9A3E86
category: "[[10_Wiki/💡 Topics/Programming & Language]]"
confidence_score: 0.90
tags: [auto-reinforced]
last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - Side-channel attacks"
---

# [[Side-channel attacks]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> 지식 요약 정보 추출 중...

## 📖 구조화된 지식 (Synthesized Content)
- **공격 원리 및 주요 취약점 (Spectre & Meltdown)**
  사이드 채널 공격의 대표적인 사례인 Spectre는 최신 CPU의 성능 향상 기법인 '투기적 실행(speculative execution)'을 악용합니다. CPU는 분기가 일어날 방향을 예측하여 메모리의 데이터를 L1 캐시로 미리 로드하며, 예측이 틀린 경우 실행 상태를 롤백하지만 L1 캐시에 가져온 데이터는 삭제하지 않고 남겨둡니다 [3, 7]. 공격자는 이 특성과 고해상도 타이밍(high fidelity timing)을 이용해 L1 캐시와 메인 메모리 간의 접근 지연 시간(latency) 차이를 측정하고, 스페큘레이티브하게 로드된 값을 알아내어 정보를 유출합니다 [3, 8]. 또한 Meltdown은 사용자 영역의 코드(예: JavaScript)가 커널 메모리를 읽을 수 있게 하는 취약점으로, WebKit 같은 환경에서는 Spectre를 활용하여 분기 기반의 보안 검사를 먼저 우회해야만 Meltdown 공격을 시작할 수 있습니다 [9, 10].

- **웹 그래픽 API와 고정밀 타이머를 통한 공격 (WebGL & WebGPU)**
  `EXT_disjoint_timer_query`나 WebGPU의 타임스탬프 쿼리처럼 GPU 명령어의 실행 시간을 나노초 단위로 측정할 수 있는 고해상도 타이머 역시 사이드 채널 공격의 주요 표적이 됩니다 [11, 12]. 보안 연구자들은 이러한 정밀한 타이머가 캐시 미스율과 물리적 메모리 레이아웃을 파악하는 데 사용될 수 있으며, WebGL 환경에서 GPU에 대한 Rowhammer 공격과 결합하여 보안을 뚫는 심각한 공격 사례도 존재했다고 보고했습니다 [1, 13].

- **타이밍 공격 완화 및 보안 전략 (Mitigations)**
  - **타이머 정밀도 축소 (Quantization & Coarsening):** 브라우저 엔진은 캐시 사이드 채널 공격에 필요한 서브 마이크로초 단위의 타이밍 차이를 관찰하지 못하도록 `performance.now()`나 GPU 타임스탬프 쿼리의 해상도를 1ms 또는 100 마이크로초 수준으로 낮춥니다 [4, 5, 12, 14]. 또한 통계적인 시간 측정을 방해하기 위해 무작위 지터(jitter)를 추가하기도 하며, 고해상도 타이머를 만들 수 있는 `SharedArrayBuffer` 기능을 비활성화했습니다 [4, 6].
  - **분기 없는 보안 검사 (Branchless Security Checks):** WebKit은 공격자가 분기를 통제하여 투기적 실행을 발생시키는 것을 막기 위해, 비트 연산을 활용하여 항상 유효한 배열 범위 내를 가리키도록 하는 '인덱스 마스킹(Index Masking)'과 잘못된 타입 접근 시 메모리가 매핑되지 않은 영역을 가리키도록 유도하는 '포인터 포이즈닝(Pointer Poisoning)'을 도입했습니다 [15-17].

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.

## 🔗 지식 연결 (Graph)
- **Related Topics:** `[[Spectre]]`, `[[Meltdown]]`, `[[Speculative execution]]`, `[[Timestamp quantization]]`, `[[Branchless security checks]]`
- **Projects/Contexts:** `[[WebKit]]`, `[[JavaScriptCore]]`, `[[WebGPU]]`
- **Contradictions/Notes:** WebGPU 스펙은 타이밍 공격의 위험성 때문에 타임스탬프 쿼리를 선택적(optional) 기능으로 명시하고 아예 노출을 제한할 수 있다고 규정합니다. 그러나 Chrome(Blink) 등의 구현체는 기능을 완전히 차단하는 대신, 사이트 격리(site isolation) 여부에 따라 타이머 해상도를 100 마이크로초로 양자화(quantization)하여 보안과 개발자 성능 측정 요구 사이의 타협점을 제공하고 있습니다 [12, 18, 19].

---
*Last updated: 2026-04-19*
- Raw Source: [[00_Raw/2026-04-20/Side-channel attacks.md]]
---
