Стеганография аз рӯи файлҳо: пинҳон кардани маълумот бевосита дар бахшҳо

Сарсухани кӯтоҳ

Стеганография, агар касе дар хотир надошта бошад, маълумотро дар баъзе контейнерҳо пинҳон мекунад. Масалан, дар суратхо (мухокима дар ин ҷо и дар ин ҷо). Шумо инчунин метавонед маълумотро дар ҷадвалҳои хидматрасонии системаи файлӣ пинҳон кунед (ин дар бораи дар ин ҷо), ва ҳатто дар бастаҳои хидматрасонии протоколи TCP. Мутаассифона, ҳамаи ин усулҳо як нуқсон доранд: барои ба таври ноаён "ҷой додани" иттилоот ба контейнер, шумо алгоритмҳои маккорона лозиманд, ки хусусиятҳои сохтори дохилии контейнерро ба назар мегиранд. Ва мушкилот бо муқовимати контейнер ба манипуляция ба миён меоянд: масалан, агар шумо тасвирро каме таҳрир кунед, маълумоти пинҳоншуда гум мешавад.

Оё бе ягон алгоритми маккорона ва манипуляцияҳои нозук бо додаҳо кор кардан мумкин аст ва ба ҳар ҳол кори контейнер ва сатҳи қобили қабули амнияти маълумоти пинҳониро таъмин кардан мумкин аст? Ба пеш нигоҳ карда, ман мегӯям - бале, шумо метавонед! Ман ҳатто ба шумо як хидматро пешниҳод мекунам.

Тафсилоти хунини усул

Идеяи асосӣ мисли зарба ба пешонӣ оддӣ аст: дар диск соҳаҳое ҳастанд, ки системаи оператсионӣ ҳеҷ гоҳ ба онҳо наменависад (ё дар ҳолатҳои кам менависад). Барои пешгирӣ кардани зарурати ҷустуҷӯи ин соҳаҳо бо истифода аз алгоритмҳои маккорона, мо зиёдатӣ истифода мебарем, яъне мо маълумоти пинҳонии худро дар тамоми бахшҳои диск борҳо такрор мекунем. Пас, дар болои ин ҳама шукӯҳ, шумо метавонед қисмҳои заруриро эҷод кунед, системаҳои файлиро формат кунед, файлҳо нависед ва OS-ро насб кунед - ҳама як қисми маълумоти махфӣ захира карда мешаванд ва онҳоро бозпас гирифтан мумкин аст ва такрори такрорӣ ба мо кӯмак мекунад. тамоми аслро аз пораҳо якҷоя кунед.

Бартарии ин усул аён аст: мо аз формати файл ва хатто аз намуди системаи файлии истифодашаванда вобаста нестем.

Камбудиҳо низ, ба фикрам, равшананд:

  • Маълумоти махфиро танҳо тавассути пурра аз нав навиштани тамоми диск ва баъд аз нав сохтани мундариҷаи ба корбар намоён тағир додан мумкин аст. Бо вуҷуди ин, шумо наметавонед нармафзореро истифода баред, ки дискро аз тасвир дубора эҷод мекунад: он инчунин маълумоти махфии қаблиро аз нав эҷод мекунад.
  • Чӣ қадаре ки ҳаҷми маълумоти махфӣ зиёд бошад, эҳтимоли гум шудани баъзе маълумот ҳамон қадар зиёд мешавад.
  • Гирифтани маълумот аз диск метавонад вақти зиёдро талаб кунад. Аз якчанд дақиқа то якчанд рӯз (дискҳои муосир калонанд).

Акнун биёед ба мушаххасот гузарем.

Маълум аст, ки агар шумо маълумоти махфиро дар тамоми диск паҳн кунед, он танҳо аз чашми бараҳна пинҳон мешавад. Агар шумо нигоҳи худро бо муҳаррири диск муҷаҳҳаз кунед, маълумот бо тамоми ҷалоли худ пайдо мешавад. Аз ин рӯ, хуб мебуд, ки маълумотро рамзгузорӣ кунед, то он нишон надиҳад. Мо содда, вале бо завқ рамзгузорӣ мекунем: бо истифода аз алгоритми aes256-cbc. Мо аз корбар калиди рамзгузориро мепурсем ва ба ӯ гузарвожаи хуберо пешниҳод мекунем.

Саволи навбатӣ ин аст, ки чӣ тавр мо метавонем маълумоти "хуб" -ро аз маълумоти бад фарқ кунем. Дар ин ҷо маблағи чек ба мо кӯмак мекунад, аммо на оддӣ, балки SHA1. Ва чӣ? Ин барои git кофӣ хуб аст, бинобар ин ба мо низ мувофиқ хоҳад буд. Қарор дода шуд: мо ҳар як пораи иттилооти захирашударо бо маблағи чек таъмин мекунем ва агар пас аз рамзкушоӣ он мувофиқат кунад, ин маънои рамзкушоӣ бомуваффақиятро дорад.

