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

การบล็อกเริ่มจากตำแหน่งที่แพ็กเก็ตของคุณดูเหมือนจะมาจาก

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

มองทราฟฟิกของคุณเองเหมือนคนแปลกหน้ามอง สองคำสั่งครอบคลุมพื้นที่ส่วนใหญ่ และคำสั่งที่สองคือสิ่งที่ผู้คนลืม:

curl -sS https://ipinfo.io/json
dig +short TXT o-o.myaddr.l.google.com @ns1.google.com

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

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

เขตเวลา ภาษา และนาฬิกาไม่ตรงกับที่อยู่

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

Intl.DateTimeFormat().resolvedOptions().timeZone
navigator.language
Intl.DateTimeFormat().resolvedOptions().locale

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

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

โค้ดหน้าเว็บรู้อะไรจริง ๆ เกี่ยวกับเครื่องของคุณ

JavaScript ไม่มี API ที่แสดงรายการอินเทอร์เฟซเครือข่าย หน้าเว็บถามไม่ได้ว่าคุณมีที่อยู่อะไรในแล็ปท็อป ข้ออ้างเก่าที่ว่าสคริปต์อ่านที่อยู่ LAN ของคุณจึงเป็นความทรงจำจากยุคของปลั๊กอิน เมื่อ ActiveX, Java applet และโค้ดเนทีฟอื่นทำได้จริง

SignalWhat it revealsStatus today
Source address of the requestExit network, country, hosting statusAlways visible; the main signal
Time zone and languageWhere the profile claims to beReadable without permission
WebRTC candidatesLocal addresses, historicallyHost candidates are mDNS-obfuscated by default
Interface listAll local addressesNot available to ordinary JavaScript

WebRTC เป็นข้อยกเว้นที่ซื่อตรงต่อกฎ «ไม่มีการรั่วไหลของที่อยู่ในเครื่อง» การรวบรวมแคนดิเดตเคยเปิดเผยที่อยู่ในเครื่องให้ทุกหน้าที่ขอ และวิธีแก้คือแทนที่แคนดิเดตโฮสต์ด้วยชื่อ mDNS แบบสุ่ม ค่าเริ่มต้นนั้นใช้ในเบราว์เซอร์ปัจจุบัน แต่มันเป็นการตัดสินใจของเบราว์เซอร์ ไม่ใช่การรับประกันของโปรโตคอล เวอร์ชันเก่าหรือการตั้งค่าที่เข้มงวดซึ่งเปิดแคนดิเดตในเครื่องอีกครั้งจึงยังรั่วได้ การอัปเดตเบราว์เซอร์ช่วยคุณได้มากกว่าส่วนขยายใด ๆ

ผู้ให้บริการของคุณเห็นชื่อ ไม่เห็นเนื้อหา

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

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

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

แยก «นี่คือ VPN» ออกจาก «นี่คือฉัน»

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

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

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

บทความที่เกี่ยวข้อง