รู้จักโปรโตคอล Secure Socket Layer (SSL)
บทความโดย: Thai Windows Administrator Blog
การรักษาความปลอดภัยให้กับข้อมูลข่าวสารที่จะแลกเปลี่ยนกันนั้นเป็นสิ่งที่จำเป็น ทั้งนี้ เพื่อป้องกันไม่ให้เกิดความผิดพลาดอันส่งผลให้การติดต่อสื่อสารล้มเหลว ทั่วไปจะใช้หลักการรักษาความปลอดภัยของข้อมูลในรูปแบบ RSA โดยใช้โปรโตคอล SSL ซึ่งเป็นหลักการรักษาความปลอดภัย ที่ใช้อัลกอริธึมทางคณิตศาสตร์ที่มีรูปแบบการคำนวณที่เข้าใจง่ายแต่มีความปลอดภัยสูง
ระบบรักษาความปลอดภัยข้อมูลแบบ Secure Socket Layer
Secure Socket Layer (SSL) เป็นโปรโตคอลสำหรับใช้จัดการความปลอดภัย ในการสื่อสารข้อมูลกันระหว่างไคลเอนต์กับเซิร์ฟเวอร์ผ่านทางระบบเครือข่ายหรืออินเทอร์เน็ต ซึ่งโดยปกติแล้วข้อมูลที่รับ-ส่งกันนั้นจะไม่มีการเข้ารหัสข้อมูลแต่อย่างใด นั้นคือถ้าใครสามารถทำการดักจับข้อมูลเหล่านั้นได้ ก็จะสามารถทราบหรืออ่านเนื้อหาของข้อมูลเหล่านั้นในทันที แต่ถ้าทำการเข้ารหัสด้วย SSL ข้อมูลจากไคลเอ็นต์ที่จะส่งไปยังเซิร์ฟเวอร์จะถูกเข้ารหัสก่อน ถึงแม้ว่าจะมีใครสามารถทำการดักจับข้อมูลเหล่านั้นได้ แต่จะไม่สามารถอ่านเนื้อหาของข้อมูลเหล่านั้นในทันที ทำให้ข้อมูลที่รับส่งกันมีความปลอดภัยมากยิ่งขึ้น
• ประวัติและความเป็นมาของโปรโตคอล SSL
โปรโตคอล SSL เริ่มพัฒนาโดย Netscape Communications เพื่อใช้กับโปรโตคอลระดับแอพพลิเคชัน คือ Hypertext Transfer Protocol (HTTP) สำหรับการสื่อสารผ่านเว็บให้มีความปลอดภัย โดยพัฒนาในช่วงต้นของยุคการค้าอิเล็กทรอนิกส์ที่กำลังได้รับความนิยม การเข้ารหัสด้วยโปรโตคอล SSL นั้นมี 2 แบบคือ การเข้ารหัสแบบ 40 bits กับการเข้ารหัสแบบ 128 bits ซึ่งการเข้ารหัสแบบหลังนี้มีใช้แค่ในประเทศสหรัฐอเมริกาเท่านั้น
หลักการของการทำงานของโปรโตคอล SSL คือ จะมีการเข้ารหัสข้อมูลในฝั่งเครื่องไคลเอ็นต์ โดยเว็บบราวเซอร์จะเป็นตัวเข้ารหัสข้อมูล โดยบราวเซอร์จะใช้ Public key จากฝั่งเซิร์ฟเวอร์มาเข้ารหัสกับ Master key ที่บราวเซอร์สร้างขึ้นมาเอง จากนั้นก็ใช้คีย์พวกนี้เข้ารหัสข้อมูลก่อนส่งไปให้เซิร์ฟเวอร์ เมื่อเซิร์ฟเวอร์ได้รับข้อมูลที่ถูกเข้ารหัสจากฝั่งเครื่องไคลเอ็นต์ มันก็จะทำการถอดรหัสข้อมูลนั้นกลับมาเป็นข้อมูลปกติ
โปรโตคอล SSL อนุญาตให้สามารถเลือกวิธีการในการเข้ารหัส วิธีสร้างไดเจสต์ [*1] และลายเซ็นดิจิตอลได้อย่างอิสระก่อนการสื่อสารจะเริ่มต้นขึ้น ตามความต้องการของทั้งเว็บเซิร์ฟเวอร์และบราวเซอร์ เพื่อเพิ่มความยืดหยุ่นในการใช้งาน เปิดโอกาสให้ทดลองใช้วิธีการในการเข้ารหัสวิธีใหม่ รวมถึงลดปัญหาการส่งออกวิธีการเข้ารหัสไปประเทศที่ไม่อนุญาต
Netscape เริ่มพัฒนา SSL เวอร์ชันแรก คือ เวอร์ชัน 2.0 และเวอร์ 3.0 ซึ่งสนับสนุนความสามารถด้านความปลอดภัยมากขึ้น และเป็นเวอร์ชันสุดท้ายก่อนที่จะเป็นมาตรฐานกลางของโปรโตคอลบนอินเตอร์เน็ต โดยเปลี่ยนชื่อเป็น Transport Layer Security หรือ TLS ดูแลมาตรฐานโดย Internet Engineering Task Force (IETF)
• ขั้นตอนการทำงานของโปรโตคอล SSL
กระบวนการในการเริ่มต้นการสื่อสารผ่านชั้น SSL แบ่งเป็น 4 ขั้นตอน ดังนี้
ขั้นตอน 1: ประกาศชุดวิธีการเข้ารหัส ไดเจสต์ และลายเซ็นดิจิตอลที่สนับสนุนของทั้งไคลเอ็นต์และเซิร์ฟเวอร์
ไคลเอ็นต์และเซิร์ฟเวอร์ส่งข้อความเริ่มต้นการสื่อสาร (Hello message) ซึ่งประกอบไปด้วยเวอร์ชันของโปรโตคอลที่ใช้ วิธีการเข้ารหัสที่เว็บเซิร์ฟเวอร์และไคลเอ็นต์สนับสนุน หมายเลขระบุการสื่อสาร (Session identifier) รวมถึงวิธีการบีบอัดข้อมูลในการสื่อสารที่สนับสนุน
หมายเลขระบุการสื่อสารที่เกิดขึ้น จะใช้สำหรับตรวจสอบการเชื่อมต่อระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ถ้ามีการเชื่อมต่อก่อนหน้านี้เกิดขึ้น แสดงว่าได้มีการตกลงวิธีการสื่อสารแล้ว สามารถเริ่มต้นส่งข้อมูลได้ทันที เป็นการลดเวลาติดต่อสื่อสารลง
ขั้นตอน 2: การพิสูจน์ตัวตนของเซิร์ฟเวอร์ต่อไคลเอ็นต์
ถัดมาเว็บเซิร์ฟเวอร์ทำการส่ง Certificate หรือใบยืนยันความมีตัวตนของเซิร์ฟเวอร์ ไคลเอ็นต์จะทำการตรวจสอบ Certificate กับผู้ให้บริการ Certificate Authority ที่ได้ตั้งค่าไว้ เพื่อยืนยันความถูกต้องของ Certificate ของเซิร์ฟเวอร์
ขั้นตอน 3: การพิสูจน์ตัวตนของไคลเอ็นต์ต่อเซิร์ฟเวอร์ ถ้าจำเป็น
เซิร์ฟเวอร์สามารถร้องขอ Certificate จากไคลเอ็นต์เพื่อตรวจสอบความถูกต้องของไคลเอ็นต์ด้วยก็ได้ ใช้ในกรณีที่มีการจำกัดการใช้งานเฉพาะไคลเอ็นต์ที่ต้องการเท่านั้น ซึ่ง SSL สนับสนุนการตรวจสอบได้จากทั้งเซิร์ฟเวอร์และไคลเอ็นต์ ขึ้นอยู่กับการเลือกใช้งานในขณะติดต่อสื่อสารที่เกิดขึ้นนั้น
ขั้นตอน 4: ไคลเอ็นต์และเซิร์ฟเวอร์ตกลงชุดวิธีการเข้ารหัส การสร้างไดเจสต์ และการใช้ลายเซ็นดิจิตอล
ขั้นตอนการตรวจสอบ Certificate ที่เซิร์ฟเวอร์ร้องขอจากไคลเอ็นต์จะมีหรือไม่มีก็ได้ ขึ้นอยู่กับการตั้งค่าบนเซิร์ฟเวอร์ หลังจากขั้นตอนการตรวจสอบเสร็จสิ้น เซิร์ฟเวอร์และไคลเอ็นต์จะตกลงการใช้งานวิธีการเข้ารหัสระหว่างกัน โดยใช้ค่าที่ได้จากการประกาศในขั้นตอนแรก
วิธีการแลกเปลี่ยนกุญแจในการเข้ารหัส (Key exchange method) คือ การกำหนดกลไกการแลกเปลี่ยนกุญแจที่ใช้ในการเข้ารหัสระหว่างการสื่อสาร โดยทั้งไคลเอ็นต์และเซิร์ฟเวอร์จะใช้กุญแจนี้ในการเข้ารหัสและถอดรหัสข้อมูล ใน SSL เวอร์ชัน 2.0 จะสนับสนุนวิธีการแลกเปลี่ยนกุญแจแบบ RSA ส่วน SSL เวอร์ชัน 3.0 ขึ้นไปจะสนับสนุนวิธีการอื่นๆ เพิ่มเติมเช่นการใช้ RSA ร่วมกับการใช้ Certificate หรือ Diffie-Hellman เป็นต้น
วิธีการเข้ารหัสในปัจจุบันแบ่งเป็นสองวิธีคือ
1. การใช้กุญแจเดียวกันในการเข้ารหัสและถอดรหัส อาจเรียกกุญแจนี้ว่า Session key หรือ Secret key
2. การใช้กุญแจคนละตัวในการเข้ารหัสและถอดรหัส ประกอบไปด้วยกุญแจสาธารณะและกุญแจส่วนตัวซึ่งเป็นคู่กันเสมอ เข้ารหัสด้วยกุญแจใด จะต้องถอดรหัสด้วยกุญแจที่คู่กันและตรงกันข้ามเท่านั้น มักใช้วิธีการเข้ารหัสด้วยกุญแจคนละตัวมาใช้ในการเข้ารหัส Session key และส่งไปให้ฝั่งตรงข้ามก่อนการสื่อสารจะเกิดขึ้น รวมเรียกว่าวิธีการแลกเปลี่ยนกุญแจในการเข้ารหัส
SSL ใช้วิธีการเข้ารหัสด้วยกุญแจสมมาตร หรือกุญแจเดียวในการเข้ารหัสและถอดรหัส ตามที่กล่าวข้างต้น วิธีการเข้ารหัสคือ การเข้ารหัสด้วย DES และ 3DES (Data Encryption Standard), วิธีการเข้ารหัสด้วย IDEA ส่วน RC2 และ RC4 เป็นวิธีการเข้ารหัสของ RSA รวมถึงวิธีการเข้ารหัสแบบ Fortezza สำหรับความยาวของการเข้ารหัสที่ใช้คือ 40 บิต, 96 บิต และ 128 บิต
การสร้าง Message Authentication Code (MAC) เพื่อใช้สำหรับการยืนยันความถูกต้องของข้อมูลระหว่างการสื่อสารและป้องกัน การปลอมข้อมูล ส่วนฟังก์ชันสร้างไดเจสต์ที่ SSL สนับสนุนและเลือกใช้ได้ในปัจจุบันคือ MD5 ขนาด 128 บิต และ SHA-1 (Secure Hash Algorithm) ขนาด 160 บิต ซึ่งจะได้วิธีการที่ทั้งสองฝ่ายสนับสนุนและเหมาะสมซึ่งเป็นขั้นตอนสุดท้าย ก่อนการสื่อสารที่มีการเข้ารหัสจะเริ่มต้นขึ้น
บทสรุป
การรักษาความมั่นคงปลอดภัยของระบบคอมพิวเตอร์ หรือ ระบบเครือข่ายคอมพิวเตอร์เป็นสิ่งที่ควรตระหนักเป็นอย่างยิ่งในปัจจุบัน เพราะโลกในยุคปัจจุบันเป็นโลกแห่งข้อมูลข่าวสาร การเก็บรักษาข้อมูลให้ปลอดภัยจึงเป็นสิ่งสำคัญกับตัวบุคคลและองค์กร เพราะฉะนั้นการที่จะอนุญาตให้บุคคลใดบุคคลหนึ่งสามารถเข้าถึงข้อมูลจึงเป็นสิ่งที่ควรระมัดระวัง เพราะข้อมูลบางอย่างของบุคคลและองค์กรมีความสำคัญและไม่สามารถเปิดเผยต่อ บุคคลภายนอกได้
การพิสูจน์ตัวตนจึงมีความสำคัญ เนื่องจากว่าการที่บุคคลใดบุคคลหนึ่งจะเข้าสู่ระบบได้ จะต้องได้รับการยอมรับว่าได้รับอนุญาตจริง การตรวจสอบหลักฐานจึงเป็นขั้นตอนแรกก่อนอนุญาตให้เข้าสู่ระบบ การยืนยันตัวตนยิ่งมีความซับซ้อนมาก หมายถึงว่า ความปลอดภัยของข้อมูลก็มีมากขึ้นด้วย
ที่มา
• http://www.mmtc.egat.co.th/lib1/another005.html
Copyright © 2008 All Rights Reserved.
No comments:
Post a Comment
เชิญแลกเปลี่ยนความคิดเห็น ขอสงวนสิทธิ์ในการเผยแพร่ข้อความ HTML