ไม่กี่วันที่ผ่านมา ข่าวว่านักวิจัย จากมหาวิทยาลัย Ben-Gurion (อิสราเอล), University of Lille (ฝรั่งเศส) และมหาวิทยาลัยแอดิเลด (ออสเตรเลีย) ได้พัฒนาเทคนิคใหม่ในการระบุอุปกรณ์ ของผู้ใช้โดยการตรวจจับพารามิเตอร์ GPU ในเว็บเบราว์เซอร์
วิธีนี้เรียกว่า "Drawn Apart" และอิงจากการใช้ WebGL เพื่อรับโปรไฟล์ประสิทธิภาพของ GPU ซึ่งสามารถปรับปรุงความถูกต้องของวิธีการติดตามแบบพาสซีฟได้อย่างมากซึ่งทำงานโดยไม่ต้องใช้คุกกี้และไม่ต้องจัดเก็บตัวระบุในระบบของผู้ใช้
วิธีการที่ คำนึงถึงลักษณะการแสดงผล GPU, สแต็กกราฟิกและไดรเวอร์ เมื่อระบุพวกเขาพวกเขาเคยใช้ แต่ถูก จำกัด ให้มีความเป็นไปได้ในการแยกอุปกรณ์ในระดับของการ์ดแสดงผลและ GPU รุ่นต่างๆเท่านั้นนั่นคือ สามารถใช้เป็นปัจจัยเพิ่มเติมเพื่อเพิ่มความน่าจะเป็นของการระบุ
คุณสมบัติที่สำคัญ ของวิธีการ "ดึงออกจากกัน" ใหม่ คือไม่จำกัดเฉพาะการแยก GPU รุ่นต่างๆแต่ พยายามระบุความแตกต่างระหว่าง GPU ที่เหมือนกัน ของรุ่นเดียวกัน เนื่องจากกระบวนการผลิตชิปที่ออกแบบไม่เหมือนกัน
นอกจากนี้ยังกล่าวถึงความผันแปรที่เกิดขึ้นระหว่างกระบวนการผลิตเพื่อให้สามารถสร้างแม่พิมพ์ที่ไม่ซ้ำสำหรับอุปกรณ์รุ่นเดียวกันได้
ปรากฎว่าความแตกต่างเหล่านี้สามารถระบุได้โดยการนับจำนวนหน่วยปฏิบัติการและวิเคราะห์ประสิทธิภาพบน GPU เป็นพื้นฐานในการระบุ GPU รุ่นต่างๆ การตรวจสอบตามชุดของฟังก์ชันตรีโกณมิติ การดำเนินการทางตรรกะ และการคำนวณจุดลอยตัวถูกนำมาใช้ เพื่อระบุความแตกต่างใน GPU เดียวกัน จำนวนเธรดที่ทำงานพร้อมกันเมื่อรัน vertex shader ประมาณการไว้
ผลกระทบที่เปิดเผยจะถือว่าเกิดจากความแตกต่างในระบอบอุณหภูมิและการใช้พลังงานของอินสแตนซ์ชิปต่างๆ (ก่อนหน้านี้ได้แสดงให้เห็นผลกระทบที่คล้ายคลึงกันสำหรับ CPU: โปรเซสเซอร์เดียวกันแสดงให้เห็นถึงการใช้พลังงานที่แตกต่างกันเมื่อใช้งานโปรเซสเซอร์เดียวกัน) รหัส)
เนื่องจากการดำเนินการผ่าน WebGL เป็นแบบอะซิงโครนัส คุณจึงไม่สามารถใช้ performance.now() JavaScript API โดยตรงเพื่อวัดเวลาดำเนินการได้โดยตรง จึงมีการนำเสนอกลอุบายสามประการเพื่อวัดเวลา:
- บนหน้าจอ: การเรนเดอร์ฉากบนแคนวาส HTML ด้วยการวัดเวลาตอบสนองของฟังก์ชันเรียกกลับที่แสดงผ่าน Window.requestAnimationFrame API และเรียกหลังจากการเรนเดอร์เสร็จสิ้น
- ปิดหน้าจอ: ใช้ผู้ปฏิบัติงานและเรนเดอร์ฉากไปยังวัตถุ OffscreenCanvas โดยการวัดเวลาดำเนินการของคำสั่ง convertToBlob
- GPU: แสดงผลเป็นวัตถุ OffscreenCanvas แต่มีตัวจับเวลาที่ WebGL จัดเตรียมไว้ให้เพื่อวัดเวลา โดยคำนึงถึงระยะเวลาของการดำเนินการชุดคำสั่งทางฝั่ง GPU
อยู่ในขั้นตอนการสร้างตัวระบุ มีการตรวจสอบ 50 ครั้งในแต่ละอุปกรณ์ซึ่งแต่ละอันครอบคลุมการวัด 176 แบบจาก 16 ลักษณะที่แตกต่างกัน การทดลองในระหว่างที่ ข้อมูลที่รวบรวมจากอุปกรณ์ 2500 เครื่องที่มี GPU ต่างกัน 1605 รายการ แสดงให้เห็นว่ามีประสิทธิภาพเพิ่มขึ้น 67% ของวิธีการระบุแบบรวมโดยเพิ่มการสนับสนุน Draw Apart ให้กับพวกเขา
โดยเฉพาะอย่างยิ่ง วิธี FP-STALKER ที่รวมกันโดยเฉลี่ยแล้วระบุตัวตนได้ภายใน 17,5 วัน และเมื่อใช้ร่วมกับ Drawn Apart ระยะเวลาของการระบุตัวตนเพิ่มขึ้นเป็น 28 วัน
สังเกตได้ว่าความแม่นยำได้รับผลกระทบจากอุณหภูมิของ GPU และสำหรับอุปกรณ์บางอย่าง การรีบูตระบบทำให้เกิดการบิดเบือนของตัวระบุ เมื่อใช้วิธีร่วมกับวิธีอื่น การระบุทางอ้อม ความแม่นยำจะเพิ่มขึ้นอย่างมาก นอกจากนี้ยังมีแผนที่จะเพิ่มความแม่นยำด้วยการใช้ตัวประมวลผลการคำนวณหลังจากการทำให้เสถียรของ WebGPU API ใหม่
Intel, ARM, Google, Khronos, Mozilla และ Brave ได้รับแจ้งถึงปัญหาดังกล่าวในปี 2020 แต่รายละเอียดของวิธีการเพิ่งถูกเปิดเผยเท่านั้น
เหนือสิ่งอื่นใด นักวิจัยได้ตีพิมพ์ตัวอย่างการทำงานที่เขียนด้วย JavaScript และ GLSL ที่สามารถทำงานได้ทั้งแบบมีและไม่มีการแสดงข้อมูลบนหน้าจอ นอกจากนี้ สำหรับระบบที่ใช้ Intel GEN 3/4/8/10 GPU ชุดข้อมูลได้รับการเผยแพร่เพื่อจัดประเภทข้อมูลที่ดึงออกมาในระบบการเรียนรู้ของเครื่อง
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียดได้ในไฟล์ ลิงค์ต่อไปนี้