{"id":1440,"date":"2013-06-16T16:24:08","date_gmt":"2013-06-16T14:24:08","guid":{"rendered":"http:\/\/blog.benny-baumann.de\/?p=1440"},"modified":"2013-06-16T16:24:08","modified_gmt":"2013-06-16T14:24:08","slug":"hurdenlauf-beim-firefox-in-sicher","status":"publish","type":"post","link":"https:\/\/blog.benny-baumann.de\/?p=1440","title":{"rendered":"H\u00fcrdenlauf beim Firefox in Sicher"},"content":{"rendered":"<p>Nachdem man inzwischen niemandem mehr trauen kann, ist eine der h\u00e4ufigsten Fragen, wie man sich beim Surfen im Web absichern kann. Nun mag die Verwendung von SSL naheliegen, da aber auch den CAs nicht zu trauen ist &#8211; ganz abgesehen davon, dass das zu Grunde liegende zentralistische und hierarchische System kaputt ist &#8211; bleibt einem nicht viel \u00dcbrig, als jedem Website-Zertifikat einzeln zu vertrauen. Wie das geht, und welche Fallstricke es dabei gibt, m\u00f6chte ich an dieser Stelle einmal zusammenfassen. Wer jedoch keine fundierten Kenntnisse \u00fcber Kryptographie und die ganzen Zusammenh\u00e4nge hat, sei ausdr\u00fccklich darauf hingewiesen, <strong>dass diese Anleitung eine Umgehung des in Firefox integrierten Trust Models darstellt und man daher nachfolgend vollst\u00e4ndig auf sich selbst gestellt ist!<\/strong><\/p>\n<p><strong>WARNUNG: Finger weg, wenn man sich nicht sicher ist!!!<\/strong><!--more--><\/p>\n<p>Fangen wir an: als ersten Schritt sollte man seine Stammzertifikatsliste gr\u00fcndlich s\u00e4ubern. Der Shortcut sind 116 Bytes (leider nicht Tweet-F\u00e4hig ;-(), die dem Firefox eine leere Zertifikatsdatenbank geben:<\/p>\n<pre lang=\"bash\" escaped=\"true\">\r\ncat &lt;&lt;SECUREFIREFOX | base64 -d | bzip2 -d &gt; cert8.db\r\nQlpoOTFBWSZTWcl5P9wAAM9\/o\/VBAggAEAAAwAABACIhmQYCABAACAAEiCAAVCUKAAGgaeSCKRJtTI\r\nxDCZoR6pMp0VhFWWGXhJwoAXfpBWBUCcKoiLs3qhOTcKRRjrt\/qO8Xknik7AAD8XckU4UJDJeT\/cA=\r\nSECUREFIREFOX\r\n<\/pre>\n<p>Diese Datei dem Firefox ins eigene Profil-Verzeichnis legen und gut ist &#8211; wer m\u00f6chte, kann sich vorher noch ein Backup der alten Datenbank erzeugen. Im Anschluss geht man in die Optionen des Firefox und schaut unter Erweitert den Tab Verschl\u00fcsslung und \u00f6ffnet dort die Zertifikatsverwaltung. Hier kontrolliert man, dass im Reiter Zertifizierungsstellen die Ansicht entweder leer ODER die aufgelisteten Zertifikate beim Klick auf &#8222;Vertrauen bearbeiten&#8230;&#8220; keine Trust-H\u00e4kchen f\u00fcr irgendwas gesetzt haben.<\/p>\n<p>Ist man mit diesem Schritt fertig, geht es jetzt noch daran, die Liste der akzeptierten Crypto-Verfahren etwas einzudampfen, da 3DES nicht mehr ganz zeitgem\u00e4\u00df ist. Also \u00f6ffnet man <a href=\"about:config\">about:config<\/a> und deaktiviert alle Cipher mit 128 Bit Schl\u00fcssell\u00e4nge oder weniger. Alternativ kann man folgenden Abschnitt in seine prefs.js im Profil-Verzeichnis aufnehmen:<\/p>\n<pre lang=\"javascript\">\r\nuser_pref(\"security.ssl3.dhe_dss_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.dhe_dss_camellia_128_sha\", false);\r\nuser_pref(\"security.ssl3.dhe_dss_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.dhe_rsa_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.dhe_rsa_camellia_128_sha\", false);\r\nuser_pref(\"security.ssl3.dhe_rsa_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.ecdh_ecdsa_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdh_ecdsa_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.ecdh_ecdsa_rc4_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdh_rsa_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdh_rsa_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.ecdh_rsa_rc4_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdhe_ecdsa_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdhe_ecdsa_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.ecdhe_ecdsa_rc4_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdhe_rsa_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.ecdhe_rsa_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.ecdhe_rsa_rc4_128_sha\", false);\r\nuser_pref(\"security.ssl3.rsa_aes_128_sha\", false);\r\nuser_pref(\"security.ssl3.rsa_camellia_128_sha\", false);\r\nuser_pref(\"security.ssl3.rsa_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.rsa_fips_des_ede3_sha\", false);\r\nuser_pref(\"security.ssl3.rsa_rc4_128_md5\", false);\r\nuser_pref(\"security.ssl3.rsa_seed_sha\", false);\r\n<\/pre>\n<p>Soviel zum ersten Teil der Einrichtung. Nun kommen die Stolpersteine. Als erster Punkt w\u00e4re hier zu nennen, dass Firefox absofort JEDES Zertifikat anmeckern wird, welches man ihm vorsetzt und daher eigentlich auf nahezu jeder Seite eine Zertifikatswarnmeldung erscheinen wird. Das ist so korrekt und auch der Grund, warum man mit einem derart konfigurierten Browser wissen sollte, was man tut.<\/p>\n<p>Bekommt man eine Zertifikatswarnseite sollte man zuerst unter technische Details nachgucken, worum es sich bei der Meldung handelt. Ist das Zertifikat abgelaufen oder ist das Zertifikat nicht bekannt? Besucht man eine Seite das erste Mal, so trifft vermutlich letzteres zu. Ist die Warnmeldung berechtigt, so kann man fortsetzen und wenn angeboten <strong>nach sorgf\u00e4ltiger Pr\u00fcfung<\/strong> eine Zertifikatsausnahme anlegen. Wichtigste Pr\u00fcfpunkte sind hierbei die ausstellende Zertifizierungsstelle, die G\u00fcltigkeitsdomain des Zertifikats, sein Verwendungszweck und der verwendete Schl\u00fcssel.<\/p>\n<p>In die Quere kommen kann einem an dieser Stelle HSTS (HTTP Strict Transport Security), was verhindert, dass man die Warnmeldung wegklicken kann, wenn das verwendete Zertifikat ung\u00fcltig ist. Leider bei\u00dft sich beim Firefox in Sicher hier der Firefox in den Schwanz, da er keinem vertraut und daher alle neuen Zertifikate &#8211; auch legitim vom Website-Betreiber verwendete &#8211; als unvertraut angesehen werden und daher abgewiesen werden.<\/p>\n<p>Interessant ist hierbei, dass Firefox zwar nicht direkt auf der Sperrseite erlaubt, ein Zertifikat zu entsperren, aber \u00fcber einen Umweg ist es dennoch m\u00f6glich, eine Ausnahme bei HSTS zu definieren. Hierzu muss man die Zertifikatsverwaltung \u00f6ffnen und explizit auf der Seite Server-Zertifikate den Punkt &#8222;Ausnahme hinzuf\u00fcgen&#8230;&#8220; bem\u00fchen. Dort gibt man die Domain des durch HSTS blockierten Seite ein und w\u00e4hlt &#8222;Zertifikat herunterladen&#8230;&#8220; Hat man sich von der Echtheit des heruntergeladenen Zertifikats \u00fcberzeugt, best\u00e4tigt man diese Ausnahme und kann nun durch Refresh der Webseite diese ganz normal nutzen.<\/p>\n<p>Und nun viel Spa\u00df mit Firefox in Sicher! \ud83d\ude09<\/p>\n<p class=\"wp-flattr-button\"><a href=\"https:\/\/blog.benny-baumann.de\/?flattrss_redirect&amp;id=1440&amp;md5=84ca0f23b01d3de1ae0057ff100d677c\" title=\"Flattr\" target=\"_blank\"><img src=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" srcset=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" alt=\"Flattr this!\"\/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Nachdem man inzwischen niemandem mehr trauen kann, ist eine der h\u00e4ufigsten Fragen, wie man sich beim Surfen im Web absichern kann. Nun mag die Verwendung von SSL naheliegen, da aber auch den CAs nicht zu trauen ist &#8211; ganz abgesehen davon, dass das zu Grunde liegende zentralistische und hierarchische System kaputt ist &#8211; bleibt einem [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[29],"tags":[15,112,52,50,67],"class_list":["post-1440","post","type-post","status-publish","format-standard","hentry","category-software","tag-firefox","tag-kryptographie","tag-security","tag-ssl","tag-uberwachung"],"_links":{"self":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1440"}],"version-history":[{"count":3,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1440\/revisions"}],"predecessor-version":[{"id":1443,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1440\/revisions\/1443"}],"wp:attachment":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}