
Polnische Forscher haben eine neue Methode der Netzwerkteganographie vorgeschlagen, die auf den Besonderheiten des weit verbreiteten Transportprotokolls TCP basiert. Die Autoren der Arbeit glauben, dass ihr Schema beispielsweise zur Übertragung versteckter Nachrichten in totalitären Staaten verwendet werden kann, die eine strenge Internetzensur einführen. Lassen Sie uns untersuchen, worin genau die Neuerung besteht und wie nützlich sie tatsächlich ist.
Zuerst müssen wir definieren, was Steganographie ist. Steganographie ist die Wissenschaft der versteckten Nachrichtenübertragung. Das heißt, unter Verwendung ihrer Methoden versuchen die Parteien, die Tatsache der Übertragung zu verbergen. Darin besteht der Unterschied zwischen dieser Wissenschaft und der Kryptographie, die versucht, den Inhalt der Nachricht unlesbar zu machen. Es ist erwähnenswert, dass die berufliche Gemeinschaft der Kryptographen Steganographie aufgrund der Nähe ihrer Ideologie zum Prinzip „Security through obscurity“ eher mit Verachtung betrachtet (ich bin mir nicht sicher, wie man das richtig auf Russisch sagt, etwas wie „Sicherheit durch Unkenntnis“). Dieses Prinzip wird beispielsweise von der Firma Skype Inc. verwendet – der Quellcode der beliebten Kommunikationssoftware ist geschlossen, und niemand weiß genau, wie die Daten verschlüsselt werden. Übrigens klagten darüber kürzlich Vertreter der NSA, wie der bekannte Spezialist Bruce Schneier in seinem Blog.
Wenn wir zur Steganografie zurückkehren, beantworten wir die Frage, warum sie überhaupt notwendig ist, wenn es Kryptografie gibt. Tatsächlich kann man eine Nachricht mit einem modernen Algorithmus verschlüsseln, und wenn ein ausreichend langes Passwort verwendet wird, kann diese Nachricht von niemandem gelesen werden, es sei denn, Sie möchten es so. Dennoch kann es manchmal hilfreicher sein, den bloßen Fakt einer geheimen Übertragung zu verbergen. Zum Beispiel, wenn die entsprechenden Behörden Ihre verschlüsselte Nachricht abgefangen haben, sie aber nicht entschlüsseln können und sehr neugierig sind, gibt es schließlich auch nicht-computerbasierte Methoden der Einflussnahme und Informationsbeschaffung. Es klingt dystopisch, aber seien wir ehrlich, das ist prinzipiell möglich. Daher wäre es besser, es so zu machen, dass diejenigen, die nicht darüber Bescheid wissen sollten, überhaupt nicht erfahren, dass eine Übertragung stattgefunden hat. Polnische Forscher haben genau eine solche Methode vorgeschlagen. Dabei wollen sie dies mit einem Protokoll tun, das jeder Internetnutzer täglich tausendmal verwendet.
Hier sind wir direkt beim Transmission Control Protocol (TCP) angekommen. Alle Einzelheiten zu erklären, macht natürlich keinen Sinn – es wäre langwierig und langweilig, und die Leute, die es wissen müssen, wissen es ohnehin. Kurz gesagt, TCP ist ein Transportprotokoll (d.h. es arbeitet „über“ IP und „unter“ Anwendungsschichtprotokollen wie HTTP, FTP oder SMTP), das eine zuverlässige Datenübertragung vom Sender zum Empfänger gewährleistet. Zuverlässige Lieferung bedeutet, dass, wenn ein Paket verloren geht oder verändert ankommt, TCP dafür sorgt, dass dieses Paket erneut gesendet wird. Es sei angemerkt, dass mit Veränderungen in einem Paket nicht eine absichtliche Verfälschung der Daten gemeint ist, sondern Übertragungsfehler, die auf physikalischer Ebene auftreten. Zum Beispiel, während ein Paket über Kupferdrähte übertragen wird, können ein paar Bits ihren Wert ändern oder sogar im Rauschen verloren gehen (übrigens wird für Ethernet ein Bit-Fehler-Rate von etwa 10^-8 angenommen). Paketverluste auf dem Weg sind im Internet ebenfalls ein relativ häufiges Phänomen. Dies kann zum Beispiel durch die Überlastung von Routern passieren, was zu überfüllten Puffern und somit zum Verlust aller neu eintreffenden Pakete führt. Normalerweise macht der Anteil verlorener Pakete etwa 0,1 % aus, und bei einem Wert von ein paar Prozent hört TCP auf, ordnungsgemäß zu funktionieren – der Nutzer wird alles extrem langsam erleben.
So sehen wir, dass die Übertragung (Retransmission) von Paketen ein häufiges und durchaus notwendiges Phänomen für TCP ist. Warum also nicht nutzen, um die Anforderungen der Steganographie zu erfüllen, zumal TCP, wie bereits erwähnt, überall eingesetzt wird (verschiedene Schätzungen zufolge beträgt der Anteil von TCP im Internet heute 80-95 %). Der Kern der vorgeschlagenen Methode besteht darin, im übertragenen Nachrichten nicht das zu senden, was im ursprünglichen Paket war, sondern die Daten, die wir zu verbergen versuchen. Dabei ist es nicht so einfach, eine solche Täuschung zu erkennen. Man muss wissen, wonach man suchen muss – die Anzahl der gleichzeitigen TCP-Verbindungen, die über den Anbieter laufen, ist einfach enorm. Wenn man das ungefähre Niveau der Retransmission im Netzwerk kennt, kann man den Mechanismus der steganografischen Übertragung so anpassen, dass Ihre Verbindung sich von anderen nicht unterscheidet.
Natürlich ist diese Methode nicht ohne Mängel. Zum Beispiel wird es praktisch nicht so einfach sein, sie zu implementieren – dies erfordert eine Änderung des Netzwerk-Stacks in Betriebssystemen, obwohl daran nichts grundsätzlich Kompliziertes ist. Zudem kann man bei ausreichender Ressourcenausstattung trotzdem "geheime" Pakete entdecken, dazu muss man jedes Paket im Netzwerk durchsuchen und analysieren. Im Allgemeinen ist dies jedoch praktisch unmöglich, weshalb man normalerweise nach auffälligen Paketen und Verbindungen sucht; die vorgeschlagene Methode sorgt jedoch dafür, dass Ihre Verbindung unauffällig bleibt. Außerdem steht es Ihnen frei, geheime Daten zur Sicherheit zu verschlüsseln. Dabei kann die Verbindung selbst unverschlüsselt bleiben, um weniger Verdacht zu erregen.
Die Autoren der Arbeit (übrigens, falls es jemanden interessiert, ) haben auf der Ebene von Simulationen gezeigt, dass die vorgeschlagene Methode wie vorgesehen funktioniert. Vielleicht wird in Zukunft jemand damit beginnen, ihre Idee in die Praxis umzusetzen. Und dann, hoffen wir, wird es im Internet etwas weniger Zensur geben.
Quelle: habr.com
