การตรวจสอบใบรับรอง
ยืนยันตัวตนเซิร์ฟเวอร์
การตรวจสอบใบรับรอง เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องตรวจสอบใบรับรอง
การเข้ารหัสเพียงอย่างเดียวไม่เพียงพอ หากคุณเข้ารหัสการเชื่อมต่อไปยังผู้โจมตี คุณก็ปกป้องการสนทนาผิดฝ่าย
การตรวจสอบใบรับรองช่วยให้มั่นใจว่าคุณกำลังสื่อสารกับเซิร์ฟเวอร์ที่ต้องการจริง ๆ
สิ่งที่ไคลเอนต์ตรวจสอบ
ระหว่างการจับมือ ไคลเอนต์จะตรวจสอบหลายสิ่งดังนี้:
- ห่วงโซ่ใบรับรองไปถึงรากที่เชื่อถือได้
- ใบรับรองอยู่ภายในช่วงเวลาที่มีผล
- ใบรับรองไม่ถูกเพิกถอน
- ชื่อโฮสต์ตรงกัน
การจับคู่ชื่อโฮสต์
ชื่อโฮสต์ที่คุณเชื่อมต่อจะต้องตรงกับรายการชื่อทางเลือกของหัวเรื่อง (SAN)ในใบรับรอง
ช่องชื่อทั่วไป (CN)แบบเก่าเลิกใช้สำหรับกรณีนี้แล้ว ไคลเอนต์สมัยใหม่จึงต้องใช้ SAN
openssl x509 -in cert.pem -noout -ext subjectAltNameวันที่มีผล
ใบรับรองทุกใบมีการประทับเวลาไม่ก่อนและไม่หลัง หากอยู่นอกช่วงเวลานี้ ใบรับรองจะถูกปฏิเสธ
openssl x509 -in cert.pem -noout -datesการตรวจสอบห่วงโซ่ความน่าเชื่อถือ
ไคลเอนต์จะไล่ตรวจห่วงโซ่จากใบรับรองปลายทางไปยังรากในที่เก็บใบรับรองที่เชื่อถือได้ พร้อมตรวจสอบลายเซ็นแต่ละรายการ
หากไม่มีเส้นทางไปยังรากที่เชื่อถือได้ การตรวจสอบจะล้มเหลว แม้ใบรับรองจะดูถูกต้องก็ตาม
การตรวจสอบการเพิกถอน
ไคลเอนต์จะตรวจสอบว่าใบรับรองถูกเพิกถอนก่อนกำหนดหรือไม่โดยใช้ OCSP หรือ CRL
เบราว์เซอร์จำนวนมากใช้การแนบข้อมูล OCSP หรือรายการเพิกถอนที่คัดสรรแล้ว เพื่อให้การตรวจสอบรวดเร็ว
ข้อจำกัดการใช้งานกุญแจ
ใบรับรองจะระบุการใช้งานที่อนุญาตไว้ในส่วนขยายการใช้งานกุญแจและการใช้งานกุญแจเพิ่มเติม
ใบรับรองเซิร์ฟเวอร์ต้องมี serverAuth ส่วนใบรับรอง CA ต้องตั้งค่าแฟล็ก CA ไว้ ใบรับรองที่ใช้งานผิดวัตถุประสงค์จะถูกปฏิเสธ
การตรึงใบรับรอง
การตรึงจะกำหนดใบรับรองหรือกุญแจสาธารณะที่คาดหวังไว้ตายตัวในไคลเอนต์ ซึ่งพบได้บ่อยในแอปมือถือ
แม้ใบรับรองนั้นจะถูกต้องและลงนามโดย CA แต่หากไม่ใช่ใบรับรองที่คาดไว้ก็จะถูกปฏิเสธ ช่วยป้องกัน CA ที่ไม่น่าไว้วางใจหรือถูกบุกรุก
เมื่อการตรวจสอบล้มเหลว
ข้อผิดพลาดในการตรวจสอบที่พบบ่อย ได้แก่:
- NET::ERR_CERT_DATE_INVALID (หมดอายุ)
- NET::ERR_CERT_COMMON_NAME_INVALID (ชื่อโฮสต์ไม่ตรงกัน)
- NET::ERR_CERT_AUTHORITY_INVALID (ผู้ออกใบรับรองไม่น่าเชื่อถือ)
อันตรายจากการข้ามการตรวจสอบ
การปิดใช้การตรวจสอบใบรับรอง เช่น curl -k หรือ verify=False จะลบการป้องกันทั้งหมดจากการปลอมตัวเป็นผู้อื่น
ไม่ควรใช้วิธีนี้ในโค้ดที่ใช้งานจริงโดยเด็ดขาด เพราะเป็นการเปิดช่องให้เกิดการโจมตีแบบคนกลาง
# DO NOT do this in production
curl -k https://example.comการตรวจสอบจากบรรทัดคำสั่ง
คุณสามารถเรียกใช้การตรวจสอบแบบเต็มกับเซิร์ฟเวอร์ที่กำลังทำงานอยู่ได้
openssl s_client -connect example.com:443 \
-verify_hostname example.com -verify_return_errorตรวจสอบอย่างรวดเร็ว
นักพัฒนาตั้งค่า verify=False เพื่อระงับข้อผิดพลาดของใบรับรองในระบบจริง การทำเช่นนี้ก่อให้เกิดความเสี่ยงใด
สรุปทบทวน
คุณได้เรียนรู้วิธีที่ไคลเอนต์ทำการตรวจสอบใบรับรอง
- การตรวจสอบครอบคลุมความน่าเชื่อถือของห่วงโซ่ วันที่มีผล การเพิกถอน และชื่อโฮสต์ (SAN)
- การตรึงช่วยเพิ่มการป้องกันจาก CA ที่ไม่น่าไว้วางใจ
- อย่าปิดใช้การตรวจสอบในระบบจริงโดยเด็ดขาด
ถัดไป เราจะดูการโจมตีที่พบบ่อยต่อ TLS
คำถามที่พบบ่อย
บทเรียน “การตรวจสอบใบรับรอง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจสอบใบรับรอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบใบรับรอง”
ยืนยันตัวตนเซิร์ฟเวอร์ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การตรวจสอบใบรับรอง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจับมือ TLS
- ชุดการเข้ารหัส
- การตรวจสอบใบรับรอง
- การโจมตี TLS ที่พบบ่อย