TCP-steganografie of hoe u gegevensoverdracht op internet kunt verbergen

TCP-steganografie of hoe u gegevensoverdracht op internet kunt verbergen

Poolse onderzoekers hebben een nieuwe methode voor netwerksteganografie voorgesteld, gebaseerd op de operationele kenmerken van het veelgebruikte transportlaagprotocol TCP. De auteurs van het werk zijn van mening dat hun plan bijvoorbeeld kan worden gebruikt om verborgen berichten te verzenden in totalitaire landen die strenge internetcensuur opleggen. Laten we proberen erachter te komen wat de innovatie eigenlijk is en hoe nuttig deze werkelijk is.

Allereerst moet je definiëren wat steganografie is. Steganografie is dus de wetenschap van de overdracht van verborgen boodschappen. Dat wil zeggen, met behulp van haar methoden proberen de partijen zich te verbergen het feit zelf van de overdracht. Dit is het verschil tussen deze wetenschap en cryptografie, die het probeert inhoud van berichten onleesbaar maken. Het is de moeite waard om op te merken dat de professionele gemeenschap van cryptografen nogal minachtend tegenover steganografie staat, omdat de ideologie ervan nauw aansluit bij het principe van ‘Veiligheid door onduidelijkheid’ (ik weet niet hoe dat correct klinkt in het Russisch, zoiets als ‘Veiligheid door onwetendheid’). ”). Dit principe wordt bijvoorbeeld gebruikt door Skype Inc. — de broncode van de populaire dialer is gesloten en niemand weet echt hoe de gegevens precies zijn gecodeerd. Onlangs heeft de NSA hierover trouwens geklaagd, zoals opgemerkt door de beroemde specialist Bruce Schneier hij schreef op mijn blog.

Terugkerend naar steganografie zullen we de vraag beantwoorden: waarom is het überhaupt nodig als er cryptografie bestaat? Je kunt een bericht versleutelen met behulp van een modern algoritme en als je een voldoende lange sleutel gebruikt, kan niemand dit bericht lezen, tenzij jij dat wilt. Niettemin is het soms nuttiger om het feit van een geheime overdracht te verbergen. Als de relevante autoriteiten bijvoorbeeld uw gecodeerde bericht hebben onderschept en dit niet kunnen ontcijferen, maar dat wel willen, dan zijn er immers niet-computermethoden om informatie te beïnvloeden en te verkrijgen. Het klinkt dystopisch, maar zie je, dit is in principe mogelijk. Daarom zou het beter zijn om ervoor te zorgen dat degenen die niet geacht worden helemaal niet te weten dat de overdracht heeft plaatsgevonden. Poolse onderzoekers hebben precies zo'n methode voorgesteld. Bovendien stellen ze voor om dit te doen via een protocol dat iedere internetgebruiker duizend keer per dag gebruikt.

Hier komen we in de buurt van het Transmission Control Protocol (TCP). Het heeft natuurlijk geen zin om alle details ervan uit te leggen - het is lang, saai en degenen die het nodig hebben, weten het al. Kort gezegd kunnen we zeggen dat TCP een transportlaagprotocol is (dat wil zeggen, het werkt “over” IP en “onder” applicatielaagprotocollen, zoals HTTP, FTP of SMTP), dat zorgt voor een betrouwbare levering van gegevens van de afzender aan De ontvanger. Betrouwbare bezorging betekent dat als een pakket kwijtraakt of gewijzigd aankomt, TCP ervoor zorgt dat het pakket wordt doorgestuurd. Merk op dat veranderingen in het pakket hier geen opzettelijke vervorming van gegevens betekenen, maar transmissiefouten die op fysiek niveau optreden. Terwijl het pakket bijvoorbeeld langs koperdraden reisde, veranderden een paar bits hun waarde in het tegenovergestelde of gingen volledig verloren in de ruis (trouwens, voor Ethernet wordt de Bit Error Rate-waarde gewoonlijk op ongeveer 10-8 geschat). ). Pakketverlies tijdens het transport komt ook relatief vaak voor op internet. Dit kan bijvoorbeeld gebeuren als gevolg van de belasting van routers, wat leidt tot bufferoverflow en als gevolg daarvan het weggooien van alle nieuw binnenkomende pakketten. Normaal gesproken is het aandeel verloren pakketten ongeveer 0.1%, en bij een waarde van een paar procent stopt TCP met normaal werken - alles zal vreselijk traag zijn voor de gebruiker.

We zien dus dat het doorsturen (hertransmissie) van pakketten een veel voorkomend fenomeen is voor TCP en in het algemeen noodzakelijk is. Dus waarom zou je het niet gebruiken voor steganografiebehoeften, aangezien TCP, zoals hierboven vermeld, overal wordt gebruikt (volgens verschillende schattingen bereikt het aandeel van TCP op internet tegenwoordig 80-95%). De essentie van de voorgestelde methode is om het doorgestuurde bericht niet in te zenden wat in het primaire pakket zat, maar de gegevens die we proberen te verbergen. Het detecteren van een dergelijke vervanging is echter niet zo eenvoudig. Je moet tenslotte weten waar je moet kijken: het aantal gelijktijdige TCP-verbindingen dat via de provider loopt, is simpelweg enorm. Als u bij benadering het niveau van hertransmissie in het netwerk kent, kunt u het steganografische doorstuurmechanisme zo aanpassen dat uw verbinding niet verschilt van die van andere.

Natuurlijk is deze methode niet vrij van nadelen. Vanuit praktisch oogpunt zal de implementatie ervan bijvoorbeeld niet zo eenvoudig zijn - het zal een wijziging van de netwerkstack in besturingssystemen vereisen, hoewel hier niets onbetaalbaar moeilijks aan is. Als u over voldoende middelen beschikt, is het bovendien nog steeds mogelijk om “geheime” pakketten te detecteren door elk pakket op het netwerk te bekijken en te analyseren. Maar in de regel is dit praktisch onmogelijk, dus zoeken ze meestal naar pakketten en verbindingen die op de een of andere manier opvallen, en de voorgestelde methode is precies wat uw verbinding onopvallend maakt. En niemand houdt u tegen om geheime gegevens te versleutelen, voor het geval dat. Tegelijkertijd kan de verbinding zelf onversleuteld blijven om minder argwaan te wekken.

De auteurs van het werk (trouwens, voor geïnteresseerden, hier zij) liet op simulatieniveau zien dat de voorgestelde methode werkt zoals bedoeld. Misschien zal iemand in de toekomst zijn idee in de praktijk implementeren. En dan zal er hopelijk iets minder censuur op internet zijn.

Bron: www.habr.com

Voeg een reactie