CHAP คืออะไรและทำงานอย่างไร

Chap Khux Xari Laea Thangan Xyangri



“หนึ่งในไม่กี่โปรโตคอลการตรวจสอบความถูกต้องที่ไม่ส่งความลับที่ใช้ร่วมกันระหว่างผู้ใช้หรือฝ่ายที่ร้องขอการเข้าถึงและผู้รับรองความถูกต้องคือ Challenge-Handshake Authentication (CHAP) เป็นโปรโตคอลแบบจุดต่อจุด (PPP) ที่พัฒนาโดย Internet Engineering Task Force, IETF โดยเฉพาะอย่างยิ่งมีประโยชน์ในระหว่างการเริ่มต้นลิงก์เริ่มต้นและการตรวจสอบการสื่อสารระหว่างเราเตอร์และโฮสต์เป็นระยะ

ดังนั้น CHAP จึงเป็นโปรโตคอลการยืนยันตัวตนที่ทำงานโดยไม่ส่งความลับที่ใช้ร่วมกันหรือความลับร่วมกันระหว่างผู้ใช้ (ฝ่ายที่ร้องขอการเข้าถึง) และผู้ตรวจสอบสิทธิ์ (ฝ่ายยืนยันตัวตน)







แม้ว่าจะยังคงอิงตามความลับที่ใช้ร่วมกัน แต่ตัวตรวจสอบจะส่งข้อความท้าทายไปยังผู้ใช้ที่ร้องขอการเข้าถึงและไม่ใช่ความลับที่แชร์ ฝ่ายที่ขอการเข้าถึงจะตอบกลับด้วยค่าที่มักจะคำนวณโดยใช้ค่าแฮชทางเดียว ฝ่ายยืนยันตัวตนจะตรวจสอบการตอบสนองตามการคำนวณ



การตรวจสอบสิทธิ์จะสำเร็จก็ต่อเมื่อค่าตรงกัน อย่างไรก็ตาม กระบวนการรับรองความถูกต้องจะล้มเหลวหากฝ่ายที่ร้องขอการเข้าถึงส่งค่าที่แตกต่างจากตัวตรวจสอบความถูกต้อง และแม้หลังจากการตรวจสอบการเชื่อมต่อสำเร็จแล้ว ผู้ตรวจสอบสิทธิ์อาจส่งความท้าทายไปยังผู้ใช้เป็นครั้งคราวเพื่อรักษาความปลอดภัยด้วยการจำกัดเวลาในการเปิดเผยสำหรับการโจมตีที่อาจเกิดขึ้นได้”



CHAP ทำงานอย่างไร

CHAP ทำงานในขั้นตอนต่อไปนี้:





1. ไคลเอนต์สร้างลิงค์ PPP ไปยัง NAS (เซิร์ฟเวอร์การเข้าถึงเครือข่าย) เพื่อขอการรับรองความถูกต้อง

2. ผู้ส่งส่งคำท้าไปยังฝ่ายที่ร้องขอการเข้าถึง



3. ฝ่ายที่ร้องขอการเข้าถึงตอบสนองต่อความท้าทายโดยใช้อัลกอริธึมแฮชทางเดียว MD5 ในการตอบกลับ ลูกค้าจะส่งชื่อผู้ใช้ ควบคู่ไปกับการเข้ารหัสความท้าทาย รหัสผ่านไคลเอ็นต์ และ ID เซสชัน

4. เซิร์ฟเวอร์ (ผู้ตรวจสอบสิทธิ์) จะตรวจสอบการตอบสนองโดยเปรียบเทียบกับค่าแฮชที่คาดหวังตามความท้าทาย

5. เซิร์ฟเวอร์เริ่มต้นการเชื่อมต่อหากค่าตรงกัน อย่างไรก็ตาม มันจะยุติการเชื่อมต่อหากค่าไม่ตรงกัน แม้จะเชื่อมต่อแล้ว เซิร์ฟเวอร์ยังคงสามารถขอให้ลูกค้าส่งคำตอบสำหรับข้อความท้าทายใหม่ ๆ ได้ เนื่องจาก CHAP จะระบุการเปลี่ยนแปลงบ่อยครั้ง

ลักษณะเด่น 5 อันดับแรกของ CHAP

