TLS Handshake Problem in Mozilla Firefox extrem langsam: Lösung

Seit einigen Monaten ist der Firefox auch in der gegenwärtig aktuellen Version 57.0.3 mit dem Abruf von vielen Webseiten extrem langsam geworden. Beim genauen Blick in die Statusleiste unten links lesen Nutzer auch immer wieder “TLS Handshake wird durchgeführt“. Das ist ein echtes Problem, denn dies bremst jeden Seitenaufbau enorm aus und bequemes surfen ist damit unmöglich.

Da es zu diesem Problem mehrere Lösungsansätze gibt, stelle ich an dieser Stelle zunächst den TLS Handshake in seiner Funktion vor und in Folge dann vier unabhängige Lösungsvorschläge. Bitte alle vier Lösungen unabhängig voneinander betrachten und herausfinden welches zu Deiner eigenen Lösung führen könnte.

Ich für meinen Teil habe mit dem vierten und damit letzten Lösungsvorschlag das Problem auf meinem Rechner in den Griff bekommen. Seither wird der Seitenaufbau nicht weiter ausgebremst.

Was ist überhaupt der TLS Handshake?

TLS steht für “Transport Layer Security” und dient dazu eine TCP Verbindung mit Ende-zu-Ende-Verschlüsselung herzustellen. Der TLS Handshake führt die Identifikation und Authentifizierung zwischen Client und Server auf Basis asymetrischer Verschlüsselungsverfahren und der Public-Key-Kryptographie durch. Des weiteren werden bei diesem Austausch die verwendeten Algorithmen und Schlüssel ausgehandelt.

Konfiguration im Firefox

TLS ist das neue SSL und wird inzwischen von immer mehr Seiten unterstützt. Der Standard wurde dahingehend im Sommer 2017 überarbeitet und Firefox hat dies inzwischen standardmäßig aktiviert.

Um das Problem mit dem TLS-Handshake zur Lösung zu führen kann man in einen neuen Tab die Config öffnen, indem man folgende Adresse in die Adressleiste eintippt:

about:config

Sobald man diese Adresse mit der Eingabeleiste bestätigt folgt der nachstehende Warnhinweis:

Diesen muss man über den Button “Ich bin mir der Gefahren bewusst!” bestätigen und erhält dann eine lange Auflistung von Schlüssel-Werte-Päärchen.

In der oberen Suchleiste tippt man nun folgenden Schlüssel ein:

devtools.remote.tls-handshake-timeout

Dahinter verbirgt sich der Wert den wir anpassen werden. Dieser Wert steht standardmäßig auf 10000. Damit sind Millisekunden gemeint und das kann schon mal eine verdammt lange Zeit werden, bis der Timeout greift. Vor allem dann, wenn mehrere blockierenden Zugriffe nacheinander abgearbeitet werden. Da hat man oft das Gefühl, der Rechner oder das Internet buggen unermesslich.

Hier tippt man nun einen neuen Wert ein. Mit 0 würde das TLS gänzlich abgeschaltet, was meiner Einschätzung nach nicht zu empfehlen ist. Besser wäre es den Wert auf ein minimales Timout zu setzen. Das sind meiner Erfahrung und Empfehlung nach 600 Millisekunden. Denn sollte das eines Tages auf immer mehr Seiten funktionieren, soll TLS ja auch wirklich genutzt werden.

Nach diesen Änderungen sollte ein Browserneustart vorgenommen werden. Damit wird sichergestellt, dass die neue Einstellung auch angewendet wird.

Einschätzung:

Mit dieser Lösung habe ich beim ersten Versuch geglaubt es sei behoben. Viele andere Internetquellen behaupten auch selbiges. Jedoch musste ich enttäuscht feststellen, dass diese Einstellung an meinem Rechner nix bewirken konnte.

Profileinstellungen im Firefox

