1. คุณสมบัติเบ็ดเตล็ดในการระบุลายนิ้วมือของเบราว์เซอร์คืออะไร
ในบรรดาเวกเตอร์ลายนิ้วมือมากมาย คุณสมบัติเบ็ดเตล็ดของเบราว์เซอร์
เป็นกลุ่มของตัวบ่งชี้ตามความสามารถ ที่ใช้ในการพิจารณาว่า APIs, แอตทริบิวต์ และตัวห่อหุ้มภาษาที่กำหนดเอง ใดบ้างที่เบราว์เซอร์หรือสภาพแวดล้อมพื้นฐานรองรับ
คุณสมบัติเหล่านี้ไม่จำเป็นต้องผูกติดกับฮาร์ดแวร์เสมอไป แต่ได้รับอิทธิพลอย่างมากจาก:
- การรองรับการใช้งานของเบราว์เซอร์
- เวอร์ชันเอนจิน (เช่น Blink, WebKit)
- นโยบายการทำงานของอุปกรณ์
- การปรับเปลี่ยนรันไทม์ (เช่น เครื่องมืออัตโนมัติของเบราว์เซอร์จากบุคคลที่สาม หรือเอนจินการระบุลายนิ้วมือ)
แพลตฟอร์มมักใช้คุณสมบัติเหล่านี้เพื่อ:
- ตรวจจับว่าคุณกำลังเลียนแบบเบราว์เซอร์มาตรฐานหรือไม่
- ระบุลายนิ้วมือของการทำงานอัตโนมัติหรือสภาพแวดล้อมที่ถูกปลอมแปลง
- คำนวณคะแนนความสอดคล้องของคุณสมบัติ
- ยกเว้นโปรไฟล์ที่ใช้ชุดเทคโนโลยี “ไม่ได้รับอนุญาต” เช่น VMs ที่มีความสามารถของผู้ใช้จริง
ชั้นของลายนิ้วมือนี้มีบทบาทสำคัญในการให้คะแนนความถูกต้องของอุปกรณ์ ช่วยให้บริการต่างๆ สามารถแยกแยะผู้ใช้จริงออกจากผู้ที่ถูกจำลองหรือระบบอัตโนมัติได้
2. แพลตฟอร์มใช้คุณสมบัติเบ็ดเตล็ดสำหรับการระบุลายนิ้วมืออย่างไร
แพลตฟอร์มขั้นสูงสร้างโปรไฟล์ความเข้ากันได้ของคุณสมบัติ เพื่อประเมินว่าเบราว์เซอร์ของคุณเป็น:
- เบราว์เซอร์จริง (และไม่ใช่สภาพแวดล้อมระยะไกลหรือที่ถูกปลอมแปลง)
- สภาพแวดล้อมที่ล้าสมัยหรือต้องสงสัยว่าไม่ปลอดภัย
- ขาดความสามารถเฉพาะบางอย่างหรือมีประสิทธิภาพสูงเกินไปเนื่องจากเครื่องมือทดสอบ (เช่น Puppeteer)
การทดสอบบางส่วนที่ใช้ในตรรกะการตรวจจับจริงประกอบด้วย:
✅ คุณสมบัติที่คาดว่าจะพบในเชิงบวก
การทดสอบคุณสมบัติ | ความเกี่ยวข้องในเบราว์เซอร์ทั่วไป |
---|---|
navigator.geolocation | พบได้ทั่วไปในเบราว์เซอร์เดสก์ท็อปและมือถือสมัยใหม่ |
AudioContext | ในตัวสำหรับการเล่นมัลติมีเดีย HTML5 |
requestAnimationFrame | จำเป็นสำหรับการสร้างแอนิเมชันและการเรนเดอร์ฝั่งเบราว์เซอร์ |
Web Cryptography API | จำเป็นสำหรับเว็บไซต์ที่ปลอดภัยซึ่งใช้ใบรับรองไคลเอ็นต์ |
TextEncoder/Decoder | มาตรฐานในเบราว์เซอร์สมัยใหม่ทั้งหมด (ยกเว้นเวอร์ชันเก่ามาก) |
Promise and Proxy support | บ่งชี้สภาพแวดล้อม JS ที่เป็นปัจจุบัน |
Notifications API | ใช้ในแพลตฟอร์มที่ต้องได้รับอนุญาต เช่น ร้านค้า, พอร์ทัลทางการเงิน |
❌ คุณสมบัติที่พบน้อยหรือไม่เกี่ยวข้องกับความปลอดภัย
การทดสอบคุณสมบัติ | บ่งชี้การทำงานอัตโนมัติ/เบราว์เซอร์ที่ถูกแก้ไข |
---|---|
Low Battery Level = true | หายากเว้นแต่จะใช้สำหรับการสาธิตหรือโน้ตบุ๊ก |
DOM style[scoped] = true | เลิกใช้แล้ว, บ่งบอกถึงสภาพแวดล้อมพิเศษ |
canvas.captureStream | มักถูกแก้ไขหรือขาดหายไป |
Web Intents = false | ล้าสมัยในเบราว์เซอร์สมัยใหม่ส่วนใหญ่ |
AmbientLightEvents = false | โดยปกติไม่รองรับเว้นแต่ในแอป UX ที่ใช้เซ็นเซอร์ |
Force Touch Events = false | ปัจจุบันมีเพียงอุปกรณ์ macOS บางรุ่นเท่านั้นที่รองรับ |
DeviceMotionEvent /Orientation | มักขาดหายไปในสภาพแวดล้อมที่ไม่ใช่มือถือ |
Web Authentication API | False หมายถึงไคลเอนต์ที่ล้าสมัยหรือทำงานอัตโนมัติ |
การละเมิดชุดคุณสมบัติที่คาดไว้ — เช่น เบราว์เซอร์จากปี 2025 ที่อ้างว่าไม่รองรับ Promise หรือเบราว์เซอร์เดสก์ท็อปที่ไม่ผ่านการทดสอบ Battery API — อาจทำให้คะแนนความน่าเชื่อถือลดลง และแจ้งเตือนระบบเกี่ยวกับความเป็นไปได้ของการมีหลายบัญชี
3. FlashID เลียนแบบการตรวจจับคุณสมบัติธรรมชาติอย่างไร
FlashID ทำให้มั่นใจว่าแต่ละโปรไฟล์เบราว์เซอร์จะสืบทอดและนำเสนอความเข้ากันได้ในระดับซอฟต์แวร์ได้อย่างถูกต้อง ซึ่งสอดคล้องกับตัวตนของลายนิ้วมือที่ผู้ใช้เลือกไว้ ซึ่งรวมถึง:
3.1. การรายงานคุณสมบัติที่เป็นหนึ่งเดียว
- เปิดใช้งานหรือปิดใช้งานตามเวอร์ชันเบราว์เซอร์/OS ของโปรไฟล์
- รับรองการคืนค่าที่สอดคล้องกันของ ✔true หรือ ×false ในการโหลดเซสชันการทดสอบทั้งหมด
3.2. การจับคู่รายการคุณสมบัติที่อนุญาตแบบฝังตัว
แต่ละโปรไฟล์จะจับคู่ตารางคุณสมบัติที่คาดหวังโดยอัตโนมัติตาม:
- บิลด์เอนจินของเบราว์เซอร์ (เช่น Chrome 128.x บน macOS 14.x หรือ Win10)
- ความสามารถของ OS (Windows ไม่มี
DeviceMotionEvent
, มือถือจะมีหากเปิดใช้งาน) - รูปแบบสภาพแวดล้อม (Headless เทียบกับ Real Desktop)
3.3. การจำลองการรองรับและความล้มเหลว
FlashID ใช้พฤติกรรมคุณสมบัติที่เหมือนจริง รวมถึง:
- การซ่อน
navigator.userAgentData.features
ตามผู้ให้บริการ - การตอบสนองสังเคราะห์สำหรับคุณสมบัติที่ล้าสมัยและเลิกใช้แล้ว (เช่น ×false บน
VML
หรือWeb Intents
) - การหน่วงเวลาเพิ่มเติมในการตอบสนองการทดสอบแบตเตอรี่หรือแสงโดยรอบเพื่อเลียนแบบอัตราการทำงานจริง
- การคืนค่าข้อผิดพลาด
Permission API
ปลอมสำหรับคุณสมบัติเช่นPromise
,Blob
, หรือCustomEvent
หากจำเป็น
การควบคุมคุณสมบัติบางส่วนนี้ช่วยให้การตรวจจับที่เข้มงวดยิ่งขึ้น ช่วยให้ผู้ใช้สามารถเลือกสภาพแวดล้อมของตนได้ใกล้เคียงกับเบราว์เซอร์จริง โดยไม่ดูเหมือนมีการตั้งค่ามากเกินไปหรือถูกปรับแต่งอย่างแข็งขัน
✅ ตารางตัวอย่างคุณสมบัติที่รองรับ (ภาพหน้าจอที่เป็นไปได้หรือภาคผนวก - ไม่แสดงผลที่นี่ใน Markdown)
คำอธิบายคุณสมบัติ | ผลการทดสอบ |
---|---|
Geolocation API | ✔true |
Canvas Capture Stream API | ✔true |
Battery API | ✔true |
ระดับแบตเตอรี่ต่ำ | ×false |
Blob Constructor | ✔true |
เมนูบริบท | ×false |
เหตุการณ์ Force Touch | ×false |
แอตทริบิวต์ iframe[seamless] | ×false |
DOM style[scoped] | ×false |
Web Intents | ×false |
เหตุการณ์แสงโดยรอบ | ×false |
VML | ×false |
การรองรับ Dart | ×false |
คุณอาจชอบ