มีคนเคยบอกว่าใช้ HTTPS นั้นปลอดภัยกว่า HTTP เพราะมีการเข้ารหัสนั้นโน้นนี้ เราก็อาจจะก็จะงงว่าเขารหัสแล้วอย่างไรล่ะ? ปลอดภัยจริงเหรอ? วันนี้ผมก็เลยพาคุณมาดูว่า HTTPS นั้นปลอดภัยจริงหรือไม่
ก่อนเข้าเรื่องเรามาทำความรู้จักกับชั้นของ network layers กันนิดนึง ตามปกติการที่เว็บเบราว์เซอร์จะสื่อสารกับเซอร์เวอร์จะต้องผ่านขั้นตอนนี้ก่อน
HTTP(ในที่นี่หมายถึงเบราว์เซอร์) -> TCP -> IP -> Network Interfaces (เช่น สายแลนหรือไวไฟ) -> ออกมหาสมุทรอินเทอร์เน็ต
แต่ถ้าเป็น HTTPS จะมี layer ที่ขั้นกลางระหว่าง HTTP กับ TCP เข้ามา
HTTP -> SSL/TLS (ก็คือ HTTPS) -> TCP -> IP -> Network Interfaces (เช่น สายแลนหรือไวไฟ) -> ออกมหาสมุทรอินเทอร์เน็ต
เพราะฉะนั้นการที่คุณใช้ HTTPS พอร์ท 443 คุณก็ต้องผ่านชั้น SSL/TLS ก่อนถึงออกเน็ตได้ คราวนี้เราก็วกกลับมาเรื่องเก่าว่ามันปลอดภัยจริงหรือไม่ โดยผมจะใช้เครื่องมือที่ network analysis เขามักจะใช้กันอย่าง wireshark ในการดักจับข้อมูลที่รับ/ส่งผ่านเครื่องของผมเอง โดยผมจะใช้เว็บ wikipedia เป็นเว็บทดลอง เพราะ wikipedia นั้นรองรับทั้ง http ธรรมดากับ https ด้วย โดยมาเริ่มกันที่ http ก่อน
สมมติว่าผมจะล็อกอินเข้าเว็บ wikipedia เพื่อไปแก้ไขข้อมูลในชื่อผม (wikipedia ไม่ต้องล็อกอินก็แก้ได้นะจ่ะ มาเพิ่มข้อมูลกันเยอะ ๆ ) โดยมีหน้าให้กรอกตามนี้ ก็กรอกไปและกดปุ่ม ล็อกอิน เพื่อเข้าสู่ระบบ
ระหว่างตอนที่ผมเข้าเว็บ wiki ผมก็ใช้ wireshark จับข้อมูลตลอด จนถึงกระทั่งตอนที่ผมส่งข้อมูล ชื่อผู้ใช้ และ รหัสผ่าน เรามาดูกันว่าเราได้อะไรจากการจับข้อมูลครั้งนี้บ้าง
สมมุติว่า wireshark เป็นคนกลางที่ดักจับข้อมูลของเรา (Man-in-the-middle attack) เพื่อไปทำอะไรบางอย่าง เช่น ขโมยข้อมูลล็อกอิน เปลี่ยนแปลงข้อมูลในเว็บเพจ บล็อกเว็บ ฯลฯ เขาก็สามารถทำได้โดยง่าย เพราะเขาเห็นทุกอย่าง
ในทางกลับกัน เราลองมาดูกันสิว่าถ้าเราใช้ https ที่แค่เติม s ลงในท้าย http:// เราสามารถจับอะไรได้บ้าง โดยทำทุกขั้นตอนเหมือนกับ http หมด ผลที่ได้ก็ออกมาดังนี้
เท่ากับว่าข้อมูลที่ออกจากเครื่องเราจากสายแลนหรือไวไฟ ไปยังทะเลอินเทอร์เน็ต ถ้าเป็น http เราสามารถถูกดักจับได้ทุกการกระทำตั้งแต่เว็บที่เข้ายันฟอร์มที่เรากรอก แต่ถ้าเป็น https ข้อมูลก็จะถูกเข้ารหัสตั้งแต่ในเครื่องเราและจะถูกถอดรหัสที่เซอร์เวอร์เว็บปลายทางที่เราเข้าถึงเท่านั้น คนกลางสามารถจับข้อมูลของเราได้แต่ก็ได้ก้อนข้อมูลที่อ่านไม่รู้เรื่องเลย
แต่การเข้ารหัสเป็นอะไรที่รอวันที่ถูกทำลาย (ถอดรหัส) อยู่แล้ว ใช่ว่า https จะถูกถอดรหัสไม่ได้แต่การจะทำได้นั้นต้องใช้ทรัพยากรที่สูงมากๆ อย่างระดับคลาวด์หรือไม่ก็ super computer ก็ยังต้องใช้เวลาสักพักในการถอดรหัสออกมา แถมการเข้ารหัส https ก็มีการเข้ารหัสอยู่หลายระดับ อันนี้เป็นการยกตัวอย่างจาก Firefox
หน้าเว็บ http แบบปกติ
หน้าเว็บ https เข้ารหัสแบบครึ่งๆ กลางๆ เข้ารหัสเนื้อหาแค่บางส่วน
หน้าเว็บ https แบบปกติก็จะเป็นรูปแม่กุญแจเทา
หน้าเว็บ https แบบที่ใช้ EV (Extended Validation) ที่เป็นการเข้ารหัสแบบซับซ้อนกว่าปกติ ก็จะเป็นกุญแจเขียวพื้นขาว
ในระดับเว็บธรรมดาทั่ว ๆ ไป เช่น เว็บที่ต้องการการล็อกอิน (Blognone ก็มี https แล้ว!) เว็บวิดีโอ หรือ social network ก็ไม่จำเป็นต้องใช้ https ที่สลับซับซ้อนมากนัก เพราะเป็นเว็บที่ยังต้องการความเร็วในการเข้าถึงข้อมูลอยู่ (ยิ่งเข้ารหัสซ้บซ้อนเท่าไหร่ ขนาดก็จะใหญ่ขึ้นตาม) แต่สำหรับเว็บสถาบันทางการเงินเช่น ธนาคาร หรือ paypal เว็บพวกนี้ความเร็วไม่สำคัญเท่ากับความปลอดภัยและมั่นคงของข้อมูล จำไว้นะครับ ถ้าธนาคารไหนไม่มีตัวระบุกุญแจเขียวพื้นขาวก็ไม่สมควรทำธุรกรรมออนไลน์ที่ธนาคารนั้น ๆ
ก็เป็นการพิสูจน์แล้ว่า HTTPS นั้นทำให้ข้อมูลที่เรารับส่งนั้นปลอดภัยและปลอมแปลงได้ยาก สำหรับ HTTPS นั้นเหมาะสำหรับพลเมืองเน็ตที่ต้องการความเสรีที่เปิดกว้าง (แต่ไม่ผิดศีลธรรม) กับความมั่นคงปลอดภัยของข้อมูล ไร้การดักฟังของคนกลางที่ต้องดัดแปลงหรือขโมยข้อมูล หรือจากองค์การปกครองเช่น รัฐ… ที่ต้องการปกปิดข้อมูลอะไรบางอย่าง
โดยในตัวเบราว์เซอร์อย่าง Firefox หรือ Chrome นั้นมีส่วนขยายที่ชื่อว่า HTTPS Everywhere โดยเจ้าตัวส่วนขยายนี้พอเห็นเว็บไหนที่รองรับ https ที่อยู่ในรายการของส่วนขยายมันก็จะทำการย้ายไปยังหน้าเว็บนั้นให้อัตโนมัติ ยิ่งถ้าคนที่ออกไปใช้อินเทอร์เน็ตตามร้านอาหาร ร้านกาแฟ ข้างนอกบ่อย ๆ ควรจะเป็นส่วนขยายที่มีประจำอยู่ในเบราว์เซอร์ด้วยซ้ำครับ ขอให้เสรีภาพบนอินเทอร์เน็ตยั่งยืนและก้าวหน้าต่อไปครับ (Live Long and Prosper)…
ป.ล. อ่อ ถ้าองค์กรไหนบล็อก facebook youtube หรือ twitter ให้ลองเข้าผ่านทาง https อาจช่วยให้ฝ่าด่านได้ ^_^
Shinnapol Thanyacharoen wrote on :
JJJ wrote on :
Pingback from ส่วนขยาย HTTPS Everywhere รองรับ Firefox 57 แล้ว | Mozilla Thailand Community on :
PTS Terbaik wrote on :