Steganography ta fayiloli: ɓoye bayanai kai tsaye a cikin sassan

A takaice gabatarwa

Steganography, idan kowa bai tuna ba, yana ɓoye bayanai a cikin wasu kwantena. Misali, a cikin hotuna (an tattauna a nan и a nan). Hakanan zaka iya ɓoye bayanai a cikin teburin sabis na tsarin fayil (an rubuta wannan game da a nan), da ma a cikin fakitin sabis na yarjejeniya na TCP. Abin takaici, duk waɗannan hanyoyin suna da koma baya ɗaya: don “saka” bayanan da ba a fahimta ba a cikin akwati, kuna buƙatar algorithms masu wayo waɗanda ke la’akari da bambance-bambancen tsarin ciki na kwantena. Kuma matsaloli suna tasowa tare da juriya na kwantena don magudi: alal misali, idan kun ɗan gyara hoton, bayanan ɓoye sun ɓace.

Shin yana yiwuwa a yi ko ta yaya ba tare da algorithms masu wayo da manipulations na dabara tare da bayanai ba, kuma har yanzu tabbatar da aikin akwati da ingantaccen matakin tsaro na ɓoye bayanan? Duba gaba, zan ce - eh, za ku iya! Zan ma ba ku abin amfani.

Bayanan jini na hanyar

Babban ra'ayin yana da sauƙi kamar bugun goshi: akwai wuraren da ke kan faifan da tsarin aiki ba zai taɓa rubutawa ba (ko ya rubuta a lokuta masu wuya). Don guje wa buƙatar bincika waɗannan wuraren ta amfani da algorithms na wayo, za mu yi amfani da sakewa - wato, za mu kwafi bayananmu na ɓoye sau da yawa a duk sassan diski. Sa'an nan, dama a kan duk wannan ƙawa, za ka iya ƙirƙirar da zama dole partitions, format fayil tsarin, rubuta fayiloli da shigar OSes - duk iri ɗaya, wani ɓangare na sirrin data za a ajiye da za a iya dawo dasu, da maimaita kwafi zai taimake mu. sanya ainihin gaba ɗaya daga cikin guda.

Amfanin wannan hanyar a bayyane yake: ba ma dogara ga tsarin fayil ba, ko ma da nau'in tsarin fayil ɗin da aka yi amfani da shi.

Lalacewar su ma, ina ganin, a bayyane suke:

  • Ana iya canza bayanan sirri kawai ta hanyar sake rubutawa gaba ɗaya faifai, sannan kuma sake ƙirƙirar abun ciki ga mai amfani. Koyaya, ba za ku iya amfani da software da ke sake ƙirƙirar faifai daga hoto ba: kuma za ta sake ƙirƙirar bayanan sirrin da suka gabata.
  • Girman girman bayanan sirri, mafi girman yuwuwar rasa wasu bayanai.
  • Maido da bayanai daga faifai na iya ɗaukar lokaci mai tsawo. Daga mintuna da yawa zuwa kwanaki da yawa (fastocin zamani suna da girma).

Yanzu bari mu matsa zuwa takamaiman.

A bayyane yake cewa idan kawai ka shafa bayanan sirri a ko'ina cikin faifan, za a ɓoye shi ne kawai daga ido tsirara. Idan ka ba da kallonka, ka ce, editan faifai, bayanan za su bayyana cikin ɗaukaka. Don haka, yana da kyau a ɓoye bayanan don kada su bayyana. Za mu rufa-rufa a sauƙaƙe, amma da ɗanɗano: ta amfani da algorithm aes256-cbc. Za mu tambayi mai amfani don maɓallin ɓoyewa kuma mu bar shi ya fito da kalmar sirri mai kyau.

Tambaya ta gaba ita ce ta yaya za mu iya bambanta bayanan "mai kyau" daga mummunan bayanai. Anan checksum zai taimaka mana, amma ba mai sauƙi ba, amma SHA1. Kuma menene? Ya isa ga git, don haka zai dace da mu ma. An yanke shawara: mun samar da kowane yanki na bayanan da aka adana tare da checksum, kuma idan bayan cire bayanan ya yi daidai, yana nufin ƙaddamarwar ta yi nasara.

