{"id":677,"date":"2013-08-07T18:34:19","date_gmt":"2013-08-07T16:34:19","guid":{"rendered":"http:\/\/blog.embedded-system-design.de\/?p=677"},"modified":"2013-08-07T18:34:19","modified_gmt":"2013-08-07T16:34:19","slug":"gib-mir-mal-schnell-den-fingerabdruck-deines-ssl-serverzertifikats","status":"publish","type":"post","link":"https:\/\/blog.embedded-system-design.de\/index.php\/2013\/08\/07\/gib-mir-mal-schnell-den-fingerabdruck-deines-ssl-serverzertifikats\/","title":{"rendered":"Gib mir mal schnell den Fingerabdruck deines SSL-Serverzertifikats!"},"content":{"rendered":"<p>SSL-Zertifikate zu pr\u00fcfen geh\u00f6rt zur grundlegenden Internethygiene. SSL-Zertifikate dienen dazu, Krypto-Schl\u00fcssel auszutauschen, mit der die Kommunikation durch Verschl\u00fcsselung vertraulich wird. Die Gefahr besteht jedoch, dass ein Angreifer eigene Schl\u00fcssel einschleu\u00dft, um die Inhalte der Kommunikation abzuh\u00f6ren &#8211; die sogenannte Man-in-the-Middle Attack. Daher stellt sich beim Importieren von Zertifikaten die Frage: Handelt es sich tats\u00e4chlich um das Original-Zertifikat?<\/p>\n<p>Erst mit der Gewissheit \u00fcber stimmige Fingerabdr\u00fccke kann ein Spion in der Mitte ausgeschlossen werden. Die Fingerabdr\u00fccke sind f\u00fcr diesen Zweck berechnete Pr\u00fcfsummen, zu denen sich mathematisch schwer &#8211; d.h. mit nur sehr hohem und f\u00fcr den Angreifer hoffentlich nicht lohnenden Aufwand &#8211; Kollisionen finden lassen. G\u00e4ngige Browser zeigen diese Pr\u00fcfsummen nach wenigen Klicks an. Doch wie funktioniert das serverseitig? Wie lassen sich mit OpenSSL die Zertifikatspr\u00fcfsummen ausgeben?<\/p>\n<p>Hier die kurze Antwort:<\/p>\n<blockquote>\n<pre>openssl x509 -noout -in cert.pem -fingerprint<\/pre>\n<\/blockquote>\n<p>Die Datei cert.pem ist dabei die Zertifikatsdatei mit den \u00f6ffentlichen Schl\u00fcsseln auf dem Server, die auf Anfrage an den Client gesendet werden. Von dieser Datei gibt der obige Befehl die Fingerabdr\u00fccke aus.<\/p>\n<p>Bei der \u00dcberpr\u00fcfung sollten den fr\u00fcher verwendeten MD5-Pr\u00fcfsummen nicht mehr vertraut werden. Dieser Algorithmus gilt als gebrochen. <a title=\"MD5 Kollisionen\" href=\"http:\/\/www.mscs.dal.ca\/~selinger\/md5collision\/\">Bei MD5 lasen sich Kollisionen mit reduziertem Aufwand konstruieren.<\/a> Das bedeutet, dass ein Angreifer in der Lage ist, Krypto-Schl\u00fcssel zu erzeugen, deren MD5-Pr\u00fcfsumme mit dem Originalzertifikat \u00fcbereinstimmen. Dieses Zertifikat anschlie\u00dfend in die Verbindung eingeschleust, f\u00fchrt dazu, dass beim Kommunizieren ein vom Angreifer erzeugter und unbemerkt untergeschobener Schl\u00fcssel verwendet wird. Der Angreifer kann daraufhin die \u00fcbertragenen Daten unbemerkt entschl\u00fcsseln.<\/p>\n<p>SHA-1 sollte es mindestens zur Pr\u00fcfsummenbildung sein.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SSL-Zertifikate zu pr\u00fcfen geh\u00f6rt zur grundlegenden Internethygiene. SSL-Zertifikate dienen dazu, Krypto-Schl\u00fcssel auszutauschen, mit der die Kommunikation durch Verschl\u00fcsselung vertraulich wird. Die Gefahr besteht jedoch, dass ein Angreifer eigene Schl\u00fcssel einschleu\u00dft, um die Inhalte der Kommunikation abzuh\u00f6ren &#8211; die sogenannte Man-in-the-Middle Attack. Daher stellt sich beim Importieren von Zertifikaten die Frage: Handelt es sich tats\u00e4chlich um &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/blog.embedded-system-design.de\/index.php\/2013\/08\/07\/gib-mir-mal-schnell-den-fingerabdruck-deines-ssl-serverzertifikats\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,3,8,13],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/677"}],"collection":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/comments?post=677"}],"version-history":[{"count":0,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/677\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/media?parent=677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/categories?post=677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/tags?post=677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}