← กลับไปที่บล็อก

ฟอนต์ฟิงเกอร์ปริ้นต์คืออะไร เว็บไซต์ใช้รายการฟอนต์จำแนกสภาพแวดล้อมเบราว์เซอร์ได้อย่างไร

เปลี่ยนชุดสภาพแวดล้อม เปลี่ยนชุดพร็อกซี แต่เลย์เอาต์หน้าเว็บก็ยังมีความต่างเล็ก ๆ ให้เห็น บนเว็บไซต์เดียวกัน ตัวอักษรปุ่มของสภาพแวดล้อมนี้กว้างกว่าของอีกเครื่องอยู่สองพิกเซล หนึ่งในที่มาของความต่างแบบนี้คือฟอนต์ เครื่องแต่ละเครื่องติดตั้งฟอนต์อะไรไว้ เว็บไซต์ทดสอบเพียงไม่กี่จุดก็รู้ได้คร่าว ๆ รายการฟอนต์จึงกลายเป็นพารามิเตอร์หมวดหนึ่งของฟิงเกอร์ปริ้นต์เบราว์เซอร์ บทความนี้ว่าด้วยสามเรื่อง เว็บไซต์วัดฟอนต์อย่างไร ผลทดสอบเชื่อถือได้แค่ไหน และฟอนต์สามโหมด (จริง สุ่ม กำหนดเอง) เหมาะกับสถานการณ์แบบใด ส่วนฟอนต์วางอยู่ตรงไหนในฟิงเกอร์ปริ้นต์โดยรวมนั้น การตั้งค่าฟิงเกอร์ปริ้นต์ของ MostMate จัดให้เป็นพารามิเตอร์พื้นฐานหนึ่ง ภาพรวมทั้งหมดของผลิตภัณฑ์ดูได้ที่ MostMate คืออะไร

ฟอนต์ฟิงเกอร์ปริ้นต์คืออะไร เว็บไซต์กำลังเดาว่าคุณติดตั้งฟอนต์ใดไว้

ฟอนต์ฟิงเกอร์ปริ้นต์ไม่ใช่การแนบไฟล์ฟอนต์ของคุณขึ้นเซิร์ฟเวอร์ แต่เว็บไซต์ใช้ชุดการทดสอบเดาว่าเครื่องนี้แสดงฟอนต์หนึ่ง ๆ ได้หรือไม่ ระบบปฏิบัติการมาพร้อมฟอนต์ชุดหนึ่งตั้งแต่ออกจากโรงงาน ผู้ใช้และซอฟต์แวร์ค่อยเติมเข้าไปทีหลัง ติดตั้ง Office ก็ได้ฟอนต์เพิ่มอีกชุด Windows รุ่นภาษาจีนยังพก SimSun และ Microsoft YaHei มาในตัว ชุดฟอนต์ของเครื่องสองเครื่องส่วนใหญ่ไม่เหมือนกัน ความต่างนี้คือข้อมูล EFF ใส่ฟอนต์ไว้ในรายการพารามิเตอร์ที่ใช้ระบุตัวตนได้ตั้งแต่งานวิจัยติดตามปี 2010 และการตรวจจับแบบนี้ก็ยังคงอยู่ในเว็บไซต์กระแสหลักจนถึงทุกวันนี้

จุดต่างจากพารามิเตอร์ฟิงเกอร์ปริ้นต์อื่นคือความถี่ในการเปลี่ยนแปลง Canvas กับ WebGL กำหนดด้วยฮาร์ดแวร์และเอนจินเรนเดอร์ มักไม่ขยับเลยเป็นเดือน ๆ ส่วนรายการฟอนต์ไล่ตามการติดตั้งซอฟต์แวร์ ติดตั้งโปรแกรมสำนักงานใหม่สักตัว หรือลบไฟล์ฟอนต์ทิ้งหนึ่งไฟล์ รายการก็เปลี่ยน พารามิเตอร์ที่เปลี่ยนเร็ว ก็เผยตัวเร็วเช่นกัน การติดตั้งซอฟต์แวร์เพียงครั้งเดียวก็ทำให้รายการเบี่ยงจากเดิมได้

เว็บไซต์วัดฟอนต์อย่างไร สามวิธี ที่วัดกันหมดคือมีหรือไม่มี

