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

ความสับสนนี้ควรค่าแก่การคลี่คลายสักครั้ง เพราะไฟล์ทั้งสองดูคล้ายกันแต่ทำสิ่งที่ตรงกันข้าม

วัสดุสำหรับตรวจสอบและวัสดุสำหรับลงนาม

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

ดังนั้น ca.crt จึงอยู่ในโปรไฟล์ และ ca.key ไม่ควรอยู่ใกล้มันเลย ชื่อไฟล์เป็นเพียงธรรมเนียมปฏิบัติ ไม่ใช่การรับประกัน จึงต้องตรวจสอบชนิดของไฟล์แทนการเดาจากชื่อ

สถาปัตยกรรมที่มี CA ระดับกลางหรือบริการออกใบรับรองออนไลน์ก็ไม่ใช่ข้อยกเว้น นี่คือวิธีมาตรฐานในการแยกความสามารถในการลงนามออกจากอุปกรณ์ปลายทาง ขณะที่ยังออกใบรับรองอุปกรณ์ในวงกว้าง

ไคลเอนต์ต้องพิสูจน์อะไรด้วยกุญแจของตนเอง

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

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

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

FileRoleBelongs on
ca.crtPublic certificate used to verify signaturesEvery client profile
ca.keyPrivate key that issues certificatesProtected CA storage only
client key pairProves one device's identityThat device alone

อ่านไฟล์ก่อนคัดลอกไปที่ใด

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

openssl x509 -in ca.crt -noout -subject -ext basicConstraints
openssl pkey -in ca.key -noout -check

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

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

จำกัดความเสียหายของกุญแจที่แจกจ่ายไปแล้ว

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

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

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

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