
Ich habe falsche Vorstellungen bezüglich CA-Zertifikaten (Certificate Authority). Egal, wie viel ich lese, es ist immer noch nicht ganz klar.
Nehmen wir ein Beispiel: Bob greift auf eine Website zu. Damit eine vertrauenswürdige und verschlüsselte Kommunikation zwischen Bob und der Website stattfinden kann, stellt die Website Bob zunächst ein digitales Zertifikat aus, das einen öffentlichen Schlüssel und andere Informationen enthält.
Bob verwendet dann diesen öffentlichen Schlüssel, um die Daten zu verschlüsseln, die er an die Website sendet, und die Website verwendet den entsprechenden privaten Schlüssel, um sie zu entschlüsseln. (Hier wird nur von Einwegkommunikation ausgegangen.)
Ein „Man-in-the-Middle“ könnte sich als die Website ausgeben und Bob ein seiner Meinung nach gültiges digitales Zertifikat liefern, und dann geht alles furchtbar schief.
Wenn die Website für dieses Problem eine Zertifizierungsstelle verwendet, um ein eigenes Zertifikat zu validieren oder zu generieren, welche meiner Aussagen ist dann richtig oder sind beide teilweise richtig?:
1) Bob vergleicht einfach das von der Website erhaltene digitale Zertifikat mit dem der Zertifizierungsstelle. Es wird also keine Entschlüsselung durchgeführt, sondern nur ein Vergleich? Ist in diesem Fall jedes einzelne Zertifizierungsstellenzertifikat der Welt auf Bobs lokalem Computer gespeichert, um einen Vergleich durchzuführen? Wie geschieht dies?
2) Bob hat nur ein spezielles CA-Zertifikat, das zum Entschlüsseln von Zertifikaten von Websites verwendet wird. Die CA hat zuvor das digitale Zertifikat der Website, die Bob verwenden möchte, mit dem privaten CA-Schlüssel verschlüsselt. Bob holt sich dann das Zertifikat von der Website und entschlüsselt es mit dem öffentlichen Schlüssel der CA aus dem CA-Zertifikat. Wenn das Zertifikat nicht entschlüsselt werden kann, ist es offensichtlich, dass die CA es nicht verschlüsselt hat und es daher ungültig ist.
Dank im Voraus.
Antwort1
Da liegt ein Missverständnis vor. Tatsächlich sind beide Ihrer Szenarien falsch.
Zunächst wird ein digitales Zertifikat von einer Zertifizierungsstelle (CA) ausgestellt. Es enthält den öffentlichen Schlüssel für die digitale Signatur und gibt die Identität des Unterzeichners an. Das Zertifikat wird verwendet, um zu bestätigen, dass der öffentliche Schlüssel dem Unterzeichner gehört, wobei die CA als Garant fungiert.
Die Überprüfung des Zertifikats gegenüber der CA erfolgt dabei nicht lokal, sondern über das Internet, da hierbei der öffentliche Schlüssel von der CA bezogen werden muss, um die Gültigkeit des Zertifikats zu prüfen.
Mit dem öffentlichen Schlüssel wird mithilfe eines Hash-Algorithmus überprüft, ob es sich bei dem signierten Objekt tatsächlich um das signierte Objekt handelt und ob es in irgendeiner Weise verändert wurde.
Denn ein Bild sagt mehr als tausend Worte:
Quelle :Digitale Signaturen verstehen.
Antwort2
Zunächst einmal gibt esZwei schrittezur Überprüfung eines von einer Zertifizierungsstelle ausgestellten Zertifikats:
- Ist diese spezielle Zertifizierungsstelle überhaupt vertrauenswürdig und kann Zertifikate ausstellen?
- Wurde dieses Zertifikat tatsächlich von der Zertifizierungsstelle ausgestellt, die es vorgibt zu sein?
Beide Beschreibungen sind fast richtig füreine Hälftedes gesamten Prozesses, aber ignorieren Sie die andere Hälfte völlig. Kombinieren Sie beides, und Sie sind auf dem richtigen Weg.
Aber der zweite Punkt:Verschlüsselung wird nicht verwendetüberhaupt in dieser Situation, und Zertifikate (mit öffentlichen Schlüsseln) können verwendet werden, um Daten zu verschlüsseln, abernichtum es zu entschlüsseln. Was durchgeführt wird, istSignaturprüfung.
(Ich vermute, dass ein Teil Ihrer Verwirrung daher rührt, dass Sie irgendwo gelesen haben, dass z. B. „bei RSA Verschlüsselung und Signierung dasselbe sind“. Vergessen Sie das. Obwohl es im mathematischen Sinne größtenteils richtig ist, ist es in der Praxis unglaublich irreführend, da dieAbsichtist das genaue Gegenteil von beidem. Wenn Sie also ein Dokument lesen, in dem es um die Unterzeichnung von etwas geht,nichtgehe davon aus, dass es dasselbe bedeutet wie verschlüsseln.)
„Wurde das Zertifikat dieser Website wirklich von der Zertifizierungsstelle ausgestellt, die es vorgibt zu sein?“
Variante Nr. 2 ist in diesem Fall fast richtig. Es sind mindestens zwei Zertifikate beteiligt – eines repräsentiert die Website (das „Serverzertifikat“) und eines repräsentiert die Zertifizierungsstelle selbst (das sogenannte „CA-Zertifikat“ oder Stammzertifikat).
Das Zertifikat der Website istnicht verschlüsseltmit dem privaten Schlüssel der CA; es istunterzeichnetmit dem privaten Schlüssel der CA. Wenn die Signatur nicht verifiziert werden kann, ist es offensichtlich, dass die CA nicht wirklich das signiert hat, was behauptet wird.
(In der Praxis ist die Kette normalerweise etwas länger und besteht aus mindestens drei Zertifikaten – der Mechanismus ist jedoch immer noch derselbe: Jedes Zertifikat signiert das nächste in der Kette.)
Aber woher bekommt Bob überhaupt dieses „spezielle CA-Zertifikat“? Siehe unten.
„Ist diese Zertifizierungsstelle grundsätzlich vertrauenswürdig für die Ausstellung von Zertifikaten?“
Das empfangene CA-Zertifikat wird mit einer Liste „vertrauenswürdiger Root-Zertifikate“ verglichen, die auf dem lokalen Computer gespeichert ist.
Das ist ähnlich zu dem, was Sie in Variante 1 beschreiben, außer dass der Computer nicht alle Zertifikate speichertausgegebenvon CAs – stattdessen werden nur die Zertifikate gespeichert, die zu CAs gehörensich, also die „speziellen CA-Zertifikate“ in Ihrer Variante Nr. 1.
Es gibt ungefähr50–100„Root-Zertifikate“ sind auf den meisten Systemen installiert – nicht unbedingt „jede einzelne CA der Welt“, aber es deckt viele größere und kleinere Unternehmen ab. (Die Aufnahme in die Liste kostet einiges.)