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.

Links

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

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.

Veröffentlicht von

Sebastian

Als erfahrener Softwarentwickler entwickelt Sebastian in einer Softwareschmiede in Bonn Individualsoftware mit den Schwerpunkten in PHP und MySQL. Er hat eine pfiffige Frau sowie drei quirlige Söhne, fährt gerne Auto und liebt handwerkliche Arbeiten die im häuslichen Umfeld so anfallen.

11 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

Schreibe einen Kommentar

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

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.