กุญแจในแถบ URL คืออะไร
เห็นกุญแจเล็กๆ หน้าชื่อเว็บใช่ไหมครับ มันบอกว่าข้อมูลที่เราส่งไปถูกล็อกไว้ ใครระหว่างทางเปิดดูไม่ออก เห็นเว็บไหนไม่มีกุญแจต้องระวัง
เปิด Facebook ลองสังเกตที่แถบ URL ข้างบน จะเห็น กุญแจเล็กๆ ก่อนชื่อเว็บ เปิด YouTube ก็มี เปิดธนาคารบนเว็บก็มี เคยสงสัยไหมครับ ว่ามันบอกอะไรเรา
บทนี้จะเล่าให้ฟังครับว่ากุญแจตัวนั้นเป็นเรื่องอะไร และทำไมพอเห็นเว็บไหนไม่มีกุญแจ ต้องระวังตัวให้ดี
HTTP ส่งข้อมูลเปลือยๆ ใครเห็นก็อ่านได้
จากบทแรก เราเห็นแล้วว่าเครื่องเราส่งคำขอไปที่ server แล้วรับหน้าเว็บกลับมา รูปแบบที่ใช้ส่งคำขอกับคำตอบนี้ฝรั่งเรียกว่า HTTP (ย่อจาก Hypertext Transfer Protocol)
ปัญหาของ HTTP แบบเดิมคือ ส่งเปลือย ไม่ได้ล็อกอะไร ระหว่างทางจากเครื่องเราไปถึง server ข้อมูลผ่านอุปกรณ์หลายชิ้น router ที่บ้าน อุปกรณ์ของผู้ให้บริการเน็ต อุปกรณ์ของ ISP กลางหลายแห่ง ใครก็ตามที่อยู่ บนเส้นทางนี้ มีโอกาสแอบดูได้
ลองนึกถึงตอนเรากรอก username password ลงในเว็บที่ใช้ HTTP คนระหว่างทางอ่านได้ตรงๆ เห็น password ของเราเป็นข้อความปกติ เหมือนเขียนบนกระดาษ
HTTPS คือ HTTP ที่ห่อกล่องล็อกกุญแจก่อนส่ง
เพื่อแก้ปัญหานี้ มีคนคิด HTTPS ขึ้นมา ตัว S ท้ายมาจาก secure (แปลตรงๆ คือปลอดภัย) เป็น HTTP ตัวเดิมแหละครับ แต่ ห่อข้อมูลเป็นกล่อง ล็อกกุญแจ ก่อนส่ง
ขั้นตอนคือ ก่อนข้อมูลออกจากเครื่องเรา มันถูก เข้ารหัส ก่อน คือ เปลี่ยนข้อความปกติให้กลายเป็นรหัสที่อ่านไม่รู้เรื่อง โดยใช้กุญแจที่เครื่องเรา กับ server ตกลงกันไว้ก่อน
ระหว่างทางใครเห็นก็เห็นแค่กล่องที่อ่านไม่ออก ถึงเขาเก็บข้อมูลทั้งหมดไว้ ก็เปิดอ่านไม่ได้ เพราะไม่มีกุญแจ พอข้อมูลถึง server ปลายทาง server ใช้กุญแจ ของมันเปิดกล่อง ได้ข้อมูลจริงกลับคืนมา
ลองดูความต่างเอง
ในกล่องข้างล่าง สลับระหว่าง HTTP กับ HTTPS แล้วลองดูครับ ว่าคนระหว่างทาง ที่ใช้ Wi-Fi เดียวกันกับเรา เห็นข้อมูลที่เราส่งยังไงบ้าง
เห็นไหมครับ ฝั่ง HTTP password เห็นโชว์เด่นเลย ส่วนฝั่ง HTTPS เห็นเป็นตัวอักษร มั่วๆ ทำอะไรไม่ได้ ความต่างราวกับกลางวันกับกลางคืน
เพราะแบบนี้ banking, social, login ทุกที่ ต้องใช้ HTTPS
เว็บที่เก็บข้อมูลส่วนตัวของผู้ใช้ ต้องใช้ HTTPS ทุกเว็บ ไม่ใช้ก็เท่ากับยกข้อมูล ให้คนระหว่างทาง
- Login Facebook YouTube ธนาคาร ต้อง HTTPS เพราะ password คือกุญแจเข้าทุกอย่างของเรา
- โอนเงินผ่านแอปธนาคาร ต้อง HTTPS เพราะข้อมูลโอนเปลือยๆ เสี่ยงโดนแก้ตัวเลขระหว่างทาง
- กรอกบัตรเครดิตซื้อของ ต้อง HTTPS เลขบัตร ชื่อ CVV ห้ามวิ่งเปลือย
- ส่งแชต LINE Messenger ต้อง HTTPS ข้อความส่วนตัวห้ามให้ คนอื่นเห็น
ทุกวันนี้เว็บส่วนใหญ่เป็น HTTPS หมดแล้ว
ประมาณปี 2018 เป็นต้นมา เบราว์เซอร์ใหญ่ๆ บังคับ HTTPS เกือบทั้งหมด เว็บที่ยังใช้ HTTP จะถูกเตือนว่า "Not Secure" จนคนเห็นแล้วไม่กล้าเข้า เว็บใหม่ๆ ทุกวันนี้เลย ใช้ HTTPS เป็นมาตรฐาน
แต่ไม่ใช่ทุกเว็บนะครับ มี 2 กรณีที่เจอ HTTP ได้
- เว็บเก่ามากๆ ที่ยังไม่อัปเดต ใช้ HTTP อยู่
- เว็บที่ตั้งใจหลอก สร้างเลียนเว็บจริง ใช้ HTTP เพื่อเก็บ password ที่คนหลงใส่
สรุปบทนี้
- HTTP ส่งข้อมูลเปลือยๆ ระหว่างทางใครก็แอบดูได้
- HTTPS เข้ารหัสข้อมูลก่อนส่ง ระหว่างทางเห็นเป็นรหัสที่อ่านไม่ออก
- ใส่ password บัตรเครดิต ข้อมูลสำคัญ ใช้บนเว็บ HTTPS เท่านั้น ดูกุญแจที่แถบ URL ก่อนทุกครั้ง
- กุญแจ HTTPS ป้องกันคนระหว่างทาง ไม่ได้รับประกันว่าเว็บปลายทางเป็นของจริง ดู URL ให้ถูกด้วย
บทต่อไปมาดูกลไกอีกอย่างที่อยู่กับเราทุกวันแต่ไม่ค่อยเข้าใจครับ cookie — ทำไมเว็บจำเราได้ ทำไม login ครั้งเดียวอยู่ได้นาน ทำไมใส่ของในตะกร้า Lazada ปิดเว็บไป กลับมาแล้วของยังอยู่