ทำไมเว็บเบราเซอร์อย่าง Google Chrome, Safari หรือ Firefox ถึงขึ้นแจ้งว่า Not Secure เวลากรอกข้อมูลในเว็บไซต์ของฉันเอง มันคืออะไร แล้วจะแก้ปัญหาอย่างไร?
หลายครั้งที่เวลาเรากำลังใช้งานเว็บไซต์บางเว็บอยู่ แล้วเจอช่องกรอกข้อมูลในหน้าเว็บไซต์ ทันทีที่เรากรอกข้อมูลไปได้สักพัก ตัวเบราเซอร์ก็จะแจ้งว่าการกรอกข้อมูลนั้นไม่ปลอดภัยบ้าง หรือขึ้นแม่กุญแจขีดค่าสีแดงบ้าง ทำไมถึงเป็นอย่างนั้น วันนี้เราจะมาเขียนบทความเกี่ยวกับเรื่องนี้ รวมถึงวิธีการแก้ไขกันครับ

ที่ขึ้นแบบนั้นเวลากรอกข้อมูลเป็นเพราะ เว็บไซต์นั้นไม่ได้ใช้โปรโตคอลการเข้ารหัสข้อมูลที่ชื่อว่า HTTPS ถ้าจะให้เข้าใจได้ง่ายที่สุดโดยไม่ต้องใช้ศัพท์เทคนิคมากคงต้องเกริ่นอีกนิดว่าในปัจจุบันเว็บไซต์ที่เราเข้าใช้งานกันอยู่มี 2 โปรโตคอลหลักๆ คือ HTTP และ HTTPS ซึ่งมันจะปรากฏอยู่บน address bar ของเว็บเบราเซอร์ หรือหน้าชื่อเว็บไซต์ที่เราใช้งานอยู่
คำพูดแบบรวบรัดคือเว็บไซต์ที่ขึ้นต้นด้วย https จะไม่เจอปัญหาที่เบราเซอร์แจ้งว่าไม่ปลอดภัยนั่นเอง
ทำไมถึงเป็นแบบนั้น?
HTTPS คือโปรโตคอลที่ทำหน้าที่เข้ารหัสข้อมูลเวลาส่งข้อมูลระหว่างเครื่องคอมพิวเตอร์ของเราผ่านระบบเครือข่ายไปยังเครื่องเซิฟเวอร์ปลายทาง อย่างเช่นเราพิมพ์คำว่า “วันนี้อากาศดี” ในแบบฟอร์มของเว็บไซต์ที่ไม่ได้ใช้โปรโตคอล HTTPS นี้ เวลาส่งข้อมูลผ่านระบบเครือข่าย มันก็จะส่งคำว่า “วันนี้อากาศดี” ไปให้เครื่องเซิฟเวอร์ปลายทางเลย
กลับกันถ้าเราส่งข้อความ “วันนี้อากาศดี” ผ่านเว็บไซต์ที่ใช้โปรโตคอล HTTPS คำว่า “วันนี้อากาศดี” จะถูกเข้ารหัสข้อมูลเป็นอย่างอื่นที่คนทั่วไปไม่สามารถอ่านได้เช่น ASDF(V!#$!F0103$@#$%S อะไรทำนองนี้
ยกตัวอย่างให้เห็นภาพนะครับ สมมติบ้านเราอยู่กรุงเทพฯ ต้องการจะส่งนกพิราบสื่อสารไปหาน้องสาวที่เชียงใหม่ เราเขียนคำว่า “วันที่ 2 เดี๋ยวโอนตังให้นะ ไปรอที่ธนาคารได้เลย” ผูกกับขานกพิราบไป ระหว่างทางที่นกพิราบกำลังบินอยู่ มีผู้ไม่หวังดีจับนกพิราบของเรามาแล้วเปิดอ่านข้อความก่อน จากนั้นค่อยผูกแล้วส่งไปต่อ แบบนี้การสื่อสารก็จะไม่ปลอดภัยแล้ว ถึงแม้ว่าน้องสาวเราจะได้รับข้อความที่เราส่งไปก็ตามที
แต่ถ้าเราเข้ารหัสคำพูดที่เราและน้องสาวเข้าใจกันเอง จากนั้นส่งนกพิราบไปใหม่ ไม่ว่าใครก็ตามที่ไม่หวังดีดักจับนกพิราบมาเปิดดูข้อมูล ก็จะไม่เข้าใจถึงความหมาย แบบนี้เรียกว่าการเข้ารหัสข้อมูลที่ส่งผ่านทางเครือข่าย หรือเป็นสิ่งที่ HTTPS ทำนั่นเองครับ ลองพิจารณาดูว่าหากข้อมูลนั้นเป็นข้อมูลบัตรเครดิต หรือข้อมูลสุขภาพส่วนตัวของเรา ก็น่าจะเป็นเรื่องใหญ่เลยใช่ไหมล่ะ นี่จึงเป็นเหตุผลที่ธนาคารทุกเจ้าต้องใช้โปรโตคอล HTTPS นี้เป็นพื้นฐานครับ


แล้วจะเอามาใช้กับเว็บไซต์ของฉันได้ยังไง?
การจะใช้งาน HTTPS ในเว็บไซต์ของเราได้ ต้องซื้อสิ่งที่เรียกว่า SSL (secure socket layer) ก่อนครับ
SSL เหมือนใบรับรองจากผู้ให้บริการที่น่าเชื่อถือในระดับสากล (ให้นึกถึงใบเซอร์ที่ออกโดยสถาบันระดับโลก) การันตีว่าสถาบันนี้ได้ออกใบรับรองให้กับเว็บไซต์นี้ มีมาตรฐานความปลอดภัยในการรับส่งข้อมูล และใช้วิธีเข้ารหัสในการส่งข้อมูลกับเว็บไซต์ หรือเซิฟเวอร์เครื่องอื่นบนโลกใบนี้ได้ ซึ่ง SSL จะมีอายุเหมือนใบรับรองทั่วไปแบบ 3 เดือน 6 เดือน หรือ 1 ปี เป็นต้น
ราคาของ SSL จากผู้ให้บริการแต่ละเจ้าก็มีหลากหลาย การรับรองก็มีหลายระดับ อย่างแบบพื้นฐานครอบคลุมทั่วไปเหมาะกับเว็บไซต์ส่วนตัว องค์กร ก็ราคาประมาณ 500 บาทขึ้นไป แบบแพงขึ้นมาหน่อยครอบคลุมความเสียหายให้มากหน่อยเหมาะกับร้านค้าออนไลน์ก็ประมาณ 3,000 บาทต่อปี หรือจะแบบแพงมาก เข้ารหัสขั้นสูง รับรองความปลอดภัยของข้อมูลผู้ใช้สูงระดับธนาคารก็จะแพงขึ้นไปอีก

เจ้าของเว็บไซต์อย่างเราสามารถซื้อ SSL ได้จากหลายที่เช่น Namecheap, Godaddy, Comodo หรือผู้ให้บริการ hosting ที่เราใช้บริการอยู่ส่วนใหญ่ก็จะมีขาย หรือให้บริการติดตั้งกันอยู่แล้วครับ ยิ่งเดี๋ยวนี้ บางเจ้ามี SSL แบบฟรีให้บริการด้วย
ความปลอดภัยของข้อมูลเป็นสิ่งสำคัญ และเป็นหนึ่งใน checklist ของเราก่อนจะนำเว็บไซต์ลูกค้าขึ้นใช้งานจริง เราเลือกใช้ SSL จากผู้ให้บริการที่ได้มาตรฐานระดับโลกอย่าง COMODO เลือกระดับราคาที่เหมาะสมให้กับประเภทเว็บไซต์ของลูกค้า ซึ่งมีราคาตั้งแต่ 500 บาทต่อปีโดยประมาณ ไปจนถึง 3,000 บาท มั่นใจได้ว่าเว็บไซต์ของคุณจะถูกเข้ารหัสในการรับส่งข้อมูลผ่านเครือข่ายอย่างแน่นอนครับ