เว็บไซต์อ่านรายการฟอนต์ของระบบตรง ๆ ไม่ได้ ทำได้แค่อ้อมไปเดา วิธีที่พบบ่อยมีสามแบบ:

  1. วิธีวัดความกว้างเทียบกัน วางข้อความชุดคงที่ไว้ในหน้าเว็บ ครั้งแรกให้ฟอนต์สำรอง (fallback font เช่น monospace) วัดความกว้างหนึ่งรอบ ครั้งถัดมาระบุเป็นฟอนต์เป้าหมายแล้ววัดอีกรอบ ถ้าความกว้างเท่ากันแปลว่าฟอนต์เป้าหมายไม่มีอยู่ ถ้าไม่เท่ากันแปลว่ามีอยู่ สคริปต์ทดสอบวนชื่อฟอนต์ทั่วไปร้อยกว่าชื่อ ก็ประกอบเป็นรายชื่อแบบมีกับไม่มีได้
  2. เทียบการเรนเดอร์บน Canvas ใช้ Canvas วาดข้อความชุดเดียวกันด้วยฟอนต์ต่างกันแล้วเทียบความต่างของพิกเซล ซึ่งดึงความต่างของเอนจินเรนเดอร์เข้ามาเกี่ยวข้องไปพร้อมกันด้วย
  3. Font Loading API เบราว์เซอร์ยุคใหม่มีอินเทอร์เฟซอย่าง document.fonts.check('12px "Segoe UI"') ที่บอกตรง ๆ ว่าฟอนต์หนึ่งใช้ได้หรือไม่ ง่ายกว่าการวัดความกว้าง
วิธีตรวจจับฟอนต์ของเบราว์เซอร์ทั้งสามแบบ

ทั้งสามวิธีวัดกันหมดว่า ชื่อฟอนต์หนึ่ง ๆ ใช้ได้จริงบนเครื่องนี้หรือไม่ ไม่ได้วัดตัวไฟล์ฟอนต์เอง การตรวจจับจริงมักใช้ผสมกัน วัดความกว้างเป็นแนวหลัก Canvas เป็นการยืนยันข้าม รายละเอียดของอินเทอร์เฟซดูได้ที่ เอกสาร Document.fonts ของ MDN และรายชื่อฟอนต์ที่ทดสอบแบบเต็มพร้อมตรรกะการตัดสิน ดูได้ที่ โค้ดตรวจจับฟอนต์ของ FingerprintJS

ผลทดสอบครบไม่ได้ตั้งแต่ต้น สิ่งที่คุณได้ไม่ใช่รายการเต็ม

ส่วนนี้ขอแก้ความเข้าใจที่พบบ่อยก่อน เว็บไซต์วัดฟอนต์ที่คุณติดตั้งไม่ได้ทั้งหมด วัดได้แค่ส่วนที่อยู่ในรายชื่อของมันเอง ผลทดสอบที่ได้จริง ๆ คือจุดตัดระหว่างรายชื่อฟอนต์ทั่วไปกับเครื่องของคุณ

ผลที่ตามมามีสองอย่าง อย่างแรก เครื่องสองเครื่องที่ชุดฟอนต์ต่างกัน อาจได้ผลเหมือนกัน เครื่องแรกมีฟอนต์ A กับ B เครื่องที่สองมี A กับ C แต่เว็บทดสอบเช็คแค่ A กับ D สองเครื่องเลยรายงานเหมือนกันว่า มี A ไม่มี D ค่าแฮชจึงตรงกัน ฟอนต์ฟิงเกอร์ปริ้นต์ตรงกันไม่ได้แปลว่าอุปกรณ์เป็นเครื่องเดียวกัน มันยืนยันได้แค่ว่าภายในขอบเขตรายชื่อทดสอบ ทั้งสองเครื่องทำงานเหมือนกันเท่านั้น

อย่างที่สอง ส่วนที่อยู่นอกรายชื่อมองไม่เห็นเลย เครื่องงานออกแบบที่ติดตั้งฟอนต์ไว้ 300 ตัว กับเครื่องที่ลงระบบเปล่า ๆ ถ้ารายชื่อทดสอบครอบคลุมแค่ฟอนต์ทั่วไป 150 ตัว ฟอนต์ที่เกินมาอีก 150 ตัวก็ไม่มีทางถูกมองเห็น

