INFO: opslag van persoonlijke en openbare sleutels voor MSMQ

Van toepassing: Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

Samenvatting


In dit artikel wordt de opslag van persoonlijke en openbare sleutels die door Microsoft Message Queue (MSMQ) worden gebruikt, beschreven voor verificatie en versleuteling van berichten.

Meer informatie


De sleutelparen (openbaar-privé) bevinden zich in de cryptografie-API, een containerobject. Toepassingen hoeven niet te weten waar en hoe de sleutelcontainer wordt geïmplementeerd. Het containerobject moet een ondoorzichtig object zijn dat de sleutels bevat en waartoe de publicatie wordt geopend.De basis cryptografische service provider implementeert de sleutelcontainers in het register. De CSP kan zich bevinden in HKEY_CURRENT_USER of HKEY_LOCAL_MACHINE. De locatie wordt bepaald door een vlag aan CryptAcquireContext door te geven. Andere Csp's implementeren de sleutelcontainer mogelijk op een andere locatie, zoals een smartcard. MSMQ gaat niet verder met de locatie van de toetsen en werkt altijd met cryptografische-API, nooit rechtstreeks met de toetsen zelf.De basis cryptografie van MSMQ wordt gebruikt om gegevens te versleutelen of te decoderen. Terwijl de huidige implementatie voor de CSP de persoonlijke sleutels in HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ plaatst, dient dit niet de juiste informatie te zijn voor een toepassing.Voor verificatie is het een veelvoorkomende fout om u ervan te denken dat de persoonlijke en openbare sleutels zich in het certificaat bevinden. Een certificaat is een openbaar stuk informatie. Het maakt niet uit wie het certificaat ontvangt. De persoonlijke sleutel is echter de meest geheime informatie die op een veilig te bewaren locatie moet worden bewaard.Voor elk certificaat moet een hoofdcontainer worden gekoppeld. Deze sleutelcontainer bevat de openbare en persoonlijke sleutels die zijn gekoppeld aan het certificaat. Een kopie van de openbare sleutel wordt ook samen met tal van andere informatie in het certificaat geplaatst.Met cryptografie interface wordt ook een object gedefinieerd dat een certificaatarchief wordt genoemd. Een certificaatarchief bevat certificaten en aanvullende informatie over elk certificaat (bijvoorbeeld informatie over de sleutels die zijn gekoppeld aan het certificaat). Deze informatie is een identificatie van de specifieke CSP die wordt gebruikt met het certificaat en de identificatie van de bepaalde container container die is gekoppeld aan het certificaat.Een certificaatarchief kan zich op veel plaatsen bevinden, in het register, in een bestand, in geheugen en meer. MSMQ slaat het interne certificaat op in een certificaatarchief onder HKCU\Software\Microsoft\MSMQ\CertStore. De bijbehorende toetsen bevinden zich in HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ. Deze locaties dienen ook niet relevant te zijn voor een toepassing. MSMQ werkt altijd met cryptografische-API, nooit rechtstreeks met de toetsen zelf.In MSMQ wordt ook de openbare sleutel van een Queue Manager (QM) opgeslagen in het informatiearchief van de berichtenwachtrij (MQIS). Toepassingen kunnen deze openbare sleutel ophalen door MQGetMachineProperties () te bellen met PROPID_QM_ENCRYPTION_PK. De gebruiker van de telefoon moet de machtiging ' beveiliging verkrijgen ' hebben, zodat de openbare sleutel op de computer kan worden opgehaald. PROPID_QM_ENCRYPTION_PK is niet hetzelfde als alle andere eigenschappen, waarbij de gebruiker de machtiging ' machtigingen krijgen ' moet hebben voor de computer.MSMQ gebruikt deze openbare sleutel intern voor het versleutelen van berichten. Met de QM wordt de openbare sleutel van de doelcomputer opgehaald uit MQIS. Omdat in de meeste gevallen de QM wordt uitgevoerd onder het lokale systeemaccount, moet de bevoegdheid ' machtigingen krijgen ' worden toegekend aan iedereen. anders mislukt de QM de openbare sleutel en kan deze geen gecodeerde berichten versleutelen.

Verwijzingen


Zie cryptografievoor meer informatie over cryptografie, openbare sleutelversleuteling en de Microsoft CryptoAPI.

Zie Message Queuing (MSMQ)voor meer informatie over de Software Development Kit (SDK) van MSMQ.