Шумо инчунин рақами фрагмент ва дарозии умумии маълумоти махфӣ лозим аст. Рақами фрагмент барои пайгирӣ кардани он аст, ки кадом қисмҳоро мо аллакай шифр кардаем ва кадомаш боқӣ мондааст. Дарозии умумӣ барои мо ҳангоми коркарди порчаи охирин муфид хоҳад буд, то маълумоти нолозимро нанависем (яъне пуркунӣ). Хуб, азбаски мо то ҳол сарлавҳа дорем, мо номи файли махфиро дар он ҷо илова мекунем. Он пас аз рамзкушоӣ муфид хоҳад буд, то сарфаҳм нашавед, ки чӣ тавр кушодани он.

Санҷиши усул дар амал

Барои тафтиш, биёед воситаи маъмултарин - диски флешро гирем. Ман як кӯҳнаи дорои иқтидори 1 ГБ ёфтам, ки барои таҷрибаҳо хеле мувофиқ аст. Агар шумо, мисли ман, идеяи ташвиш надодан бо васоити физикӣ, балки дар файл - тасвири диск озмудани он пайдо шуда бошед, ман дарҳол мегӯям: ин кор намекунад. Ҳангоми формат кардани чунин "диск" Linux файлро дубора эҷод мекунад ва ҳамаи бахшҳои истифоданашуда бо сифрҳо пур мешаванд.

Ҳамчун як мошини дорои Linux, мутаассифона, ман маҷбур шудам, ки як истгоҳи обу ҳаворо дар Raspberry Pi 3, ки дар балкон хобида буд, истифода барам. Дар он ҷо хотираи зиёд нест, аз ин рӯ мо файлҳои калонро пинҳон намекунем. Мо худро ба андозаи максималии 10 мегабайт маҳдуд мекунем. Пинҳон кардани файлҳои хеле хурд низ маъно надорад: утилита маълумотро дар кластерҳои 4 КБ ба диск менависад. Аз ин рӯ, дар зер мо худро бо файли 3 кб маҳдуд хоҳем кард - он ба як чунин кластер мувофиқат мекунад.

Мо флеш-дискро марҳила ба марҳила масхара карда, пас аз ҳар марҳила тафтиш мекунем, ки оё маълумоти пинҳон хондан мумкин аст:

  1. Форматкунии зуд дар формати FAT16 бо андозаи кластер аз 16 KB. Ин аст он чизе ки Windows 7 бо флешдоре, ки системаи файлӣ надорад, пешниҳод мекунад.
  2. Пур кардани флешка бо ҳама гуна партовҳо 50%.
  3. Пур кардани флешка бо ҳама гуна партовҳо 100%.
  4. Форматкунии "Лонг" дар формати FAT16 (барои навиштани ҳама чиз).

Ду санҷиши аввал, тавре ки интизор мерафт, бо ғалабаи комил анҷом ёфт: хидматрасон тавонист, ки 10 мегабайт маълумоти махфиро аз флеш-диск бомуваффақият истихроҷ кунад. Аммо пас аз пур кардани диски флеш бо файлҳо, нокомӣ ба амал омад:

Total clusters read: 250752, decrypted: 158
ERROR: cannot write incomplete secretFile

Тавре ки шумо мебинед, танҳо 158 кластер бомуваффақият рамзкушоӣ карда шуд (632 килобайт маълумотҳои хом, ки 636424 байт бори пурборро медиҳад). Маълум аст, ки дар ин ҷо роҳи ба даст овардани 10 мегабайт вуҷуд надорад, аммо дар байни ин кластерҳо дубликатҳо равшананд. Шумо ҳатто 1 мегабайтро бо ин роҳ барқарор карда наметавонед. Аммо мо кафолат дода метавонем, ки 3 килобайт маълумоти махфиро аз флеш-диск ҳатто пас аз формат кардан ва навиштан ба иқтидор барқарор мекунем. Аммо, таҷрибаҳо нишон медиҳанд, ки аз чунин флеш-диск файли 120 килобайтро гирифтан комилан имконпазир аст.

Санҷиши охирин, мутаассифона, нишон дод, ки тамоми флеш диск аз нав навишта шудааст:

$ sudo ./steganodisk -p password /dev/sda
Device size: 250752 clusters
250700 99%
Total clusters read: 250752, decrypted: 0
ERROR: cannot write incomplete secretFile

Ягон кластер зинда намондааст... Афсӯс, вале фоҷиабор нест! Пеш аз формат кардан, биёед кӯшиш кунем, ки дар диски флешдор як қисм эҷод кунем ва аллакай дар он системаи файлӣ мавҷуд аст. Воқеан, он аз завод бо ҳамин форматкунӣ омадааст, бинобар ин мо ягон кори шубҳанок намекунем.
Интизор меравад, ки фазои мавҷуда дар диски флеш каме кам шудааст.

