--- id: P-REINFORCE-AUTO-B3C1E7 category: "10_Wiki/๐Ÿ’ก Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - WebGPU _ WebGL Timing API Security" --- # [[WebGPU _ WebGL Timing API Security|WebGPU _ WebGL Timing API Security]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > WebGPU์™€ WebGL์˜ ํƒ€์ด๋ฐ API๋Š” GPU ๋ช…๋ น์–ด์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๋„๊ตฌ์ด์ง€๋งŒ, ๋†’์€ ์ •๋ฐ€๋„์˜ ํƒ€์ด๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์œผ๋กœ ์•…์šฉ๋  ์ˆ˜ ์žˆ์–ด ์—„๊ฒฉํ•œ ๋ณด์•ˆ ๋ชจ๋ธ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค [1-3]. ๊ณผ๊ฑฐ WebGL์˜ `EXT_disjoint_timer_query`์™€ ๊ฐ™์€ ํ™•์žฅ ๊ธฐ๋Šฅ์€ ์บ์‹œ ์ ์ค‘๋ฅ  ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํŒจํ„ด์„ ๋…ธ์ถœ์‹œ์ผœ Spectre, Meltdown, Rowhammer ๋“ฑ์˜ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ(Side-channel attack)์— ์•…์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [2, 4, 5]. ์ด์— ๋Œ€์‘ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ๋ฒค๋”๋“ค์€ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋จธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜, ์‹œ๊ฐ„์˜ ์ •๋ฐ€๋„๋ฅผ ์˜๋„์ ์œผ๋กœ ๋‚ฎ์ถ”๋Š” '์–‘์žํ™”(Quantization)' ๊ธฐ๋ฒ•์„ ๋„์ž…ํ•˜์—ฌ ๋ณด์•ˆ๊ณผ ์„ฑ๋Šฅ ๋ถ„์„ ๊ฐ„์˜ ๊ท ํ˜•์„ ๋งž์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [2, 6, 7]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๋ณด์•ˆ ์œ„ํ˜‘์˜ ๋ฐฐ๊ฒฝ:** WebGL์—์„œ ์ œ๊ณตํ•˜๋˜ `EXT_disjoint_timer_query` ๋“ฑ์˜ ๊ณ ์ •๋ฐ€ ํƒ€์ด๋จธ๋Š” ๋ฐ€๋ฆฌ์ดˆ ๋ฏธ๋งŒ์˜ ์ •๋ฐ€๋„๋กœ GPU ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค [1]. ํ•˜์ง€๋งŒ ๋ณด์•ˆ ์—ฐ๊ตฌ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ๋†’์€ ํ•ด์ƒ๋„์˜ ํƒ€์ด๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ L1 ์บ์‹œ์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ง€์—ฐ ์‹œ๊ฐ„ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ•˜๊ฒŒ ํ•ด์ค€๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค [8]. ์ด๋ฅผ ํ†ตํ•ด ์บ์‹œ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜์—ฌ Rowhammer ๊ณต๊ฒฉ ๋ฐ ๊ธฐ๊ธฐ ์ง€๋ฌธ ์ˆ˜์ง‘(Device Fingerprinting)์— ์•…์šฉ๋  ์ˆ˜ ์žˆ์Œ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค [2, 4, 5]. * **๋ธŒ๋ผ์šฐ์ €์˜ ์™„ํ™” ์กฐ์น˜ (Mitigations):** Spectre ๋ฐ Meltdown๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ์œ„ํ˜‘์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์€ `performance.now()`์˜ ํƒ€์ด๋จธ ์ •๋ฐ€๋„๋ฅผ 1ms ๋˜๋Š” 100 ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„๋กœ ๋‚ฎ์ถ”๊ณ  ์ธก์ •๊ฐ’์— ๋ฌด์ž‘์œ„ ๋ณ€๋™์„ฑ(Jitter)์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค [9, 10]. ๋˜ํ•œ, ๊ณต๊ฒฉ์— ์•…์šฉ๋  ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” `EXT_disjoint_timer_query` ํ™•์žฅ์„ ๋ธŒ๋ผ์šฐ์ € ์ „๋ฐ˜์—์„œ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์ดํŠธ ๊ฒฉ๋ฆฌ(Site Isolation)๊ฐ€ ์ ์šฉ๋œ ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋งŒ ์ œํ•œ์ ์œผ๋กœ ๋…ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค [4, 11, 12]. ๋ถ€๊ฐ€์ ์œผ๋กœ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•œ ์ •๋ณด ์œ ์ถœ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค ๋งˆ์Šคํ‚น(Index Masking)๊ณผ ํฌ์ธํ„ฐ ํฌ์ด์ฆˆ๋‹(Pointer Poisoning)๊ณผ ๊ฐ™์€ ๋ถ„๊ธฐ ์—†๋Š” ๋ณด์•ˆ ๊ฒ€์‚ฌ(Branchless security checks) ๊ธฐ๋ฒ•์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [13-16]. * **WebGPU ํƒ€์ด๋ฐ API ๋ณด์•ˆ ๋ชจ๋ธ:** WebGPU๋Š” ๋‚˜๋…ธ์ดˆ ๋‹จ์œ„์˜ ์ •๋ฐ€๋„๋ฅผ ์ œ๊ณตํ•˜๋Š” `timestamp-query` ๊ธฐ๋Šฅ์„ ๋„์ž…ํ–ˆ์ง€๋งŒ, ํƒ€์ด๋ฐ ๊ณต๊ฒฉ ์šฐ๋ ค๋กœ ์ธํ•ด ๋ช…์„ธ์—์„œ๋Š” ์ด๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์—๋งŒ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์ (optional) ๊ธฐ๋Šฅ์œผ๋กœ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค [2, 3]. ํฌ๋กฌ(Chrome)์„ ๋น„๋กฏํ•œ ๋ธŒ๋ผ์šฐ์ € ์—”์ง„ ๋ฐ GPU for the Web ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทธ๋ฃน์€ ๋ณด์•ˆ๊ณผ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด 'ํƒ€์ž„์Šคํƒฌํ”„ ์–‘์žํ™”(Timestamp Quantization)'๋ฅผ ํ‘œ์ค€ ๋ฐฉ์–ด ๊ธฐ๋ฒ•์œผ๋กœ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค [3, 7, 17]. * **ํƒ€์ž„์Šคํƒฌํ”„ ์–‘์žํ™”(Timestamp Quantization) ์ ์šฉ:** ์ผ๋ฐ˜์ ์ธ ์›น ํ™˜๊ฒฝ์—์„œ๋Š” ํƒ€์ด๋จธ ํ•ด์ƒ๋„๋ฅผ 100 ๋งˆ์ดํฌ๋กœ์ดˆ ๋‹จ์œ„๋กœ ๋‚ฎ์ถ”์–ด(Coarsening) ํƒ€์ด๋ฐ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [6, 17]. ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ๋ง์ด ํ•„์ˆ˜์ ์ธ ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝ์šฐ, ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ „์šฉ ๋ธŒ๋ผ์šฐ์ € ํ”Œ๋ž˜๊ทธ("WebGPU Developer Features" ๋ฐ "Unsafe WebGPU Support")๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ๋งŒ ์–‘์žํ™”๊ฐ€ ํ•ด์ œ๋œ ๋‚˜๋…ธ์ดˆ ๋‹จ์œ„์˜ ์ •๋ฐ€ํ•œ ์ธก์ •๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6, 18]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Spectre and Meltdown|Spectre and Meltdown]], [[Cache Side-Channel Attack|Cache Side-Channel Attack]], [[Timestamp Quantization|Timestamp Quantization]], [[Rowhammer attack|Rowhammer Attack]] - **Projects/Contexts:** [[Chrome _ Blink WebGPU Implementation|Chrome / Blink WebGPU Implementation]], [[WebKit Security Mitigations|WebKit Security Mitigations]] - **Contradictions/Notes:** ์ดˆ๊ธฐ WebGPU ๋ณด์•ˆ ๋ชจ๋ธ์˜ ์ œ์•ˆ์—์„œ๋Š” ์‚ฌ์ดํŠธ ๊ฒฉ๋ฆฌ(Site Isolation) ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํƒ€์ž„์Šคํƒฌํ”„ ๋…ธ์ถœ ๋ฐ ์ •๋ฐ€๋„๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•  ๊ณ„ํš์ด์—ˆ์Šต๋‹ˆ๋‹ค(๊ฒฉ๋ฆฌ ์ปจํ…์ŠคํŠธ์—์„œ๋Š” 100ยตs ํ•ด์ƒ๋„๋ฅผ ์ œ๊ณตํ•˜๊ณ , ๋น„๊ฒฉ๋ฆฌ ์ปจํ…์ŠคํŠธ์—์„œ๋Š” ๋…ธ์ถœํ•˜์ง€ ์•Š์Œ) [3]. ๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ์ƒํ˜ธ ์šด์šฉ์„ฑ(Interop) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, GPU for the Web ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทธ๋ฃน์€ ์‚ฌ์ดํŠธ ๊ฒฉ๋ฆฌ ์—ฌ๋ถ€์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ 100 ๋งˆ์ดํฌ๋กœ์ดˆ(100ยตs) ํ•ด์ƒ๋„๋กœ ํ†ต์ผํ•˜์—ฌ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ตœ์ข… ํ•ฉ์˜๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค [17]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/WebGPU _ WebGL Timing API Security.md ---