Wichtige Sicherheitsterminologie

Zwei der Hürden, die Entwickler bei der Migration zu HTTPS sehen, sind Konzepte und Terminologie. Dieser Leitfaden bietet einen kurzen Überblick über beide.

Chris Palmer
Chris Palmer
Matt Gaunt

Zusammenfassung

  • Es wurden öffentliche/private Schlüssel verwendet, um Nachrichten zwischen dem Browser und dem Server zu signieren und zu entschlüsseln.
  • Eine Zertifizierungsstelle (Certificate Authority, CA) ist eine Organisation, die für die Zuordnung zwischen den öffentlichen Schlüsseln und öffentlichen DNS-Namen (z. B. „www.foobar.com“) bürgt.
  • Eine CSR-Anfrage (Certificate Signing Request) ist ein Datenformat, das einen öffentlichen Schlüssel mit einigen Metadaten zur Entität bündelt, die der Inhaber des Schlüssels ist.

Was sind öffentliche und private Schlüsselpaare?

Ein öffentliches/privates Schlüsselpaar besteht aus zwei sehr großen Zahlen, die als Verschlüsselungs- und Entschlüsselungsschlüssel verwendet werden und eine spezielle mathematische Beziehung haben. Ein gängiges System für Schlüsselpaare ist das RSA-Kryptosystem. Der öffentliche Schlüssel wird zum Verschlüsseln von Nachrichten verwendet. Die Nachrichten können nur mit dem entsprechenden privaten Schlüssel entschlüsselt werden. Ihr Webserver gibt seinen öffentlichen Schlüssel an alle weiter und Clients (z. B. Webbrowser) verwenden ihn, um einen sicheren Kanal zu Ihrem Server zu erstellen.

Was ist eine Zertifizierungsstelle?

Eine Zertifizierungsstelle (CA) ist eine Organisation, die für die Zuordnung zwischen öffentlichen Schlüsseln und öffentlichen DNS-Namen wie „www.foobar.com“ bürgt. Woher weiß ein Client beispielsweise, ob ein bestimmter öffentlicher Schlüssel der wahre öffentliche Schlüssel für www.foobar.com ist? A priori gibt es keine Möglichkeit, das zu wissen. Eine Zertifizierungsstelle bestätigt, dass ein bestimmter Schlüssel der richtige für eine bestimmte Website ist, indem sie den öffentlichen Schlüssel der Website kryptografisch signiert. Diese Signatur ist rechnerisch nicht zu fälschen. Browser (und andere Clients) verwalten Trust Anchor-Stores mit den öffentlichen Schlüsseln der bekannten Zertifizierungsstellen. Mit diesen öffentlichen Schlüsseln werden die Signaturen der Zertifizierungsstelle kryptografisch verifiziert.

Ein X.509-Zertifikat ist ein Datenformat, das einen öffentlichen Schlüssel mit einigen Metadaten zur Entität bündelt, der der Schlüssel gehört. Im Web ist der Inhaber des Schlüssels der Website-Betreiber und die wichtigen Metadaten sind der DNS-Name des Webservers. Wenn ein Client eine Verbindung zu einem HTTPS-Webserver herstellt, stellt der Webserver sein Zertifikat zur Überprüfung für den Client bereit. Der Client prüft, ob das Zertifikat nicht abgelaufen ist, ob der DNS-Name mit dem Namen des Servers übereinstimmt, zu dem der Client eine Verbindung herstellen möchte, und ob das Zertifikat von einer bekannten Zertifizierungsstelle mit Vertrauensanker signiert wurde. In den meisten Fällen signieren Zertifizierungsstellen Webserverzertifikate nicht direkt. Normalerweise gibt es eine Zertifikatskette, die einen Trustanker mit einem oder mehreren Zwischenunterzeichnern und schließlich mit dem eigenen Zertifikat des Webservers (der Endentität) verbindet.

Was ist eine Anfrage zur Zertifikatssignatur?

Eine Certificate Signing Request (CSR) ist ein Datenformat, das wie ein Zertifikat einen öffentlichen Schlüssel mit einigen Metadaten zur Entität bündelt, der der Schlüssel gehört. Clients interpretieren jedoch keine CSRs, sondern Zertifizierungsstellen. Wenn Sie möchten, dass eine Zertifizierungsstelle für den öffentlichen Schlüssel Ihres Webservers bürgt, senden Sie der Zertifizierungsstelle eine CSR. Die Zertifizierungsstelle validiert die Informationen in der CSR und verwendet sie, um ein Zertifikat zu generieren. Die Zertifizierungsstelle sendet Ihnen dann das endgültige Zertifikat. Sie installieren dieses Zertifikat (oder eher eine Zertifikatskette) und Ihren privaten Schlüssel auf Ihrem Webserver.