Инчунин интизор меравад, ки 10 мегабайтро дар як диски пурра пинҳон кардан мумкин нест. Аммо ҳоло шумораи кластерҳои бомуваффақият рамзкушошуда бештар аз ду баробар афзоиш ёфтааст!

Total clusters read: 250752, decrypted: 405

Мутаассифона, аз порчаҳо як мегабайт ҷамъ кардан ғайриимкон аст, аммо дусад килобайт осон аст.

Хуб, хабар дар бораи санҷиши охирин, 4-ум, ин дафъа хурсандист: пурра формат кардани чунин флеш диск ба нобудшавии ҳама маълумот оварда расонд! 120 килобайт маълумоти махфӣ ба фазои истифоданашуда комилан мувофиқат мекунад.

Ҷадвали ҷамъбастии санҷиш:

Стеганография аз рӯи файлҳо: пинҳон кардани маълумот бевосита дар бахшҳо

Як назарияи каме: дар бораи фазои холӣ ва бахшҳои истифоданашуда

Агар шумо ягон бор диски сахти худро ба қисмҳо тақсим карда бошед, шумо шояд пай бурдед, ки тақсим кардани тамоми фазои холӣ дар диск на ҳамеша имконпазир аст. Қисмати аввал ҳамеша бо каме банд оғоз мешавад (одатан 1 мегабайт ё 2048 бахш). Дар паси қисмати охирин, чунин рӯй медиҳад, ки "дум"-и хурди бахшҳои истифоданашуда боқӣ мемонад. Ва баъзан дар байни секцияхо фосилахо чой доранд, гарчанде ки кам бошад хам.

Ба ибораи дигар, дар диск секторхое хастанд, ки хангоми кори муътадил бо диск дастрас шудан мумкин нест, аммо ба ин секторхо маълумот навиштан мумкин аст! Ва ин маънои онро дорад, ки хондани он низ. Барои он тасҳеҳ карда шудааст, ки инчунин ҷадвали тақсимкунӣ ва рамзи пурборкунанда мавҷуд аст, ки дар майдони холӣ дар ибтидои диск ҷойгиранд.

Биёед, аз секцияхо каме дам гирем ва ба диск аз нигохи парранда назар кунем. Дар ин ҷо мо як қисми холӣ дар диск дорем. Биёед дар он системаи файлӣ эҷод кунем. Оё мо метавонем бигӯем, ки баъзе бахшҳои диск тозанашуда боқӣ мемонанд?

E-e-e - барабан! Ҷавоб қариб ҳамеша ҳа хоҳад буд! Воқеан, дар аксари мавридҳо, эҷоди системаи файлӣ барои ба диск навиштани танҳо чанд блоки иттилооти хидматрасонӣ рост меояд ва дар акси ҳол мундариҷаи қисмат тағйир намеёбад.

Ва инчунин - сирф эмпирикӣ - мо метавонем тахмин кунем, ки системаи файлӣ на ҳамеша тамоми фазои ба он ҷудошударо то бахши охирин ишғол мекунад. Масалан, системаи файлии FAT16 бо андозаи кластери 64 килобайт, бешубҳа, қисматро бо андозаи на чандон зиёд аз 64 килобайт пурра ишғол карда наметавонад. Дар охири чунин бахш бояд "дум"-и якчанд бахшҳо мавҷуд бошад, ки барои нигоҳ доштани маълумоти корбар дастнорасанд. Аммо ин тахминро ба таври таҷрибавӣ тасдиқ кардан мумкин набуд.

Ҳамин тавр, барои ба ҳадди аксар расонидани фазои дастрас барои стеганограмма, шумо бояд системаи файлиро бо андозаи калонтари кластер истифода баред. Шумо инчунин метавонед қисматро эҷод кунед, ҳатто агар ин лозим набошад (масалан, дар флешдор). Барои ташкили секцияхои холй ва ё мондани участкахои чудона-шуда зарурат нест — ин диккати гражданинхои манфиатдорро ба худ чалб мекунад.

Утили барои таҷрибаҳо

Шумо метавонед рамзи сарчашмаи утилитаро ламс кунед дар ин ҷо

Барои сохтан, ба шумо версияи Qt 5.0 ё навтар ва OpenSSL лозим аст. Агар чизе кор накунад, шумо бояд файли steganodisk.pro-ро таҳрир кунед.

Шумо метавонед андозаи кластерро аз 4 КБ ба, масалан, 512 байт (дар secretfile.h) тағир диҳед. Дар баробари ин, арзиши иттилооти хидматрасонӣ афзоиш хоҳад ёфт: сарлавҳа ва маблағи чек 68 байтро ишғол мекунанд.

Шумо бояд утилитаро, албатта, бо ҳуқуқҳои корбари реша ва бо эҳтиёт кор кунед. Пеш аз баргардонидани файл ё дастгоҳи муайяншуда ягон савол дода намешавад!

Баҳра баред.

Манбаъ: will.com

Илова Эзоҳ