- การเก็บลายนิ้วมือเบราว์เซอร์ (browser fingerprinting) เป็น เทคนิคการติดตามที่ร้ายแรง ซึ่งป้องกันได้ยากแม้จะใช้คุกกี้หรือ VPN โดยอาศัยการนำข้อมูลสภาพแวดล้อมของผู้ใช้มาผสมกันเพื่อสร้างตัวระบุเฉพาะ
- องค์ประกอบหลากหลาย เช่น ระบบปฏิบัติการ เวอร์ชันเบราว์เซอร์ ภาษา เขตเวลา ฟอนต์ ส่วนขยาย และ ผลการเรนเดอร์แคนวาส ถูกนำมารวมกัน ทำให้ความเป็นไปได้ในการระบุตัวบุคคลเพิ่มสูงขึ้น
- มาตรการป้องกันแบบง่าย ๆ เช่น ปิด JavaScript, ปลอมตัวเบราว์เซอร์, ดัดแปลงแคนวาส กลับอาจทิ้งเบาะแสสำหรับการระบุตัว หรือทำให้เว็บไซต์ทำงานผิดปกติ
- เบราว์เซอร์บางตัวอย่าง Brave, Mullvad, Librewolf มี ฟีเจอร์ต้านทาน fingerprinting ในตัว แต่ก็ยังป้องกันได้ไม่สมบูรณ์ และต้องแลกกับความสะดวกในการใช้งานที่ลดลงรวมถึง CAPTCHA ที่เพิ่มขึ้น
- กฎหมายปัจจุบันอย่าง GDPR ยังมีฐานในการกำกับดูแลที่ไม่ชัดเจน จึงเกิดข้อเรียกร้องถึง ความจำเป็นของการออกกฎหมายใหม่
ฉากหลังของการเกิด browser fingerprinting
- ในอดีต คุกกี้บุคคลที่สาม เป็นภัยต่อความเป็นส่วนตัวหลัก
- เดิมทีคุกกี้เป็นกลไกสำหรับการสื่อสารต่อเนื่องระหว่างเบราว์เซอร์กับเซิร์ฟเวอร์ แต่เครือข่ายโฆษณานำสิ่งนี้ไปใช้เชื่อมโยงข้อมูลผู้ใช้ข้ามหลายเว็บไซต์
- ในยุโรปจึงมีการกำหนด หน้าที่ต้องแจ้งให้ทราบตามกฎหมาย เกี่ยวกับเรื่องนี้
- เมื่อเบราว์เซอร์ปรับปรุงความสามารถในการแยกคุกกี้ ความเสี่ยงจากการติดตามด้วยคุกกี้ก็ลดลง แต่ fingerprinting กลับกลายเป็นภัยคุกคามรูปแบบใหม่
browser fingerprinting ทำงานอย่างไร
- ทำงานได้แม้ไม่มีคุกกี้ และแม้ใช้ VPN ก็ยังคง มีความเป็นไปได้ในการระบุตัวตนอยู่ระดับหนึ่ง
- นำข้อมูลพื้นฐานที่เบราว์เซอร์ส่งให้เซิร์ฟเวอร์ (เช่น เวอร์ชันเบราว์เซอร์ ระบบปฏิบัติการ ภาษา เขตเวลา) มาผสมกันเพื่อสร้าง ตัวระบุเชิงตัวเลขที่ไม่ซ้ำกัน
- ผ่าน JavaScript ยังสามารถเก็บข้อมูลเพิ่มเติมอย่าง ฟอนต์ ส่วนขยาย และข้อมูลฮาร์ดแวร์ ได้
- ลายนิ้วมือแคนวาส (canvas fingerprint) ใช้ความแตกต่างระดับพิกเซลเมื่อเบราว์เซอร์วาดข้อความ เพื่อแยกแยะความต่างเล็กน้อยของแต่ละระบบ
- มีความเฉพาะตัวสูงถึงขั้นที่ในเบราว์เซอร์ราว 1,000 ตัว อาจมีเพียงตัวเดียวที่มีลายนิ้วมือแคนวาสเหมือนกัน
- แม้แต่การตั้งค่าเล็กน้อยอย่างขนาดหน้าต่าง ธีม หรือความละเอียด ก็สามารถใช้เป็น เบาะแสเพิ่มเติมในการระบุตัว ได้
ข้อจำกัดของความพยายามในการป้องกัน
- การ ปิด JavaScript ช่วยกัน canvas fingerprint ได้ แต่ในทางกลับกัน คุณลักษณะว่า “JavaScript ถูกปิดอยู่” ก็กลายเป็น ลักษณะที่พบได้น้อย และกลายเป็นองค์ประกอบของ fingerprint ใหม่
- แม้เบราว์เซอร์จะ ปลอมตัว (spoofing) ว่าเป็นอีกแพลตฟอร์มหนึ่ง เซิร์ฟเวอร์ก็ยังอาจประเมินสภาพแวดล้อมจริงได้จากสัญญาณอื่น
- เทคนิคปลอมตัวขั้นสูงอย่างการดัดแปลงแคนวาส อาจทำให้ เว็บไซต์ทำงานผิดพลาด หรือทิ้ง ร่องรอยเพิ่มเติม
- ผลลัพธ์คือ fingerprinting เป็น เทคโนโลยีที่บล็อกได้ยากมาก และบริษัทติดตามต่างก็พัฒนาให้ซับซ้อนยิ่งขึ้นอย่างต่อเนื่อง
การรับมือบางส่วนและข้อจำกัดในโลกความเป็นจริง
- เว็บไซต์ทดสอบอย่าง amiunique.org ทำงานในสภาพแวดล้อมที่ง่ายกว่าการติดตามจริง จึง สะท้อนโลกความจริงได้ไม่มากนัก
- ต่อให้ fingerprint จะ “ไม่ซ้ำใคร (unique)” มันก็อาจเปลี่ยนไปตามเวลา จึง ไม่ใช่ตัวชี้วัดการติดตามที่สมบูรณ์แบบ
- เบราว์เซอร์บางตัวอย่าง Brave, Mullvad, Librewolf มี ฟีเจอร์ต้านทาน fingerprinting ในตัว
- Librewolf เปิดใช้ฟีเจอร์ต้านทานของ Firefox เป็นค่าเริ่มต้น
- Brave และ Mullvad รับมือด้วยแนวทางที่แตกต่างกัน
- อย่างไรก็ตาม ฝั่งผู้เก็บ fingerprint ก็ยกระดับเทคนิคของตนเช่นกัน ทำให้การป้องกันแบบสมบูรณ์เป็นไปไม่ได้
สิ่งที่ผู้ใช้พอทำได้
- ลบคุกกี้ระยะยาว และ ใช้ VPN เป็นพื้นฐาน
- VPN ช่วยซ่อน IP แต่การที่ใช้งาน VPN เองก็อาจกลายเป็นองค์ประกอบหนึ่งของ fingerprint
- รักษาเบราว์เซอร์ให้อยู่ใน สภาพค่าเริ่มต้น และลดการเปลี่ยนแปลงส่วนขยาย ฟอนต์ และธีมให้น้อยที่สุด
- ยิ่งใช้ สภาพแวดล้อมที่คนส่วนใหญ่ใช้ (เช่น Windows 11 + Chrome) ก็ยิ่งลดโอกาสถูกระบุตัวได้
- ใช้ฟีเจอร์ป้องกันในตัวของ Mullvad, Librewolf, Firefox (เมื่อเปิดการต้านทาน fingerprinting)
- แม้ทำทุกอย่างแล้ว ความน่าจะเป็นของการถูกติดตามก็อาจลดได้เพียงประมาณ 99% → 50% เท่านั้น
ผลข้างเคียงของการต้านทาน fingerprinting
- หากเปิดการต้านทาน fingerprinting ใน Firefox หรือ Librewolf จะเกิด การล็อกขนาดหน้าต่าง เปลี่ยนธีมไม่ได้ และข้อจำกัดของ UI
- เซิร์ฟเวอร์อาจจำแนกเบราว์เซอร์ไม่ได้ จึงทำให้ ความถี่ของ CAPTCHA เพิ่มขึ้น
- บางเว็บไซต์อาจเกิด ความผิดพลาดด้านภาพ เช่น สีเพี้ยนหรือตำแหน่งข้อความผิด
ความไม่แน่นอนทางกฎหมายและความจำเป็นของการกำกับดูแล
- GDPR มีข้อกำหนดเกี่ยวกับคุกกี้ แต่ยังไม่มีข้อกำหนดที่ชัดเจนสำหรับ fingerprinting
- หน่วยงาน ICO (Information Commissioner’s Office) ของสหราชอาณาจักรมีมุมมองเชิงลบต่อ fingerprinting
- ความชอบด้วยกฎหมายยังไม่ชัดเจน และยังมีช่องให้โต้แย้งถึง การใช้งานที่สมเหตุสมผลเพื่อวัตถุประสงค์ด้านความปลอดภัย
- ในสถานการณ์ปัจจุบัน ข้อสรุปคือ จำเป็นต้องมีกฎหมายใหม่
- fingerprinting เป็นสิ่งที่ผู้ใช้มองไม่เห็น และข้อมูลที่เก็บได้ก็มีลักษณะ ระยะสั้นและเชิงสถิติ แต่ก็ถูกชี้ว่าเป็นเครื่องมือสำคัญที่หนุนเสริม พฤติกรรมการติดตามเกินขอบเขตของอุตสาหกรรมโฆษณา
บทสรุป
- browser fingerprinting คือภัยต่อความเป็นส่วนตัวที่ ตรวจจับได้ยากในเชิงเทคนิค และอยู่ในพื้นที่สีเทาทางกฎหมาย
- ในระดับเทคโนโลยีปัจจุบัน การป้องกันอย่างสมบูรณ์เป็นไปไม่ได้ และจำเป็นต้อง เสริมทั้งการกำกับดูแลทางกฎหมายและการรับมือในระดับเบราว์เซอร์
- ตราบใดที่แนวปฏิบัติการติดตามของอุตสาหกรรมโฆษณายังดำเนินต่อไป สภาพแวดล้อมอินเทอร์เน็ตก็จะยังคง มีความเสี่ยงต่อการละเมิดความเป็นส่วนตัวอยู่เสมอ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ก่อนหน้านี้เคยสังเกตว่าใน Chrome ทุกครั้งที่กด “ไม่แปลภาษานี้” ภาษานั้นจะถูกเพิ่มเข้าไปใน Accept-Language header โดยอัตโนมัติ
ทั้งที่ไม่ได้ตั้งค่าด้วยตนเอง Chrome ก็ยังแนบตัวเลือกนั้นไปกับทุกคำขออย่างต่อเนื่อง
รู้สึกว่าชุดค่านี้สามารถกลายเป็นสัญญาณที่มีประโยชน์มากสำหรับ การติดตามลายนิ้วมือ (fingerprinting) เพราะมันประกอบเป็นลำดับภาษาที่เป็นเอกลักษณ์เฉพาะตัวของเรา
มีข้อเสนอที่เกี่ยวข้องด้วยแต่ไม่ได้ถูกรับไปใช้ → ข้อเสนอ reduce-accept-language
บทสนทนาที่เกี่ยวข้อง: HN discussion
คิดว่าชุด Firefox + Arkenfox user.js ทรงพลังที่สุดในแง่ความเป็นส่วนตัว
มันให้การปกป้องระดับเดียวกับ Tor browser เช่น ลบคุกกี้อัตโนมัติ, ปลอมแปลง canvas fingerprint, ล็อก timezone เป็น UTC เป็นต้น
บล็อกโดเมนโฆษณาและติดตามที่ระดับ DNS และบล็อก 3rd-party content เป็นค่าเริ่มต้นด้วย uBlock Origin หรือ uMatrix
ต้องมีคนจำนวนมากใช้การตั้งค่าเดียวกันแบบ Tor ถึงจะมีความหมาย
ถ้าใช้การพรางตัวแบบนี้อยู่คนเดียว กลับยิ่งโดดเด่นกว่าเดิม
แถมสคริปต์เก็บลายนิ้วมือจำนวนมากยังถูกโหลดจาก 1st-party domain ทำให้บล็อกได้ไม่สมบูรณ์
ดูเพิ่มเติม: คู่มือความเป็นส่วนตัวของ Orion
privacy.resistFingerprintingของ Firefox หรือไม่ เพราะฟีเจอร์ที่อธิบายมาดูเหมือนจะถูกเปิดด้วยแฟล็กนั้นอยู่แล้วการติดตามด้วยลายนิ้วมือมักสับสนระหว่าง คุณลักษณะที่ใช้ระบุตัวตน กับ การติดตาม
การเปลี่ยน timezone เป็น UTC ไม่ได้แปลว่าจะติดตามไม่ได้
ยังมีสัญญาณที่แรงกว่านั้นอย่าง IP, GeoIP เป็นต้น
ถ้าคนในครอบครัวใช้ IP เดียวกันแต่ตั้งค่าเบราว์เซอร์ต่างกัน กลับยิ่งติดตามได้ง่ายขึ้น
ถ้าต้องการหลบการติดตามจริง ๆ ต้องใช้ทั้ง การหมุนเวียน VPN และ การสุ่ม request header ควบคู่กัน
แต่ถ้าแค่อยากได้ความไม่ระบุตัวตน การใช้ Tor browser ยังมีประสิทธิภาพที่สุด
ถ้าอยากเข้าใจหลักการทำงานของการเก็บลายนิ้วมือเบราว์เซอร์มากขึ้น สามารถอ่านบทความที่ฉันเขียนได้
Browser Fingerprinting Explained
แม้ในบทความจะไม่ได้กล่าวถึง แต่เครื่องมือวิเคราะห์ลายนิ้วมือยุคแรก ๆ มี Cover Your Tracks (EFF)
เห็นด้วยกับประเด็นหลักของบทความ การติดตามด้วยลายนิ้วมือเป็นภัยคุกคามใหญ่ต่อเสรีภาพของปัจเจกบุคคล
ขณะเดียวกันก็คิดว่าผู้สร้างคอนเทนต์ควรได้รับค่าตอบแทนที่เป็นธรรม
โมเดลที่ขับเคลื่อนด้วยโฆษณามีประสิทธิภาพ แต่ ต้องแลกด้วยความเป็นส่วนตัว
บล็อกเกอร์ส่วนใหญ่ไม่ได้มีรายได้มาก และคนที่ได้เงินคือบริษัทโฆษณา
คิดว่าอินเทอร์เน็ตแบบเดิมที่เน้นคอนเทนต์ฟรีนั้นสุขภาวะดีกว่า
การติดตามฉันไม่ได้ทำให้โฆษณามีประสิทธิภาพขึ้นเสมอไป
กลับมีแต่โฆษณาสินค้าที่ไม่จำเป็นโผล่ซ้ำ ๆ
มันเป็น ประสบการณ์ชวนขนลุก เหมือนร้านค้าออฟไลน์ใช้การจดจำใบหน้ามาทำโฆษณาเฉพาะบุคคล
ถ้าค่าโฆษณาไม่ถูกบวกอยู่ในราคาสินค้า สุดท้ายทุกอย่างอาจถูกลงโดยรวม
ลองนึกภาพว่าเราจ่าย 1 เซนต์ต่อ pageview และราคาปรับขึ้นตามภาระของเซิร์ฟเวอร์
ทำให้นึกถึงเกมที่เคยเล่นในวิชาการจัดหมวดหมู่ข้อมูล
“ถ้าจะระบุตัวทุกคนในห้องนี้ ต้องใช้คำถามแบบใช่/ไม่ใช่กี่ข้อ?”
ด้วยวิธีคล้ายกันนี้ ลายนิ้วมือเบราว์เซอร์ ก็ใช้สัญญาณเพียงไม่กี่อย่างเพื่อค่อย ๆ แคบขอบเขตของคนลง
ตัวอย่างเช่น แค่ชุด “Linux + Firefox + จอฝั่งซ้าย” ก็อาจลดขอบเขตลงมาเหลือระดับหลายหมื่นคนได้แล้ว
เช่น “ผมยาวไหม?” กับ “เป็นผู้หญิงไหม?” มีข้อมูลคล้ายกัน จึงแทบไม่เพิ่มบิตข้อมูลใหม่
ในทางกลับกัน คำถามอย่าง “เป็นเมทัลเฮดไหม?” จะให้ข้อมูลมากเมื่อคำตอบคือ ‘ใช่’ เพราะเกิดขึ้นไม่บ่อย
แก่นของปัญหาคือเราไปทำให้ โครงสร้างที่ JavaScript เรียก JavaScript อีกตัวมารัน กลายเป็นค่าเริ่มต้น
Stallman พูดถูก
ถ้าอยากดูว่าเบราว์เซอร์เปิดเผยข้อมูลอะไรบ้าง เว็บไซต์ Am I Unique? มีประโยชน์
ถ้าลายนิ้วมือจะมีประโยชน์ มันต้องมีไม่ใช่แค่ ความเป็นเอกลักษณ์ แต่ยังต้องมี ความคงอยู่ (persistence) ด้วย
ถ้าเราสุ่มติดตั้งและลบฟอนต์ใหม่ทุกครั้ง จะเชื่อมโยงตัวฉันในวันนี้กับตัวฉันในพรุ่งนี้ไม่ได้ใช่ไหม?
อ้างอิง: งานวิจัย PDF ของ EFF, คำอธิบายของ Mullvad
API
queryLocalFontsของ Chrome ต้องมีป๊อปอัปขอสิทธิ์ก่อนการ์ตูนที่เกี่ยวข้อง: xkcd 1105
ทุกวันนี้ระหว่างโหลดหน้าเว็บ ระบบสามารถตัดสินได้ภายใน ไม่เกิน 5ms ว่าผู้ใช้เข้ากลุ่ม persona แบบไหน
แต่แพลตฟอร์มข้อมูลส่วนใหญ่จะลบข้อมูลอัตโนมัติหลัง 90 วันเพื่อคงการปฏิบัติตาม GDPR