it-swarm-eu.dev

Wie funktioniert die Überprüfung der digitalen Signatur?

Ich kann nicht verstehen, wie die digitale Signatur überprüft wird. Ich weiß, dass die digitale Signatur an die Nachricht angehängt und vom Absender an den Empfänger gesendet wird. dann verwendet der Empfänger den öffentlichen Schlüssel, um ihn zu überprüfen. Hier sind meine Fragen:

  • woher kommt dieser öffentliche Schlüssel?
  • und wie wird es an den Empfänger verteilt?
  • wie wird der öffentliche Schlüssel für die spezifische digitale Signatur identifiziert?
  • und welche Rolle spielt die Zertifizierungsstelle in diesem Prozess?
58
n92

OK, die bisherigen Antworten sind grundsätzlich auf dem richtigen Weg, aber ich werde versuchen, Ihre Fragen so zu beantworten, wie sie eingegangen sind:

* where did this public key come from?

Ein öffentlicher Schlüssel ist Teil eines Schlüsselpaars, das in der asymmetrischen Kryptographie verwendet wird. Es gibt viele Verschlüsselungsalgorithmen, die sich jedoch auf einen öffentlichen und einen privaten Schlüssel beschränken, die mathematisch verknüpft sind. Sie können folgendermaßen verwendet werden:

Verschlüsseln (öffentlicher Schlüssel, Originaldaten) -> verschlüsselte Daten

Entschlüsseln (privater Schlüssel, verschlüsselte Daten) -> Originaldaten

Die Art der mathematischen Beziehung zwischen privatem und öffentlichem Schlüssel hängt mit dem kryptografischen Algorithmus zusammen und wird schnell zu einem guten Thema für Math Overflow. :) :)

Der entscheidende Teil ist, dass es sich um ein Schlüsselpaar handelt, das zusammen generiert wurde.

Um mit einer digitalen Signatur umzugehen, sendet der Absender als Nächstes:

  • die Originaldaten, die verschlüsselten Daten, den öffentlichen Schlüssel und Informationen zum Überprüfen der Signatur (z. B. welcher Algorithmus verwendet wird)

Der Prüfer führt die oben beschriebene Entschlüsselungsoperation aus und vergleicht seine Ausgabe mit den Originaldaten. Wenn beide identisch sind, weiß er, dass die Nachricht nicht manipuliert wurde, da nur der Absender über den privaten Schlüssel verfügt und es keine vernünftige Möglichkeit gibt, den privaten Schlüssel anhand des öffentlichen Schlüssels zu ermitteln.

das ein wenig außer Betrieb setzen ...

* and what is the role of the certification authority in this process?

Jeder kann ein privates/öffentliches Schlüsselpaar erstellen. Angesichts der heutigen Toolkits ist dies eine ziemlich einfache Aufgabe. Daher ist es genauso vertrauenswürdig, Ihnen meinen öffentlichen Schlüssel zusammen mit den beschriebenen verschlüsselten Daten und Signaturen zu geben, wie Ihnen eine Visitenkarte zu geben, die ich bei Staples für 50 US-Dollar gedruckt habe. Um wirklich darauf zu vertrauen, dass ich der bin, von dem ich sage, dass ich es bin, und daher vertrauenswürdig bin, muss jemand meine Identität abzeichnen (z. B. die Überprüfung eines Führerscheins).

Das ist die Aufgabe der Zertifizierungsstelle (kurz CA). Die Zertifizierungsstelle verfügt über ein eigenes Schlüsselpaar und signiert mit ihrem privaten Schlüssel ein digitales Zertifikat für den Schlüsselhalter. Das Zertifikat enthält das öffentlicher Schlüssel sowie eine Reihe von Informationen über die Person oder Sache, die diesen privaten Schlüssel besitzt. Das ist so, als würde meine Regierung mich zu einem gut aussehenden Ausweis mit einem Bild machen, das ohne spezielle Ausrüstung nicht leicht gefälscht werden kann - Sie können meinen Informationen glauben, weil Sie der Regierung vertrauen ... nein, weil Sie mir vertrauen.

Wenn ein System eine Signatur überprüft, überprüft es normalerweise nicht nur, ob die verschlüsselten Daten mit den Originaldaten übereinstimmen, sondern auch, dass ein Zertifikat für die Identität von bürgt Der Inhaber des öffentlichen Schlüssels ist auch ordnungsgemäß von einer vertrauenswürdigen Quelle signiert. Normalerweise sind CA-Systeme in CA-Ketten organisiert, die von einem Root stammen. Eine Sammlung der bekannteren Stammzertifizierungsstellen (die selbstsigniert sind, dh mit ihren eigenen privaten Schlüsseln signiert sind) finden Sie in Ihrem Browser.

Bei hochsicheren Systemen können zusätzliche Überprüfungen der aktuellen Statusinformationen durchgeführt werden. Es hängt alles davon ab, wie wichtig es ist, den Status des Absenders absolut sicher zu sein.

