TCP steganografija arba kaip paslėpti duomenų perdavimą internete

TCP steganografija arba kaip paslėpti duomenų perdavimą internete

Lenkijos mokslininkai pasiūlė naują tinklo steganografijos metodą, pagrįstą plačiai naudojamo transporto sluoksnio protokolo TCP veikimo ypatybėmis. Darbo autoriai mano, kad jų schema, pavyzdžiui, gali būti panaudota siunčiant paslėptas žinutes totalitarinėse šalyse, kurios taiko griežtą interneto cenzūrą. Pabandykime išsiaiškinti, kas iš tikrųjų yra naujovė ir kiek ji iš tikrųjų naudinga.

Pirmiausia turite apibrėžti, kas yra steganografija. Taigi steganografija yra paslėptų pranešimų perdavimo mokslas. Tai yra, jos metodais šalys bando pasislėpti pats perdavimo faktas. Tai yra skirtumas tarp šio mokslo ir kriptografijos, kuri bando padaryti pranešimo turinį neįskaitomu. Verta pastebėti, kad profesionali kriptografų bendruomenė gana niekina steganografiją dėl savo ideologijos artumo principui „Saugumas per tamsą“ (nežinau, kaip teisingai rusiškai skamba, kažkas panašaus į „Saugumas per nežinojimą“. “). Šį principą, pavyzdžiui, naudoja „Skype Inc. — populiaraus rinkiklio šaltinio kodas yra uždarytas ir niekas iš tikrųjų nežino, kaip tiksliai užšifruojami duomenys. Neseniai, beje, dėl to skundėsi NSA, kaip pažymėjo garsus specialistas Bruce'as Schneieris написал mano tinklaraštyje.

Grįžę prie steganografijos, atsakysime į klausimą: kam ji apskritai reikalinga, jei yra kriptografija? Iš tiesų, galite užšifruoti pranešimą naudodami kokį nors modernų algoritmą ir jei naudosite pakankamai ilgą raktą, niekas negalės perskaityti šio pranešimo, nebent jūs to norėsite. Nepaisant to, kartais naudingiau paslėpti patį slapto perdavimo faktą. Pavyzdžiui, jei atitinkamos institucijos perėmė jūsų užšifruotą žinutę ir negali jos iššifruoti, bet labai nori, tai juk yra nekompiuteriniai įtakos ir informacijos gavimo būdai. Skamba distopiškai, bet, matote, iš principo tai įmanoma. Todėl geriau būtų įsitikinti, kad tie, kurie iš viso neturi žinoti, kad perdavimas įvyko. Lenkų mokslininkai pasiūlė būtent tokį metodą. Be to, jie siūlo tai padaryti naudojant protokolą, kurį kiekvienas interneto vartotojas naudoja tūkstantį kartų per dieną.

Čia mes priartėjome prie perdavimo valdymo protokolo (TCP). Aiškinti visas jo detales, žinoma, nėra prasmės - tai ilga, nuobodu, o tie, kuriems to reikia, tai jau žino. Trumpai tariant, galime pasakyti, kad TCP yra transporto sluoksnio protokolas (ty veikia „per“ IP ir „po“ taikomųjų sluoksnių protokolus, tokius kaip HTTP, FTP arba SMTP), kuris užtikrina patikimą duomenų pristatymą iš siuntėjo į Gavėjas. Patikimas pristatymas reiškia, kad jei paketas pametamas arba atkeliauja modifikuotas, TCP pasirūpins to paketo persiuntimu. Atkreipkite dėmesį, kad paketo pakeitimai čia reiškia ne tyčinį duomenų iškraipymą, o perdavimo klaidas, atsirandančias fiziniame lygmenyje. Pavyzdžiui, paketui keliaujant variniais laidais, keli bitai pakeitė savo vertę į priešingą arba buvo visiškai prarasti tarp triukšmo (beje, Ethernet atveju bitų klaidų dažnio reikšmė paprastai laikoma maždaug 10–8 ). Paketų praradimas tranzitu taip pat yra gana dažnas reiškinys internete. Tai gali įvykti, pavyzdžiui, dėl maršrutizatorių apkrovos, dėl kurios perpildomas buferis ir dėl to visi naujai gaunami paketai atmetami. Paprastai prarastų paketų dalis yra apie 0.1%, o esant poros procentų reikšmei, TCP nustoja normaliai veikti – vartotojui viskas bus siaubingai lėta.

Taigi matome, kad paketų persiuntimas (persiuntimas) yra dažnas reiškinys TCP ir apskritai būtinas. Taigi kodėl gi jo nenaudojus steganografijos reikmėms, atsižvelgiant į tai, kad TCP, kaip minėta aukščiau, naudojamas visur (įvairiais skaičiavimais, šiandien TCP dalis internete siekia 80–95%). Siūlomo metodo esmė – persiųstame pranešime siųsti ne tai, kas buvo pirminiame pakete, o duomenis, kuriuos bandome paslėpti. Tačiau aptikti tokį pakeitimą nėra taip paprasta. Galų gale, jūs turite žinoti, kur ieškoti - vienu metu per tiekėją einančių TCP jungčių skaičius yra tiesiog didžiulis. Jei žinote apytikslį retransliavimo tinkle lygį, galite pakoreguoti steganografinį persiuntimo mechanizmą taip, kad jūsų ryšys niekuo nesiskirtų nuo kitų.

Žinoma, šis metodas neturi trūkumų. Pavyzdžiui, praktiniu požiūriu tai įgyvendinti nebus taip paprasta - reikės pakeisti tinklo krūvą operacinėse sistemose, nors tame nėra nieko pernelyg sudėtingo. Be to, jei turite pakankamai išteklių, vis tiek galima aptikti „slaptus“ paketus peržiūrint ir analizuojant kiekvieną tinklo paketą. Tačiau paprastai tai praktiškai neįmanoma, todėl jie dažniausiai ieško paketų ir jungčių, kurios kažkuo išsiskiria, o siūlomas metodas yra būtent tai, dėl ko jūsų ryšys tampa nepakartojamas. Ir niekas netrukdo jums užšifruoti slaptų duomenų bet kuriuo atveju. Tuo pačiu metu pats ryšys gali likti nešifruotas, kad sukeltų mažiau įtarimų.

Darbo autoriai (beje, besidomintiems čia ji) modeliavimo lygiu parodė, kad siūlomas metodas veikia taip, kaip numatyta. Galbūt ateityje kas nors įgyvendins savo idėją praktiškai. Ir tada, tikiuosi, bus šiek tiek mažiau cenzūros internete.

Šaltinis: www.habr.com

Добавить комментарий