บทนำ
HTTPS (ผ่าน SSL /TLS) ใช้ การเข้ารหัสคีย์สาธารณะ เพื่อป้องกันการสื่อสารของเบราว์เซอร์ไม่ให้อ่านหรือแก้ไขในระหว่างการขนส่งทางอินเทอร์เน็ต เซิร์ฟเวอร์จัดเตรียมการเยี่ยมชมเบราว์เซอร์ด้วยคีย์สาธารณะที่ใช้เพื่อสร้างการเชื่อมต่อที่เข้ารหัสสำหรับการแลกเปลี่ยนข้อมูลที่ตามมาทั้งหมด
อย่างไรก็ตามเพิ่งได้รับ การทำงาน กุญแจสาธารณะเพียงอย่างเดียวไม่รับประกันว่ามัน (และโดยการขยายเซิร์ฟเวอร์) เป็นเจ้าของแน่นอนโดยระยะไกลที่ถูกต้อง หรือ (เช่นบุคคล บริษัท หรือองค์กร) Man-in-the-กลาง ผู้โจมตีสามารถจัดการเครือข่ายเพื่อรับกุญแจของตัวเองซึ่งจะส่งผลต่อการสื่อสารใด ๆ
เบราว์เซอร์ป้องกันสิ่งนี้ด้วย ที่ถูกตรวจสอบ เซิร์ฟเวอร์ HTTPS ที่ใช้ ใบรับรองซึ่งเป็นเอกสารดิจิทัลที่ ผูก กุญแจสาธารณะในแต่ละเรื่อง การเชื่อมโยงถูกยืนยันโดยการมีความน่าเชื่อถือ ผู้ออกใบรับรอง (CA) เช่น SSL.com ตรวจสอบตัวตนของเจ้าของใบรับรองที่คาดหวังผ่านการตรวจสอบอัตโนมัติและด้วยตนเองกับฐานข้อมูลที่ผ่านการรับรอง
ความสัมพันธ์ที่ไว้วางใจนี้หมายความว่าความปลอดภัยของผู้ใช้เว็บไม่สมบูรณ์ แต่ต้องการให้ผู้ใช้เชื่อถือเบราว์เซอร์และ CA เพื่อปกป้องความปลอดภัย ดังนั้นเราจึงคิดว่าผู้ใช้ทุกคนมีความเข้าใจพื้นฐานเกี่ยวกับวิธีการตรวจสอบใบรับรองทำงาน
โปรดทราบว่ากระบวนการตรวจสอบใบรับรอง (อธิบายรายละเอียดในเอกสารมาตรฐาน RFC 5280) ค่อนข้างซับซ้อน ในบทความนี้เราจะพยายามนำคุณไปตามเส้นทางเดียว (เบราว์เซอร์ที่ตรวจสอบ SSL ของโฮสต์ /TLS ใบรับรอง) และสำรวจรายละเอียดที่ซับซ้อนที่ผ่านมาซึ่งไม่สำคัญกับผู้ใช้ส่วนใหญ่
ใบรับรองและรูปแบบ X.509
ใบรับรองเป็นไฟล์ดิจิทัลทุกประการซึ่งหมายความว่าพวกเขาจำเป็นต้องปฏิบัติตามรูปแบบไฟล์เพื่อจัดเก็บข้อมูล (เช่นลายเซ็นกุญแจผู้ออกใบรับรอง ฯลฯ ) ในขณะที่ส่วนตัว PKI การกำหนดค่าสามารถใช้รูปแบบใดก็ได้สำหรับใบรับรองที่เชื่อถือได้ต่อสาธารณะ PKI(เช่นเบราว์เซอร์ที่เชื่อถือได้) จะต้องสอดคล้องกับ RFC 5280 ซึ่งจำเป็นต้องใช้ X.509 v3 จัดรูปแบบ
X.509 v3 อนุญาตให้ใบรับรองรวมข้อมูลเพิ่มเติมเช่นข้อ จำกัด การใช้งานหรือข้อมูลนโยบายเช่น ส่วนขยายโดยแต่ละส่วนขยายจะเป็นอย่างใดอย่างหนึ่ง วิกฤติ or ไม่สำคัญ. เบราว์เซอร์สามารถเพิกเฉยต่อส่วนขยายที่ไม่สำคัญที่ไม่ถูกต้องหรือไม่รู้จัก แต่จำเป็นต้องดำเนินการและตรวจสอบส่วนขยายที่สำคัญทั้งหมด
เส้นทางการรับรองและการประมวลผลเส้นทาง
CA ใช้ไพรเวตคีย์เพื่อเซ็นชื่อเข้ารหัสใบรับรองที่ออกให้ทั้งหมด ลายเซ็นดังกล่าวสามารถพิสูจน์ได้อย่างไม่อาจเพิกถอนว่ามีการออกใบรับรองโดย CA ที่ระบุและไม่ได้แก้ไขหลังจากที่ลงชื่อแล้ว
ลำดับของใบรับรองนี้เรียกว่า เส้นทางการรับรอง. รูทของพา ธ เรียกว่า a เชื่อใจสมอ และใบรับรองของเซิร์ฟเวอร์เรียกว่าไฟล์ ใบไม้ or เอนทิตีที่สิ้นสุด ใบรับรอง
การก่อสร้างเส้นทาง
บ่อยครั้งที่เบราว์เซอร์ต้องพิจารณาเส้นทางการรับรองหลายเส้นทางจนกว่าจะพบเส้นทางที่ถูกต้องสำหรับใบรับรองที่กำหนด แม้ว่าเส้นทางอาจมีใบรับรองที่ "เชื่อมโยง" เข้าด้วยกันอย่างถูกต้องไปยังจุดยึดที่รู้จัก แต่เส้นทางนั้นอาจถูกปฏิเสธเนื่องจากข้อ จำกัด เกี่ยวกับความยาวเส้นทางชื่อโดเมนการใช้ใบรับรองหรือนโยบาย
การสร้างและประเมินเส้นทางที่เป็นไปได้ทั้งหมดเป็นกระบวนการที่มีราคาแพงสำหรับใบรับรองใหม่ทุกครั้งที่พบกับเบราว์เซอร์ เบราว์เซอร์ได้ใช้การปรับให้เหมาะสมต่าง ๆ เพื่อลดจำนวนเส้นทางของผู้สมัครที่ถูกปฏิเสธ แต่การเจาะลึกเข้าไปในรายละเอียดดังกล่าวนั้นอยู่นอกเหนือขอบเขตของบทความนี้
การตรวจสอบเส้นทาง
หลังจากสร้างเส้นทางการรับรองผู้สมัครแล้วเบราว์เซอร์จะตรวจสอบความถูกต้องโดยใช้ข้อมูลที่มีอยู่ในใบรับรอง เส้นทางจะถูกต้องหากเบราว์เซอร์สามารถพิสูจน์ได้ด้วยการเข้ารหัสโดยเริ่มจากใบรับรองที่ลงนามโดยตรงโดย Trust anchor คีย์ส่วนตัวที่เกี่ยวข้องของใบรับรองแต่ละอันจะถูกใช้เพื่อออกรายการถัดไปในเส้นทางไปจนถึงใบรับรอง leaf
อัลกอริทึมการตรวจสอบเส้นทางการรับรอง
RFC 5280 อธิบาย อัลกอริทึมมาตรฐาน เบราว์เซอร์ที่ปฏิบัติตามเพื่อตรวจสอบเส้นทางการรับรองของใบรับรอง X.509
โดยทั่วไปเบราว์เซอร์จะวนซ้ำผ่านใบรับรองทั้งหมดในเส้นทางที่เริ่มต้นด้วยจุดยึดความไว้วางใจ (เช่นใบรับรองหลัก) ตรวจสอบข้อมูลพื้นฐานของใบรับรองแต่ละรายการและส่วนขยายที่สำคัญ
หากโพรซีเดอร์สรุปด้วยใบรับรองล่าสุดในพา ธ โดยไม่มีข้อผิดพลาดพา ธ นั้นจะถูกยอมรับว่าถูกต้อง หากเกิดข้อผิดพลาดพา ธ จะถูกทำเครื่องหมายว่าไม่ถูกต้อง
การประมวลผลใบรับรองขั้นพื้นฐาน
เบราว์เซอร์จะต้องตรวจสอบข้อมูลใบรับรองพื้นฐานเช่นลายเซ็นหรือผู้ออกใบรับรองโดยไม่คำนึงถึงส่วนขยายใด ๆ ส่วนต่อไปนี้แสดงลำดับการตรวจสอบที่เบราว์เซอร์ดำเนินการ
1. เบราว์เซอร์ตรวจสอบความสมบูรณ์ของใบรับรอง
พื้นที่ ลายเซ็น ในใบรับรองสามารถตรวจสอบได้โดยใช้การเข้ารหัสคีย์สาธารณะปกติ หากลายเซ็นไม่ถูกต้องใบรับรองนั้นจะถูกพิจารณาว่ามีการแก้ไขหลังจากการออกและจะถูกปฏิเสธ
2. เบราว์เซอร์ตรวจสอบความถูกต้องของใบรับรอง
ใบรับรอง ช่วงเวลาที่มีผลบังคับใช้ เป็นช่วงเวลาที่ CA เซ็นชื่อรับรองว่าจะรักษาข้อมูลเกี่ยวกับสถานะ เบราว์เซอร์ปฏิเสธใบรับรองใด ๆ ที่มีช่วงเวลาที่มีผลบังคับใช้ซึ่งสิ้นสุดก่อนหรือเริ่มหลังจากวันที่และเวลาของการตรวจสอบความถูกต้อง
3. เบราว์เซอร์ตรวจสอบสถานะการเพิกถอนใบรับรอง
เมื่อมีการออกใบรับรองคาดว่าจะมีการใช้งานตลอดช่วงเวลาที่มีผลบังคับใช้ แน่นอนสถานการณ์ต่างๆอาจทำให้ใบรับรองไม่ถูกต้องก่อนที่จะหมดอายุตามธรรมชาติ
สถานการณ์ดังกล่าวอาจรวมถึงเรื่องที่เปลี่ยนชื่อหรือสงสัยว่ามีการบุกรุกคีย์ส่วนตัว ในกรณีเช่นนี้ CA จำเป็นต้องเพิกถอนใบรับรองที่เกี่ยวข้องและผู้ใช้ยังให้ความไว้วางใจใน CA เพื่อแจ้งสถานะการเพิกถอนใบรับรองของเบราว์เซอร์
RFC 5280 แนะนำให้ CA ใช้รายการเพิกถอนเพื่อจุดประสงค์นี้
รายการเพิกถอนใบรับรอง (CRL)
CA ออกรายการเพิกถอนใบรับรองที่เพิกถอนแล้วที่ลงนามซึ่งเรียกว่า รายการเพิกถอนใบรับรอง (CRL) CRL มีการแจกจ่ายในที่เก็บที่เปิดเผยต่อสาธารณะและเบราว์เซอร์สามารถรับและปรึกษา CRL ล่าสุดของ CA เมื่อตรวจสอบใบรับรอง
ข้อบกพร่องประการหนึ่งของวิธีนี้คือความละเอียดของเวลาในการเพิกถอนถูก จำกัด ไว้ที่ระยะเวลาออก CRL เบราว์เซอร์จะได้รับแจ้งเกี่ยวกับการเพิกถอนหลังจากที่มีการกำหนดให้มีการอัปเดต CRL ที่ออกทั้งหมด ทั้งนี้ขึ้นอยู่กับนโยบายของ CA การลงนามอาจใช้เวลาหนึ่งชั่วโมงวันหรือถึงหนึ่งสัปดาห์
โปรโตคอลสถานะใบรับรองออนไลน์ (OCSP)
มีวิธีการทางเลือกอื่น ๆ ในการรับข้อมูลสถานะการเพิกถอนที่ได้รับความนิยมสูงสุดคือ โปรโตคอลสถานะใบรับรองออนไลน์ (OCSP)
อธิบายไว้ในเอกสารมาตรฐาน RFC6960OCSP อนุญาตให้เบราว์เซอร์ขอสถานะการเพิกถอนใบรับรองเฉพาะจากเซิร์ฟเวอร์ OCSP ออนไลน์ (เรียกอีกอย่างว่าไฟล์ ผู้ตอบ) เมื่อกำหนดค่าอย่างถูกต้องแล้ว OCSP จะทำงานได้ทันทีมากขึ้นและหลีกเลี่ยงปัญหา CRL การปรับปรุงเวลาตอบสนองที่กล่าวถึงข้างต้น นอกจากนี้ การเย็บ OCSP ปรับปรุงประสิทธิภาพและความเร็ว
4. เบราว์เซอร์ตรวจสอบผู้ออก
ปกติแล้วใบรับรองจะเชื่อมโยงกับสองเอนทิตี:
- พื้นที่ บริษัท ผู้ออกหลักทรัพย์ซึ่งเป็นนิติบุคคลที่มีรหัสการลงนามและ
- พื้นที่ หรือซึ่งหมายถึงเจ้าของกุญแจสาธารณะที่ใบรับรองจะตรวจสอบความถูกต้อง
เบราว์เซอร์ตรวจสอบว่ามีใบรับรอง บริษัท ผู้ออกหลักทรัพย์ เขตข้อมูลเป็นเช่นเดียวกับ หรือ ฟิลด์ของใบรับรองก่อนหน้าในเส้นทาง เพื่อเพิ่มความปลอดภัยมากที่สุด PKI การใช้งานยังตรวจสอบว่าคีย์ของผู้ออกเป็นคีย์เดียวกับคีย์ที่ลงนามในใบรับรองปัจจุบัน (โปรดทราบว่านี่ไม่เป็นความจริงสำหรับจุดยึดแห่งความไว้วางใจเนื่องจากรูทเป็นผู้ออกเอง - กล่าวคือมีผู้ออกและหัวเรื่องเดียวกัน)
การประมวลผลข้อ จำกัด
รูปแบบ X.509 v3 ช่วยให้ CA สามารถกำหนดข้อ จำกัด หรือข้อ จำกัด เกี่ยวกับวิธีการตรวจสอบความถูกต้องของใบรับรองแต่ละรายการและใช้เป็นส่วนขยายที่สำคัญ ใบรับรองทั้งหมดในเส้นทางสามารถกำหนดข้อ จำกัด เพิ่มเติมที่ใบรับรองต่อมาทั้งหมดจะต้องปฏิบัติตาม
ข้อ จำกัด ของใบรับรองแทบจะไม่ส่งผลกระทบต่อผู้ใช้อินเทอร์เน็ตโดยทั่วไปแม้ว่าจะพบได้บ่อยในโซลูชัน SSL ระดับองค์กร ข้อ จำกัด ด้านการทำงานสามารถตอบสนองวัตถุประสงค์ในการปฏิบัติงานได้หลายประการ แต่การใช้งานที่สำคัญที่สุดคือเพื่อลดปัญหาด้านความปลอดภัยที่ทราบ
5. เบราว์เซอร์ตรวจสอบข้อ จำกัด ของชื่อ
CA ระดับกลางที่เป็นของเอกชน (แต่เชื่อถือได้โดยสาธารณะ) พร้อมด้วยที่เหมาะสม ข้อ จำกัด ของชื่อ สามารถให้องค์กรควบคุมการจัดการใบรับรองและการออกใบรับรองได้อย่างละเอียด ใบรับรองสามารถ จำกัด ได้เฉพาะโดเมนหรือโครงสร้างโดเมนเฉพาะ (เช่นรวมถึงโดเมนย่อย) สำหรับชื่อโดเมนของ บริษัท หรือองค์กร ข้อ จำกัด ของชื่อมักใช้สำหรับใบรับรอง CA ระดับกลางที่ซื้อจาก CA ที่เชื่อถือได้สาธารณะเพื่อป้องกันไม่ให้ CA ระดับกลางออกใบรับรองที่ถูกต้องสมบูรณ์สำหรับโดเมนของบุคคลที่สาม google.com
).
6. เบราว์เซอร์ตรวจสอบข้อ จำกัด นโยบาย
นโยบายใบรับรองเป็นเอกสารทางกฎหมายที่เผยแพร่โดย CA อย่างเป็นทางการโดยมีรายละเอียดขั้นตอนที่พวกเขาปฏิบัติตามเพื่อออกและจัดการใบรับรองของพวกเขา CA อาจออกใบรับรองภายใต้นโยบายตั้งแต่หนึ่งนโยบายขึ้นไปและลิงก์ไปยังสิ่งเหล่านี้จะรวมอยู่ในแต่ละใบรับรองที่ออกเพื่อให้ผู้ที่อาศัยอยู่สามารถประเมินนโยบายเหล่านี้ก่อนตัดสินใจเชื่อถือใบรับรองนั้น
สำหรับเหตุผลทางกฎหมายและการปฏิบัติงานใบรับรองสามารถกำหนดข้อ จำกัด เกี่ยวกับนโยบายที่อาจต้องปฏิบัติ หากพบว่าใบรับรองมีข้อ จำกัด นโยบายที่สำคัญเบราว์เซอร์จะต้องตรวจสอบความถูกต้องก่อนดำเนินการต่อ (อย่างไรก็ตามข้อ จำกัด ของนโยบายที่สำคัญมักไม่ค่อยพบเจอในโลกแห่งความเป็นจริงและจะถูกเพิกเฉยต่อส่วนที่เหลือของบทความนี้)
7. เบราว์เซอร์ตรวจสอบข้อ จำกัด พื้นฐาน (ความยาวเส้นทาง)
รูปแบบ X.509 v3 ช่วยให้ผู้ออกสามารถกำหนดความยาวเส้นทางสูงสุดที่ใบรับรองสามารถรองรับได้ ซึ่งให้การควบคุมระยะทางในการวางใบรับรองในเส้นทางการรับรอง สิ่งนี้สำคัญมาก - เบราว์เซอร์ที่ใช้ในการเพิกเฉยต่อความยาวเส้นทางการรับรองจนกว่านักวิจัยจะแสดงให้เห็นในปี 2009 การเสนอวิธีที่เขาใช้ใบรับรองใบของเว็บไซต์เพื่อปลอมใบรับรองที่ถูกต้องสำหรับเว็บไซต์อีคอมเมิร์ซขนาดใหญ่
8. เบราว์เซอร์ตรวจสอบการใช้งานที่สำคัญ
ส่วนขยาย "การใช้งานคีย์" ระบุวัตถุประสงค์ของคีย์ที่อยู่ในใบรับรอง ตัวอย่างของวัตถุประสงค์ดังกล่าว ได้แก่ การเข้ารหัสลายเซ็นการลงนามใบรับรองและอื่น ๆ เบราว์เซอร์ปฏิเสธใบรับรองที่ละเมิดข้อ จำกัด ในการใช้งานคีย์เช่นพบใบรับรองเซิร์ฟเวอร์ที่มีคีย์สำหรับการลงนาม CRL เท่านั้น
9. เบราว์เซอร์ยังคงประมวลผลส่วนขยายที่สำคัญทั้งหมดที่เหลืออยู่
หลังจากประมวลผลส่วนขยายที่กล่าวถึงข้างต้นแล้วเบราว์เซอร์จะดำเนินการตรวจสอบส่วนขยายที่เหลือทั้งหมดที่ใบรับรองปัจจุบันกำหนดว่าสำคัญก่อนที่จะดำเนินการต่อไป หากเบราว์เซอร์เข้าถึงใบรับรองลีฟของเส้นทางโดยไม่มีข้อผิดพลาดแสดงว่าเส้นทางนั้นถูกยอมรับว่าถูกต้อง หากเกิดข้อผิดพลาดเส้นทางจะถูกทำเครื่องหมายว่าไม่ถูกต้องและไม่มีการสร้างการเชื่อมต่อที่ปลอดภัย
สรุป
เวิลด์ไวด์เว็บเป็นระบบที่ซับซ้อนของชิ้นส่วนเคลื่อนไหวที่เชื่อมต่อกันและมีการพัฒนาอย่างต่อเนื่อง ดังนั้นความปลอดภัยของเบราว์เซอร์จึงไม่ใช่ปัญหาที่แก้ไขได้และเราหวังว่าบทความนี้จะให้ข้อมูลเชิงลึกเกี่ยวกับความซับซ้อนของแม้แต่องค์ประกอบเดียวที่เราได้ดูที่นี่ ความน่าเชื่อถือมีบทบาทสำคัญในการทำให้คุณปลอดภัยทางออนไลน์และด้วยเหตุนี้เราจึงขอให้คุณสอบถามเพิ่มเติมเกี่ยวกับนโยบายใบรับรองของ CA ของคุณ (อย่าลังเลที่จะตรวจสอบ นโยบายของ SSL.com ที่นี่, ในความเป็นจริง.)
ขอขอบคุณที่เลือก SSL.com ซึ่งเราเชื่อว่า ปลอดภัยมากขึ้น อินเทอร์เน็ตคือ ดีกว่า อินเตอร์เน็ต