Info: Speichern privater und öffentlicher Schlüssel für MSMQ

Gilt für: Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

Zusammenfassung


In diesem Artikel wird die Speicherung privater und öffentlicher Schlüssel beschrieben, die von Microsoft Message Queue (MSMQ) für die Nachrichtenauthentifizierung und-Verschlüsselung verwendet werden.

Weitere Informationen


Die Schlüsselpaare (Public-Private) befinden sich in der Crypto-API, einem Schlüsselcontainer Objekt. Anwendungen müssen nicht wissen, wo und wie der Schlüsselcontainer implementiert ist. Das Schlüsselcontainer Objekt sollte ein opakes Objekt sein, das die Schlüssel enthält und von veröffentlichten Schnittstellen aufgerufen wird.Der Basis-Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) implementiert die Schlüsselcontainer in der Registrierung. Der CSP kann sich im HKEY_CURRENT_USER oder HKEY_LOCAL_MACHINE befinden. Die Position wird durch Übergeben einer Kennzeichnung an CryptAcquireContext bestimmt. Andere Kryptografiedienstanbieter können den Schlüsselcontainer an einem anderen Speicherort wie einer Smartcard implementieren. MSMQ übernimmt nichts über die Position der Schlüssel und funktioniert immer mit der Crypto-API, nie direkt mit den Schlüsseln selbst.MSMQ verwendet den Basis-CSP, um Daten zu verschlüsseln oder zu entschlüsseln. Während die aktuelle Implementierung für den CSP die privaten Schlüssel in HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ platziert, sollten diese Informationen für keine Anwendung relevant sein.Was die Authentifizierung anbetrifft, ist es ein häufiger Fehler, zu glauben, dass sich der private und der öffentliche Schlüssel im Zertifikat befinden. Ein Zertifikat ist ein öffentliches Informationselement. Es spielt keine Rolle, wer das Zertifikat erhält. Der private Schlüssel ist allerdings ein Geheimtipp, der an einem möglichst sicheren Ort aufbewahrt werden sollte.Für jedes Zertifikat sollte ein Schlüsselcontainer vorhanden sein, der ihm zugeordnet ist. Dieser Schlüsselcontainer enthält die öffentlichen und privaten Schlüssel, die dem Zertifikat zugeordnet sind. Eine Kopie des öffentlichen Schlüssels wird ebenfalls im Zertifikat zusammen mit vielen anderen Informationen gespeichert.Die Crypto-API definiert auch ein Objekt, das als Zertifikatspeicher bezeichnet wird. Ein Zertifikatspeicher enthält Zertifikate und zusätzliche Informationen zu jedem Zertifikat (beispielsweise Informationen zu den Schlüsseln, die dem Zertifikat zugeordnet sind). Bei diesen Informationen handelt es sich um eine Kennung des jeweiligen CSP, der mit dem Zertifikat und der Identifizierung des jeweiligen Schlüsselcontainers verwendet wird, der dem Zertifikat zugeordnet ist.Ein Zertifikatspeicher kann sich an vielen Orten, in der Registrierung, in einer Datei, im Arbeitsspeicher und mehr befinden. MSMQ speichert das interne Zertifikat in einem Zertifikatspeicher unter HKCU\Software\Microsoft\MSMQ\CertStore. Die zugehörigen Schlüssel befinden sich in HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ. Diese Speicherorte sollten auch für keine Anwendung relevant sein. MSMQ funktioniert immer mit der Crypto-API, nie direkt mit den Schlüsseln selbst.MSMQ speichert auch den öffentlichen Schlüssel eines Warteschlangen-Managers (qm) im Nachrichtenwarteschlangen-Informationsspeicher (MQIS). Anwendungen können diesen öffentlichen Schlüssel abrufen, indem Sie MQGetMachineProperties () mit PROPID_QM_ENCRYPTION_PK aufrufen. Der Anruf Ende Benutzer sollte über die Berechtigung "Sicherheit abrufen" auf dem Computer verfügen, damit der öffentliche Schlüssel des Computers erfolgreich abgerufen werden kann. PROPID_QM_ENCRYPTION_PK ist anders als alle anderen Eigenschaften, bei denen der Benutzer über die Berechtigung "Berechtigungen abrufen" auf dem Computer verfügen sollte.MSMQ verwendet diesen öffentlichen Schlüssel intern zum Verschlüsseln von Nachrichten. Das qm Ruft den öffentlichen Schlüssel des Zielcomputers von MQIS ab. Da das qm in den meisten Fällen unter dem lokalen Systemkonto ausgeführt wird, sollte die Berechtigung "Berechtigungen abrufen" für alle Personen gewährt werden. Andernfalls kann das qm den öffentlichen Schlüssel nicht abrufen und die Nachrichten daher nicht verschlüsseln.

Informationsquellen


Weitere Informationen zu Kryptografie, Verschlüsselung öffentlicher Schlüssel und Microsoft CryptoAPI finden Sie unter Kryptografie.

Informationen zum MSMQ Software Development Kit (SDK) finden Sie unter Message Queuing (MSMQ).