INFO: lagring av privata och offentliga nycklar för MSMQ

Gäller för: Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

Sammanfattning


I den här artikeln beskrivs lagring av privata och offentliga nycklar som används i Microsoft Message Queue (MSMQ) för meddelandeautentisering och-kryptering.

Mer information


De viktigaste paren (Public-Private) finns i krypterings-API, ett Key Container-objekt. Program behöver inte veta var och hur Key-behållaren implementeras. Nyckel behållar-objektet ska vara ett ogenomskinligt objekt som innehåller nycklar och åtkomst till de publicerade gränssnitten.Den grundläggande CSP (Cryptographic Service Provider) implementerar nyckel behållarna i registret. KRYPTOGRAFIPROVIDERn kan ligga i HKEY_CURRENT_USER eller HKEY_LOCAL_MACHINE. Platsen bestäms genom att skicka en flagga till CryptAcquireContext. Andra kryptografiproviders kan implementera Key-behållaren på en annan plats, till exempel ett smartkort. MSMQ tar inte reda på vad nycklarna är och fungerar alltid tillsammans med krypterings-API: t. ex.MSMQ använder bas-CSP för att kryptera eller dekryptera data. När den aktuella implementeringen för KRYPTOGRAFIPROVIDERn ger de privata nycklarna i HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ ska detta inte vara relevant information för något program.Det är ofta ett vanligt misstag att tänka på att de privata och offentliga nycklarna finns i certifikatet. Ett certifikat är ett offentligt informations avsnitt. Det spelar ingen roll vem som tar emot certifikatet. Den privata knappen är ett mest hemligt informations område som ska finnas på en plats som är så säker som möjligt.För varje certifikat ska det finnas en viktig behållare som är kopplad till den. Den här nyckel behållaren innehåller de offentliga och privata nycklar som är kopplade till certifikatet. En kopia av den offentliga knappen placeras också i ett certifikat tillsammans med många andra delar av informationen.Krypterings-API definierar också ett objekt som kallas ett certifikat arkiv. Ett certifikat arkiv innehåller certifikat och ytterligare information om varje certifikat (till exempel information om de nycklar som är kopplade till certifikatet). Den här informationen är en identifiering av den specifika KRYPTOGRAFIPROVIDER som används med certifikatet och identifiering av den särskilda nyckeln som är kopplad till certifikatet.Ett certifikat arkiv kan finnas på många ställen, registret, en fil, ett minne och mer. MSMQ lagrar det interna certifikatet i ett certifikat Arkiv under HKCU\Software\Microsoft\MSMQ\CertStore. De associerade nycklarna finns i HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ. Dessa platser bör inte heller vara relevanta för något program. MSMQ fungerar alltid med kryptering API, aldrig direkt med själva tangenterna.MSMQ lagrar också en offentlig säkerhets nycklar i en köhanterare i MQIS-arkivet (MSMQ). Program kan hämta denna offentliga nycklar genom att ringa MQGetMachineProperties () med PROPID_QM_ENCRYPTION_PK. Den uppringda användaren bör ha behörigheten "skaffa säkerhet" som beviljats på datorn för att kunna hämta datorns offentliga nycklar. PROPID_QM_ENCRYPTION_PK är inte gilla alla andra egenskaper där användaren måste ha behörigheten "skaffa behörigheter" på datorn.MSMQ använder den offentliga nycklar internt för att kryptera meddelanden. Den publika knappen för mål datorn hämtas från MQIS. Eftersom kör-ID: exempelvis körs under det lokala system kontot bör "Get Permissions"-privilegiet ges till alla; Annars kan inte den här funktionen Hämta den offentliga knappen och kan därför inte kryptera meddelanden.

Referenser


Mer information om kryptografi, kryptering med offentliga nycklar och Microsoft CryptoAPI finns i kryptografi.

Information om MSMQ Software Development Kit (SDK) finns i Message Queuing (MSMQ).