การติดตั้งขนาดเล็กหันมาหาลายนิ้วมือเพราะหน่วยออกใบรับรองดูเป็นโครงสร้างพื้นฐานที่ไม่มีใครมีเวลาดูแล สัญชาตญาณนั้นสมเหตุสมผล แต่ทางลัดที่ผู้คนเลือกแทน—การคัดลอกความลับของช่องทางข้อมูลหนึ่งไปยังปลายทั้งสอง—ไม่ใช่ การตั้งค่า peer-fingerprint รักษาโครงสร้าง TLS ไว้ครบถ้วน แต่ละฝ่ายยังคงถือกุญแจส่วนตัวและใบรับรองของตน และแต่ละฝ่ายยังคงตรวจสอบอีกฝ่าย สิ่งที่เปลี่ยนคือจุดที่การตรวจสอบถูกยึดไว้ จากผู้ออกที่เชื่อถือได้ไปยังรายการสรุปที่ตรึงไว้สั้น ๆ เพราะสรุปครอบคลุมใบรับรองทั้งใบไม่ใช่ชื่อ การต่ออายุจึงกลายเป็นการดำเนินการที่ใช้เวลาจริง

ลายนิ้วมือผูกพันกับอะไรจริง ๆ

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

openssl x509 -in server.crt -noout -fingerprint -sha256
openssl x509 -in client-07.crt -noout -fingerprint -sha256

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

แผนที่นั้นสองทาง ไม่สมมาตร

ปลายแต่ละข้างต้องการสองอย่าง คือกุญแจส่วนตัวพร้อมใบรับรอง และคำประกาศว่าจะยอมรับใบรับรองคู่ค้าใด ฝั่งไคลเอนต์คำประกาศนั้นคือสรุปของใบรับรองเซิร์ฟเวอร์ ฝั่งเซิร์ฟเวอร์คือรายการสรุปของไคลเอนต์ที่ลงทะเบียนไว้ ตัวอย่างอย่างเป็นทางการสำหรับการตั้งค่าขนาดเล็ก สำหรับ Community 2.6 แสดงการจัดวางด้วย peer-fingerprint และคุ้มค่าที่จะอ่านก่อนเลือกโมเดลความเชื่อนี้สำหรับการติดตั้งจริง ทั้งสองทิศทางไม่ใช่รายการเดียวที่กลับด้าน และไม่ได้ล้มเหลวในเวลาเดียวกัน

Verification directionWhat is pinnedWhat never leaves that endpointHow a wrong pin shows up
Client checks the serverOne digest, for the server certificateThe server private keyThe client aborts during the TLS handshake
Server checks the clientA digest per enrolled clientEach client private keyThe server rejects the peer before a tunnel exists

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

การลงทะเบียน: อุปกรณ์ใหม่เข้าร่วมอย่างไร

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

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

การต่ออายุคือช่วงเวลาที่แพง

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

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

สิ่งที่แผนที่ความเชื่อไม่ได้ตัดสิน

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

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

บทความที่เกี่ยวข้อง