IP Geolocation เราตามตำแหน่งผ่าน IP address ได้ด้วยเหรอ ?
เราอาจจะเคยเห็นหนังสืบสวนสอบสวนที่เขาหาตำแหน่งผู้กระทำผิดจากการค้นหาผ่าน IP Address ที่ใช้งานได้ หรือเอาจริง ๆ ในเรื่องของความเป็นจริงที่บางประเทศที่เล่ากันว่า แค่โหลดของผิดกฏหมาย แปบเดียว ตำรวจสามารถมาเคาะหน้าบ้านได้เลย เร็วกว่าตำรวจอ้วน ๆ ในเพลง เหตุด่วน ของพี่ตั้ง ได้เลยทีเดียว หรือแม้กระทั่ง Popcat ที่เราเล่นกัน มันรู้ได้ยังไงว่าเราเป็นตัวแทนทีมชาติไทย ทั้ง ๆ ที่เราไม่ได้บอกอะไรเลย เราไม่ได้ให้ Location อะไรเลยอีก วันนี้เราจะพามาทำความรู้จักกับสิ่งที่เรียกว่า IP Geolocation หรือวิธีที่จะทำให้เรารู้ตำแหน่งจาก IP Address ได้
IP Address คืออะไร ?
IP Address คือ ที่อยู่บนระบบเครือข่ายคอมพิวเตอร์ เป็นตัวเลขชุดนึงที่เครื่องคอมพิวเตอร์ใช้บอกที่อยู่กัน เหมือนกับที่อยู่บ้านของเรานั่นเอง โดยที่ใน IP Address มันจะประกอบด้วยชุดตัวเลขอยู่ ซึ่งขึ้นกับระบบ IP Address ที่เราใช้ ตอนนี้ก็จะใช้ผสม ๆ กันระหว่าง IPv4 และ IPv6 เราเคยเขียนเรื่องของ IP Address อย่างละเอียดไว้แล้ว ลองเข้าไปอ่านกันได้
IP Geolocation Database
อย่างที่เราเล่าในบทความข้างต้นแล้วว่า IP Address มันมีจำกัด ดังนั้น มันต้องมีการจับจองกันเกิดขึ้นผ่าน Provider ต่าง ๆ ทำให้จริง ๆ แล้ว เราสามารถรู้ได้เลยว่า IP Address นั้น ๆ เป็นของใคร ใครเป็นคนซื้อไปได้เลย และถ้าเราเอาข้อมูลทั้งหมดตรงนี้มารวม ๆ กัน เราก็น่าจะพอบอกอะไรได้อยู่ พวกนี้แหละ เขาก็จะเอาข้อมูลจากหลาย ๆ Provider ที่ขาย IP Address มารวมกันเป็น Database ก้อนหนึ่ง เราเรียกว่า IP Geolocation Database
โดยที่มันจะมีทั้งแบบที่เสียเงิน และ ไม่เสียเงินด้วย ความแตกต่างมันอยู่ที่การ Update Database เลยว่า จะถี่ขนาดไหน เพราะเอาจริง ๆ คือ IP Address มันมีจำกัด มันมีการเปลี่ยนมือกันตลอดเวลา เหมือนที่เราเคยเล่าเรื่อง Telegram วันนี้ IP Address นี้เป็นของคนนี้ อีกวันก็อาจจะเป็นของอีกคนก็ได้เหมือนกัน ดังนั้น มันก็เลยต้องมีการอัพเดทตลอดเวลาตามการเปลี่ยนแปลง เรากำลังพูดถึงการเปลี่ยนแปลงระดับทั้งโลก Internet เลยนะ มันเยอะมาก ๆ มันเลยต้องใช้ Cost ในการ Update อยู่เหมือนกัน สำหรับการทดลองเล่นขำ ๆ เราลองเข้าไปที่ เว็บนี ได้ มันจะบอก Information ของ IP Address เราได้เลยว่ามันมาจากที่ไหน Location อะไร
สำหรับ Web Developer เอง มันก็มีบริการหลาย ๆ ตัวที่ทำให้เรารู้ว่า Request นั้น ๆ มาจากประเทศอะไร ตัวอย่างที่เราใช้งานบ่อย ๆ ก็จะเป็นของ Cloudflare เองเลย ถ้าเราเปิดการใช้งาน Cloudflare มันจะแทรก Geolocation มาให้ใน Header เลย ถือว่าแจ่มแมวมาก เอาไปทำได้ทั้งเรื่องของตัว Content ในเว็บเอง เช่น Popcat หรือ การที่เราสามารถใช้กับ Web Server Monitoring ได้ว่าเข้ามาจากประเทศใดบ้าง
แล้วเขาตามมาที่บ้านเราได้จริงมั้ย ?
ถ้าเอาแบบสั้น ๆ เลยคือ ทั้งได้ และ ไม่ได้ ก่อนจะเล่าเรื่องนั้น สำหรับคนที่อยู่บ้าน เราลองดู IP Address ของเรา อาจจะค้นหาว่า What's my IP ใน Google ก็ได้ และเราลองเอา IP Address ไปใส่ใน IP Geolocation Database เราจะได้ Latitude และ Longtitude ออกมา แล้วลองเอาค่าตำแหน่งนี่แหละ ไปหาใน Google Maps เราจะเห็นเลยว่า มันไม่ใกล้เคียงก็ห่างไปเลย เป็นเพราะจริง ๆ แล้ว IP Address ที่เราเช็คจากเว็บพวกนี้ มันก็กึ่ง ๆ ไม่ใช่ IP Address ของเราจริง ๆ ซะทีเดียว ถ้าเรานึก ISP เหมือนหมู่บ้าน IP Address ที่เราเห็น ก็คือประตูหมู่บ้านนี่ละ มันถูกใช้งานร่วมกันกับอีกหลาย ๆ คนที่อยู่ในหมู่บ้านเดียวกับเรา ผ่านสิ่งที่เรียกว่า NAT (Network Address Translation) เพราะ IP Address บนโลกมีจำกัดเลยจำเป็นที่จะต้องนำ NAT เข้ามาเหมือนปลั๊กพ่วงในระบบไฟฟ้าเลย
ทำให้ใน 1 IP Address ที่เห็นข้างนอกจริง ๆ อาจจะมีอุปกรณ์ถึง 10K ใช้งานอยู่จริง ๆ ก็ได้นั่นเอง (ไว้เราค่อยมาเล่าเรื่อง NAT วันหลัง) ทำให้เมื่อเราหา IP Address ของเราจากเว็บพวกนี้ แทนที่เราจะได้ IP Address ที่เป็นของเรา ที่เป็นที่อยู่ของเรา เราก็จะได้เป็นที่อยู่ของประตูเมืองนั้นแทนนั่นเอง ซึ่งเราก็ไม่รู้นะว่าใน ISP ที่เราใช้งานกันมันมีประตูอยู่ที่ไหนบ้าง ก็ต้องค่อย ๆ Trace ไปเรื่อย ๆ บางที หมู่บ้านของเราอาจจะมีทางเข้าออกหลายชั้นก็ได้เหมือนกัน หรือบางคนที่ซื้อ Public IP ก็เหมือนกับการซื้อประตูส่วนตัวนั่นเอง เป็นการการันตีว่า เราจะได้ประตูส่วนตัวแต่ประตูนี้จะอาจจะเปลี่ยนไปตามเวลาและการใช้งาน ง่าย ๆ คือ เอาประตูที่เหลือมาให้เช่าแหละ หรือบางคนซื้อ Fixed IP เลย คือ เราซื้อประตูไปเลย ไม่มีเปลี่ยนอะไรทั้งนั้น ตราบใดที่เราจ่ายเงิน เราก็ยังได้ประตูบานนี้อยู่
การที่ลักษณะของหมู่บ้านมันเป็นแบบนี้ ทำให้ข้างนอกที่ไม่ใช่คนของหมู่บ้านเราไม่สามารถเข้ามาดูภายในหมู่บ้านเราได้ตรง ๆ หรือพูดง่าย ๆ ก็คือ สำหรับคนภายนอกหมู่บ้าน ไม่สามารถเข้ามาดูภายในของ ISP ได้โดยตรงว่าใน ISP เรามี IP Address อะไรบ้าง จะเห็นแค่ประตูหมู่บ้าน (Gateway) เท่านั้น แต่ ๆ ก็ไม่ใช่ว่า จะไม่สามารถ เช็คได้ถึงที่อยู่บ้านเลย เพราะจริง ๆ แล้วใน ISP หรือหมู่บ้าน มันก็เหมือนกับเครือข่ายอื่น ๆ ที่มี IP Address เหมือนกัน ในนั้นก็อาจจะมีประตูหมู่บ้านย่อย ๆ ลงไปอีก ประกอบกับเวลาเราจะเชื่อมต่อเข้ามาที่ ISP ได้ มันไม่ใช่แค่ว่าเราจั้มสายแล้วจะเข้าได้เลย มันต้องผ่านการทำ Authentication ทำให้ ISP ก็สามารถเช็คได้เลยว่า IP Address ที่จ่ายให้มันเป็นใคร แล้วถ้าอยากรู้ที่อยู่จริง ๆ เขาก็สามารถ Map IP Address ไปเป็นเลขสมาชิก และ Map ไปที่ ที่อยู่ได้อีกทีนึง ทำให้จริง ๆ แล้วมันสามารถทำได้จริง ๆ นะที่แบบทำอะไรผิดแล้วมาเคาะในเวลาเพียงไม่กี่นาที
ซึ่งเราจะเห็นได้เลยว่า ISP มันรู้ทุกอย่างจริง ๆ แต่เอ๊ะ เขาไม่ได้เป็นคนที่มีหน้าที่จัดการเรื่องการกระทำผิดนิ ใช่แล้ว จริง ๆ แล้วคนที่จะมาเคาะหน้าบ้านเราก็น่าจะเป็นพวกองค์กรของรัฐนี่แหละ ซึ่งมันก็จะมีขั้นตอนอยู่นะ ไม่ใช่ว่าอยู่ ๆ อยากได้แล้วจะได้ข้อมูลนะ บริษัท ISP เขาก็ต้องมีมาตรการในการปกป้องลูกค้าบ้างแหละ อาจจะต้องใช้หมายศาลอะไร อันนี้เราไม่รู้ละ แต่นั่นแหละ รัฐจริง ๆ สามารถขอข้อมูลจาก ISP ได้หมดเลย จนรู้ Location แบบแทบจะเป๊ะ ๆ ได้เลย แล้วอาจจะเข้าถึงฐานข้อมูลพวกทะเบียนราษฎร์ ก็ทำให้ได้ข้อมูลที่ลึกขึ้นก็เป็นไปได้เหมือนกัน
โดยสรุปคือ ถ้าเราอยากจะค้นหาที่อยู่แบบจริง ๆ เลย โดยที่ IP Address ไม่ใช่ Public IP Address อาจจะยากสักหน่อยสำหรับคนทั่ว ๆ ไป แต่แน่นอนว่าถ้าเราเป็น ISP คือ เราก็จะรู้ทั้งหมดเลย มีข้อมูลทุกอย่าง รัฐอาจจะมีการขอความร่วมมืออะไรก็ว่าไป ISP ก็สามารถส่งข้อมูลเหล่านี้ให้รัฐได้ ก็ทำให้จริง ๆ แล้วเรื่องการที่มีคนมาเคาะหน้าบ้านเพราะเรื่องคอมพิวเตอร์ ก็เป็นไปได้เหมือนกัน
เราหลอก IP Geolocation ของเราได้มั้ย ?
Technology ในโลกของเรา มันก็พาไปสู่โลกที่มี Privacy ในโลก Internet สูงขึ้น บางทีเราไม่อยากที่จะบอก Geolocation ของเรา ทำให้นำไปสู่คำถามที่ว่า เราสามารถหลอก Geolocation พวกนี้ได้มั้ย คำตอบคือ มันมีวิธีอยู่
เรารู้ว่าหลักการของพวก IP Geolocation Database คือมันจะ Map IP Address ของเราไปเป็นข้อมูลต่าง ๆ ของ IP Address นั้น แต่สิ่งที่เราเปลี่ยนไม่ได้คือ ข้อมูลใน Database ดังนั้น สิ่งที่เราทำได้คือ เราก็ออกทางอื่นแทนไง ซึ่งเราสามารถใช้การมุดผ่าน VPN (Virtual Private Network) แทนได้ เพื่อเสมือนว่า เราออกอีกทางนึง พูดง่าย ๆ เหมือนกับเราขุดอุโมงไปออกที่ประตูหมู่บ้านอีกบานที่อยู่อีกหมู่บ้านเลย ดังนั้นเว็บ หรือระบบต่าง ๆ ก็จะเข้าใจว่า เราอะออกมาจากอีก IP Address จริง ๆ ทำให้เราหลอกมันได้นั่นเอง หรือซับซ้อนกว่านั้น เราก็อาจจะใช้ร่วมกับ ToR Network เข้าไปอีก เพื่อบัง IP Address ต้นทางระหว่างเรา กับ VPN Server ก็จะเพิ่มความเป็นส่วนตัวได้อีก
ถ้าเราใช้พวก VPN และ ToR Network แล้วฝั่ง ISP ละ รู้อะไรบ้าง จริง ๆ ก็คือ รู้แค่ว่าเราเชื่อมต่อไปที่สัก IP Address นึง ซึ่งถ้าเป็น VPN เช็คออกมา ก็จะรู้ว่าส่งข้อมูลไปที่ VPN จริง ๆ แต่จะเช็คไม่ได้ว่า จาก VPN ไปไหนต่อ (ยกเว้น VPN เก็บ Log ไว้ แล้วเอามา Map กัน) ตรงกันข้าม ฝั่งของเว็บปลายทางก็จะเข้าใจว่าเราออกจาก VPN Server ไม่รู้ว่าต้นทางจริง ๆ คือที่ไหน ก็จะเป็นวิธีการในการบัง IP Address ของเราวิธีหนึ่ง
สรุป
IP Geolocation หรือการหาที่อยู่ของเราจาก IP Address สามารถทำได้จริง ๆ ในโลกแห่งความเป็นจริงวันนี้เหมือนในหนังเลย แต่การที่เราจะรู้ที่อยู่ที่แม่นยำมาก ๆ ต้องอาศัยข้อมูลจากทาง ISP เอง ซึ่งเราเองที่เป็นคนธรรมดา ก็ไม่น่าจะเดินเข้าไปแล้วบอกว่า อยากได้ เขาจะให้แน่ ๆ สิ่งที่เราทำได้มากที่สุด ก็น่าะจะเป็นการใช้ IP Geolocation Database ที่อยู่ตามเว็บต่าง ๆ Trace ได้คร่าว ๆ ว่าอยู่ที่ไหน เราว่าแม่นสุด ก็น่าจะเป็นการระบุประเทศนี่แหละ แล้วเราก็เอามาไปใช้ได้กับอีกหลาย ๆ Feature เลย เช่นการจำกัด Content ต่าง ๆ หรือการ Personalise หน้าตามประเทศที่เราอยู่เป็นต้น และนอกจากนั้น เรายังสามารถปลอมพวก Geolocation จาก IP Address ของเราได้อีก ผ่านการไปออกที่อื่นผ่านการใช้ VPN Server เป็นต้น