--- id: P-REINFORCE-AUTO-392C3B category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Timing Attack" --- # [[Timing Attack|Timing Attack]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ํƒ€์ด๋ฐ ๊ณต๊ฒฉ(Timing Attack)์€ ์บ์‹œ ์ ์ค‘๋ฅ ์ด๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํŒจํ„ด ๋“ฑ ์‹œ์Šคํ…œ์˜ ์ž‘์—… ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ทน๋„๋กœ ์ •๋ฐ€ํ•˜๊ฒŒ ์ธก์ •ํ•จ์œผ๋กœ์จ ์˜๋„์น˜ ์•Š์€ ์ •๋ณด๋ฅผ ์œ ์ถœํ•˜๊ฑฐ๋‚˜ ๋ณด์•ˆ ๊ฒฝ๊ณ„๋ฅผ ์šฐํšŒํ•˜๋Š” ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ(Side-channel Attack)์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค [1-3]. ์ŠคํŽ™ํ„ฐ(Spectre)์™€ ๋ฉœํŠธ๋‹ค์šด(Meltdown)์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ, CPU์˜ ์ถ”์ธก ์‹คํ–‰(Speculative Execution) ๊ธฐ๋Šฅ์„ ์•…์šฉํ•˜์—ฌ L1 ์บ์‹œ์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ ‘๊ทผ ์ง€์—ฐ ์‹œ๊ฐ„ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจํ•ฉ๋‹ˆ๋‹ค [3-5]. ์›น ํ™˜๊ฒฝ์—์„œ ์ด๋Ÿฌํ•œ ๊ณต๊ฒฉ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” JavaScript๋‚˜ WebAssembly ์ฝ”๋“œ๊ฐ€ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฏ€๋กœ, ๋ธŒ๋ผ์šฐ์ € ์ฐจ์›์˜ ํƒ€์ด๋จธ ์ •๋ฐ€๋„ ์ €ํ•˜ ๋ฐ ๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ(Branchless Security Checks) ๋“ฑ์˜ ๋ฐฉ์–ด ๊ธฐ๋ฒ•์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [6-8]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๊ณต๊ฒฉ์˜ ์›๋ฆฌ ๋ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜:** ํƒ€์ด๋ฐ ๊ณต๊ฒฉ์€ ๋งˆ์ดํฌ๋กœ์ดˆ ๋ฏธ๋งŒ์˜ ๋ฏธ์„ธํ•œ ์‹œ๊ฐ„ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ•˜์—ฌ ์บ์‹œ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [2]. ์ŠคํŽ™ํ„ฐ(Spectre) ๊ณต๊ฒฉ์€ ๊ณต๊ฒฉ์ž๊ฐ€ CPU์˜ ๋ถ„๊ธฐ(branch)๋ฅผ ์ œ์–ดํ•˜๊ณ  ์ถ”์ธก ์‹คํ–‰ ๊ณผ์ •์—์„œ ์ •๋ณด ์œ ์ถœ์„ ์œ ๋„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค [5]. ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋กœ๋“œ ์†๋„ ์ฐจ์ด๋ฅผ ์ธก์ •ํ•˜์—ฌ, ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”์ธก ์‹คํ–‰์„ ํ†ตํ•ด L1 ์บ์‹œ์— ๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ์•„๋ƒ…๋‹ˆ๋‹ค [3, 5]. - **GPU ๊ทธ๋ž˜ํ”ฝ API์˜ ์ทจ์•ฝ์ :** WebGL์˜ `EXT_disjoint_timer_query`์™€ ๊ฐ™์€ API๋Š” ๋งค์šฐ ๋†’์€ ํ•ด์ƒ๋„์˜ ํƒ€์ด๋ฐ ์ธก์ • ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์˜ ์ฃผ์š” ํ‘œ์ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [1, 9]. ์ด๋Ÿฌํ•œ ๊ณ ์ •๋ฐ€ ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ฉด GPU ์บ์‹œ ๋ฏธ์Šค ๋น„์œจ์„ ๊ด€์ฐฐํ•˜๊ฑฐ๋‚˜, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์„ ํŒŒ์•…ํ•˜์—ฌ ๋กœ์šฐํ•ด๋จธ(Rowhammer) ๊ณต๊ฒฉ์„ ํ†ตํ•ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์กฐ์ž‘ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค [10]. ๋˜ํ•œ 'Clock Around the Clock'๊ณผ ๊ฐ™์ด ๋””๋ฐ”์ด์Šค ํ•‘๊ฑฐํ”„๋ฆฐํŒ…(Device Fingerprinting)์—๋„ ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [10]. - **๋ณด์•ˆ ์™„ํ™” ๊ธฐ์ˆ  (Mitigations):** - **ํƒ€์ด๋จธ ์ •๋ฐ€๋„ ๊ฐ์†Œ ๋ฐ ์ง€ํ„ฐ(Jitter) ๋„์ž…:** ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์€ ์บ์‹œ ์‚ฌ์ด๋“œ ์ฑ„๋„ ๊ณต๊ฒฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด `performance.now()`์˜ ์ •๋ฐ€๋„๋ฅผ 1ms ๋˜๋Š” 100๋งˆ์ดํฌ๋กœ์ดˆ๋กœ ๋‚ฎ์ถ”๊ณ , ๋ฌด์ž‘์œ„ '์ง€ํ„ฐ(Jitter)'๋ฅผ ๋„์ž…ํ•˜์—ฌ ํ†ต๊ณ„์ ์ธ ๊ณ ์ •๋ฐ€ ํด๋ก ์žฌ๊ตฌ์„ฑ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [2, 8]. ๋˜ํ•œ ๊ณ ํ•ด์ƒ๋„ ํƒ€์ด๋จธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” `SharedArrayBuffer` ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค [8]. - **ํƒ€์ž„์Šคํƒฌํ”„ ์–‘์žํ™” (Quantization):** WebGPU์™€ ๊ฐ™์€ ์ตœ์‹  API๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ์˜ ์ •๋ฐ€๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ์–‘์žํ™” ๊ธฐ๋ฒ•์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค [1, 11]. ์ปจํ…์ŠคํŠธ์˜ ๊ต์ฐจ ์ถœ์ฒ˜ ๊ฒฉ๋ฆฌ(Cross-origin isolated) ์ƒํƒœ์— ๋”ฐ๋ผ ํƒ€์ด๋จธ ๋ถ„ํ•ด๋Šฅ์„ ์กฐ์ ˆ(์˜ˆ: 100๋งˆ์ดํฌ๋กœ์ดˆ๋กœ ์ œํ•œ)ํ•˜์—ฌ ํƒ€์ด๋ฐ ๊ณต๊ฒฉ๊ณผ ํ•‘๊ฑฐํ”„๋ฆฐํŒ…์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [11-14]. - **๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ (Branchless Security Checks):** ์ŠคํŽ™ํ„ฐ ๊ณต๊ฒฉ์ด ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ ๋ช…๋ น์„ ์•…์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ธ๋ฑ์Šค ๋งˆ์Šคํ‚น(Index masking)๊ณผ ํฌ์ธํ„ฐ ํฌ์ด์ฆˆ๋‹(Pointer poisoning) ๊ธฐ๋ฒ•์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค [2, 8, 15, 16]. ์ด๋ฅผ ํ†ตํ•ด ๋ถ„๊ธฐ ์—†์ด ํƒ€์ž… ๊ฒ€์‚ฌ๋‚˜ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ(Bounds Check)๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ถ”์ธก ์‹คํ–‰์œผ๋กœ ์ธํ•œ ์ทจ์•ฝ์ ์„ ๊ทผ๋ณธ์ ์œผ๋กœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค [8, 16]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Side-channel Attack|Side-channel Attack]], [[Spectre and Meltdown|Spectre and Meltdown]], [[Speculative Execution|Speculative Execution]], [[Timestamp Quantization|Timestamp Quantization]], [[Branchless Security Checks|Branchless Security Checks]] - **Projects/Contexts:** [[WebKit|WebKit]], [[WebGL|WebGL]], [[WebGPU|WebGPU]] - **Contradictions/Notes:** ์†Œ์Šค ๋‚ด์—์„œ ํŠน๋ณ„ํ•œ ๋ชจ์ˆœ์ ์€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์˜ ์„ฑ๋Šฅ ๋ถ„์„ ์š”๊ตฌ์™€ ํƒ€์ด๋ฐ ๊ณต๊ฒฉ(๋ณด์•ˆ)์ด๋ผ๋Š” ์ƒ์ถฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ชฉํ‘œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, WebGPU ํ‘œ์ค€์—์„œ๋Š” ํƒ€์ž„์Šคํƒฌํ”„ ์ฟผ๋ฆฌ๋ฅผ ์ „๋ฉด ์ฐจ๋‹จํ•˜๋Š” ๋Œ€์‹  '์ •๋ฐ€๋„ ์–‘์žํ™”(Quantization)'๋ฅผ ์ ˆ์ถฉ์•ˆ์œผ๋กœ ๋„์ž…ํ•˜๋Š” ๋ฐ ํ•ฉ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค [1, 10, 11]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Timing Attack.md ---