Private Browsing 2.0 ของ WebKit
(webkit.org)- เมื่อคิดค้น Private Browsing (โหมดท่องเว็บแบบเป็นส่วนตัว) ในปี 2005 เป้าหมายคือปกป้องการท่องเว็บของผู้ใช้จากคนที่ใช้เครื่องเดียวกันร่วมกัน
- ได้สร้างโหมดที่ไม่ทิ้งร่องรอยถาวรไว้ในเครื่องจากการท่องเว็บของผู้ใช้ และท้ายที่สุดเบราว์เซอร์อื่นทั้งหมดก็มีฟีเจอร์เดียวกันนี้ด้วย ซึ่งเรียกอีกอย่างว่า "ephemeral browsing"
- ตั้งแต่ Safari 1.0 ในปี 2003 เป็นต้นมา ได้ใช้การป้องกันการติดตามข้ามไซต์กับการท่องเว็บทั้งหมดของ Safari ผ่านนโยบายคุกกี้ และตลอด 20 ปีที่ผ่านมาได้ค่อย ๆ เสริมความแข็งแกร่งด้านความเป็นส่วนตัวมาอย่างต่อเนื่อง
- เบราว์เซอร์ชื่อดังอื่น ๆ ไม่ได้รวดเร็วมากนักในการเดินตามแนวทางของเราเรื่องการป้องกันการติดตาม แต่ก็มีความคืบหน้าอยู่
- Apple เชื่อว่าผู้ใช้ไม่ควรถูกติดตามบนเว็บโดยที่ตนไม่รู้ตัวและไม่ได้ให้ความยินยอม
- การเข้าสู่ Private Browsing เป็นสัญญาณที่ชัดเจนว่าผู้ใช้ต้องการการปกป้องสูงสุดจากการละเมิดความเป็นส่วนตัว ขณะเดียวกันก็ยังอยากใช้งานและเพลิดเพลินกับเว็บ
- การคงโหมดท่องเว็บส่วนตัวให้เป็นเพียงโหมดชั่วคราวตามนิยามในปี 2005 แบบโหมดไม่ระบุตัวตนของ Chrome นั้นไม่เพียงพออีกต่อไป
- ผู้ใช้คาดหวังได้มากกว่านี้ และสมควรได้รับสิ่งนั้น
- ใน Safari 17.0 ได้เพิ่มการปกป้องความเป็นส่วนตัวใน Private Browsing ไปสู่อีกระดับอย่างสิ้นเชิง และเสริมให้แข็งแกร่งขึ้นอีกใน 17.2 และ 17.5
- หากผู้ใช้เปิดใช้งาน ชุดการปกป้องใหม่นี้จะใช้ได้กับการท่องเว็บ Safari แบบปกติด้วย
- งานนี้ช่วยยกระดับความเป็นส่วนตัวบนเว็บอย่างมาก และหวังว่าจะสร้างมาตรฐานอุตสาหกรรมใหม่ว่า Private Browsing ควรเป็นอย่างไร
สรุปฟีเจอร์ Enhanced Private Browsing ของ Safari
- การป้องกันและกลไกป้องกันที่เพิ่มใน Safari 17.0
- การป้องกันการติดตามผ่านลิงก์
- บล็อกการโหลดเครือข่ายของตัวติดตามที่รู้จัก รวมถึงที่อำพรางด้วย CNAME
- การป้องกัน fingerprinting ขั้นสูง
- ส่วนขยายที่เข้าถึงเว็บไซต์หรือประวัติการเข้าชมจะถูกปิดเป็นค่าเริ่มต้น
- การป้องกันและกลไกป้องกันที่เพิ่มในทุกโหมดการท่องเว็บ
- จำกัดอายุคุกกี้ที่ตั้งมาจากที่อยู่ IP ของบุคคลที่สามที่ถูกอำพราง
- SessionStorage แบบแบ่งพาร์ทิชัน
- blob URL แบบแบ่งพาร์ทิชัน (ตั้งแต่ Safari 17.2)
- นอกจากนี้ยังขยาย Web AdAttributionKit (เดิมคือ Private Click Measurement) เพื่อใช้แทนพารามิเตอร์ติดตามใน URL
- แม้ใน Private Browsing ก็ยังช่วยให้นักพัฒนาเข้าใจประสิทธิภาพของแคมเปญการตลาดได้
ความเสี่ยงในการทำให้เว็บไซต์ใช้งานไม่ได้ และแนวทางบรรเทา
- มีแนวคิดมากมายในการปกป้องความเป็นส่วนตัวบนเว็บ แต่โชคร้ายที่หลายแนวคิดอาจทำให้ประสบการณ์ผู้ใช้แย่ลง
- เช่นเดียวกับการป้องกันด้านความปลอดภัยในชีวิตจริง จำเป็นต้องหาสมดุล
- Private Browsing แบบใหม่พยายามผลักดันไปให้ไกลที่สุด โดยยังคงพยายามไม่ทำให้เว็บไซต์ใช้งานไม่ได้
- แต่ก็ยังมีความเสี่ยงที่บางส่วนของบางเว็บไซต์อาจไม่ทำงาน
- เพื่อแก้ปัญหานี้ จึงให้ผู้ใช้มีวิธีลดการปกป้องความเป็นส่วนตัวเป็นรายเว็บไซต์ได้
- การเปลี่ยนแปลงการปกป้องความเป็นส่วนตัวเหล่านี้จะถูกจดจำไว้เฉพาะระหว่างที่ท่องเว็บอยู่ในเว็บไซต์นั้น
- ตัวเลือกนี้เป็นทางเลือกสุดท้ายเมื่อการปกป้องความเป็นส่วนตัวทำให้หน้าเว็บใช้งานไม่ได้
- บน iOS, iPadOS, visionOS ให้ไปที่ การตั้งค่า > แอป > Safari > ขั้นสูง > การป้องกันการติดตามและ fingerprinting ขั้นสูง แล้วเปิด "การท่องเว็บทั้งหมด"
- บน macOS ให้ไปที่ Safari > การตั้งค่า > ขั้นสูง แล้วเปิด "ใช้การป้องกันการติดตามและ fingerprinting ขั้นสูงกับการท่องเว็บทั้งหมด"
การป้องกันการติดตามผ่านลิงก์
- Safari ทำให้การติดตามกิจกรรมผู้ใช้ข้ามเว็บไซต์ทำได้ยากขึ้น ด้วยการลบ query parameter และ fragment ออกจาก URL
- query parameter ที่ใช้สำหรับการติดตามแบบกว้างขวางในระดับผู้ใช้/ระดับการคลิก จะถูกลบออกก่อนส่งผ่านเครือข่าย
- พารามิเตอร์ที่ใช้สำหรับ campaign attribution จะยังถูกส่งต่อไป
- สคริปต์ของบุคคลที่สามที่พยายามเข้าถึง URL ทั้งหมดบนไซต์ปลายทาง จะมองเห็นได้เฉพาะ URL ที่ไม่มี query parameter หรือ fragment
Web AdAttributionKit ใน Private Browsing
- Web AdAttributionKit คือวิธีที่ผู้ลงโฆษณา เว็บไซต์ และแอป ใช้ทำ ad attribution และการวัดการคลิกแบบคุ้มครองความเป็นส่วนตัว
- ใน Private Browsing จะทำงานภายใต้ข้อจำกัดบางประการ
- ขอบเขตถูกจำกัดอยู่ในแต่ละแท็บของ Private Browsing และจะส่งต่อ attribution ไปยังแท็บใหม่เมื่อมีการคลิกลิงก์
- เมื่อปิดแท็บ คำขอ attribution ที่ค้างอยู่จะถูกทิ้ง
บล็อกการโหลดเครือข่ายของตัวติดตามที่รู้จัก
- ใช้ content blocker ที่เปิดใช้งานอัตโนมัติเพื่อบล็อกการโหลดเครือข่ายไปยังตัวติดตามที่รู้จัก
- คอมไพล์โดยใช้ข้อมูลจาก DuckDuckGo และกฎการกรอง EasyPrivacy ของ EasyList
- ตั้งใจอนุญาตให้โฆษณาส่วนใหญ่ยังคงโหลดได้ต่อไป
- Private Browsing ยังบล็อกคำขอเครือข่ายที่ถูกอำพรางไปยังโดเมนติดตามที่ถูกแมปผ่านการซ่อนด้วย CNAME หรือการซ่อนที่อยู่ IP ของบุคคลที่สาม
การยกระดับความเป็นส่วนตัวของเครือข่าย
- Private Browsing เพิ่มการปกป้องต่อไปนี้ให้ผู้ใช้ทุกคน:
- ปกป้อง DNS query ด้วย DNS แบบเข้ารหัส
- พร็อกซีทรัพยากร HTTP ที่ไม่เข้ารหัสเพื่อป้องกันผู้โจมตีบนเครือข่ายภายใน
- ผู้สมัครใช้งาน iCloud+ สามารถเปิด iCloud Private Relay เพื่อเพิ่มความสามารถต่อไปนี้ได้:
- ใช้เซสชันแยกต่างหากสำหรับแต่ละแท็บของ Private Browsing
- มอบความเป็นส่วนตัวด้านตำแหน่งที่ตั้งเป็นค่าเริ่มต้น
- แสดงคำเตือนก่อนเปิดเผยที่อยู่ IP
ส่วนขยายใน Private Browsing
- ส่วนขยายที่สามารถเข้าถึงข้อมูลเว็บไซต์และประวัติการท่องเว็บจะถูกปิดเป็นค่าเริ่มต้น
- ผู้ใช้ยังคงเลือกได้ว่าจะให้ส่วนขยายทำงานใน Private Browsing หรือไม่
- ส่วนขยายที่ไม่เข้าถึงเนื้อหาหน้าเว็บหรือประวัติการท่องเว็บ หากเปิดอยู่ใน Safari ก็จะเปิดอยู่ใน Private Browsing เป็นค่าเริ่มต้นด้วย
การป้องกัน fingerprinting ขั้นสูง
- เมื่อการติดตามแบบมีสถานะถูกจำกัดลง ตัวติดตามจำนวนมากจึงหันไปใช้ fingerprinting
- ประเภทของ fingerprinting:
- Device fingerprinting: อิงจากลักษณะของอุปกรณ์ เช่น ฮาร์ดแวร์ ระบบปฏิบัติการ เบราว์เซอร์
- Network และ geolocation fingerprinting: อิงจากวิธีการเชื่อมต่ออินเทอร์เน็ตและวิธีตรวจจับตำแหน่งทางภูมิศาสตร์
- User preference fingerprinting: อิงจากสถานะการตั้งค่าของผู้ใช้ เช่น โหมดมืด/สว่าง locale การปรับขนาดฟอนต์ ขนาดหน้าต่าง
- User behavior fingerprinting: ตรวจจับรูปแบบพฤติกรรมผู้ใช้ เช่น การใช้ตัวชี้เมาส์ ความเร็วในการพิมพ์
- User trait fingerprinting: ระบุคุณลักษณะของผู้ใช้ เช่น ความสนใจ อายุ สถานะสุขภาพ
- ความคงที่ของ fingerprint เผชิญความท้าทายจากองค์ประกอบที่เปลี่ยนแปลงไปตามเวลา
- ปัญหาความเป็นส่วนตัวของ fingerprinting:
- การติดตามข้ามเว็บไซต์
- การระบุตัวผู้ใช้เดิมซ้ำภายในเว็บไซต์
- ความเป็นเอกลักษณ์ของผู้เยี่ยมชมภายในเว็บไซต์
- การติดตามข้ามเว็บไซต์และการระบุตัวผู้ใช้เดิมซ้ำภายในเว็บไซต์ เป็นปัญหาความเป็นส่วนตัวที่เบราว์เซอร์ควรแก้ไข
- แนวทางของ Safari:
- ทำให้ fingerprint มีความเฉพาะตัวต่อเว็บไซต์ และสร้าง fingerprint ใหม่ที่ไม่ซ้ำทุกครั้งที่ลบข้อมูล
- ซ่อนที่อยู่ IP ด้วย multi-hop proxy
- จำกัดจำนวน Web API ที่ใช้ทำ fingerprint ได้
- เติม noise ลงในค่าที่ Web API ส่งกลับ
- เติม noise ให้กับ 2D Canvas, WebGL, Web Audio API และตรึงผลลัพธ์ของ API ที่เกี่ยวข้องกับ metric ของหน้าต่าง/หน้าจอ เพื่อทำให้ fingerprinting ทำได้ยากขึ้น
ไม่ควรเพิ่ม API ที่ใช้ทำ fingerprint ได้ เช่น Topics API เข้ามาในเว็บ
- Web API ที่มีอยู่เดิมก็ยากต่อการยับยั้งความสามารถในการทำ fingerprint อยู่แล้ว
- จึงสำคัญที่จะไม่ทำให้ปัญหาแย่ลงด้วย API ใหม่ที่ใช้ทำ fingerprint ได้
- เหตุผลที่คัดค้าน Topics API ซึ่งถูกนำเข้า Chrome:
- เบราว์เซอร์จะอนุมานความสนใจของผู้ใช้แล้วส่งต่อให้ผู้ลงโฆษณา
- ไม่แจ้งให้ผู้ใช้ทราบล่วงหน้าว่าหัวข้อใดของตนจะถูกเปิดเผย
- แม้เพียงการรวมกันของความสนใจอย่างง่าย ก็สามารถใช้ทำโปรไฟล์และระบุตัวตนผู้ใช้ซ้ำได้
การปรับปรุงความเป็นส่วนตัวในสองโหมดการท่องเว็บ
- การป้องกันที่อยู่ IP ของบุคคลที่สามที่ถูกอำพราง รวมถึงการแบ่งพาร์ทิชันของ SessionStorage และ Blob URL ถูกเปิดใช้งานเป็นค่าเริ่มต้นทั้งในการท่องเว็บปกติและ Private Browsing
- ITP จำกัดอายุคุกกี้จากการตอบกลับของที่อยู่ IP ของบุคคลที่สามที่ถูกอำพรางไว้ที่ 7 วัน
- ตั้งแต่ Safari 16.1 เป็นต้นมา ได้แบ่ง Session Storage ข้ามไซต์ตามเว็บไซต์ first-party แต่ละแห่ง
- ตั้งแต่ Safari 17.2 เป็นต้นมา ได้แบ่ง Blob URL ข้ามไซต์ตามเว็บไซต์ first-party แต่ละแห่ง และทำให้บุคคลที่สามไม่สามารถใช้ Blob URL ของ first-party ได้
การกำหนดมาตรฐานอุตสาหกรรม
- ฟีเจอร์ด้านความเป็นส่วนตัวใน Safari 17.0, 17.2, 17.5 นำเสนอเกณฑ์มาตรฐานใหม่สำหรับการปกป้องผู้ใช้
- คาดหวังว่าผู้ใช้ Safari ทุกคนและตัวเว็บเองจะได้รับประโยชน์จากงานนี้
1 ความคิดเห็น
https://youtu.be/0HjDpPnxcP0?si=x0JZN2Cxxy0j3XiT