การรับรองความถูกต้องเป็นสิ่งสำคัญในการป้องกันการโจมตีจากคนกลาง (MITM) ในบริบทของ Transport Layer Security (TLS) TLS เป็นโปรโตคอลการเข้ารหัสที่ใช้กันอย่างแพร่หลายซึ่งให้การสื่อสารที่ปลอดภัยผ่านอินเทอร์เน็ต ช่วยให้มั่นใจถึงความลับและความสมบูรณ์ของข้อมูลที่แลกเปลี่ยนระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ อย่างไรก็ตาม หากไม่มีการรับรองความถูกต้องที่เหมาะสม ผู้โจมตีสามารถใช้ประโยชน์จากช่องโหว่ในกระบวนการจับมือ TLS และดำเนินการโจมตี MITM
ใน TLS การรับรองความถูกต้องมีจุดประสงค์ในการตรวจสอบตัวตนของฝ่ายสื่อสารที่เกี่ยวข้องในการเชื่อมต่อ ช่วยให้มั่นใจได้ว่าไคลเอ็นต์กำลังสื่อสารกับเซิร์ฟเวอร์ที่ต้องการและในทางกลับกัน ป้องกันไม่ให้หน่วยงานที่ไม่ได้รับอนุญาตดักฟังหรือยุ่งเกี่ยวกับการสื่อสาร การรับรองความถูกต้องทำได้โดยการใช้ใบรับรองดิจิทัล ซึ่งออกโดยหน่วยงานภายนอกที่เชื่อถือได้ซึ่งเรียกว่า Certificate Authorities (CAs)
ในระหว่างการจับมือ TLS ไคลเอนต์และเซิร์ฟเวอร์จะแลกเปลี่ยนใบรับรองเพื่อสร้างความไว้วางใจ ไคลเอนต์ตรวจสอบใบรับรองของเซิร์ฟเวอร์โดยการตรวจสอบความถูกต้อง ความถูกต้อง และห่วงโซ่ของความไว้วางใจที่นำกลับไปยัง CA ที่เชื่อถือได้ ในทำนองเดียวกัน เซิร์ฟเวอร์สามารถรับรองความถูกต้องของใบรับรองของไคลเอ็นต์ได้ หากจำเป็นต้องมีการรับรองความถูกต้องของไคลเอ็นต์ การรับรองความถูกต้องร่วมกันนี้เป็นรากฐานที่แข็งแกร่งสำหรับการสื่อสารที่ปลอดภัยและป้องกันการโจมตี MITM
ตอนนี้ มาดูกันว่าการรับรองความถูกต้องใน TLS ป้องกันการโจมตีแบบ MITM ได้อย่างไร ในการโจมตีแบบ MITM ทั่วไป ผู้โจมตีจะวางตำแหน่งตัวเองระหว่างไคลเอนต์และเซิร์ฟเวอร์ สกัดกั้นและจัดการการสื่อสาร หากไม่มีการรับรองความถูกต้อง ไคลเอนต์อาจสร้างการเชื่อมต่อกับผู้โจมตีโดยไม่รู้ตัว โดยถือว่าพวกเขาเป็นเซิร์ฟเวอร์ที่ถูกต้องตามกฎหมาย จากนั้นผู้โจมตีสามารถถ่ายทอดการสื่อสารไปยังเซิร์ฟเวอร์จริง สร้างภาพลวงตาของการเชื่อมต่อที่ปลอดภัยในขณะที่ดักฟังหรือแก้ไขข้อมูล
ด้วยการกำหนดให้มีการรับรองความถูกต้อง TLS ช่วยให้มั่นใจได้ว่าไคลเอนต์และเซิร์ฟเวอร์ตรวจสอบตัวตนของกันและกันก่อนที่จะสร้างการเชื่อมต่อ การตรวจสอบนี้ช่วยลดความเสี่ยงที่จะตกเป็นเหยื่อของการโจมตีแบบ MITM หากไคลเอ็นต์ตรวจพบความคลาดเคลื่อนหรือความไม่ถูกต้องในใบรับรองของเซิร์ฟเวอร์ ไคลเอนต์สามารถยุติการเชื่อมต่อ ป้องกันการสื่อสารกับผู้โจมตีเพิ่มเติม ในทำนองเดียวกัน เซิร์ฟเวอร์สามารถปฏิเสธการเชื่อมต่อจากไคลเอนต์ที่มีใบรับรองที่ไม่ถูกต้องหรือไม่ได้รับอนุญาต
เพื่ออธิบายสิ่งนี้ ให้พิจารณาสถานการณ์ที่ผู้ใช้พยายามเข้าถึงเว็บไซต์ธนาคารออนไลน์ของตน หากไม่มีการพิสูจน์ตัวตน ผู้โจมตีอาจขัดขวางคำขอของผู้ใช้ แสดงใบรับรองปลอม และสร้างการเชื่อมต่อกับผู้ใช้ ผู้ใช้ที่ไม่ทราบถึงการโจมตีจะดำเนินการป้อนข้อมูลรับรองการเข้าสู่ระบบซึ่งผู้โจมตีสามารถจับภาพได้ อย่างไรก็ตาม ด้วยการรับรองความถูกต้องที่เหมาะสม เบราว์เซอร์ของผู้ใช้จะตรวจสอบความถูกต้องของใบรับรองของเว็บไซต์ธนาคารและตรวจหาความคลาดเคลื่อนใดๆ หากใบรับรองไม่ถูกต้อง เบราว์เซอร์จะออกคำเตือนเพื่อป้องกันไม่ให้ผู้ใช้ป้อนข้อมูลประจำตัวและปกป้องพวกเขาจากการโจมตีของ MITM
การตรวจสอบสิทธิ์มีบทบาทสำคัญในการป้องกันการโจมตี MITM ใน TLS ช่วยให้มั่นใจถึงตัวตนของฝ่ายสื่อสาร สร้างความไว้วางใจ และป้องกันการสกัดกั้นหรือดัดแปลงข้อมูลโดยไม่ได้รับอนุญาต ด้วยการตรวจสอบใบรับรองระหว่าง TLS handshake ทั้งไคลเอนต์และเซิร์ฟเวอร์สามารถตรวจจับและปฏิเสธการเชื่อมต่อจากผู้โจมตี ปกป้องความสมบูรณ์และความลับของการสื่อสาร
คำถามและคำตอบล่าสุดอื่น ๆ เกี่ยวกับ EITC/IS/WASF พื้นฐานด้านความปลอดภัยของเว็บแอปพลิเคชัน:
- ส่วนหัวของคำขอดึงข้อมูลเมตาคืออะไร และจะใช้เพื่อแยกความแตกต่างระหว่างคำขอที่มาจากต้นทางเดียวกันและคำขอข้ามไซต์ได้อย่างไร
- ประเภทที่เชื่อถือได้ลดพื้นผิวการโจมตีของเว็บแอปพลิเคชันและทำให้การตรวจสอบความปลอดภัยง่ายขึ้นอย่างไร
- วัตถุประสงค์ของนโยบายเริ่มต้นในประเภทที่เชื่อถือได้คืออะไร และจะใช้เพื่อระบุการกำหนดสตริงที่ไม่ปลอดภัยได้อย่างไร
- กระบวนการสร้างวัตถุประเภทที่เชื่อถือได้โดยใช้ API ประเภทที่เชื่อถือได้คืออะไร
- คำสั่งประเภทที่เชื่อถือได้ในนโยบายความปลอดภัยเนื้อหาช่วยลดช่องโหว่ของ DOM-based cross-site scripting (XSS) ได้อย่างไร
- ประเภทที่เชื่อถือได้คืออะไร และจะจัดการกับช่องโหว่ XSS ที่ใช้ DOM ในเว็บแอปพลิเคชันได้อย่างไร
- นโยบายความปลอดภัยเนื้อหา (CSP) สามารถช่วยลดความเสี่ยงของการเขียนสคริปต์ข้ามไซต์ (XSS) ได้อย่างไร
- การปลอมแปลงคำขอข้ามไซต์ (CSRF) คืออะไร และผู้โจมตีสามารถใช้ประโยชน์ได้อย่างไร
- ช่องโหว่ XSS ในเว็บแอปพลิเคชันทำให้ข้อมูลผู้ใช้เสียหายได้อย่างไร
- ช่องโหว่หลักสองประเภทที่มักพบในเว็บแอปพลิเคชันคืออะไร
ดูคำถามและคำตอบเพิ่มเติมใน EITC/IS/WASF Web Applications Security Fundamentals