In manchen Foren wird auch darüber diskutiert ein neues Firefox-Profil zu erzeugen. Das hat bei mir jedoch nicht funktioniert und möchte ich nur als alternative Option vorstellen.

Über einen neuen Tab und mittels Eingabe von

 about:profiles

lassen sich die Profileinstellungen des Browsers bearbeiten. Sofern an dieser Stelle noch keinerlei Einstellungen vorgenommen wurden, existiert hier nur ein Eintrag mit “Profil: default”. Nun kann man über den Button “Neues Profil anlegen” ein frisches Benutzerprofil anlegen. Dies sorgt dafür, dass alle bisherigen Einstellungen vergessen werden.

Abschließend muss man über den Button “Als Standardprofil festlegen” das bisherige Profil ablösen.

Zur Sicherheit nochmal den Browser neustarten und das geänderte Verhalten beobachten.

Google Chrome

Als weitere Alternative zum Browsen anstelle des Mozilla Firefox zeigt sich da der Google Chrome auf. Da schlägt das mit dem TLS Handshake möglicherweise gar nicht erst fehl und das Browsen klappt in gewohnter Weise. Sofern Du nun auf den Mozilla Firefox verzichten kannst dann rate ich über eine Installation von Google Chrome nachzudenken.

Einstellung in ESET NOD32 Antivirus Virenscanner

Es gibt Hinweise darauf, dass die Verwendung von ESET NOD 32 Antivirus bei dieser Problematik mit einspielen. Möglicherweise gilt dies auch für Programme anderer Antivirenhersteller.

Sofern Du diesen Virenscanner benutzt, prüfe die Einstellungen im Programm unter Einstellungen und dann unten rechts auf “Erweiterte Einstellungen” oder diese einfach direkt mittels der Taste F5 öffnen. Überprüfe unter “WEB UND E-MAIL” die Einstellungen zu SSL/TLS. Dort kann die gesamte Protokollfilterung deaktiviert werden:

Man könnte nun die Protokollfilterung deaktiviert lassen. Dies ist jedoch vielleicht nicht die richtige Auswahl, da damit die Inhaltsüberprüfung für SSL verschlüsselte Seiten komplett deaktiviert werden würde. 

Der entscheidende Punkt an dieser Stelle ist den Rechner einmal neu zu starten und die SSL Protokollfilterung danach wieder zu aktivieren. Nach einem ggf. weiteren Neustart funktioniert der Datenabruf von diversen Seiten wieder in gewohnter Geschwindigkeit. Beim mir hat dieser Trick auf allen betroffenen Rechnern funktioniert auf denen ESET NOD32 Antivirus Virenscanner installiert ist.

Möglicherweise zeichnet sich dieses Problem auch in anderen Virenscannern ab. Sofern ein anderer Virenscanner als der hier genannte verwendet wird, solltest Du auch die dortigen Einstellungen hinsichtlich des Webfilters auf SSL geschützten Seiten überprüfen.

Samsung Galaxy S9 DUOS 64GB Handy, hellblau/Silber, Android 8.0 (Oreo), Dual SIM

Links

https://de.wikipedia.org/wiki/Transport_Layer_Security

Update 21. Oktober 2019

Danke an Jörg – siehe Kommentare weiter unten! Mittels folgendem Skript könnte es zur Lösung des oben genannten Problems kommen:

REM 1. Schließe alle offenen Firefox Fenster

REM 2. Öffne die Konsole über Windows->Start und der Eingabe von cmd

REM 3. Wechlse in das Profilverzeichnis von Firefox:
cd C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\

REM 4. Suche die den Zertifikatspeicher(Datei) für Firefox:
dir cert9.db /s

REM 5. Es sollte nur eine Datei gefunden werden - diese nun löschen:
del /s /q cert9.db

REM 6. Abschließend den Firefox neustarten und über das Ergebnis freuen!

Fazit