Hakanan zaka buƙaci lambar guntu da jimlar bayanan sirrin. Lambar guntuwar ita ce a lura da waɗanne guntu-guntu da muka riga muka tantance da waɗanda aka bari. Jimlar tsayin zai zama da amfani a gare mu lokacin sarrafa guntu na ƙarshe, don kada mu rubuta bayanan da ba dole ba (wato, padding). To, tun da har yanzu muna da kan kai, za mu ƙara sunan fayil ɗin sirrin a can. Zai zama da amfani bayan ƙaddamarwa, don kada a yi tunanin yadda za a buɗe shi.

Gwajin hanyar a aikace

Don bincika, bari mu ɗauki matsakaicin matsakaici - filasha. Na sami tsohuwar da ke da ƙarfin 1 GB, wanda ya dace da gwaje-gwaje. Idan ku, kamar ni, ya zo tare da ra'ayin kada ku damu da kafofin watsa labaru na jiki, amma gwada shi a kan fayil - hoton diski, to, zan ce nan da nan: ba zai yi aiki ba. Lokacin tsara irin wannan “faifai,” Linux yana sake ƙirƙirar fayil ɗin, kuma duk sassan da ba a amfani da su za su cika da sifili.

A matsayin na'ura tare da Linux, da rashin alheri, dole ne in yi amfani da tashar yanayi akan Rasberi Pi 3 kwance akan baranda. Babu ƙwaƙwalwar ajiya mai yawa a can, don haka ba za mu ɓoye manyan fayiloli ba. Mun iyakance kanmu zuwa matsakaicin girman megabyte 10. Hakanan babu ma'ana a ɓoye fayilolin da suka yi ƙanƙanta: mai amfani yana rubuta bayanai zuwa faifai a cikin gungu 4 KB. Don haka, a ƙasa za mu iyakance kanmu zuwa fayil ɗin 3 kb - ya dace da irin wannan tari.

Za mu yi izgili da faifan filasha a matakai, duba bayan kowane mataki ko bayanan da ke ɓoye na iya karantawa:

  1. Tsara sauri cikin tsarin FAT16 tare da girman tari na 16 KB. Wannan shi ne abin da Windows 7 ke bayarwa don yi da filasha da ba shi da tsarin fayil.
  2. Cika filasha da kowane irin datti da kashi 50%.
  3. Cika filasha da kowane irin datti da kashi 100%.
  4. Tsara "Dogon" a cikin tsarin FAT16 (sake rubuta komai).

Gwaje-gwaje guda biyu na farko, kamar yadda aka zata, sun ƙare cikin cikakkiyar nasara: mai amfani ya sami nasarar fitar da megabyte 10 na bayanan sirri daga filasha. Amma bayan da filashin ɗin ya cika da ƙarfi da fayiloli, gazawar ta faru:

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

Kamar yadda kuke gani, gungu 158 ne kawai aka yi nasarar lalata su (kilobytes 632 na danyen bayanai, wanda ke ba da 636424 bytes na kaya). A bayyane yake cewa babu yadda za a iya samun megabytes 10 a nan, amma duk da haka a cikin wadannan gungu akwai kwafi a sarari. Ba za ku iya ma dawo da megabyte 1 ta wannan hanyar ba. Amma muna iya ba da garantin cewa za mu dawo da kilobytes 3 na bayanan sirri daga filasha koda bayan an tsara su kuma an rubuta su zuwa iya aiki. Duk da haka, gwaje-gwaje sun nuna cewa yana yiwuwa a cire fayil mai tsawon kilobytes 120 daga irin wannan filasha.

Gwaji na ƙarshe, da rashin alheri, ya nuna cewa an sake rubutawa gabaɗayan filasha:

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

Ba wani gungu ɗaya da ya tsira... Abin baƙin ciki, amma ba abin takaici ba! Kafin tsarawa, bari mu yi ƙoƙarin ƙirƙirar bangare akan faifan filasha, kuma tuni a ciki tsarin fayil ɗin. Af, ya zo daga masana'anta tare da daidai wannan tsarin, don haka ba mu yin wani abu m.
Ana sa ran cewa sararin da ke cikin filasha ya ragu kaɗan.

Hakanan ana tsammanin cewa megabytes 10 ba za a iya ɓoye a cikin cikakken faifai ba. Amma yanzu adadin gungu da aka samu nasarar rusa su ya ninka fiye da ninki biyu!

