ข้อมูล: ที่เก็บข้อมูลของคีย์ส่วนตัวและสาธารณะสำหรับ MSMQ

นำไปใช้กับ: Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

สรุป


บทความนี้จะอธิบายเกี่ยวกับที่เก็บคีย์ส่วนตัวและคีย์สาธารณะที่ใช้โดยคิวข้อความ Microsoft (MSMQ) สำหรับการรับรองความถูกต้องของข้อความและการเข้ารหัสลับ

ข้อมูลเพิ่มเติม


คู่คีย์ (สาธารณะ-ส่วนตัว) อยู่ในการเข้ารหัสลับ API วัตถุคอนเทนเนอร์ที่สำคัญ แอปพลิเคชันไม่จำเป็นต้องทราบตำแหน่งและวิธีการดำเนินการคอนเทนเนอร์คีย์ วัตถุคอนเทนเนอร์ที่สำคัญควรเป็นวัตถุทึบแสงที่มีคีย์และมีการเข้าถึงโดยใช้อินเทอร์เฟซที่เผยแพร่ตัวให้บริการการเข้ารหัสลับฐาน (CSP) ใช้คอนเทนเนอร์คีย์ในรีจิสทรี CSP สามารถอาศัยอยู่ใน HKEY_CURRENT_USER หรือ HKEY_LOCAL_MACHINE ตำแหน่งที่ตั้งจะถูกกำหนดโดยการส่งผ่านค่าสถานะไปยัง CryptAcquireContext CSPs อื่นๆอาจใช้คีย์คอนเทนเนอร์ในตำแหน่งที่ตั้งอื่นเช่นสมาร์ทการ์ด MSMQ ไม่ถือว่าอะไรเกี่ยวกับตำแหน่งที่ตั้งของคีย์และทำงานกับ API การเข้ารหัสลับเสมอโดยไม่ต้องใช้คีย์ด้วยตัวเองMSMQ ใช้ฐาน CSP เพื่อให้มีการเข้ารหัสลับหรือถอดรหัสลับข้อมูล ในขณะที่การใช้งานปัจจุบันสำหรับ CSP จะใส่คีย์ส่วนตัวใน HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ ซึ่งไม่ควรเป็นข้อมูลที่เกี่ยวข้องกับแอปพลิเคชันใดๆสำหรับการรับรองความถูกต้องเป็นข้อผิดพลาดทั่วไปในการคิดว่าคีย์ส่วนตัวและคีย์สาธารณะอยู่ในใบรับรอง ใบรับรองคือข้อมูลส่วนกลางของข้อมูล ไม่ว่าใครก็ตามที่ได้รับใบรับรอง อย่างไรก็ตามคีย์ส่วนตัวจะมีข้อมูลที่เป็นความลับมากที่สุดที่ควรถูกเก็บไว้ในตำแหน่งที่ตั้งที่ปลอดภัยที่สุดเท่าที่จะเป็นไปได้สำหรับใบรับรองทั้งหมดควรมีคอนเทนเนอร์ที่สำคัญที่เกี่ยวข้องกับเอกสารนั้น คอนเทนเนอร์คีย์นี้ประกอบด้วยคีย์สาธารณะและส่วนตัวที่เกี่ยวข้องกับใบรับรอง สำเนาของคีย์สาธารณะจะถูกวางไว้ในใบรับรองพร้อมกับข้อมูลส่วนอื่นๆจำนวนมากการเข้ารหัสลับ API จะกำหนดวัตถุที่เรียกว่าที่เก็บใบรับรอง ที่เก็บใบรับรองประกอบด้วยใบรับรองและข้อมูลเพิ่มเติมเกี่ยวกับใบรับรองแต่ละใบ (ตัวอย่างเช่นข้อมูลเกี่ยวกับคีย์ที่เกี่ยวข้องกับใบรับรอง) ข้อมูลนี้เป็นการระบุของ CSP ที่เฉพาะเจาะจงที่ใช้กับใบรับรองและการระบุของคีย์คอนเทนเนอร์เฉพาะที่เกี่ยวข้องกับใบรับรองที่เก็บใบรับรองสามารถอยู่ได้ในหลายตำแหน่งรีจิสทรีไฟล์หน่วยความจำและอื่นๆ MSMQ จะเก็บใบรับรองภายในในที่เก็บใบรับรองภายใต้ HKCU\Software\Microsoft\MSMQ\CertStore. คีย์ที่เกี่ยวข้องอยู่ใน HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ. ตำแหน่งที่ตั้งเหล่านี้ยังไม่ควรเกี่ยวข้องกับแอปพลิเคชันใดก็ตาม MSMQ ทำงานกับ API การเข้ารหัสลับเสมอโดยไม่ต้องใช้คีย์ด้วยตัวเองโดยตรงนอกจากนี้ MSMQ ยังจัดเก็บคีย์สาธารณะของผู้จัดการคิว (MQIS) ในที่เก็บข้อมูลคิวข้อความ () แอปพลิเคชันสามารถเรียกใช้คีย์สาธารณะนี้ได้โดยการโทร MQGetMachineProperties () ด้วย PROPID_QM_ENCRYPTION_PK ผู้ใช้ที่โทรเข้าควรมีสิทธิ์ "รับการรักษาความปลอดภัย" ที่ได้รับอนุญาตบนคอมพิวเตอร์เพื่อเรียกใช้คีย์สาธารณะของคอมพิวเตอร์ให้เสร็จสมบูรณ์ PROPID_QM_ENCRYPTION_PK ไม่เหมือนกับคุณสมบัติอื่นๆทั้งหมดที่ผู้ใช้ควรมีสิทธิ์ "รับสิทธิ์" บนคอมพิวเตอร์MSMQ ใช้คีย์สาธารณะนี้ภายในเพื่อเข้ารหัสลับข้อความ ตัวดึงข้อมูลจะดึงคีย์สาธารณะของคอมพิวเตอร์ปลายทางจาก MQIS เนื่องจากในกรณีส่วนใหญ่จะมีการเรียกใช้งานภายใต้บัญชีระบบภายในเครื่องสิทธิ์การใช้งาน "รับสิทธิ์" ควรมอบให้กับทุกคน มิฉะนั้นตัวดึงข้อมูลล้มเหลวในการเรียกใช้คีย์สาธารณะดังนั้นจึงไม่สามารถเข้ารหัสลับข้อความได้

อ้างอิง


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัสการเข้ารหัสลับคีย์สาธารณะและ Microsoft CryptoAPI ให้ดูที่การเข้ารหัส

สำหรับข้อมูลเกี่ยวกับชุดการพัฒนาซอฟต์แวร์ MSMQ (SDK) ให้ดูที่การจัดคิวข้อความ (MSMQ)