TCP стэганаграфія ці як схаваць перадачу дадзеных у інтэрнэце

TCP стэганаграфія ці як схаваць перадачу дадзеных у інтэрнэце

Польскія даследнікі прапанавалі новы спосаб сеткавай стэганаграфіі заснаваны на асаблівасцях працы шырока распаўсюджанага пратаколу транспартнага ўзроўня TCP. Аўтары працы лічаць, што іх схема, да прыкладу, можа прымяняцца для перасылкі схаваных паведамленняў у таталітарных краінах, якія ўводзяць жорсткую інтэрнэт цэнзуру. Паспрабуем разабрацца ў чым, уласна, складаецца новаўвядзенне і наколькі яно сапраўды карысна.

У першую чаргу трэба вызначыць што такое стэганаграфія. Дык вось, стэганаграфія - гэта навука аб схаванай перадачы паведамленняў. Гэта значыць выкарыстоўваючы яе метады бакі спрабуюць схаваць сам факт перадачы. У гэтым і заключаецца адрозненне гэтай навукі ад крыптаграфіі, якая спрабуе. зрабіць недаступным для чытання змест паведамлення. Варта адзначыць, што прафесійная супольнасць крыптографаў дастаткова пагардліва ставіцца да стэганаграфіі ў сілу блізкасці яе ідэалогіі да прынцыпу "Security through obscurity" (не ведаю як гэта правільна гучыць па-руску, нешта накшталт "Бяспека праз няведанне"). Гэтым прынцыпам, напрыклад, карыстаюцца ў кампаніі 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

Дадаць каментар