1. Client Hints คืออะไรในการระบุรอยนิ้วมือของเบราว์เซอร์?
Client Hints (CH) คือกลไกที่ใช้ HTTP ซึ่งช่วยให้เว็บไซต์สามารถร้องขอ คุณลักษณะเฉพาะของอุปกรณ์และเบราว์เซอร์ ได้โดยตรงจากไคลเอ็นต์ เพื่อเสริม (หรือแทนที่) การวิเคราะห์สตริง User-Agent แบบดั้งเดิม
เนื่องจากการเลิกใช้ สตริง User-Agent แบบเต็ม ใน Chrome, Firefox และ Edge อย่างค่อยเป็นค่อยไป Client Hints จึงกลายเป็น แหล่งข้อมูลหลักในการระบุรอยนิ้วมือ ซึ่งเปิดเผยข้อมูลเช่น:
- รุ่นและยี่ห้อของอุปกรณ์ (
Sec-CH-UA-Model
,Sec-CH-UA-Platform
) - เวอร์ชันและผู้จำหน่ายเบราว์เซอร์ (
Sec-CH-UA
,Sec-CH-UA-Full-Version-List
) - ขนาดหน้าจอ (
Sec-CH-Viewport-Width
,Sec-CH-Width
) - ภาษาและการเข้ารหัสที่ต้องการ (
Sec-CH-Lang
,Sec-CH-Prefers-Reduced-Motion
) - สถานะฮาร์ดแวร์ (
Sec-CH-Save-Data
,Sec-CH-DPR
สำหรับอัตราส่วนพิกเซลการแสดงผล)
ต่างจาก User-Agent, Client Hints ต้องได้รับการอนุญาตจากเซิร์ฟเวอร์อย่างชัดแจ้ง (ผ่าน Accept-CH
header) ก่อนที่เบราว์เซอร์จะส่งข้อมูลไป—ทว่าสคริปต์ที่ละเมิดความเป็นส่วนตัวจำนวนมาก บังคับให้มีการส่งข้อมูล ผ่าน JavaScript หรือการใช้ iframe
2. แพลตฟอร์มตรวจจับและใช้ Client Hints ในการระบุรอยนิ้วมือได้อย่างไร
ระบบตรวจจับบอทและการฉ้อโกงสมัยใหม่ ตรวจสอบ Client Hints อย่างจริงจัง เพื่อสร้าง รอยนิ้วมือที่มีเอนโทรปีสูง โดยตรวจสอบหาความผิดปกติเช่น:
- ความไม่สอดคล้องกันของเวอร์ชัน
Sec-CH-UA
ไม่ตรงกับสตริงUser-Agent
- การรวมกันของเบราว์เซอร์/ระบบปฏิบัติการที่เป็นไปไม่ได้ (เช่น Chrome 120 บน Windows 7)
- การโจมตีด้วยเวลาของ Header
- การตรวจจับ headers ที่ล่าช้าหรือหายไป (เป็นสัญญาณของมิดเดิลแวร์การปลอมแปลง)
- การเปรียบเทียบสิทธิ์
Accept-CH
ระหว่างเซสชัน
- ความสัมพันธ์ของฮาร์ดแวร์/ซอฟต์แวร์
Sec-CH-UA-Model
เทียบกับnavigator.hardwareConcurrency
Sec-CH-DPR
เทียบกับwindow.devicePixelRatio
- การบังคับดึง Client Hints
- การใช้
<iframe>
หรือfetch()
พร้อมimportance: 'high'
เพื่อเลี่ยงข้อจำกัดด้านความเป็นส่วนตัว - การบันทึก hints เริ่มต้นเทียบกับ hints ที่ถูกแทนที่ เพื่อตรวจจับสภาพแวดล้อม VM/dockerized
Client Hints เป็นอันตรายต่อการไม่เปิดเผยตัวตนเป็นพิเศษ เนื่องจาก พวกมันสามารถเลี่ยงผ่านเครื่องมือปลอมแปลง User-Agent แบบดั้งเดิมได้—ซึ่งต้องอาศัยการผสานรวมกับเบราว์เซอร์อย่างลึกซึ้งจึงจะสามารถจัดการได้อย่างน่าเชื่อถือ
3. FlashID ควบคุมรอยนิ้วมือของ Client Hints ได้อย่างไร
FlashID ช่วยให้ผู้ใช้สามารถ ควบคุม Client Hints headers ได้อย่างละเอียด เพื่อให้มั่นใจว่าแต่ละโปรไฟล์เบราว์เซอร์จะ: ✔️ ส่งเฉพาะ hints ที่ได้รับอนุญาตเท่านั้น (ตรงกับโปรไฟล์รอยนิ้วมือ) ✔️ รักษาความสอดคล้องข้าม API (เช่น JS เทียบกับ HTTP headers) ✔️ บล็อกการบังคับดึง hint ผ่านการปิดบังการอนุญาต
คุณสมบัติการปลอมแปลงที่สำคัญ ได้แก่:
➠ 1. การทำ Whitelisting Client Hints
- เลือก
Sec-CH-*
headers ที่จะเปิดเผยต่อโปรไฟล์ - จำลอง การเจรจา hint ที่ถูกต้อง ด้วย
Accept-CH
และCritical-CH
➠ 2. การสร้าง Header แบบไดนามิก
- สร้างสตริง
Sec-CH-UA-*
โดยอัตโนมัติที่ตรงกับ เวอร์ชันของเบราว์เซอร์, ระบบปฏิบัติการ, และ ประเภทอุปกรณ์ - ซิงค์
Sec-CH-Viewport-Width
กับ ขนาดหน้าต่างจริง (เมื่อปรับขนาด)
➠ 3. การป้องกันการตรวจจับ
- บล็อก การบังคับดึง hint ผ่านการฉีด JS/iframe
- เลียนแบบ ความล่าช้าในการส่ง header ตามธรรมชาติ (~100-300 มิลลิวินาที) เพื่อหลีกเลี่ยงการตรวจสอบเวลา
➠ 4. การจัดตำแหน่งฮาร์ดแวร์/ซอฟต์แวร์
- บังคับใช้ความสอดคล้องระหว่าง:
Sec-CH-DPR
↔devicePixelRatio
Sec-CH-UA-Model
↔navigator.userAgentData
Sec-CH-Width
↔screen.width
ด้วยการเขียนทับ Client Hints ที่เลเยอร์เครือข่าย อย่างละเอียด FlashID สามารถเอาชนะ การระบุรอยนิ้วมือยุคหน้า ได้ พร้อมทั้งช่วยให้สามารถใช้งานหลายบัญชีได้อย่างปลอดภัยบนแพลตฟอร์มที่อาศัยสัญญาณเหล่านี้ในการประเมินการฉ้อโกง
คุณอาจชอบ