Share via


Überprüfen einer signierten Nachricht

Mit diesen Schritten wird die Signatur signierter Daten überprüft. Die folgende Abbildung zeigt die einzelnen Aufgaben, die ausgeführt werden müssen, wie in der darauf folgenden Liste dargestellt.

Überprüfen einer signierten Nachricht

So überprüfen Sie die Signatur einer signierten Nachricht

  1. Rufen Sie einen Zeiger auf die signierte Nachricht ab.

  2. Öffnen Sie einen Zertifikatspeicher.

  3. Rufen Sie mithilfe der in der Nachricht enthaltenen Signierer-ID das Zertifikat des Absenders ab, und rufen Sie ein Handle für den öffentlichen Schlüssel ab.

    Alternativ zu den Schritten 2 und 3 können Sie das in der Nachricht enthaltene Zertifikat verwenden, um den öffentlichen Schlüssel des Unterzeichners abzurufen.

  4. Entschlüsseln Sie mithilfe des öffentlichen Schlüssels des Signierers die digitale Signatur, und erzeugen Sie den ursprünglichen Digest der Daten in der Nachricht.

  5. Verwenden Sie den in der Nachricht enthaltenen Hashalgorithmus, um die in der Nachricht enthaltenen Daten zu hashen , ergibt einen neuen Digest.

  6. Vergleichen Sie den aus der Nachricht abgerufenen Digest mit dem gerade erstellten neuen Digest.

  7. Wenn die beiden Digests übereinstimmen, wird die Signatur überprüft. Dies bedeutet, dass der private Schlüssel , der zum Signieren der Daten verwendet wurde, mit dem öffentlichen Schlüssel übereinstimmt, der gerade zum Entschlüsseln der Signatur verwendet wurde, und dass sich die Daten seit dem Signieren der Daten nicht geändert haben.

    Wenn die beiden Digests nicht übereinstimmen, wird die Signatur nicht überprüft, und entweder stimmen die privaten/öffentlichen Schlüssel nicht überein, oder die Daten wurden geändert, seit die Daten signiert wurden, oder beides.

Eine einzelne Funktion, CryptVerifyMessageSignature, kann verwendet werden, um eine Signatur zu überprüfen, wie im folgenden Verfahren gezeigt.

So überprüfen Sie eine signierte Nachricht

  1. Rufen Sie einen Zeiger auf die signierte Nachricht ab.
  2. Ruft die Größe der signierten Nachricht ab.
  3. Rufen Sie ein Handle für einen Kryptografieanbieter ab.
  4. Initialisieren Sie die CRYPT_VERIFY_MESSAGE_PARA-Struktur .
  5. Rufen Sie CryptVerifyMessageSignature auf, um die Signatur zu überprüfen.

Code, der dieses Verfahren implementiert, ist im C-Beispielprogramm enthalten: Signieren einer Nachricht und Überprüfen einer Nachrichtensignatur.