มีคนเคยบอกว่าใช้ 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 ไม่ต้องล็อกอินก็แก้ได้นะจ่ะ มาเพิ่มข้อมูลกันเยอะ ๆ ) โดยมีหน้าให้กรอกตามนี้ ก็กรอกไปและกดปุ่ม ล็อกอิน เพื่อเข้าสู่ระบบ
หน้าล็อกอินของ Thai Wikipedia
ระหว่างตอนที่ผมเข้าเว็บ wiki ผมก็ใช้ wireshark จับข้อมูลตลอด จนถึงกระทั่งตอนที่ผมส่งข้อมูล ชื่อผู้ใช้ และ รหัสผ่าน เรามาดูกันว่าเราได้อะไรจากการจับข้อมูลครั้งนี้บ้าง
เห็นกันถึง username และ password
เห็น source code ของ HTML กันโล่งโจ้งเลย ORZ
สมมุติว่า wireshark เป็นคนกลางที่ดักจับข้อมูลของเรา (Man-in-the-middle attack) เพื่อไปทำอะไรบางอย่าง เช่น ขโมยข้อมูลล็อกอิน เปลี่ยนแปลงข้อมูลในเว็บเพจ บล็อกเว็บ ฯลฯ เขาก็สามารถทำได้โดยง่าย เพราะเขาเห็นทุกอย่าง
ในทางกลับกัน เราลองมาดูกันสิว่าถ้าเราใช้ https ที่แค่เติม s ลงในท้าย http:// เราสามารถจับอะไรได้บ้าง โดยทำทุกขั้นตอนเหมือนกับ http หมด ผลที่ได้ก็ออกมาดังนี้
หาคำว่า html หรือ password ที่เคยหาได้ใน http ก็หาไม่เจอแล้ว!
หาคำว่า wiki ก็เจอที่ server name อยู่แค่ที่เดียวเท่านั้น
ถึงจะดักจับก้อนข้อมูลมาได้ แต่ก็จะได้ก้อนข้อมูลที่อ่านไม่ออกมา ต้องใช้ซอฟท์แวร์ถอดรหัสเข้าช่วย
เท่ากับว่าข้อมูลที่ออกจากเครื่องเราจากสายแลนหรือไวไฟ ไปยังทะเลอินเทอร์เน็ต ถ้าเป็น http เราสามารถถูกดักจับได้ทุกการกระทำตั้งแต่เว็บที่เข้ายันฟอร์มที่เรากรอก แต่ถ้าเป็น https ข้อมูลก็จะถูกเข้ารหัสตั้งแต่ในเครื่องเราและจะถูกถอดรหัสที่เซอร์เวอร์เว็บปลายทางที่เราเข้าถึงเท่านั้น คนกลางสามารถจับข้อมูลของเราได้แต่ก็ได้ก้อนข้อมูลที่อ่านไม่รู้เรื่องเลย
แต่การเข้ารหัสเป็นอะไรที่รอวันที่ถูกทำลาย (ถอดรหัส) อยู่แล้ว ใช่ว่า https จะถูกถอดรหัสไม่ได้แต่การจะทำได้นั้นต้องใช้ทรัพยากรที่สูงมากๆ อย่างระดับคลาวด์หรือไม่ก็ super computer ก็ยังต้องใช้เวลาสักพักในการถอดรหัสออกมา แถมการเข้ารหัส https ก็มีการเข้ารหัสอยู่หลายระดับ อันนี้เป็นการยกตัวอย่างจาก Firefox
หน้าเว็บ http แบบปกติ
หน้าเว็บ https เข้ารหัสแบบครึ่งๆ กลางๆ เข้ารหัสเนื้อหาแค่บางส่วน
หน้าเว็บ https แบบปกติก็จะเป็นรูปแม่กุญแจเทา
หน้าเว็บ https แบบที่ใช้ EV (Extended Validation) ที่เป็นการเข้ารหัสแบบซับซ้อนกว่าปกติ ก็จะเป็นกุญแจเขียวพื้นขาว
ในระดับเว็บธรรมดาทั่ว ๆ ไป เช่น เว็บที่ต้องการการล็อกอิน (Blognone ก็มี https แล้ว!) เว็บวิดีโอ หรือ social network ก็ไม่จำเป็นต้องใช้ https ที่สลับซับซ้อนมากนัก เพราะเป็นเว็บที่ยังต้องการความเร็วในการเข้าถึงข้อมูลอยู่ (ยิ่งเข้ารหัสซ้บซ้อนเท่าไหร่ ขนาดก็จะใหญ่ขึ้นตาม) แต่สำหรับเว็บสถาบันทางการเงินเช่น ธนาคาร หรือ paypal เว็บพวกนี้ความเร็วไม่สำคัญเท่ากับความปลอดภัยและมั่นคงของข้อมูล จำไว้นะครับ ถ้าธนาคารไหนไม่มีตัวระบุกุญแจเขียวพื้นขาวก็ไม่สมควรทำธุรกรรมออนไลน์ที่ธนาคารนั้น ๆ
ธนาคารไทยส่วนใหญ่ก็รองรับการเข้ารหัสแบบ https แบบซับซ้อนกันแล้ว
ก็เป็นการพิสูจน์แล้ว่า 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 :