Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

เคอร์เบอรัส (Kerberos) ในความปลอดภัยข้อมูลคืออะไร?

เคอร์เบอรัส (Kerberos) คือโปรโตคอลการยืนยันตัวตนบนเครือข่าย ที่ออกแบบมาเพื่อให้การยืนยันตัวตนที่แข็งแกร่งสำหรับแอปพลิเคชันแบบไคลเอ็นต์/เซิร์ฟเวอร์ โดยใช้การเข้ารหัสแบบคีย์ลับ (Secret-key Cryptography) เคอร์เบอรัสให้ระดับความปลอดภัยสูงสุดแก่ทรัพยากรเครือข่าย

ที่มาและพัฒนา

เคอร์เบอรัสถูกพัฒนาโดย MIT เพื่อแก้ปัญหาความปลอดภัยเครือข่าย โปรโตคอลนี้ใช้การเข้ารหัสที่แข็งแกร่ง เพื่อให้ผู้ใช้สามารถพิสูจน์ตัวตนของตนเองกับเซิร์ฟเวอร์ (และในทางกลับกัน) ผ่านการเชื่อมต่อเครือข่ายที่ไม่ปลอดภัย หลังจากที่ไคลเอ็นต์และเซิร์ฟเวอร์ใช้เคอร์เบอรัสยืนยันตัวตนแล้ว พวกเขาสามารถเข้ารหัสการสื่อสารทั้งหมดเพื่อให้ได้ความเป็นส่วนตัวและความสมบูรณ์ของข้อมูล

เคอร์เบอรัสเปิดให้เข้าถึงได้ฟรีจาก MIT ภายใต้ลิขสิทธิ์คล้ายกับที่ใช้สำหรับระบบปฏิบัติการ BSD และ X Window System MIT ให้ซอร์สโค้ดเพื่อให้ผู้ที่ต้องการใช้งานสามารถตรวจสอบโค้ดด้วยตนเองและมั่นใจในความน่าเชื่อถือ นอกจากนี้ สำหรับผู้ที่ต้องการผลิตภัณฑ์ที่ได้รับการสนับสนุนอย่างมืออาชีพ เคอร์เบอรัสก็พร้อมใช้งานจากหลายผู้จัดจำหน่าย

สถาปัตยกรรมและการทำงาน

เคอร์เบอรัสใช้สถาปัตยกรรมแบบไคลเอ็นต์/เซิร์ฟเวอร์ และรองรับการยืนยันตัวตนแบบผู้ใช้ต่อเซิร์ฟเวอร์ (User-to-Server Authentication) แทนที่จะเป็นโฮสต์ต่อโฮสต์ ในแบบจำลองนี้ ความปลอดภัยและการยืนยันตัวตนขึ้นอยู่กับเทคโนโลยีคีย์ลับ โดยแต่ละโฮสต์บนเครือข่ายมีคีย์ลับของตัวเอง

เซิร์ฟเวอร์เคอร์เบอรัส / KDC (Key Distribution Center) มีหน้าที่หลัก 2 อย่าง ได้แก่ เซิร์ฟเวอร์ยืนยันตัวตน (Authentication Server - AS) และเซิร์ฟเวอร์ออกตั๋ว (Ticket-Granting Server - TGS) ขั้นตอนในการสร้างเซสชันที่ยืนยันตัวตนระหว่างไคลเอ็นต์แอปพลิเคชันและเซิร์ฟเวอร์แอปพลิเคชัน มีดังนี้:

  1. การเชื่อมต่อกับ AS: ซอฟต์แวร์ไคลเอ็นต์เคอร์เบอรัสสร้างการเชื่อมต่อกับฟังก์ชัน AS ของเซิร์ฟเวอร์เคอร์เบอรัส AS ยืนยันตัวตนไคลเอ็นต์ก่อน ให้คีย์ลับสำหรับเซสชันล็อกอินนี้ (TGS Session Key) และตั๋วออกตั๋ว (Ticket-Granting Ticket - TGT) ซึ่งให้สิทธิ์ไคลเอ็นต์พูดคุยกับ TGT มีอายุการใช้งานจำกัด เพื่อให้กระบวนการยืนยันตัวตนทำซ้ำเป็นระยะ
  2. การขอคีย์เซิร์ฟเวอร์แอปพลิเคชัน: ไคลเอ็นต์ติดต่อ TGS เพื่อขอคีย์ของเซิร์ฟเวอร์แอปพลิเคชัน เพื่อสร้างการเชื่อมต่อกับบริการที่ต้องการ ไคลเอ็นต์ส่งคีย์เซสชัน TGS และ TGT ให้ TGS ตอบกลับด้วยคีย์เซสชันแอปพลิเคชัน (Application Session Key - ASK) และรูปแบบเข้ารหัสของคีย์ลับเซิร์ฟเวอร์แอปพลิเคชัน คีย์ลับนี้ไม่เคยถูกส่งผ่านเครือข่ายในรูปแบบเปล่าๆ
  3. การยืนยันตัวตนกับเซิร์ฟเวอร์แอปพลิเคชัน: ไคลเอ็นต์ยืนยันตัวตนแล้ว และสามารถพิสูจน์ตัวตนกับเซิร์ฟเวอร์แอปพลิเคชันโดยส่งตั๋วเคอร์เบอรัส คีย์เซสชันแอปพลิเคชัน และคีย์ลับเซิร์ฟเวอร์แอปพลิเคชันที่เข้ารหัส เซิร์ฟเวอร์แอปพลิเคชันตอบกลับด้วยข้อมูลเข้ารหัสเดียวกันเพื่อยืนยันตัวตนกับไคลเอ็นต์ จากนั้นไคลเอ็นต์จึงสามารถเริ่มคำขอบริการที่ต้องการ เช่น Telnet, FTP, HTTP หรือการสร้างเซสชันธุรกรรมอีคอมเมิร์ซ