Konnte ich Dir mit dem Beitrag helfen oder hast Du ganz andere Erfahrungen? War es bei Dir auch der Virenscanner? Liege ich vielleicht falsch?

Dann hinterlasse mir hier einen Kommentar.


Hat Dir mein Beitrag gefallen?

Unterstütze meine Arbeit und werde noch heute Patreon!

Veröffentlicht von

Sebastian

Als Softwareschmied entwickelt Sebastian seit zwanzig Jahren Individualsoftware mit den Schwerpunkten PHP und MySQL auf diversen Linux-Systemen. Er hat eine pfiffige Frau sowie drei quirlige Söhne, fährt gerne Fahrrad und liebt handwerkliche Arbeiten die im häuslichen Umfeld so anfallen.

17 Gedanken zu „TLS Handshake Problem in Mozilla Firefox extrem langsam: Lösung“

  1. Hallo, ansich hast du mir schon einen Hinweis gegeben woran es liegen könnte. Aber alle beiden Methoden haben nicht geklappt….
    Meine Seiten laden immer noch nicht

  2. Als erfahrener Softwareentwickler solltest du wissen, dass:

    a) 300ms bei weitem nicht ausreichen. Es ist physikalisch (!) nur unter besten Umständen möglich in dieser Zeit einen TLS-Handshake zur anderen Seite der Erde durchzuführen: 1 RTT über 20.000km ergibt ~133ms, TLS 1.2 braucht 2 RTTs, ergo ~266ms… ich brauch dir glaube ich nicht erklären warum es in der Realität wesentlich schlechter aussehen wird,
    b) ein Antiviren-Tool ein Scheunentor von Sicherheitslücke darstellt, was TLS inspecten kann, und
    c) ein Blick in den dazugehörigen Code nicht geschadet hätte, um zu schauen, was diese Option eigentlich macht. Hier: https://dxr.mozilla.org/mozilla-central/search?q=tls-handshake-timeout&redirect=false

    1. Hallo UmweltLiteratur,

      Danke für Deinen konstruktiven Beitrag.

    2. Den TLS-Timeout habe ich auf Deinen Hinweis hin auf 600ms erhöht.
    3. Den Virenscanner auszuschalten halte ich durchaus für fragwürdig, was ich in meinem Beitrag ja auch ausdrücklich genannt habe.
      1. Der Hinweis von UmweltLiteratur bzgl des Anti-Viren-Programms sollte wohl eher so verstanden werden, dass die Anti-Viren-Software selbst als potentielle Schwachstelle anzusehen ist – vor allem wenn sie auch noch eigentlich verschlüsselte Verbindungen aufbricht (ein Unding!). Manche bezeichnen Anti-Viren-Software auch gerne als Schlängenöl, da sie bei ernsthaften Angriffen ziemlich nutzlos ist, potentiell sogar gefährlich sein kann, aber dem Nutzer das gegenteilige suggeriert. Im übrigen: Welchen Wert hat network.http.tls-handshake-timeout bei euch bzw. ist dieser vorhanden? Bei devtools.remote.tls-handshake-timeout würde ich zu erst einmal vermuten, dass dieser Wert nur bei geöffneten DevTools Anwendung findet, aber vielleicht ein Fallback darstellt, wenn aus welchen Gründen auch immer network.http.tls-handshake-timeout nicht gesetzt, vorhanden, etc. ist.

  3. Dank Deines Hinweises auf Eset konnte ich bei mir das Problem lösen, nachdem ich gezielt diesbezüglich gesucht habe und diesen Beitrag gefunden habe: https://support.eset.com/kb3126/
    Was es bei mir dann wirklich war, das einmalige ein- und auschalten des TLS Scannings oder das zeitweise Abschalten des Stammzertifikates, kann ich nicht sagen, da ich beides gemacht habe. Nach dem Neustart des Rechners gings dann wieder.

  4. Die beste Lösung ist: Chrome
    Mozilla steuert sich selbst ins Abseits, wenn die keine Lösung für dieses ärgerliche Problem auf den Tisch legen.

    Wenn sich der FF einmal aufgehangen hat, geht keine einzige Seite mehr auf. Auch nicht DIE, die vorher noch funktionierten. Ich muss meinen Firefox x-mal am Tag komplett beenden und “Reste” im Task-Manager löschen, bevor das Ding wieder funktioniert.

  5. Hallo Sebastian,
    vielen Dank für den ausführlichen Beitrag.
    Bei mir führte der Hinweis auf Virenscanner als Ursache zur Lösung des Problems:
    Ich benutze den AVAST Free Antiviren-Schutz. Ich habe in den Komponenten-Einstellungen zunächst den Web-Schutz komplett deaktiviert. Und siehe da: nach Rechner-Neustart war der Firefox wieder flott! – Ich habe dann sukzessive die einzelnen Module des AVAST-Webschutzes wieder reaktiviert (über “anpassen”) und das sonderbare Ergebnis ist: selbst nach kompletter Aktivierung des Webschutzes war der Firefox weiterhin schnell. Warum – bleibt ein Geheimnis von AVAST und Firefox; aber Hauptsache, der Browser läuft wieder wie gewohnt.

  6. Bei mir hat nichts davon funktioniert. Hat auch nichts mit RTT zu tun, weil es auch auf lokalen Webseiten (Router Config, Testserver etc.) auftritt. Es ist zudem bei mir völlig unabhängig davon, ob der Aufruf über eine Firewall geht oder nicht.
    Das Problem scheint tief im Firefox-Code zu stecken.
    Ich schätze es geht eher in die Richtung von kaputtem Threading, einigen Threads die mit Exception hängen, aber im Speicher bleiben.
    Der einzige Fix war für mich Chrome – Schade.

    Eine Häufung fällt mir allerdings auf, seitdem neueste Überwachungsgesetze in Kraft sind. Da FF allein schon beim eintippen von URLs in die Suchzeile TLS-Traffic an Google generiert und der vom Gesetzgeber möglicherweise korrumpiert wird, könnte ein Fehler in FF’s Engine durchaus zu solchen Deadlocks bei manipuliertem Traffic führen.
    Bug oder Feature? Das hätte jedoch weitreichendere Folgen.

  7. Die Timeout-Zeit zu verringern hat bei mir ebenfalls nicht geholfen. Jedoch hat das neue Profil der gewünschten Effekt gebracht. Browser ist wieder so schnell wie gewohnt. Stellst sich die Frage ob bei mir überhaupt ein TLS-Problem vorgelegen hat oder die Ladezeiten anderweitig verursacht wurden.

  8. Hallo. Aus expliziten Gründen habe ich noch immer “Linux – Ubuntu 14.04” unter PC 32 Bit.

    Daher sind für mich schon am Start der Lesung nur die ersten beiden Versionen möglich. Da du diese jedoch eher negativ beschrieben hast, frage ich mich doch, ob es noch eine andere Möglichkeit für mich geben könnte. Als wirklicher Laie sind Profi Erklärungen nicht gerade sinnvoll, daher erhoffe ich mir eine Antwort von dir, da du gut zu verstehen bist.

    Danke, Merlin

  9. Bei solchen zum Teil unterirdischen Kommentaren und nutzlosen Wortmeldungen, muss man Dir dein Engagement und deine Motivation, anderen Leuten Hilfestellung und Lösungsansätze anzubieten wirklich hoch anrechnen.

    Beste Grüße

  10. Hallo

    Vielen Dank für die Tipp’s!

    Ich nutze hauptsächlich Firefox und mir ist in den letztem Tagen, die teilweise extrem lange Ladezeit von manchen Seiten aufgefallen und unten stand dann immer der Text mit dem “TLS Handshake”. Da bin ich durch Google auf deinen Artikel gestoßen. Ich nutze seid sehr vielen Jahren Eset Nod32 und habe darum deine Anleitung befolgt.
    Und es scheint geklappt zu haben!
    Dein Blog ist da für mich der besste Test gewesen, denn da musste ich auch sehr lange warten, jetzt nicht mehr.
    Eset hatte vor einigen Jahren schon mal das Problem mit SSL. Da bin ich dan zu einem anderen Anbieter (Kaspersky) gewechselt, aber die ganzen anderen Anbieter greifen mir zu tief in das System ein und darum bin ich dann wieder zurück zu Eset, aber eben nur den Virenscanner keine Security-Suite, davon halte ich gar nichts, egal von welchem Anbieter.

    Also vielen Dank noch einmal für den Tipp!

    Gruß

    Jörg W.

  11. Hallo,

    Ich dieses Blog gefunden, da ich auch schon seit gestern dieses “Handschütteln” Hinweis unten in Firefox Browser aufgefallen ist und plötzlich viele Seiten luden nur ganz langsam, oder gar nicht mehr.
    Nun die Lösungsvorschläge von der Blogerfasser ließen mir erstmal. Bevor ich mein Firefox Profil neu erstelle, wovon ich mich eigentlich sehr gescheut habe, denn dann gehen wohl die ganzen Einstellungen flöten. Wieder Haufen Arbeit alles wieder herzurichten, wie man es gewohnt ist.

    Ich habe kurzerhand meinen Fritzbox neu gestartet und voilà, alles geht wieder wunderbar! 🙂

  12. Hallo, Frage zu Solarlog 1200 u. Solarlog 2000:
    Ich bekomme seit einiger Zeit keine Ertragsmail mehr, wobei die Ertragsdaten auf dem Portal fortlaufend aufgezeichnet werden.
    Beide Solarlogs laufen über den gleichen Server, kann das Problem am Server liegen?
    Bei der E-Maileinstellung am Solarlog erscheint der Fehler: 56 beim SSL- Handshake.

  13. Bin hier aktuell drauf gestoßen, weil mein neues Notebook das gleiche Verhalten zeigte. Nach Stunden des Debuggens konnte ich bei mir das Problem lösen, indem ich in den Tiefen der WLAN-Adapter-Einstellungen “bevorzugt 2,4 GHz” ausgewählt habe. Anscheinend war mit meinem 5 GHz WLAN was im Argen.

  14. Ursache dürfte eher der Zertifikatsspeicher von Firefox sein. Dadurch das Symantec und LetEncrypt SSL Zertifikate nur noch eine kurze Laufzeit haben, werden die nun häufiger getauscht als früher.

    Da ich viele genau solcher Webseiten nutze, auch welche mit selbsterzeugten Zertifikaten (vor allem die in einen lokalen Entwicklungsgebungen) war bei mir der Effekt teilweise 10 Sekunden und mehr.

    Abhilfe bei mir:
    Folgendes eintippen in der Adressleiste:
    about:profiles
    Unten werden einge Verzeichnisse angezeigt:

    Wichtig ist in dem Fall das “Wurzel Verzeichnis”
    Über den Button “Ordner Öffnen” sollte der Windows Explorer in dem Ordner starten:

    C:\Users\\AppData\Roaming\Mozilla\Firefox\Profiles\.

    Dort sollte eine Datei ‘cert9.db’ vorhanden sein.

    Firefox beenden und die Datei Zertifikatsdatei umbenennen (z.b. in cert9.db_bak)
    Firefox neustarten und die Datei wird neu erstellt, ist ca 20% kleiner und das Problem ist bei mir verschwunden.

    Vermutlich hat das Abschalten der Eset SSL Protokollfilterung in Kombination mit neuem Firefox Profil eine ähnliche Wirkung. Aber diese Lösung lässt sich in unter 10 Sekunden umsetzen und bei “Nicht-gefallen” kann man die Bak datei auch wieder zurückkopieren .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere