0Pricing
Cryptology Academy · บทเรียน

การตรวจสอบใบรับรองใน TLS

ติดตามวิธีที่ไคลเอนต์ตรวจสอบสายโซ่ใบรับรองของเซิร์ฟเวอร์

การตรวจสอบใบรับรองใน TLS เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องตรวจสอบใบรับรอง

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

ช่องข้อมูลใบรับรอง X.509 ที่เกี่ยวข้องกับ TLS

ช่องข้อมูลสำคัญ ได้แก่ เจ้าของใบรับรอง, SubjectAltName (ชื่อ DNS/ที่อยู่ IP), ผู้ออกใบรับรอง (CA ที่ลงลายเซ็น), ช่วงเวลาที่ใช้ได้ (notBefore/notAfter), คีย์สาธารณะ และลายเซ็น เบราว์เซอร์จะตรวจสอบข้อมูลทั้งหมดนี้

สายโซ่แห่งความไว้วางใจ

ใบรับรองเซิร์ฟเวอร์ → ใบรับรอง CA ระดับกลาง → ใบรับรอง CA ราก CA รากลงลายเซ็นให้ตัวเอง และติดตั้งไว้ล่วงหน้าในที่เก็บใบรับรองที่เชื่อถือได้ของ OS หรือเบราว์เซอร์ เซิร์ฟเวอร์จะส่งใบรับรองของตนพร้อมใบรับรอง CA ระดับกลางในข้อความ Certificate ระหว่างการจับมือ TLS

การตรวจสอบลายเซ็น

ใบรับรองแต่ละใบลงลายเซ็นโดยผู้ออกใบรับรองที่อยู่เหนือขึ้นไป ไคลเอ็นต์จะตรวจสอบลายเซ็น(cert_n) โดยใช้ public_key(cert_{n+1}) หากลายเซ็นใดไม่ถูกต้อง จะปฏิเสธสายโซ่ทั้งหมด ส่วนใบรับรองรากได้รับความไว้วางใจจากการติดตั้งไว้ล่วงหน้า ไม่ใช่จากการตรวจสอบลายเซ็น

การตรวจสอบชื่อ

ไคลเอ็นต์ตรวจสอบว่าชื่อโฮสต์ของเซิร์ฟเวอร์ตรงกับชื่อเจ้าของใบรับรองหรือ SubjectAltName (รายการ DNS) หรือไม่ อักขระแทน (*.example.com) จะจับคู่ได้เพียงหนึ่งป้ายชื่อ ตั้งแต่ปี 2000 เป็นต้นมา SAN มีลำดับความสำคัญเหนือ CN ในการจับคู่ชื่อโฮสต์

การตรวจสอบช่วงเวลาที่ใช้ได้

ไคลเอ็นต์ตรวจสอบ notBefore ≤ now ≤ notAfter สำหรับใบรับรองทุกใบในสายโซ่ ใบรับรองที่หมดอายุจะถูกปฏิเสธแม้ลายเซ็นจะถูกต้อง อายุการใช้งานของใบรับรองสั้นลงเรื่อย ๆ โดยปัจจุบันเบราว์เซอร์จำกัดไว้ที่ประมาณ 398 วัน

การเพิกถอน: CRL

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

การเพิกถอน: OCSP

โพรโทคอลสถานะใบรับรองออนไลน์ (OCSP) ช่วยให้ไคลเอ็นต์สอบถามตัวตอบกลับ OCSP ของ CA เพื่อดูสถานะของใบรับรองทีละใบได้ เร็วกว่า CRL แต่เพิ่มความหน่วง การแนบคำตอบ OCSP ทำให้เซิร์ฟเวอร์รวมคำตอบ OCSP ที่มีลายเซ็นไว้ในการจับมือ TLS

ความโปร่งใสของใบรับรอง

CT (RFC 6962) กำหนดให้ CA บันทึกใบรับรองที่ออกทั้งหมดลงในบันทึกสาธารณะที่เพิ่มข้อมูลต่อท้ายได้เท่านั้น เบราว์เซอร์จะตรวจสอบค่าประทับเวลาใบรับรองที่มีลายเซ็น (SCT) ในใบรับรองหรือส่วนขยาย TLS วิธีนี้ป้องกันไม่ให้การออกใบรับรองโดยมิชอบถูกตรวจไม่พบ

การตรึงคีย์

การตรึงคีย์สาธารณะ HTTP (HPKP ซึ่งเลิกใช้แล้ว) และการตรึงใบรับรองในแอปมือถือ จะกำหนดคีย์สาธารณะหรือแฮชใบรับรองที่เจาะจงไว้ หากเซิร์ฟเวอร์แสดงใบรับรองอื่น การเชื่อมต่อจะถูกปฏิเสธแม้ใบรับรองนั้นจะถูกต้องก็ตาม วิธีนี้ป้องกันการโจมตีจากการที่ CA ถูกโจมตี

ข้อผิดพลาดในการตรวจสอบที่พบบ่อย

ERR_CERT_AUTHORITY_INVALID: รากไม่อยู่ในรายการที่เชื่อถือได้ ERR_CERT_DATE_INVALID: หมดอายุ ERR_CERT_COMMON_NAME_INVALID: ชื่อโฮสต์ไม่ตรงกัน NET::ERR_CERT_REVOKED: OCSP หรือ CRL ระบุว่าถูกเพิกถอน แต่ละข้อสอดคล้องกับความล้มเหลวในขั้นตอนการตรวจสอบเฉพาะรายการ

ตรวจสอบความเข้าใจ

การแนบคำตอบ OCSP ช่วยให้เกิดผลลัพธ์ใด

สรุป

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

คำถามที่พบบ่อย

บทเรียน “การตรวจสอบใบรับรองใน TLS” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การตรวจสอบใบรับรองใน TLS” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบใบรับรองใน TLS”

ติดตามวิธีที่ไคลเอนต์ตรวจสอบสายโซ่ใบรับรองของเซิร์ฟเวอร์ คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การตรวจสอบใบรับรองใน TLS” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แฮนด์เชก TLS 1.3 ทีละขั้นตอน
  2. ชั้นระเบียน TLS และชุดรหัสเข้ารหัส
  3. การตรวจสอบใบรับรองใน TLS
  4. การโจมตี TLS: BEAST, POODLE และการลดระดับ
← กลับไปที่ Cryptology Academy