สำหรับการใช้งานหลายบัญชี ผลทดสอบที่ครบไม่ได้เป็นดาบสองคม ฟอนต์เพียงอย่างเดียวชี้ตัวตนไม่ได้ แต่ระบบความเสี่ยงจะเอาฟอนต์ไปเทียบข้ามกับสัญญาณอื่น รายการไหนไม่สอดคล้องกับระบบปฏิบัติการหรือภาษาที่ตั้งไว้ มันก็กลายเป็นจุดผิดปกติที่เด่นชัดทันที จำนวนฟอนต์และค่าแฮชที่เครื่องมือตรวจจับแสดง อ่านตามหลัก สภาพแวดล้อมเดียวกันต้องคงที่ ต่างสภาพแวดล้อมต้องต่างกัน ไม่ต้องไปไล่ตามตัวเลขใดตัวเลขหนึ่ง

อะไรที่กำหนดรูปร่างรายการฟอนต์ของคุณ

ชุดฟอนต์ของเครื่องเกิดจากการซ้อนทับกันสี่ชั้น ทุกชั้นล้วนทำให้เครื่องสองเครื่องที่ดูเหมือนกันแตกต่างกันได้:

  • ระบบปฏิบัติการและเวอร์ชัน Windows, macOS, Linux มาพร้อมชุดฟอนต์ต่างกันตั้งแต่โรงงาน แม้เป็น Windows ด้วยกัน รุ่น 10 กับ 11 ก็ยังไม่เหมือนกัน นี่คือรากฐานที่ทำให้รายการฟอนต์ยืนยันกับแพลตฟอร์มที่ UA อ้างว่าเป็นได้
  • ภาษาและภูมิภาคของระบบ Windows รุ่นภาษาจีนพก SimSun กับ Microsoft YaHei มาในตัว เครื่องยุโรปอเมริกาส่วนใหญ่ไม่มี ระบบภาษาญี่ปุ่น เกาหลีก็เช่นเดียวกัน รายการฟอนต์มักเผยที่มาทางภูมิภาคของสภาพแวดล้อมได้ก่อนพารามิเตอร์อื่น
  • ซอฟต์แวร์ที่พกฟอนต์มาด้วย Office, Adobe, WPS ล้วนเทฟอนต์ของตัวเองลงในระบบ เครื่องทำงานออกแบบกับเครื่องที่เปิดแค่เบราว์เซอร์ ชุดฟอนต์ต่างกันคนละเรื่อง
  • กฎการสำรองของเอนจินเบราว์เซอร์ ชื่อฟอนต์เดียวกัน Chromium กับ Firefox เลือก fallback font ไม่เหมือนกัน ความกว้างที่วัดได้จึงต่างกัน เวอร์ชันเคอร์เนลของสภาพแวดล้อมเปลี่ยนไป ผลละเอียดย่อยก็อาจเปลี่ยนตาม
ปัจจัยสี่ชั้นที่หล่อหลอมรายการฟอนต์ของเบราว์เซอร์

สี่ชั้นซ้อนกันนี้อธิบายปรากฏการณ์ที่พบบ่อยอย่างหนึ่ง สภาพแวดล้อมที่จัด IP เขตเวลา ภาษาครบแล้ว รายการฟอนต์ยังติดร่องรอยบ้านเกิดอยู่ อ้างว่าเป็นสภาพแวดล้อมภาษาอังกฤษฝั่งอเมริกา แต่ในรายการฟอนต์ยังมี Microsoft YaHei นอนอยู่ ตอนเทียบข้าม ความไม่ตรงกันแบบนี้บอกปัญหาได้ชัดกว่าความผิดปกติของพารามิเตอร์เดี่ยวอีก

ตัดสินความสม่ำเสมออย่างไร สามเกณฑ์กับสามขั้นตอนตรวจด้วยตัวเอง

