TCP стеганография или как да скрием предаването на данни в интернет

TCP стеганография или как да скрием предаването на данни в интернет

Полски изследователи предложиха нов начин за мрежова стеганография, основан на особенностите на широко разпространения транспортен протокол TCP. Авторите на изследването смятат, че тяхната схема, например, може да се прилага за изпращане на скрити съобщения в тоталитарни държави, налагащи строга интернет цензура. Нека се опитаме да разберем в какво точно се състои нововъведението и колко полезно е всъщност.

Първо е необходимо да се определи какво е стеганография. И така, стеганографията е наука за скритата предаване на съобщения. Тоест, използвайки нейните методи, страните се опитват да скрият самия факт на предаване. В това се състои различието между науката стеганография и криптография, която се опитва да направи съдържанието на съобщението недостъпно за четене. Трябва да се отбележи, че професионалната криптографска общност е доста презрително настроена към стеганографията, поради близостта на идеологията й до принципа „Сигурност чрез неясност“ (не знам как точно се казва на руски, нещо като „Безопасност чрез незнание“). Например, този принцип се прилага в компанията Skype Inc. — изходният код на популярната апликация за разговори е затворен и никой не знае точно как се осъществява шифроването на данните. Неведнъж, между другото, за това се оплакваха в NSA, за което известният специалист Брус Шнайер написа пише в своя блог.

Връщайки се към стеганографията, ще отговорим на въпроса защо всъщност е нужна, ако има криптография. Наистина, може да се шифрова съобщение с помощта на някакъв съвременен алгоритъм и при използване на достатъчно дълъг ключ, никой няма да може да прочете това съобщение освен ако вие не решите да го направите. Въпреки това, понякога е по-полезно да се скрие самият факт на тайна предаване. Например, ако съответните органи са прихванали вашето шифрирано съобщение, те не могат да го декриптират, но много искат, то в крайна сметка съществуват и некомуониторни методи на въздействие и добиване на информация. Звучи антиутопично, но, съгласете се, това е принципно възможно. Затова е по-добре да направим така, че тези, за които не е позволено, изобщо да не знаят, че предаването е имало място. Полските изследователи именно предложиха такъв метод. Освен това, те предлагат да го направят с помощта на протокол, който всеки интернет потребител използва хиляда пъти на ден.

Тук ние се доближихме до Transmission Control Protocol (TCP). Обясняването на всички негови детайли, разбира се, няма смисъл — дълго е, скучно е, а тези, на които им е нужно, вече знаят. Вкратце, TCP е протокол на транспортно ниво (т.е. работи "над" IP и "под" протоколите на приложния слой, например HTTP, FTP или SMTP), който осигурява надеждната доставка на данни от изпращача до получателя. Надеждната доставка означава, че ако някой пакет се загуби или пристигне с промени, TCP ще се погрижи да прехвърли този пакет отново. Нека уточним, че под промени в пакета тук се разбира неволно изкривяване на данните, а грешки в предаването, възникващи на физическо ниво. Например, докато пакетът пътува по медни проводници, няколко бита могат да променят стойността си на противоположната или изобщо да се загубят сред шума (като за Ethernet стойността на Bit Error Rate обикновено се приема около 10-8). Загубата на пакети по пътя също е относително често явление в интернет. Това може да се случи, например, поради натовареността на маршрутизаторите, което води до пренаселеност на буферите и, следователно, отхвърляне на всички новопристигнали пакети. Обикновено делът на загубените пакети е около 0.1%, а при стойност от няколко процента, TCP изобщо спира да работи нормално — потребителят ще има ужасно забавяне.

Така виждаме, че изпращането (ретрансмисия) на пакети е често явление за TCP и всъщност е необходимо. Защо тогава да не го използваме за целите на стеганографията, като същевременно TCP, както бе споменато по-горе, се използва навсякъде (според различни оценки към днешна дата делът на TCP в интернет достига 80-95%). Същността на предложената методология е, че в прехвърляното съобщение не се изпраща това, което е било в първоначалния пакет, а данните, които се опитваме да скрием. При това откритията на такава подмяна не са толкова лесни. Наистина, необходимо е да знаете къде да търсите — броят на едновременните TCP свързвания, преминаващи през провайдера, е просто огромен. Ако знаете приблизителното ниво на ретрансмисия в мрежата, можете да настроите механизма за стеганографско предаване така, че вашето свързване да не се различава по никакъв начин от другите.

Разбира се, този метод не е лишен от недостатъци. Например, от практическа гледна точка, внедряването му няма да бъде толкова лесно — това ще изисква промяна на мрежовия стек в операционните системи, макар че в него няма нищо изключително сложно. Освен това, при наличие на достатъчно ресурси, все пак може да се открият "тайни" пакети; за това е необходимо да се преглеждат и анализират всеки пакет в мрежата. Но, обикновено, това е практически невъзможно, затова обикновено се търсят пакети и връзки, които се открояват, а предложеното решение точно прави вашата свъзка невзрачна. И никой не ви пречи да шифровате тайни данни за всеки случай. При това самата свъзка може да остане нешифрована, за да предизвиква по-малко подозрения.

Авторите на работата (между другото, за интересуващите се, ето тя) на ниво симулации показаха, че предложеното решение работи, както е замислено. Може би в бъдеще някой ще се заеме с реализирането на тяхната идея на практика. И тогава, да се надяваме, в интернет ще има малко по-малко цензура.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster