Wie funktioniert ein ROOT-CA verifizieren einer Signatur?
Sagen, dass bei der Verwendung von https, der browser macht eine Anfrage an den server und der server gibt sein Zertifikat mit öffentlichem Schlüssel und das CA-Signatur.
Zu diesem Zeitpunkt, der browser fragt mit seinen CA zu überprüfen, ob der angegebene öffentliche Schlüssel wirklich gehört, das die server oder nicht?
Wie ist diese überprüfung erfolgt, indem das Root-cert auf dem browser?
Um ein Beispiel zu geben:
Sagen serverX erhalten ein Zertifikat von CA "rootCA". Browser eine Kopie der rootCA lokal gespeichert. Wenn der browser pings serverX und es antwortet mit seinem öffentlichen Schlüssel+Unterschrift. Nun die root-CA wird die Verwendung seines privaten Schlüssels, um die Signatur zu entschlüsseln und stellen Sie sicher, es ist wirklich serverX?
ist es, wie funktioniert es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre server erstellt ein Schlüsselpaar, bestehend aus einem privaten und einem öffentlichen Schlüssel. Der server gibt nie aus dem privaten Schlüssel, natürlich, aber jeder kann eine Kopie des öffentlichen Schlüssels. Der öffentliche Schlüssel ist eingebettet in eine Zertifikat-container-format (X. 509). Dieser container besteht aus meta-Informationen zu den verpackten Schlüssel, z.B. die IP-Adresse oder den domain-Namen eines Servers, der Besitzer von dem server, eine e-mail-Kontakt-Adresse, wenn der Schlüssel erstellt wurde, wie lange es gültig ist, für welche Zwecke es verwendet werden kann für, und viele andere mögliche Werte.
Der ganze container ist unterzeichnet von einer vertrauenswürdigen Zertifizierungsstelle (certificate authority= CA). Die CA hat auch eine private/public key pair. Sie geben Ihnen Ihr Zertifikat, das Sie überprüfen, dass die Informationen in den container korrekt sind (z.B. ist die Kontakt Informationen korrekt sind, bedeutet das Zertifikat gehört eigentlich zu diesem server) und schließlich Unterschreiben Sie es mit Ihrem privaten Schlüssel. Der öffentliche Schlüssel der ZERTIFIZIERUNGSSTELLE muss installiert werden auf dem user-system. Die meisten bekannten CA-Zertifikaten enthalten sind, die bereits in der Standard-installation von Ihrem Lieblings-OS oder browser.
Wenn nun ein Benutzer eine Verbindung zu Ihren server, Ihr server verwendet den privaten Schlüssel zum signieren einige zufällige Daten, packs, signierter Daten gemeinsam mit seinem Zertifikat (= öffentlicher Schlüssel + meta-Informationen) und sendet alles an den client. Was kann der Kunde mit dieser information tun?
Zuerst von allen, können Sie den öffentlichen Schlüssel in das Zertifikat, es wurde geschickt, um zu überprüfen der signierten Daten. Da nur der Besitzer des privaten Schlüssels in der Lage ist zu unterzeichnen, die Daten korrekt in der Weise, dass der öffentliche Schlüssel korrekt überprüfen der Signatur wird Sie wissen, wer signiert dieses Stück von Daten, ist diese person auch im Besitz der privaten Schlüssel, um die empfangenen öffentlichen Schlüssel.
Aber was hält ein hacker aus dem abfangen des Pakets, Austausch der signierten Daten mit Daten, die er unterzeichnet sich mit einem anderen Zertifikat auch das Zertifikat ersetzen mit eigenen ein? Die Antwort ist einfach-nichts.
Deshalb, nachdem die signierten Daten überprüft wurde (oder bevor es überprüft wird) der client überprüft, dass das erhaltene Zertifikat hat eine gültige CA-Signatur. Mit der bereits installierten öffentlichen CA-Schlüssels überprüft, ob der erhaltene öffentliche Schlüssel signiert wurde, die von einem bekannten und hoffentlich vertrauenswürdigen ZERTIFIZIERUNGSSTELLE. Ein Zertifikat, das nicht unterzeichnet ist, die nicht vertrauenswürdig sind, standardmäßig aktiviert. Der user hat explizit das Vertrauen, das Zertifikat in seinen browser.
Schließlich überprüft er die Informationen im Zertifikat selbst. Hat die IP-Adresse oder Domainname wirklich mit der IP-Adresse oder domain-name des Servers, der client ist derzeit sprechen? Wenn nicht, ist etwas faul!
Menschen Fragen sich vielleicht: Was hält ein hacker ist, nur aus der Schaffung seiner eigenen Schlüsselpaar und nur darum, Ihre domain-Namen oder die IP-Adresse, die in seinem Zertifikat und dann haben Sie es von einer ZERTIFIZIERUNGSSTELLE signiert? Einfache Antwort: Wenn er das macht, keine ZERTIFIZIERUNGSSTELLE signiert sein Zertifikat. Um eine CA-Signatur, Sie müssen beweisen, dass du wirklich der Besitzer dieser IP-Adresse oder den domain-Namen. Der hacker ist nicht der Besitzer, damit er nicht nachweist, dass und so er nicht bekommen eine Unterschrift.
Aber was ist, wenn der hacker Register seine eigene domain, ein Zertifikat erstellt, für, die, haben und dass von einer ZERTIFIZIERUNGSSTELLE signiert? Dies funktioniert, wird er es bekommen CA signiert ist, ist es seine Domäne, nachdem alle. Aber er kann nicht verwenden Sie es für Hacker, Ihre Verbindung. Wenn er mit diesem Zertifikat, das der browser wird sofort sehen, dass die signierten öffentlichen Schlüssel für die Domäne example.net aber es ist derzeit im Gespräch, um example.com nicht der gleichen Domäne, so etwas ist wieder falsch.
Server-Zertifikat signiert wird mit dem privaten Schlüssel der CA. Der browser verwendet den öffentlichen Schlüssel der ZERTIFIZIERUNGSSTELLE zum verifizieren der Signatur. Es gibt keine direkte Kommunikation zwischen browser und CA.
Der wichtige Punkt ist, dass der browser die Schiffe mit den öffentlichen CA-Schlüssel. In Firefox finden Sie unter Extras->Optionen->Erweitert->Verschlüsselung->ViewCertificates->Behörden. So weiß der browser vorher alle CAs Sie Vertrauen können.
Wenn Sie das nicht verstehen, suchen Sie die Grundlagen der Asymmetrischen Kryptographie und Digitale Signaturen.
Certs basieren auf der Verwendung eines asymmetrischen Verschlüsselung wie RSA. Sie haben zwei Tasten, üblicherweise als die privaten und öffentlichen Schlüssel. Etwas, das Sie verschlüsseln mit dem privaten Schlüssel können nur entschlüsselt mit dem öffentlichen Schlüssel. (Und eigentlich auch vice versa.)
Können Sie denken das Zertifikat ist wie ein Pass, Personalausweis oder Führerschein: es ist ein Berechtigungsnachweis, der sagt, "dies ist, wer ich bin; du kannst ihm Vertrauen, denn es wurde mir von jemandem (wie Verisign), der Sie Vertrauen." Dies geschieht mit einer "Signatur", die berechnet werden können mit der certificate authority public key. Wenn die Daten, welche die CA habe ursprünglich, können Sie überprüfen, cert.
Cert enthält identifizierende Informationen über den Besitzer des cert. Wenn Sie es erhalten, verwenden Sie die Kombination der Schlüssel, den Sie kennen, von Ihrem vertrauenswürdigen Stelle, um zu bestätigen, dass das Zertifikat, das Sie erhalten, ist gültig, und Sie können daher folgern Sie Vertrauen die person, erteilt die cert.
Ihrem browser nicht fragt, der CA zu überprüfen, sondern es hat eine Kopie des root-certs lokal gespeichert, und es wird mit standard-kryptografische Verfahren, um zu überprüfen, dass das Zertifikat wirklich gültig ist.
Dies ist, warum, wenn Sie sich selbst anmelden eines Zertifikats, das Zertifikat ist nicht gültig, obwohl es technisch ist ein CA zu Fragen, könnte man natürlich kopieren der selbst signierten ZERTIFIZIERUNGSSTELLE auf Ihrem computer und dann auf ihn Vertrauen würde Ihr selbst signierte Zertifikate.
CACert.org hat das gleiche Problem, es hat gültige Zertifikate, aber da ein Browser nicht haben Ihre root-Zertifikate in Ihre Liste Ihrer Zertifikate generieren Warnungen, bis der Anwender das herunterladen des root-CA und fügen Sie Sie zu Ihrer browser.