2017-09-10 3 views
1

enter image description hereWie erkennt der Verifizierungsserver, welcher öffentliche Schlüssel in RSA verwendet werden soll?

Ich versuche, eine (vereinfachte) RSA-ähnliche Verifikation in meiner (Java) -Anwendung zu implementieren. Der Client sendet eine Anfrage (Daten + private Schlüsselsignatur) und der Server lehnt entweder seine Anfrage ab oder bearbeitet sie - abhängig von der Signaturgültigkeit.

Aber ich verstehe nicht, wie die Verifikationsserver kennt die öffentlichen Schlüssel zur Unterzeichnung Entschlüsselung verwenden. Tatsächlich scheint kein öffentlicher Schlüssel - noch keine öffentliche Schlüssel-ID - an den Verifizierungsserver gesendet zu werden.

Prüft es wirklich alle autorisierten öffentlichen Schlüssel? Oder ist der öffentliche Schlüssel von einem früheren Kommunikationsaustausch gespeichert?

Antwort

2

Als Figur, die Sie anhänge mit der Frage schon sagt, mit der Unterschrift der Client sendet sein Zertifikat an, das Zertifikat mit dem öffentlichen Schlüssel enthält, wird der Server-Check für Gültigkeit des Zertifikats und verwendet, um die Signatur zu überprüfen.

2

Die Figur hat mehrere Fehler und einige Auslassungen, weil es wahrscheinlich eine Vereinfachung ist:

  • der Hash ist digital signiert, nicht verschlüsselt, und die Signatur überprüft wird, nicht entschlüsselt. Die zugrundeliegende kryptographische Operation ist nicht äquivalent.

  • die signierten Daten das Zertifikat und die Zertifizierungskette

  • , wenn Sie ein bekanntes Format wie CMS verwenden, PKCS # 7 oder XMLDSIG die Hash zu unterzeichnen umfasst in der Regel auch einen Verweis auf das Signaturzertifikat enthalten sollen und Content-Typ zu vermeiden

Manipulation ein signiertes Dokument zu validieren Sie die Signatur verifizieren den öffentlichen Schlüssel der beigefügten Bescheinigung mit aber es ist zwingend Überprüfen Sie, ob das Signaturzertifikat vertrauenswürdig ist, und verifizieren Sie, dass das Zertifikat selbst oder die ausstellende Zertifizierungsstelle im Trustore des Clients vorhanden ist.

Die Signatur enthält die Zertifizierungskette, weil in der Regel die Trusts nicht die Zwischenzertifizierungsstellen enthält. Die Zertifikate des Trusts zuvor

ausgetauscht

Additionaly der Überprüfungsprozess überprüfen soll, dass das Zertifikat nicht abgelaufen ist und nicht


Beachten Sie, dass der Überprüfungsprozess für alle digitalen Zertifikate in einem öffentlichen Schlüssel ist das gleiche widerriefen Infrastruktur, nicht nur RSA

Verwandte Themen