การทำฟิงเกอร์พรินต์ด้วย WebGPU: เจเนอเรชันถัดจาก Canvas และ WebGL
WebGPU เปิดเผยขีดความสามารถของฮาร์ดแวร์ลึกกว่า Canvas และ WebGL รวมกัน และใช้งานได้แล้วบน Chrome, Edge และ Firefox บทความนี้ว่าด้วยสิ่งที่มันเผยออกมา และเหตุใดจึงจะแทนที่เทคนิคเดิมภายใน 2–3 ปี
WebGPU มาพร้อม Chrome 113 เมื่อปี 2023 และภายในปี 2026 ก็ใช้งานได้ในเบราว์เซอร์หลักทุกตัวบนแพลตฟอร์มหลักทุกแพลตฟอร์ม ต่างจาก WebGL ซึ่งเป็น API ของเบราว์เซอร์ที่ห่อหุ้ม OpenGL ES 2.0 ไว้ WebGPU คืออินเทอร์เฟซตรงสู่ API กราฟิกสมัยใหม่ ได้แก่ Vulkan บน Linux, Metal บน macOS และ DirectX 12 บน Windows
สิ่งนี้เปลี่ยนขอบเขตของสิ่งที่เบราว์เซอร์สอบถามได้เกี่ยวกับฮาร์ดแวร์ที่อยู่เบื้องล่าง การทำฟิงเกอร์พรินต์ด้วย Canvas และ WebGL อาศัยผลลัพธ์ของการเรนเดอร์ ส่วน WebGPU เปิดให้สอบถามขีดความสามารถจากตัว GPU โดยตรง จึงเผยรายละเอียดเชิงสถาปัตยกรรมที่ผลลัพธ์การเรนเดอร์ทำได้เพียงบอกใบ้
สำหรับงานฟิงเกอร์พรินต์ นี่คือการยกระดับคุณภาพสัญญาณแบบก้าวกระโดด
สิ่งที่ WebGPU เผย แต่ WebGL ไม่เผย
พื้นผิวเชิงวินิจฉัยของ WebGL มีจำกัด ส่วนที่มีประโยชน์ที่สุดคือส่วนขยาย WEBGL_debug_renderer_info ซึ่งคืนค่าสตริงผู้ผลิตและตัวเรนเดอร์ ซึ่งมักถูกเบราว์เซอร์แอนตี้ดีเทกต์ปลอมแปลง หรือถูกฟีเจอร์ความเป็นส่วนตัวตัดทิ้ง
WebGPU ให้ออบเจ็กต์ GPUAdapter และ GPUAdapterInfo พร้อมข้อมูลที่สมบูรณ์กว่ามาก:
- Vendor — ตัวระบุผู้ผลิต GPU (NVIDIA, AMD, Intel, Apple, Qualcomm)
- Architecture — ตระกูลสถาปัตยกรรมของ GPU (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno)
- Device — รุ่นเฉพาะเจาะจงเท่าที่มีให้
- Description — สตริงที่มนุษย์อ่านได้
นอกเหนือจากการระบุตัวตน WebGPU ยังเผยค่าลิมิตของ GPU ซึ่งก็คือขีดความสามารถเชิงตัวเลขที่แม่นยำของฮาร์ดแวร์ สอบถามได้ผ่านอินเทอร์เฟซ GPUSupportedLimits และมีคุณสมบัติเชิงตัวเลขกว่า 30 รายการ:
- ขนาดเท็กซ์เจอร์สูงสุด —
maxTextureDimension2D - ขนาดบัฟเฟอร์สูงสุด —
maxBufferSize - จำนวน bind group สูงสุด —
maxBindGroups - ขนาดสูงสุดของ compute workgroup
- จำนวนแอตทริบิวต์ของเวอร์เท็กซ์สูงสุด
- ข้อกำหนดการจัดแนวของ storage buffer
ค่าทั้งหมดนี้ถูกกำหนดโดยไดรเวอร์ GPU ตามขีดความสามารถของฮาร์ดแวร์ GPU ต่างเจเนอเรชันกัน แม้จะมาจากผู้ผลิตเดียวกัน ก็มีชุดค่าลิมิตต่างกัน GPU ปี 2019 มีค่าลิมิตไม่เหมือน GPU ปี 2023 ในตระกูลเดียวกัน
เหตุใดจึงปลอมได้ยากกว่า
เบราว์เซอร์แอนตี้ดีเทกต์ปลอม Canvas และ WebGL ด้วยการดักการเรียก API แล้วแก้ผลลัพธ์ สิ่งที่ Canvas คืนกลับคือแฮชของพิกเซลที่เรนเดอร์แล้ว เบราว์เซอร์จึงเรนเดอร์ก่อนแล้วค่อยสลับแฮชได้ ส่วน WebGL ถูกสอบถามสตริงเพียงไม่กี่ตัวซึ่งแทนที่ทั้งชุดได้
WebGPU ต่างออกไป พื้นผิว API กว้างมาก มีเมธอดและคุณสมบัติหลายร้อยรายการ ทุกการเรียกต้องมีค่าคืนกลับที่ดูสมเหตุสมผล ชั้นปลอมแปลงจึงต้อง:
- แสดงอัตลักษณ์ที่สอดคล้องกันตลอดค่าลิมิตเชิงตัวเลขทั้งหมด GPU ที่อ้างว่าเป็น NVIDIA RTX 4090 ต้องคืนค่าลิมิตทุกค่าให้ตรงกับฮาร์ดแวร์นั้น
- รับมือกับการประมวลผลจริง WebGPU อนุญาตให้รันคอมพิวต์เชเดอร์ หากชั้นปลอมแปลงอ้างประสิทธิภาพสูงแต่ประมวลผลได้ช้า ความไม่สอดคล้องนั้นตรวจจับได้จากการจับเวลา
- ติดตามการเปลี่ยนแปลงข้ามเวอร์ชันไดรเวอร์ ไดรเวอร์ GPU แต่ละเวอร์ชันมีค่าลิมิตต่างกันเล็กน้อย ตารางปลอมแบบตายตัวจึงล้าสมัยเมื่อไดรเวอร์ใหม่ออก
ฮาร์ดแวร์จริงให้ทั้งหมดนี้ฟรี ส่วนการปลอมฮาร์ดแวร์ต้องดูแลฐานข้อมูลชุดค่าลิมิตที่ถูกต้องของทุกรุ่น GPU ต่อทุกเวอร์ชันไดรเวอร์ ซึ่งเป็นภาระบำรุงรักษาต่อเนื่องที่เบราว์เซอร์แอนตี้ดีเทกต์ส่วนใหญ่ยังไม่รับไว้
ประสิทธิภาพการประมวลผลในฐานะลายนิ้วมือ
WebGPU เปิดให้รันคอมพิวต์เชเดอร์ใด ๆ ในเบราว์เซอร์ นั่นหมายความว่าระบบตรวจจับสามารถรันภาระงานมาตรฐานแล้ววัดว่าใช้เวลาเท่าใด
การทดสอบแคร็กแฮช การคูณเมทริกซ์ หรือภาระงานประมวลผลที่ใกล้เคียงการเรนเดอร์ ล้วนทำงานด้วยความเร็วที่ฮาร์ดแวร์เบื้องล่างกำหนด ผู้เข้าชมสองรายที่อ้าง GPU รุ่นเดียวกันแต่ให้ประสิทธิภาพประมวลผลต่างกัน ย่อมมีฝ่ายหนึ่งโกหกเรื่องฮาร์ดแวร์
เทคนิคนี้ข้ามการปลอมลายนิ้วมือแบบคงที่ไปทั้งหมด ผู้เข้าชมจะอ้างสตริง GPU ใดก็ได้ตามใจ แต่อ้างประสิทธิภาพการประมวลผลที่ตนไม่มีไม่ได้
สิ่งที่ต้องแลกคือประสบการณ์ผู้ใช้ การรันคอมพิวต์เชเดอร์เบื้องหลังกินรอบการทำงานของ GPU และอาจรู้สึกได้ว่าเครื่องอืด จึงจำกัดว่าจะใช้เทคนิคนี้ได้เข้มข้นเพียงใด โดยทั่วไปจึงใช้เป็นการตรวจครั้งเดียวกับเซสชันที่น่าสงสัย มากกว่าจะเฝ้าติดตามตลอดเวลา
ความพร้อมใช้ของฟีเจอร์ในฐานะสัญญาณ
WebGPU เผยฟีเจอร์ทางเลือกผ่าน GPUAdapter.features โดย GPU บางตัวรองรับส่วนขยายเฉพาะ:
timestamp-query— ต้องใช้ GPU สมัยใหม่ที่มีตัวนับประสิทธิภาพshader-f16— จำนวนทศนิยมความแม่นยำครึ่ง พบบ่อยใน GPU มือถือtexture-compression-bc— Block Compression มาตรฐานบนเดสก์ท็อปtexture-compression-etc2— รูปแบบบีบอัดเท็กซ์เจอร์บนมือถือtexture-compression-astc— รูปแบบบีบอัดเท็กซ์เจอร์บนมือถือ
ชุดฟีเจอร์แน่นอนตามรุ่นของ GPU เครื่อง Windows ที่อ้างว่ามีฟีเจอร์ Adreno ของมือถือย่อมถูกจับได้ อุปกรณ์มือถือที่อ้างรูปแบบบีบอัดซึ่งมีเฉพาะบนเดสก์ท็อปก็ถูกจับได้เช่นกัน
ความสอดคล้องกับ WebGL
ก่อนมี WebGPU เบราว์เซอร์มีพื้นผิวสอบถาม GPU หลักเพียงทางเดียวคือ WebGL ตอนนี้มีสองทาง และทั้งสองต้องตรงกัน
WebGL และ WebGPU เผย GPU ตัวเดียวกัน คำตอบของทั้งคู่จึงต้องสอดคล้องกัน เบราว์เซอร์ที่รายงานผ่าน WebGL ว่าเป็น NVIDIA RTX 4080 แต่คืนค่าลิมิต WebGPU ที่ตรงกับ GPU ออนบอร์ดของ Intel เป็นสิ่งที่เป็นไปไม่ได้บนฮาร์ดแวร์จริง
ความสอดคล้องข้าม API จึงเป็นอีกสัญญาณหนึ่งสำหรับการตรวจจับ การปลอม API เดียวนั้นตรงไปตรงมา แต่การปลอมสอง API ให้สอดคล้องซึ่งกันและกันยากกว่ามาก และเบราว์เซอร์แอนตี้ดีเทกต์ในปัจจุบันส่วนใหญ่ยังทำไม่ได้
สิ่งที่ WebGPU เผยเกี่ยวกับระบบปฏิบัติการและไดรเวอร์
นอกเหนือจากการระบุ GPU แล้ว WebGPU ยังเผยบริบทของสแตกกราฟิก:
- บน Windows นั้น WebGPU อาจเผยว่ากำลังใช้ Direct3D 11 หรือ Direct3D 12 ซึ่งสัมพันธ์กับเวอร์ชันของระบบปฏิบัติการและยุคของไดรเวอร์
- บน macOS เวอร์ชัน Metal ที่รองรับจะเผยเวอร์ชันของ macOS เพราะเวอร์ชัน Metal มาพร้อมการอัปเดตระบบ
- บน Linux ระดับการรองรับ Vulkan จะเผยดิสทริบิวชันและที่มาของไดรเวอร์ เช่น NVIDIA แบบปิดซอร์ส เทียบกับ Mesa แบบโอเพนซอร์ส
ไม่มีสัญญาณใดในนี้ที่ตรงไปตรงมา แต่ละอย่างต้องอาศัยการตีความ ทว่าเมื่อรวมกันแล้ว มันประกอบเป็นภาพของสแตกซอฟต์แวร์เบื้องล่าง ซึ่งควรสัมพันธ์กับฟิงเกอร์พรินต์ของเบราว์เซอร์ที่รายงานมา ความไม่สอดคล้องย่อมบ่งชี้ถึงการปลอมแปลง
ไทม์ไลน์การนำไปใช้ในสแตกตรวจจับ
ในปี 2026 การทำฟิงเกอร์พรินต์ด้วย WebGPU ยังไม่ใช่เทคนิคตรวจจับกระแสหลัก ด้วยเหตุผลสามข้อ:
- การรองรับในเบราว์เซอร์ยังอยู่ระหว่างเข้าที่ WebGPU ของ Firefox ออกในปี 2024 แต่ครอบคลุมฟีเจอร์จำกัด ส่วน WebGPU ของ Safari ออกในปี 2024 เช่นกันแต่ค่าลิมิตต่างจาก Chrome ระบบตรวจจับจึงต้องรอให้การรองรับครอบคลุมกว้างพอก่อนจะพึ่งพาสัญญาณ WebGPU
- การรองรับ WebGPU ในกลุ่มผู้ใช้จริงยังไม่ครบถ้วน อุปกรณ์รุ่นเก่าไม่มี GPU ที่รองรับฟีเจอร์ของ WebGPU ระบบตรวจจับที่ลงโทษผู้เข้าชมซึ่งไม่มี WebGPU จึงเสี่ยงจะบล็อกผู้ใช้ที่ถูกต้องบนฮาร์ดแวร์อายุห้าปี
- เบราว์เซอร์แอนตี้ดีเทกต์ยังไม่ได้สร้างการปลอม WebGPU อย่างเต็มรูปแบบ สัญญาณที่อิง WebGPU จึงได้ผลดีในเวลานี้กับผู้โจมตีชั้นสูงที่เชื่อว่าตนลบร่องรอยหมดแล้ว สถานการณ์นี้จะเปลี่ยนเมื่อการตรวจจับถูกใช้แพร่หลายขึ้นและเครื่องมือปลอมแปลงตอบสนอง
กรอบเวลาการนำไปใช้ 2–3 ปีนั้นสมจริง ภายในปี 2027–2028 สัญญาณ WebGPU จะเป็นแกนกลางของการตรวจจับบอตเทียบเท่ากับที่ WebGL เป็นอยู่ทุกวันนี้ คำถามสำหรับทีมตรวจจับคือจะเริ่มเก็บข้อมูล WebGPU เมื่อใด และคำตอบคือตอนนี้ เพื่อให้มีฐานข้อมูลย้อนหลังพร้อมเมื่อสัญญาณเหล่านี้กลายเป็นตัวหลัก
สิ่งนี้หมายความว่าอย่างไรต่อฝ่ายตั้งรับ
การทำฟิงเกอร์พรินต์ด้วย Canvas เป็นเทคนิคที่สุกงอมแล้ว การทำฟิงเกอร์พรินต์ด้วย WebGL ก็เช่นกัน ทั้งสองอย่างถูกเครื่องมือแอนตี้ดีเทกต์ปลอมแปลงอย่างแข็งขันและได้ผลพอสมควร
การทำฟิงเกอร์พรินต์ด้วย WebGPU ยังเป็นเทคนิคใหม่ เครื่องมือปลอมแปลงยังตามไม่ทัน จึงเกิดช่องเวลาขึ้นราว 18–36 เดือน ที่สัญญาณ WebGPU แยกผู้ใช้จริงออกจากบอตชั้นสูงได้อย่างสะอาด ช่องเวลานี้คุ้มค่าแก่การลงทุน
สัญญาณที่ได้ยังปลอมยากกว่า Canvas หรือ WebGL ในเชิงโครงสร้างด้วย การเรนเดอร์ดักแก้ได้ แต่ประสิทธิภาพการประมวลผลทำไม่ได้ ชุดฟีเจอร์โกหกได้ แต่โกหกให้สอดคล้องตลอดพื้นผิว API ทั้งหมดไม่ได้ เทคนิคฟิงเกอร์พรินต์แต่ละเจเนอเรชันล้วนดันต้นทุนการปลอมให้สูงขึ้น และ WebGPU ดันขึ้นอย่างมีนัยสำคัญ
สำหรับแพลตฟอร์มที่จริงจังกับการตรวจจับบอตในปี 2026 และหลังจากนั้น WebGPU คือทิศทางที่สัญญาณกำลังเคลื่อนไป