Welche Schritte sind erforderlich, um ein SSL-Zertifikat sicher zu überprüfen? Mein (sehr begrenztes) Verständnis ist, dass der Server beim Besuch einer https-Site ein Zertifikat an den Client (den Browser) sendet und der Browser die Ausstellerinformationen des Zertifikats von diesem Zertifikat erhält, diese dann verwendet, um den Aussteller zu kontaktieren, und irgendwie vergleicht Zertifikate für die Gültigkeit.
- Wie genau wird das gemacht?
- Was ist mit dem Prozess, der es immun gegen Man-in-the-Middle-Angriffe macht?
- Was hindert eine zufällige Person daran, einen eigenen Verifizierungsdienst für Man-in-the-Middle-Angriffe einzurichten, damit alles "sicher" aussieht?
algorithm
security
ssl
certificate
rcreswick
quelle
quelle
Antworten:
Hier ist eine sehr vereinfachte Erklärung:
Ihr Webbrowser lädt das Zertifikat des Webservers herunter, das den öffentlichen Schlüssel des Webservers enthält. Dieses Zertifikat ist mit dem privaten Schlüssel einer vertrauenswürdigen Zertifizierungsstelle signiert.
Ihr Webbrowser wird mit den öffentlichen Schlüsseln aller wichtigen Zertifizierungsstellen installiert. Mit diesem öffentlichen Schlüssel wird überprüft, ob das Zertifikat des Webservers tatsächlich von der vertrauenswürdigen Zertifizierungsstelle signiert wurde.
Das Zertifikat enthält den Domänennamen und / oder die IP-Adresse des Webservers. Ihr Webbrowser bestätigt mit der Zertifizierungsstelle, dass die im Zertifikat angegebene Adresse diejenige ist, zu der eine offene Verbindung besteht.
Ihr Webbrowser generiert einen gemeinsam genutzten symmetrischen Schlüssel, mit dem der HTTP-Verkehr auf dieser Verbindung verschlüsselt wird. Dies ist viel effizienter als die Verwendung der Verschlüsselung mit öffentlichen / privaten Schlüsseln für alles. Ihr Browser verschlüsselt den symmetrischen Schlüssel mit dem öffentlichen Schlüssel des Webservers und sendet ihn dann zurück. Dadurch wird sichergestellt, dass nur der Webserver ihn entschlüsseln kann, da nur der Webserver über seinen privaten Schlüssel verfügt.
Beachten Sie, dass die Zertifizierungsstelle (CA) unerlässlich ist, um Man-in-the-Middle-Angriffe zu verhindern. Selbst ein nicht signiertes Zertifikat verhindert jedoch, dass jemand Ihren verschlüsselten Datenverkehr passiv abhört, da er keinen Zugriff auf Ihren freigegebenen symmetrischen Schlüssel hat.
quelle
webmaster@<domain-being-verified>
" oder "Platzieren Sie diese Datei in Ihrer Domain, um zu beweisen, dass Sie sie besitzen". Es gab jedoch tatsächlich Probleme damit, dass CAs Zertifikate für Domains ausstellen, die sie nicht besitzen Eigen - bekanntlich hat es jemand geschafft, eine zwielichtige Zertifizierungsstelle dazu zu bringen, ihnen ein Zertifikat für gmail.com auszustellen!Es ist erwähnenswert, dass Sie neben dem Kauf eines Zertifikats (wie oben erwähnt) auch kostenlos ein eigenes Zertifikat erstellen können. Dies wird als "selbstsigniertes Zertifikat" bezeichnet. Der Unterschied zwischen einem selbstsignierten und einem gekauften Zertifikat ist einfach: Das gekaufte Zertifikat wurde von einer Zertifizierungsstelle signiert, die Ihr Browser bereits kennt. Mit anderen Worten, Ihr Browser kann die Authentizität eines gekauften Zertifikats leicht überprüfen.
Leider hat dies zu einem häufigen Missverständnis geführt, dass selbstsignierte Zertifikate von Natur aus weniger sicher sind als solche, die von kommerziellen Zertifizierungsstellen wie GoDaddy und Verisign verkauft werden, und dass Sie mit Browser-Warnungen / Ausnahmen leben müssen, wenn Sie sie verwenden. das ist falsch .
Wenn Sie ein selbstsigniertes Zertifikat (oder ein CA-Zertifikat, wie von Bobince vorgeschlagen) sicher verteilen und in den Browsern installieren, die Ihre Site verwenden , ist es genauso sicher wie eines, das gekauft wurde, und ist nicht anfällig für Man-in-the-Middle Angriffe und Fälschungen. Dies bedeutet natürlich, dass dies nur möglich ist, wenn nur wenige Personen einen sicheren Zugriff auf Ihre Website benötigen (z. B. interne Apps, persönliche Blogs usw.).
quelle
Du hast das gesagt
Der Kunde muss sich nicht an den Emittenten wenden, da zwei Dinge:
Beachten Sie, dass 2. ohne 1 nicht möglich ist.
Dies wird in diesem großen Diagramm, das ich vor einiger Zeit erstellt habe, besser erklärt
(Springe zu "Was ist eine Signatur?" unten)
quelle
Der Client verfügt über einen vorab gespeicherten Speicher der öffentlichen Schlüssel der SSL-Zertifizierungsstellen. Es muss eine Vertrauenskette vom Zertifikat für den Server über Zwischenbehörden bis hin zu einem der sogenannten "Root" -Zertifikate bestehen, damit dem Server vertraut werden kann.
Sie können die Liste der vertrauenswürdigen Behörden überprüfen und / oder ändern. Oft tun Sie dies, um ein Zertifikat für eine lokale Behörde hinzuzufügen, der Sie vertrauen - wie das Unternehmen, für das Sie arbeiten, oder die Schule, die Sie besuchen oder was nicht.
Die vorab festgelegte Liste kann je nach verwendetem Client variieren. Die großen Anbieter von SSL-Zertifikaten versichern, dass sich ihre Stammzertifikate in allen gängigen Browsern befinden ($$$).
Monkey-in-the-Middle-Angriffe sind "unmöglich", es sei denn, der Angreifer verfügt über den privaten Schlüssel eines vertrauenswürdigen Stammzertifikats. Da die entsprechenden Zertifikate weit verbreitet sind, hätte die Offenlegung eines solchen privaten Schlüssels schwerwiegende Auswirkungen auf die Sicherheit des E-Commerce im Allgemeinen. Aus diesem Grund werden diese privaten Schlüssel sehr, sehr genau gehütet.
quelle
Wenn Sie technisch versierter sind, ist diese Website wahrscheinlich genau das, was Sie möchten: http://www.zytrax.com/tech/survival/ssl.html
Warnung: Das Kaninchenloch geht tief :).
quelle