Total clusters read: 250752, decrypted: 405

Abin takaici, ba shi yiwuwa a tara megabyte daga guda, amma kilobytes ɗari biyu suna da sauƙi.

To, labarai game da na ƙarshe, rajistan na 4, wannan lokacin yana da farin ciki: gaba ɗaya tsara irin wannan filasha ba ta haifar da lalata duk bayanan ba! 120 kilobytes na bayanan sirri sun dace daidai cikin sararin da ba a yi amfani da su ba.

Teburin taƙaitaccen gwajin gwaji:

Steganography ta fayiloli: ɓoye bayanai kai tsaye a cikin sassan

Ƙananan ka'idar: game da sarari kyauta da sassan da ba a yi amfani da su ba

Idan kun taɓa raba rumbun kwamfutarka zuwa ɓangarori, ƙila kun lura cewa ba koyaushe zai yiwu a ware duk sarari kyauta akan faifai ba. Sashin farko koyaushe yana farawa da wasu indentation (yawanci 1 megabyte, ko sassan 2048). Bayan sashe na ƙarshe, kuma yana faruwa cewa akwai ƙaramin “wutsiya” na sassan da ba a amfani da su. Kuma a wasu lokuta akwai gibi tsakanin sassan, ko da yake da wuya.

A wasu kalmomi, akwai sassan da ke kan faifai waɗanda ba za a iya shiga ba yayin aiki na yau da kullun tare da faifai, amma ana iya rubuta bayanai zuwa waɗannan sassan! Kuma hakan yana nufin karanta shi ma. An daidaita shi don gaskiyar cewa akwai kuma tebur na bangare da lambar bootloader, waɗanda ke cikin yanki mara kyau a farkon faifai.

Bari mu huta daga sassan na ɗan lokaci kuma mu kalli faifan daga kallon idon tsuntsu, don magana. Anan muna da fanko partition akan faifai. Bari mu ƙirƙiri tsarin fayil a ciki. Za mu iya cewa wasu sassa a kan faifai ba su goge ba?

E-e-e- gandu! Amsar za ta kasance koyaushe eh! Lallai, a mafi yawan lokuta, ƙirƙirar tsarin fayil yana saukowa don rubuta ƴan tubalan bayanan sabis zuwa faifai, kuma in ba haka ba abin da ke cikin ɓangaren ba ya canzawa.

Hakanan - kawai a zahiri - muna iya ɗauka cewa tsarin fayil ba zai iya mamaye duk sararin da aka ba shi ba har zuwa ɓangaren ƙarshe. Misali, tsarin fayil na FAT16 tare da girman tari na kilobytes 64 a bayyane yake ba zai iya mamaye wani bangare gaba daya ba tare da girman ba da yawa na kilobytes 64 ba. A ƙarshen irin wannan sashe dole ne a sami "wutsiya" na sassa da yawa, wanda ba zai iya samun damar adana bayanan mai amfani ba. Koyaya, wannan zato ba a iya tabbatar da gwaji ba.

Don haka, don haɓaka sararin samaniya don steganogram, kuna buƙatar amfani da tsarin fayil tare da girman gungu mafi girma. Hakanan zaka iya ƙirƙirar bangare, koda kuwa hakan bai zama dole ba (akan filasha, misali). Babu buƙatar ƙirƙirar sassan fanko ko barin wuraren da ba a raba su ba - wannan zai jawo hankalin 'yan ƙasa masu sha'awar.

Amfani don gwaje-gwaje

Kuna iya taɓa lambar tushe na mai amfani a nan

Don ginawa, kuna buƙatar sigar Qt 5.0 ko sama da haka da OpenSSL. Idan wani abu bai yi aiki ba, kuna iya yin gyara fayil ɗin steganodisk.pro.

Kuna iya canza girman gungu daga 4 KB zuwa, a ce, 512 bytes (a cikin secretfile.h). A lokaci guda, farashin bayanan sabis zai ƙaru: taken da checksum sun mamaye ƙayyadaddun 68 bytes.

Kuna buƙatar gudanar da mai amfani, ba shakka, tare da haƙƙin tushen mai amfani, kuma tare da taka tsantsan. Ba za a sami tambayoyin da aka yi ba kafin a sake rubuta takamaiman fayil ko na'urar!

Ji dadin.

source: www.habr.com

Add a comment