เมื่อใช้certmgr.msc
ยูทิลิตี้นี้ฉันสามารถเข้าถึง windows cert store ได้ แต่ฉันยังไม่สามารถระบุได้ว่า Windows เก็บคีย์ส่วนตัวไว้ที่ไหน
ตัวอย่างเช่นสำหรับใบรับรองที่ระบุ Windows บอกฉันว่ามีคีย์ส่วนตัวที่เกี่ยวข้องกับใบรับรองนี้ แต่ฉันจะหามันได้ที่ไหน
เมื่อใช้certmgr.msc
ยูทิลิตี้นี้ฉันสามารถเข้าถึง windows cert store ได้ แต่ฉันยังไม่สามารถระบุได้ว่า Windows เก็บคีย์ส่วนตัวไว้ที่ไหน
ตัวอย่างเช่นสำหรับใบรับรองที่ระบุ Windows บอกฉันว่ามีคีย์ส่วนตัวที่เกี่ยวข้องกับใบรับรองนี้ แต่ฉันจะหามันได้ที่ไหน
คำตอบ:
คีย์จะถูกจัดเก็บผ่านCryptography APIของ Microsoft : Next Generation (CNG)
ที่เก็บสินค้า:
%APPDATA%\Microsoft\Crypto\Keys
%ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\SystemKeys
%WINDIR%\ServiceProfiles\LocalService
%WINDIR%\ServiceProfiles\NetworkService
%ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\Keys
รายละเอียด:
CNG จัดให้มีแบบจำลองสำหรับการจัดเก็บคีย์ส่วนตัวที่อนุญาตให้ปรับให้เข้ากับความต้องการในปัจจุบันและอนาคตของการสร้างแอพพลิเคชั่นที่ใช้คุณสมบัติการเข้ารหัสเช่นการเข้ารหัสคีย์สาธารณะหรือส่วนตัวรวมทั้งความต้องการของการจัดเก็บวัสดุสำคัญ เราเตอร์ที่เก็บคีย์คือรูทีนส่วนกลางในโมเดลนี้และมีการนำไปใช้ใน Ncrypt.dll แอปพลิเคชันเข้าถึงผู้ให้บริการที่เก็บคีย์ (KSPs) บนระบบผ่านเราเตอร์ที่เก็บข้อมูลสำคัญซึ่งปกปิดรายละเอียดเช่นการแยกคีย์จากทั้งแอปพลิเคชันและผู้ให้บริการจัดเก็บข้อมูล ภาพประกอบต่อไปนี้แสดงการออกแบบและฟังก์ชั่นของสถาปัตยกรรมการแยกคีย์ CNG แหล่ง
หมายเหตุ :
ตามที่ระบุไว้โดย Tim G คีย์ไม่สามารถอ่านได้ที่ระดับไฟล์เนื่องจากมีการเข้ารหัสในกระบวนการจัดเก็บผ่าน CNG API