* and how is it (the public key) distributed to the receiver?

Doppelte Überprüfung hier - meinen Sie den Empfänger des Zertifikats oder den Inhaber des Schlüssels?

Der Absender (Schlüsselhalter) kann auf verschiedene Weise ein Schlüsselpaar und ein Zertifikat erhalten. Am einfachsten ist es, sie lokal zu erstellen und dann bei der Zertifizierungsstelle ein Zertifikat zu beantragen und die Daten des öffentlichen Schlüssels zu übermitteln. In anderen Fällen können Schlüssel zentral hergestellt und über sichere Kanäle an die Schlüsselhalter verteilt werden.

In den meisten Fällen wird das Schlüsselpaar vom Schlüsselhalter erstellt, da dies das Risiko einschränkt, dass der private Schlüssel verfügbar ist.

Wenn eine Signatur erstellt und an einen Empfänger gesendet wird, wird der öffentliche Schlüssel normalerweise auch an die Nachricht angehängt (ein Standard hierfür ist beispielsweise XMLDSIG, wobei ein optionales Feld im Element ein digitales Zertifikat ist, das das enthält Öffentlicher Schlüssel).

In Fällen, in denen Bandbreite ein Problem darstellt, können die öffentlichen Schlüssel in einem zentralen Repository gespeichert werden - beispielsweise in einer Mitarbeiterdatenbank oder häufig in einem Active Directory oder einem anderen LDAP-Server. Dann kann die Signatur auf die Identität des Absenders verweisen, und der Überprüfungsprozess kann eine Anforderung an das Repository enthalten, den öffentlichen Schlüssel abzurufen.

* how the public key is identified for the specific digital signature?

Normalerweise durch ein digitales Zertifikat.

Wenn der Absender eine digitale Signatur erstellt, sind ihm normalerweise Regeln zugeordnet, welche Schlüsselpaare er für welche Zwecke verwenden kann. Im X509-Zertifikatstandard identifizieren Zertifikate ein Feld für die Schlüsselverwendung, in dem bestimmte Zwecke für das im Zertifikat beschriebene Schlüsselpaar angegeben sind. Eine dieser Verwendungszwecke ist die digitale Signatur, und bei vielen Softwaresystemen können Sie ohne diese Einstellung im Zertifikat keine Signatur erstellen.

Die Zertifizierungsstelle ermittelt diese Einstellungen tatsächlich, bevor sie das Zertifikat signiert. In vielen Sicherheitsrichtlinien können bestimmte Schlüsselverwendungseinstellungen nicht ohne bestimmte Authentifizierungsprozesse gewährt werden. Die Verantwortung dafür liegt also bei der Zertifizierungsstelle und den Verantwortlichen (normalerweise RAs, Registrierungsbehörden).

Wenn Sie aus irgendeinem Grund über ein System verfügen, das keine digitalen Zertifikate verwendet, gibt es möglicherweise andere Möglichkeiten, um festzustellen, welches Schlüsselpaar verwendet wird. Am Ende kommt es auf die geltenden Sicherheitsrichtlinien an und darauf, was für die jeweilige Aktivität, für die die Unterschrift erforderlich ist, als angemessen erachtet wird.

37
bethlakshmi

Das Problem, auf das Sie sich beziehen (wie verteilen wir öffentliche Schlüssel?), Ist genau das, was Infrastrukturen mit öffentlichen Schlüsseln lösen sollen, und die PKI besteht im Wesentlichen aus einer Reihe von Zertifizierungsstellen.

In einer einfachen Einrichtung hätten wir ein zentrales Verzeichnis der öffentlichen Schlüssel aller; Stellen Sie es sich als eine große Marmorplatte mitten in einem öffentlichen Park vor, auf der die öffentlichen Schlüssel eingraviert sind. Jeder kann es sich ansehen und sicher sein, dass es "das echte Ding" ist, weil man nicht einfach über etwas malen kann, das graviert wurde.

Ein öffentlicher Teil ist nicht gut mit dem Internet insgesamt verbunden, und Computer können nicht "sehen", dass einige Informationen eingraviert und somit "garantiert korrekt" sind. Es könnte auch Milliarden von Schlüsselhaltern geben, für die ein ziemlich großes Stück Stein erforderlich wäre. Die Übersetzung in die gesamte Computerwelt ist also das Zertifikat.

Ein Zertifikat ist eine kleine Struktur, die in einem herkömmlichen Format Folgendes enthält:

  • an Identität (der Name des Schlüsselbesitzers);
  • a öffentlicher Schlüssel (angeblich im Besitz dieser Person);
  • a digitale Signatur berechnet über die beiden vorherigen Teile von einer Zertifizierungsstelle.

