Стеганографија система датотека

Хеј Хабр.

Желео бих да вам представим мали пројекат о стеганографија, направљен у слободно време од учења.

Направио сам пројекат о скривеном складиштењу информација у систему датотека (даље ФС).
Ово се може користити за крађу поверљивих информација у образовне сврхе.

Стеганографија система датотека

За прототип је изабран веома стари Линук ФС ектКСНУМКС.

Имплементација

Разматрања о имплементацији

Ако је добро „размрсити“ стандард ект2, онда можете заменити да у ФС постоји тзв. Суперблокови, који пружа основне информације о систему. Након што сам пронађен Блоцк Битмап и Иноде Табле. Скоро одмах се родила идеја о снимању информација у тренутно празне ФС блокове. Сада је вредело размишљати о заштити од наоружаног програмера хек едитор.

Ако чувате скривене информације без шифровања, онда ће, чак и упркос њиховој замућености у ФС, и даље бити превише упадљиве, посебно ако програмер зна шта да тражи. Због тога је одлучено да се шифрују сви блокови изворне датотеке. Изабрао сам блок шифру АЕС, али као што разумете, ово није важно.

Да би се приликом читања одвојили потребни блокови од свих осталих, одлучено је да се сваком блоку дода посебан маркер на почетку блока. Овај токен је шифрован у зависности од броја блока у изворној датотеци. Овај трик је одмах омогућио не само проналажење потребних блокова, већ и препознавање њиховог исправног редоследа.

Општи принцип рада система.

Стеганографија система датотека

Алгоритам снимања

Поени:

  • Прво напишите неке информације у изворни систем датотека;
  • Избришите ове информације (не нужно све);
  • Датотека коју треба сакрити је подељена на блокове једнаке дужине, додајући маркер;
  • Шифрујте ове блокове;
  • Поставите шифроване блокове у празне ФС блокове.

За љубитеље блок дијаграма

Испод је блок дијаграм алгоритма снимања. Алгоритам прима четири датотеке као улаз:
-Слика променљивог система датотека;
-Досије предмет стеганографије;
-Датотека са кључем за шифровање за АЕС;
-Датотека са маркером.
Стеганографија система датотека

Одмах је вредно напоменути да овај алгоритам има један недостатак: након писања датотеке у ФС, не могу упишите било шта ново у ФС, јер свака нова информација може завршити у блоковима које смо доделили нашој компримованој датотеци, иако то такође отвара могућност да „брзо прикријемо трагове“.

Али сасвим је очигледно како се то може поправити: потребно је поново написати алгоритам за писање блокова у ФС. Ово је разумљив, али невероватно дуготрајан задатак.
За Прооф Оф Цонсепт нисам ово применио.

Као резултат, следеће промене ће бити направљене на ФС; овако је ФС изгледао пре стеганографије (раније је снимљен аудио фајл).
Стеганографија система датотека
А овако изгледа ФС са већ компримованим информацијама.
Стеганографија система датотека

Алгоритам читања

Поени:

  • Са познавањем кључа и начина конструисања маркера, саставити првих Н маркера, уз гаранцију да је Н помножено са дужином блока система датотека веће од дужине стеганографске датотеке;
  • Тражи блокове у ФС почевши од маркера;
  • Дешифрујте примљене блокове и одвојите маркере;
  • Сакупите резултујуће блокове у исправном редоследу и преузмите изворну датотеку.

За љубитеље блок дијаграма

Испод је блок дијаграм алгоритма снимања. Алгоритам прима три датотеке као улаз:
- Слика система датотека;
-Датотека са кључем за шифровање за АЕС;
-Датотека са маркером.
Стеганографија система датотека

Након што се програм покрене, појављује се датотека Реад, која ће бити датотека екстрахована из стеганографског система датотека; ако је кључ или маркер наведен погрешно, онда ће датотека Реад бити празна.
(за љубитеље лепоте, можете уметнути не само датотеку, већ и „заглавље“ које садржи мета-информације: назив датотеке, права, време последње измене итд.)

Аутоматизација покретања

Ради практичности, басх скрипте су написане да аутоматизују покретање на Линук-у (тестирано на Убунту 16.04.3 ЛТС).
Хајде да погледамо лансирање корак по корак.
Рецорд:

  1. судо Цопи_Фласх.сх “ДЕВИЦЕ” - преузмите слику ФС са УРЕЂАЈА (флеш);
  2. ./Врите.сх “ФИЛЕ” “КЕИ” “МАРКЕР” – креирајте виртуелно окружење, преузмите потребне библиотеке и покрените скрипту за писање;
  3. судо ./Врите_Фласх.сх “ДЕВИЦЕ” – поново упишите промењени ФС у ДЕВИЦЕ.

Читање:

  1. судо Цопи_Фласх.сх “ДЕВИЦЕ” - преузмите слику ФС са УРЕЂАЈА (флеш);
  2. ./Реад.сх “КЕИ” 'МАРКЕР” - креирајте виртуелно окружење, преузмите потребне библиотеке и покрените скипт за читање;
  3. У тренутном директоријуму отворите датотеку Реад - ово је зипована информација.

Закључак

Овај метод стеганографије вероватно треба побољшати, додатно тестирати и проширити на популарније системе датотека, као нпр Фат32, НТФС и ектКСНУМКС.
Али сврха овог рада је била да покаже принцип по коме је могуће извршити скривено складиштење информација у систему датотека.
Уз помоћ таквих алгоритама, можете неустрашиво чувати информације, а ако је, ако знате кључ, могуће хаковати такав систем не грубом силом (већ веома дугим алгоритмом), онда без познавања кључа, ово систем ми се чини апсолутно стабилним, међутим, ово може послужити као разлог за посебан чланак.

Сав код је имплементиран у Питхон верзији 3.5.2. Пример рада представљен на мом јутјуб каналу. Комплетан код пројекта је објављен на гитхуб.
(Да, да, знам да за продукцијску верзију треба да напишете нешто „брзо“, на пример Ц 😉)
У овој имплементацији, величина улазне датотеке за стеганографију не би требало да прелази 1000 кБ.

Желим да изразим своју захвалност кориснику ПавелМСТУ за драгоцене савете у планирању студије и препоруке о дизајну чланка.

Извор: ввв.хабр.цом

Додај коментар