เมื่อเข้าสู่การจัดการสภาพแวดล้อม พารามิเตอร์ฟอนต์ต้องผ่านสามเกณฑ์:

  1. สภาพแวดล้อมเดียวกันต้องนิ่ง ทดสอบซ้ำในสภาพแวดล้อมเดิม จำนวนฟอนต์กับค่าแฮชต้องคงเดิม ระหว่างใช้งานสภาพแวดล้อมอย่าไปติดตั้งซอฟต์แวร์หรือลบฟอนต์เพิ่มระหว่างใช้งาน
  2. ต่างสภาพแวดล้อมต้องต่างกัน สภาพแวดล้อมที่อ้างว่ามาจากภูมิภาคต่างกัน รายการฟอนต์ควรมีความต่างที่มองเห็นได้ สภาพแวดล้อมคนอเมริกากับคนเยอรมันรายงานค่าแฮชฟอนต์เหมือนกันเป๊ะ ถือเป็นสัญญาณน่าสงสัย
  3. ต้องตรงกับข้อมูลที่อ้างไว้ สภาพแวดล้อม Windows มีฟอนต์เฉพาะของ macOS โผล่มา หรือสภาพแวดล้อมภาษาอังกฤษพร้อมแถวฟอนต์จีนยาวเหยียด ล้วนเป็นความไม่ตรงกันที่เด่นชัด ความเสี่ยงของการสุ่มพารามิเตอร์มีการวิเคราะห์ไว้เฉพาะในบทความ ทำไมการสุ่มฟิงเกอร์ปริ้นต์กลับอันตราย ฟอนต์เป็นกรณีที่เด่นที่สุดของตรรกะนี้ การผสมฟอนต์แบบสุ่มมักไม่มีอยู่จริงในโลก

ตรวจเองสามขั้น เปิดหน้าผลการตรวจจับบน BrowserScan หรือ Iphey หาหัวข้อฟอนต์ (Fonts) แล้วจดค่าไว้ รีเฟรชสภาพแวดล้อมเดิมสองสามรอบยืนยันว่าค่านิ่ง จากนั้นเปิดสภาพแวดล้อมที่สองรันการตรวจเดิม เทียบว่าความต่างสอดคล้องกับบุคลิกของแต่ละตัวหรือไม่

หัวข้อฟอนต์บนหน้าผลการตรวจจับของ BrowserScan

เลือกโหมดรายการฟอนต์ของ MostMate อย่างไร

ในการตั้งค่าฟิงเกอร์ปริ้นต์ของ MostMate รายการฟอนต์มีให้สามโหมด จริง สุ่ม กำหนดเอง ตรงกับสถานการณ์การใช้งานสามแบบ:

  • จริง สภาพแวดล้อมใช้รายการฟอนต์ปัจจุบันของเครื่องโฮสต์ตรง ๆ ผลทดสอบจึงตรงกับการเปิดเบราว์เซอร์เอง เหมาะกับเครื่องโฮสต์ที่คอนฟิกสะอาด และบุคลิกสอดคล้องกับภูมิภาคของระบบโฮสต์ เช่น เครื่องนี้เป็น Windows ภาษาอังกฤษ และสภาพแวดล้อมที่ทำก็คืออเมริกาพอดี
  • สุ่ม ให้สภาพแวดล้อมสร้างชุดฟอนต์ขึ้นมาเอง โดยมีเงื่อนไขว่าอัลกอริทึมสุ่มต้องประกอบตามขอบเขตของระบบปฏิบัติการและภาษา ชุดฟอนต์ที่ได้จึงอยู่ในช่วงที่สมเหตุสมผลตามบุคลิกนั้น เหมาะกับการสร้างสภาพแวดล้อมจำนวนมาก งานประจำวันที่ไม่จำเป็นต้องเช็ครายละเอียดฟอนต์ทีละตัว
  • กำหนดเอง ติ๊กเลือกรายการฟอนต์เอง เหมาะกับสภาพแวดล้อมที่แพลตฟอร์มเป้าหมายคุมเข้ม หรือบุคลิกต่างจากเครื่องโฮสต์มาก ให้เติมชุดฟอนต์ของระบบที่บุคลิกอ้างถึงให้ครบ แล้วตอนตั้งค่าเทียบกับสามเกณฑ์ในหัวข้อก่อนหน้าทีละข้อ

