--- 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]] ---