Zusammenfassung
- RFC 6528 erhält TCPs fortschreitenden Sequenzraum, verbirgt aber die Beziehung zwischen Verbindungen durch eine schlüsselgebundene Funktion aus lokalen und entfernten Adressen und Ports.
- Das Verfahren erschwert blinde Vorhersagen aus der Ferne, ist aber keine Authentifizierung; Schlüsselwechsel, TIME-WAIT, NAT-Leckage und die Wahl kurzlebiger Ports bleiben Teil der Steuerungsfläche.
Eine Initial Sequence Number muss zwei Aufgaben erfüllen, die in entgegengesetzte Richtungen ziehen. Sie soll fortschreiten, damit eine neue Inkarnation einer Verbindung kein altes Segment akzeptiert. Zugleich darf sie nicht verraten, wo die nächste Verbindung beginnen wird. Eine einzige sichtbare Uhr erfüllt den ersten Impuls und untergräbt den zweiten.
RFC 793 schlug einen globalen 32-Bit-Generator vor, der ungefähr alle vier Mikrosekunden um eins steigt. Das Problem veralteter Segmente war real. RFC 6528 weist jedoch darauf hin, dass TIME-WAIT und TCPs Quiet-Time-Regel bereits einen großen Teil dieser Last tragen. Einige von BSD abgeleitete Stacks nutzten steigende ISNs dennoch als Heuristik, um schnelle Wiederverwendungen derselben Verbindung zuzulassen. Damit wurde der Takt zugleich zur Kompatibilitätsgewohnheit und zur Angriffsfläche für Vorhersagen.
Diese Vorhersagbarkeit war folgenreich, weil ein Angreifer außerhalb des Pfades die Antwort nicht immer sehen musste. Ließ sich die nächste Server-ISN aus einer früheren Verbindung abschätzen, konnte er das letzte ACK des Dreiwege-Handshakes fälschen und einen Dienst ausnutzen, der der Quelladresse vertraute. Das historische Beispiel der entfernten Anmeldung ist weitgehend SSH gewichen, doch RFC 6528 hält fest, dass adressbasiertes Vertrauen in anderen Systemen fortlebt. Protokollschwäche und falsche Vertrauensannahme der Anwendung verstärkten einander.
Jede ISN unabhängig zufällig zu wählen, würde die Vorhersage erschweren, könnte aber Heuristiken zur Wiederverwendung brechen, die eine monotone Bewegung erwarten. Den Zustand jeder geschlossenen Verbindung aufzubewahren, würde die Sicherheit auf Kosten des Speichers wiederherstellen. RFC 6528 nimmt einen dritten Weg: Fortschritt innerhalb einer Verbindungsidentität bleibt erhalten, während verschiedene Identitäten voneinander unabhängig erscheinen.
Ein privater Versatz für jedes Gespräch
Die Empfehlung ist kompakt: ISN = M + F(localip, localport, remoteip, remoteport, secretkey). M ist der Vier-Mikrosekunden-Takt. F ist eine pseudorandomisierte Funktion über das Vierertupel der Verbindung und ein Geheimnis. Der Takt erhält eine fortschreitende Komponente; der schlüsselgebundene Versatz gibt jeder Kombination aus lokaler Adresse, lokalem Port, entfernter Adresse und entferntem Port einen eigenen scheinbaren Sequenzraum.
Entscheidend ist nicht, dass die Funktion kompliziert aussieht. F darf von außen nicht berechenbar sein. Andernfalls liefert eine auf einer Verbindung beobachtete ISN Material zur Vorhersage einer anderen. Das Tupel ist nicht geheim; der Schutz beruht auf dem Schlüssel und auf einer Funktion, deren Ausgabe ohne ihn nicht rekonstruiert werden kann.
Diese Trennung vermeidet es, die Geschichte jeder beendeten Verbindung zu speichern. Bei der Wiederverwendung desselben Vierertupels schreitet der Raum weiter fort, weil M steigt; ein anderes Tupel erhält einen anderen Versatz. Das Verfahren ist daher nicht bloß Zufall, der auf TCP geklebt wurde, sondern ein Ausgleich zwischen Kontinuität des Sequenzraums und Undurchsichtigkeit über Verbindungen hinweg.
Auch das Geheimnis hat einen Lebenszyklus
RFC 6528 hält einen 128-Bit-Schlüssel für sein Bedrohungsmodell für ausreichend und erlaubt ein echtes zufälliges oder ein hostbezogenes Geheimnis. Es nennt Anlässe für einen Wechsel statt eines universellen Intervalls: Systemstart, verstrichene Zeit oder hinreichend häufige Nutzung. Das sind operative Entscheidungen, keine folgenlose Wartung.
Ein Schlüsselwechsel verändert den Sequenzraum wiederverwendeter Verbindungen. Wenn ein System wechselt, ohne den Zustand beendeter Verbindungen zu behalten, muss es möglicherweise eine Ruhezeit von zwei maximalen Segmentlebensdauern einhalten. Eine Sicherheitsmaßnahme, die TIME-WAIT ignoriert, kann genau jene Lebenszyklus-Eigenschaft beschädigen, die sie schützen sollte.
Der RFC beschreibt MD5 als eine für dieses eng umrissene Problem des Ratens aus der Ferne akzeptable Implementierungsoption und fordert zugleich die Abwägung stärkerer Funktionen. Diese Aussage gilt nur für das Design und sein Bedrohungsmodell von 2012. Sie ist weder eine Empfehlung von MD5 für Authentifizierung oder Signaturen noch ein Beleg dafür, was heutige Betriebssysteme einsetzen.
Gute ISNs bleiben eine lindernde Maßnahme. Wer den Verbindungsaufbau mithört, kennt den Sequenzzustand; ein Angreifer auf dem Pfad hat ohnehin stärkere Möglichkeiten. RFC 6528 nennt IPsec und TCP-AO als kryptografische Authentifizierungsgrenzen. Es hält zudem zwei Nebeneffekte fest: getrennte ISN-Räume können helfen, Hosts hinter einem NAT zu zählen, während zufällige kurzlebige Ports das zu erratende Vierertupel schwerer vorhersagbar machen.
Die einzige Quelle ist RFC 6528, veröffentlicht im Februar 2012 auf dem Standards Track. Er ersetzt RFC 1948 und aktualisiert RFC 793. Er beschreibt eine Methode gegen blinde Sequenzvorhersage, aber keine aktuellen Implementierungsstandards, Schlüsselwechselpraktiken oder Angriffshäufigkeiten.
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