Die Rolle der Zertifizierungsstelle besteht darin, Zertifikate genau auszustellen, d. H. Zu signieren. Sie können sich ein Zertifikat als das Stück der großen Marmorplatte vorstellen, das einen bestimmten öffentlichen Schlüssel enthält. Um den öffentlichen Schlüssel zu verwenden, müssen Sie zunächst sicherstellen, dass dieser die richtigen Informationen enthält. Dazu verifizieren die Signatur des Zertifikats mit dem öffentlichen Schlüssel der Zertifizierungsstelle. Wenn diese Signatur korrekt ist, wissen Sie, dass die Zertifizierungsstelle hat dieses Zertifikat signiert hat, und da die Zertifizierungsstelle nur Zertifikate signiert, nachdem sie die Identität des Schlüsselbesitzers überprüft hat (durch ein einmaliges physisches Protokoll mit ihnen B. der Schlüsselbesitzer zeigte eine ID), können Sie "überzeugt" sein, dass der öffentliche Schlüssel im Zertifikat wirklich dem identifizierten Besitzer gehört.

Jetzt können Sie mir sagen, dass wir das Problem überhaupt nicht gelöst haben. Verschieben Sie es einfach: Um das Zertifikat zu überprüfen, müssen Sie den öffentlichen CA-Schlüssel kennen. Woher weißt du das Schlüssel? Die Antwort liegt in den Zahlen: Eine bestimmte Zertifizierungsstelle kann mehrere Zertifikate signieren, möglicherweise Millionen davon. Es könnte also beispielsweise einhundert CA geben, die Zertifikate für die ganze Welt ausstellen. Wenn Sie wissen, dass hundert öffentliche Schlüssel vorhanden sind, können Sie möglicherweise das Zertifikat any Verifizieren. In anderen Welten haben wir nicht nur bewegt das Problem, wir haben auch konzentriert es: Wir haben das Problem der Verteilung von Milliarden öffentlicher Schlüssel in das Problem der Verteilung verwandelt hundert von ihnen.

Und siehe da! Genau so wird es für die HTTPS-Website gemacht. Während der ersten Phasen der Verbindung zwischen Ihrem Browser und dem Webserver sendet der Server sein Zertifikat. Der Browser überprüft das Zertifikat dann anhand der Liste der fest codierten öffentlichen CA-Schlüssel (die vom Browser oder vom Hersteller des Betriebssystems bereitgestellt wurden). Sobald der Browser das Zertifikat überprüft hat, kennt er den öffentlichen Schlüssel des Servers und verwendet ihn, um den vertraulichen Tunnel mit dem Server einzurichten.

27
Thomas Pornin

Digitale Signaturen werden normalerweise in zwei Schritten erstellt. Der erste Schritt besteht darin, einen sicheren Hashing-Algorithmus für die Daten zu verwenden. SHA-2-Algorithmen wären ein Beispiel dafür. Der zweite Schritt besteht darin, die resultierende Ausgabe mit dem privaten Signaturschlüssel zu verschlüsseln.

Wenn also eine Signatur durch den öffentlichen Schlüssel überprüft wird, entschlüsselt sie einen Hash, der mit der Nachricht übereinstimmt. Dieser Hash kann nur mit dem öffentlichen Schlüssel entschlüsselt werden, wenn er mit dem privaten Signaturschlüssel verschlüsselt wurde.

Öffentliche Schlüssel werden vom Schlüsselpaarbesitzer erstellt. Zertifizierungsstellen signieren das Zertifikat des öffentlichen Schlüssels. Serverbesitzer installieren dieses signierte Zertifikat. In SSL (von dem ich annehme, dass Sie sich darauf beziehen) wird das Zertifikat einschließlich des Schlüssels und der Signatur der Zertifizierungsstelle von dem Server übergeben, mit dem Sie verbunden sind. Ihre Software überprüft, ob die Site, mit der eine Verbindung hergestellt wird, mit den Daten im Zertifikat übereinstimmt, und validiert das Zertifikat, indem die Signatur anhand des Schlüssels der Zertifizierungsstelle überprüft wird. Zertifizierungsstellen verwenden ihre Schlüssel zum Signieren und Server verwenden ihre Schlüssel zur Verschlüsselung.

12
Jeff Ferland

Sie wissen, was ein öffentlich-privater Schlüssel ist, oder?

Sie möchten etwas mit bob verschlüsseln. Sie benötigen also seinen öffentlichen Schlüssel. Sie suchen im Internet danach, können aber nicht sicher sein, ob der öffentliche Schlüssel, den Sie erhalten haben, ihm wirklich gehört.

Sie gehen also anders vor: Holen Sie sich den Schlüssel von jemandem, der Ihnen versichern kann, dass ein bestimmter Schlüssel zu bob gehört. Die CA macht genau das.

Wie macht die CA das? Einfach. bob identifiziert sich bei der Zertifizierungsstelle und sendet ihnen seinen öffentlichen Schlüssel. Auf diese Weise hat die Zertifizierungsstelle etwas, das die "Identität" von bob mit diesem öffentlichen Schlüssel in Beziehung setzt. Und Sie können darauf vertrauen, dass der öffentliche Schlüssel, den Sie erhalten haben, wirklich zu bob gehört.

7
woliveirajr