OpenBSD-Chef de Raadt kritisiert patentierten TCP-Fix

Die IETF will ein kürzlich erneut diskutiertes Sicherheitsproblem des Transmission Control Protocol nun endlich beseitigen.

In Pocket speichern vorlesen Druckansicht 155 Kommentare lesen
Lesezeit: 3 Min.

Die IETF will ein kürzlich erneut diskutiertes Sicherheitsproblem des Transmission Control Protocol (TCP) nun endlich beseitigen -- und stößt auf Kritik unter anderem vom OpenBSD-Chefentwickler Theo de Raadt.

Cisco hat ein Patent auf das bereits in einem IETF-Draft beschriebene Verfahren angemeldet, mit dem die IETF das Risiko von unerwünschten TCP-Verbindungsabbrüchen durch Dritte deutlich reduzieren will. Cisco versichert zwar in einer Mail an die IETF, man wolle jedem unter "vernünftigen, nicht diskriminierenden Bedingungen" eine Lizenz dafür erteilen. Was das konkret bedeutet, führt Cisco jedoch nicht aus.

De Raadt warnt in einer Mail, Ciscos Vorschlag werfe gleich eine ganze Reihe von Problemen auf und sollte nicht befolgt werden. OpenBSD enthielte bereits seit geraumer Zeit eine bessere Lösung, die sich die anderen Hersteller ansehen sollten.

Der Angriff beruht darauf, dass es einem Angreifer ohne allzu großen Aufwand möglich ist, eine existierende TCP-Verbindung zu beenden, ohne dass er dazu die Pakete sehen muss, die die Verbindungspartner austauschen. Dazu fälscht er zum Beispiel TCP-Pakete in denen das RST-Flag zum Reset einer Verbindung gesetzt ist. Damit der Empfänger das Paket akzeptiert und die Verbindung beendet, muss es zu der Verbindung passen. Zum einen müssen dazu IP-Adressen und Ports von Empfänger und Absender stimmen. Zum anderen muss der Angreifer eine gültige Sequenznummer erraten. Dies ist ein 32-Bit-Wert, mit dem die Verbindungspartner die übetragenen Daten Byte-weise durchnummerieren.

Ursprünglich dachte man, dass die Wahrscheinlichkeit, einen 32-Bit-Wert durch Ausprobieren herauszufinden, ausreichend klein wäre. Paul Watson wies in seinem Paper "Slipping In The Window: TCP Reset Attacks" jedoch darauf hin, dass es in vielen Fällen gar nicht nötig sei, den Wert exakt zu erraten. Der Server akzeptiere alle Pakete aus einem Fenster von bis zu 64 KByte. Damit könne eine Angreifer selbst mit einer DSL-Verbindung innerhalb weniger Minuten den gesamten Bereich abklappern, um eine gültige Sequenznummer zu finden.

Der IETF-Draft sieht nun vor, dass ein Server nur dann direkt mit einem Verbindungsende reagiert, wenn die Sequenznummer exakt passt. Liegt sie hingegen nur im aktuellen Fensterbereich, sendet er ein ACK-Paket an den angeblichen Absender, fragt also quasi nochmal nach.

OpenBSD verwendet bereits seit Jahren für TCP-Verbindungen zufällig ausgewählte Source-Ports. Da der "blinde" Angreifer diesen dann ebenfalls erraten muss, erhöht sich dessen Aufwand beträchtlich. Andere Betriebssysteme wie Windows oder Linux setzen den Source-Port für jede neue Verbindung sequentiell hoch, sodass dieser vergleichweise leicht zu ermitteln ist.

Siehe dazu auch: (ju)