CHAP มีคุณสมบัติมากมายที่ทำให้แตกต่างจากโปรโตคอลอื่น คุณสมบัติรวมถึง:

    • CHAP ต่างจาก TCP ตรงที่ใช้โปรโตคอลการจับมือแบบ 3 ทาง ตัวตรวจสอบความถูกต้องส่งความท้าทายไปยังไคลเอนต์ และไคลเอนต์ตอบสนองโดยใช้ฟังก์ชันแฮชทางเดียว ตัวตรวจสอบความถูกต้องจะจับคู่การตอบสนองตามค่าที่คำนวณได้ และสุดท้ายให้สิทธิ์หรือปฏิเสธการเข้าถึง
    • ลูกค้าใช้ฟังก์ชันแฮชทางเดียว MD5
    • เซิร์ฟเวอร์ตรวจสอบการเชื่อมต่อเป็นครั้งคราวและส่งความท้าทายไปยังผู้ใช้เพื่อรับประกันความปลอดภัยและลดการโจมตีระหว่างเซสชัน
    • CHAP มักถามหาข้อความธรรมดาเกี่ยวกับความลับร่วมกัน
    • ตัวแปรเปลี่ยนแปลงอย่างต่อเนื่อง ทำให้เครือข่ายมีความปลอดภัยมากกว่า PAP

CHAP Packet ที่แตกต่างกัน 4 แบบ

การรับรองความถูกต้อง CHAP ใช้แพ็กเก็ตต่อไปนี้:

    • แพ็คเก็ตท้าทาย- นี่คือแพ็กเก็ตที่ผู้ตรวจสอบความถูกต้องส่งไปยังไคลเอนต์หรือฝ่ายที่ร้องขอการเข้าถึงเมื่อไคลเอนต์สร้างลิงค์ PPP แพ็กเก็ตนี้เริ่มต้นที่จุดเริ่มต้นของโปรโตคอลการจับมือแบบ 3 ทาง ประกอบด้วยค่าตัวระบุ ฟิลด์สำหรับค่าสุ่ม และฟิลด์สำหรับชื่อผู้ตรวจสอบสิทธิ์
    • แพ็คเก็ตตอบกลับ- นี่คือการตอบสนองที่ฝ่ายที่ร้องขอการเข้าถึงส่งกลับไปยังผู้ตรวจสอบความถูกต้อง มีฟิลด์ Value ที่มีค่าแฮชทางเดียวที่สร้างขึ้น ฟิลด์ชื่อ และค่าตัวระบุ เครื่องไคลเอนต์จะตั้งค่าฟิลด์ชื่อของแพ็กเก็ตเป็นรหัสผ่านโดยอัตโนมัติ
    • แพ็คเก็ตความสำเร็จ- เซิร์ฟเวอร์จะส่งแพ็คเก็ตความสำเร็จหากการตอบสนองแฮชของผู้ใช้ตรงกับค่าที่เซิร์ฟเวอร์คำนวณ เมื่อเซิร์ฟเวอร์ส่งแพ็คเก็ตสำเร็จ ระบบจะสร้างการเชื่อมต่อ
    • แพ็กเก็ตล้มเหลว – เซิร์ฟเวอร์ส่งแพ็กเก็ตความล้มเหลวหากค่าที่สร้างขึ้นแตกต่างกัน นี่ก็หมายความว่าจะไม่มีการเชื่อมต่อ

การกำหนดค่า CHAP บนการตรวจสอบและผู้ใช้เครื่อง

ขั้นตอนต่อไปนี้มีความจำเป็นเมื่อกำหนดค่า CHAP:

ก. เริ่มต้นคำสั่งด้านล่างทั้งบนเซิร์ฟเวอร์/การตรวจสอบสิทธิ์และเครื่องของผู้ใช้ โดยปกติสิ่งเหล่านี้จะเป็นเครื่องเพียร์เสมอ

ข. เปลี่ยนชื่อโฮสต์ของทั้งสองเครื่องโดยใช้คำสั่งด้านล่าง พิมพ์คำสั่งในแต่ละเครื่องเพียร์

ค. สุดท้าย ระบุชื่อผู้ใช้และรหัสผ่านสำหรับแต่ละเครื่องโดยใช้คำสั่งด้านล่าง

บทสรุป

โดยเฉพาะอย่างยิ่ง นักพัฒนาของ CHAP ได้พัฒนา CHAP ได้ออกแบบโปรโตคอลนี้เพื่อป้องกันระบบจากการโจมตีโดยการเล่นซ้ำ โดยทำให้แน่ใจว่าฝ่ายที่ร้องขอการเข้าถึงใช้ตัวแปรและตัวระบุที่เปลี่ยนแปลงแบบค่อยเป็นค่อยไป นอกจากนี้ ตัวตรวจสอบความถูกต้องจะควบคุมเวลาและความถี่ในการส่งความท้าทายไปยังผู้ใช้หรือฝ่ายที่ร้องขอการเข้าถึง