เมื่อมีผู้ใช้งานอินเทอร์เน็ตเพื่อทำธุรกรรมต่าง ๆ มากขึ้น สิ่งหนึ่งที่ผู้ใช้งานมักจะได้ยินเพิ่มขึ้นเรื่อย ๆ คือ หากต้องการใช้อินเทอร์เน็ตแบบปลอดภัย ควรใช้งานอินเทอร์เน็ตแบบเข้ารหัส TLS ทุกครั้ง บริษัทกูเกิลก็ได้ผลักดันเรื่องนี้มาอย่างต่อเนื่อง โดยตั้งแต่ปลายเดือนกรกฎาคม 2561 บริษัทกูเกิลได้เปลี่ยนข้อความของโปรแกรมกูเกิลโครมจากเดิมที่ไม่แสดงข้อความอะไรเมื่อติดต่อเว็บแบบ http มาเป็นแสดงผลว่า “Not Secure” และเปลี่ยนการแสดงผลจาก “Secure” เมื่อติดต่อเว็บที่เป็น https เป็นไม่แสดงข้อความ ซึ่งเป็นความพยายามของบริษัทกูเกิลที่จะบอกผู้ใช้งานว่า https คือการใช้งานแบบปกติ ส่วน http คือการใช้งานที่ “ไม่ปลอดภัย”
รูปที่ 1 การแสดงผลของโปรแกรมกูเกิลโครมเมื่อเชื่อมกับเว็บแบบ http
รูปที่ 2 การแสดงผลของโปรแกรมกูเกิลโครมเมื่อเชื่อมต่อกับเว็บแบบ https
https ย่อมากจาก Hypertext Transfer Protocol Secure ซึ่งหมายถึงการเชื่อมต่อ http แบบปลอดภัย (secure) โดยวิธีการที่จะทำให้การเชื่อมต่อเป็นแบบปลอดภัยคือนำข้อมูลการติดต่อไปผ่านกระบวนการเข้ารหัสตามมาตรฐาน TLS เสียก่อน แต่เนื่องจากมาตรฐาน TLS นั้นมีหลายรุ่น บางรุ่นก็ออกมานานแล้วและมีข้อพกพร่องทำให้กระบวนการเข้ารหัสไม่ปลอดภัยอีกต่อไป ดังนั้น ผู้ใช้งานและผู้ดูแลระบบจึงควรทำความเข้าใจเกี่ยวกับมาตรฐาน TLS รุ่นต่าง ๆ เพราะรุ่นของ TLS ที่แตกต่างกันจะส่งผลต่อคุณภาพของการเข้ารหัสและความปลอดภัย บทความนี้จะให้ความรู้เบื้องต้นเกี่ยวกับกระบวนการเข้ารหัสแบบ TLS รวมถึงมาตรฐาน TLS รุ่นล่าสุดคือ TLS 1.3 ตลอดจนวิธีการตรวจสอบคุณภาพความปลอดภัยในการรับส่งข้อมูลผ่านอินเทอร์เน็ตซึ่งตรวจสอบได้จากคุณภาพภาพด้านความปลอดภัยของของเว็บไซต์ที่ให้บริการและรุ่นของวิธีการเชื่อมต่อแบบปลอดภัยของบราวเซอร์ที่ใช้งานอยู่
กล่าวโดยย่อ Transport Layer Security (TLS) คือมาตรฐานของกระบวนการรับส่งข้อมูลแบบปลอดภัย โดยเมื่อโปรแกรมใด ๆ ต้องการรับส่งข้อมูลผ่านอินเทอร์เน็ต จากเดิมที่โปรแกรมเหล่านั้นจะส่งข้อมูลไปยังอินเทอร์เน็ตโดยทันที (ซึ่งไม่มีความปลอดภัย) โปรแกรมเหล่านั้นจะเข้ารหัสข้อมูลผ่านตามกระบวนการที่กำหนดไว้ในมาตรฐาน TLS เสียก่อน แล้วจึงส่งข้อมูลไปยังอินเทอร์เน็ต ซึ่งปัจจุบันมาตรฐาน TLS ที่นิยมใช้งานอยู่ทั่วไปคือ TLS 1.2 แต่มาตรฐาน TLS ล่าสุดคือ 1.3 ซึ่งได้เพิ่มความสามารถทั้งในด้านความเป็นส่วนตัวของข้อมูลและประสิทธิภาพการทำงาน
มาตรฐาน Secure Socket Layer (SSL) และ Transport Layer Security (TLS)
Transport Layer Security (TLS) คือ โปรโตคอลที่เป็นมาตรฐานเพื่อสร้างความมั่นคงปลอดภัยของการติดต่อสื่อสารระหว่างต้นทางและปลายทาง (end-to-end communication) ผ่านเครือข่ายคอมพิวเตอร์ มาตรฐานนี้กำหนดโดย Internet Engineering Task Force (IETF) ปัจจุบันมาตรฐานนี้ถูกใช้งานโดยโปรแกรมต่าง ๆ อย่างแพร่หลาย ไม่ว่าจะเป็นโปรแกรมบราวเซอร์ ระบบจดหมายอิเล็กทรอนิกส์ ระบบส่งข้อความ หรือแม้แต่ระบบ voice over ip เป็นต้น
นอกจาก TLS แล้ว หลายท่านคงอาจจะคุ้นเคยกับการกระบวนการเข้ารหัสแบบ Secure Socket Layer (SSL) ด้วย SSL เป็นมาตรฐานกระบวนการเข้ารหัสในยุคก่อน TLS ที่พัฒนาโดยบริษัท Netscape SSL รุ่นแรกคือ SSL 1.0 นั้น ไม่เคยประกาศสู่สาธารณะเพราะมีข้อพกพร่องมากมาย บริษัท Netscape ประกาศ SSL 2.0 ในเดือนกุมภาพันธ์ พ.ศ. 2538 แต่ก็ยังพบข้อบกพร่องมากมาย ทำให้ต้องออกแบบโปรโตคอลใหม่หมดและประกาศในปี พ.ศ. 2539 ในชื่อ SSL 3.0 ซึ่งเป็นรากฐานที่สำคัญในการพัฒนาโปรโตคอลในรุ่นถัดไปคือ TLS 1.0 ที่ประกาศใช้งานในปี พ.ศ. 2541 และองค์กร PCI ซึ่งเป็นองค์กรที่กำหนดมาตรฐานเกี่ยวบัตรเครดิตก็ได้ประกาศให้ใช้งาน TLS 1.0 ในปี พ.ศ. 2541
ข้อบกพร่องของมาตรฐานที่ผ่านมา
เนื่องจากมีการค้นพบข้อบกพร่องในโปรโตคอลที่ประกาศใช้งานแล้ว เช่น การค้นพบ BEAST attack ในปีพ.ศ. 2554, POODLE attack ในปีพ.ศ. 2557 หรือ DROWN attack ในปี พ.ศ. 2559 จนในที่สุดมาตรฐาน SSL 2.0 จึงถูกยกเลิกในปีพ.ศ. 2554 และ SSL 3.0 ถูกยกเลิกในปีพ.ศ. 2558 แม้แต่ TLS 1.0 เองก็มีข้อบกพร่องเช่นกัน องค์กร PCI ได้ประกาศให้ใช้มาตรฐาน TLS 1.1 หรือสูงกว่าตั้งแต่วันที่ 30 มิถุนายน พ.ศ. 2561 เป็นต้นไป
มาตรฐาน TLS 1.3
TLS 1.3 เป็นโปรโตคอลที่ไม่ได้พัฒนาจากโปรโตคอลรุ่นเดิม แต่เป็นการออกแบบใหม่หมด โดย IETF เริ่มออกแบบโปรโตคอลนี้เมื่อเดือนเมษายน ปีพ.ศ. 2557 และประกาศใช้ในเดือนมีนาคม พ.ศ. 2561 โปรโตคอลใหม่นี้ได้มีปรับปรุงให้ทำงานดีขึ้นในหลาย ๆ ด้าน เช่น
การตรวจสอบความสามารถและคุณภาพของโปรโตคอลของผู้ให้บริการเว็บ
หากต้องการตรวจสอบคุณภาพความปลอดภัยของเว็บที่ให้บริการ ให้ไปที่ SSL LAB ของบริษัท Qualys ที่ https://www.ssllabs.com/ssltest/index.html แล้วใส่ชื่อเว็บที่ต้องการตรวจสอบ ผลการตรวจสอบจะแสดงในรูปแบบของเกรดต่าง ๆ กัน เช่น A, B, C หรือ D เป็นต้น ทั้งนี้ เว็บที่ให้บริการควรได้คุณภาพระดับ B เป็นอย่างน้อย
รูปที่ 3 ตัวอย่างผลการตรวจสอบคุณภาพด้านความปลอดภัยของเว็บ
การตรวจสอบมาตรฐานของการเข้ารหัสที่ผู้ใช้กำลังใช้งานอยู่
ผู้ใช้งานสามารถตรวจสอบกระบวนการเข้ารหัสของการเชื่อมต่อที่บราวเซอร์กำลังใช้งานอยู่ โดยเรียกเว็บที่ต้องการ
หากใช้โปรแกรมกูเกิลโครมให้ไปที่ Setting --> More Tools --> Developer Tools --> Security ดังรูป
รูปที่ 4 ตัวอย่างข้อความแสดงรุ่นของมาตรฐาน TLS ที่บราวเซอร์ใช้ติดต่อกับเว็บ (ในรูปแสดงเป็น TLS 1.2)
หากใช้โปรแกรมไฟร์ฟอกซ์ให้คลิกเมาส์ขวาแล้วเลือก View Page Info แล้วเลือก Security ดังรูป
รูปที่ 5 ตัวอย่างข้อความแสดงรุ่นของมาตรฐาน TLS ที่บราวเซอร์ใช้ติดต่อกับเว็บ (ในรูปแสดงเป็น TLS 1.2)
ทั้งนี้มาตรฐานการเข้ารหัสของเว็บที่ติดต่อด้วยควรเป็น TLS รุ่น 1.1 หรือใหม่กว่า