By | February 9, 2023

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

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

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

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

MD5 (Message Digest 5) น่าจะเป็นฟังก์ชันแฮชที่ใช้บ่อยที่สุด และสร้างไดเจสต์ 128 บิตซึ่งมักจะต่อท้ายส่วนหัวก่อนที่จะส่งแพ็กเก็ต การเปลี่ยนแปลงใดๆ ในข้อความจะทำให้ไดเจสต์เปลี่ยนแปลง และแม้แต่ที่อยู่ IP ต้นทางและปลายทางก็สามารถใช้ร่วมกับเนื้อหาข้อความได้เมื่อสร้างไดเจสต์ ซึ่งจะตรวจสอบความถูกต้องของแอดเดรส

อัลกอริธึมการแฮชที่เป็นที่นิยมอีกอย่างหนึ่งคือ SHA (Secure Hash Algorithm) ที่สร้างไดเจสต์ขนาด 160 บิต ทำให้มั่นใจได้ถึงความปลอดภัยที่มากกว่า MD5

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

HMAC (Hash-based Message Authentication Code) สามารถใช้เพื่อต่อสู้กับการโจมตีแบบชนกันโดยการรวมค่าที่คำนวณได้สองค่าที่เรียกว่า ipid และ opid ซึ่งเริ่มต้นคำนวณโดยใช้รหัสลับสำหรับแพ็กเก็ตแรก และคำนวณใหม่สำหรับแพ็กเก็ตที่ตามมา ค่าจะถูกเก็บไว้หลังจากแต่ละแพ็กเก็ตและกู้คืนเพื่อใช้ในการคำนวณไดเจสต์สำหรับแพ็กเก็ตถัดไป สิ่งนี้ทำให้มั่นใจได้ว่าไดเจสต์จะแตกต่างกันเสมอแม้ในแพ็กเก็ตที่เหมือนกัน

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

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