ทั้งสามโหมดเลือกได้จากพื้นที่ตั้งค่าฟิงเกอร์ปริ้นต์ในฟอร์มสร้างสภาพแวดล้อม ตั้งค่าแล้วยืนยันค่าปัจจุบันที่ช่องรายการฟอนต์ในแผงพรีวิวฟิงเกอร์ปริ้นต์ จากนั้นให้เว็บตรวจจับทดสอบซ้ำอีกรอบ ขั้นตอนตั้งค่าแบบเต็มดูได้ที่ ผู้เริ่มใช้ MostMate เริ่มต้นอย่างไร

บทสรุป

แก่นของฟอนต์ฟิงเกอร์ปริ้นต์คือเว็บไซต์ใช้รายชื่อทดสอบที่จำกัดเดาชุดฟอนต์ของเครื่อง วัดรายการเต็มไม่ได้ แต่พอที่จะเผยความไม่ตรงกันตอนเทียบข้าม ด้านการจัดการให้จับสามเรื่อง สภาพแวดล้อมเดียวกันต้องนิ่ง ต่างสภาพแวดล้อมต้องเว้นช่องว่างออกจากกัน รายการฟอนต์ตรงกับระบบภูมิภาคที่อ้างไว้ ใครอยากวางระบบสภาพแวดล้อมตั้งแต่ศูนย์ เริ่มด้วยการ ดาวน์โหลด MostMate ได้ ส่วนตรรกะความสม่ำเสมอของพารามิเตอร์แต่ละตัว ส่วนใหญ่หาคำอธิบายตรงกันได้ในบทความ สี่หลักการออกแบบของ MostMate

FAQ

ฟอนต์ฟิงเกอร์ปริ้นต์ระบุอุปกรณ์เดียวได้ด้วยตัวเองไหม

ไม่ได้ ผลทดสอบถูกจำกัดด้วยรายชื่อทดสอบ เครื่องสองเครื่องที่ฟอนต์ต่างกันอาจได้ผลเหมือนกัน ระบบความเสี่ยงมักเอาฟอนต์ไว้เทียบข้ามกับ UA, Canvas, ภาษา ฯลฯ ฟอนต์เดี่ยว ๆ ไม่เพียงพอที่จะเป็นหลักฐานตัวตน

ฟอนต์ฟิงเกอร์ปริ้นต์ของเบราว์เซอร์ต่างกันจะเหมือนกันไหม

ถ้าชุดฟอนต์เท่ากัน ทิศทางใหญ่จะตรงกัน แต่กฎการสำรองกับรายละเอียดการเรนเดอร์ของแต่ละเอนจินต่างกัน ค่าความกว้างจึงเหลื่อมกันได้ ผลทดสอบของ Chrome กับ Firefox บนเครื่องเดียวกันมักต่างกันในรายละเอียด นั่นคือความต่างของเอนจิน

ติดตั้งฟอนต์เยอะแล้วถูกจับได้ง่ายขึ้นไหม

ฟอนต์ที่เพิ่มมาจะถูกเห็นเมื่อตกอยู่ในรายชื่อทดสอบเท่านั้น จำนวนเพียงอย่างเดียวมีผลจำกัด ฟอนต์หายากเป็นข้อยกเว้น ฟอนต์ดีไซน์เฉพาะทางพอถูกตรวจเจอ รายการนี้จะดูหายากในทางสถิติทันที

ล้าง Cookie แล้วลบฟอนต์ฟิงเกอร์ปริ้นต์ได้ไหม

ไม่ได้ รายการฟอนต์มาจากการติดตั้งบนเครื่อง ไม่ใช่ข้อมูลที่เก็บฝั่งเว็บไซต์ ล้าง Cookie ล้างแคชไม่กระทบมันเลย อยากเปลี่ยนต้องแก้คอนฟิกฟอนต์ที่ระดับสภาพแวดล้อม

MOSTMATE

จัดการหลายบัญชีอย่างปลอดภัยได้ง่ายกว่าเดิม

เริ่มจากบัญชีแรก แล้วใช้ MostMate สร้างการทำงานหลายบัญชีที่ปลอดภัย ฉลาด และมีประสิทธิภาพยิ่งขึ้น

  • โปรไฟล์เป็นอิสระ ตัวตนสอดคล้องกัน
  • ระบบอัตโนมัติด้วย AI · สุขภาพบัญชี · การดำเนินงานของทีม
ดาวน์โหลด MostMate