Tere, Habr.
Soovin tutvustada teile vÀikest projekti , mis on tehtud vabal ajal Ôppimisest.
Tegin projekti info peitmise kohta failisĂŒsteemis (edaspidi FS).
See vÔib olla rakendatav konfidentsiaalse info varastamiseks hariduslikel eesmÀrkidel.

Katseseadmeks valiti pÀris vana Linuxi FS .
Rakendamine
Rakendamise kaalutlused
Kui korralikult "peenestada" standard ext2, siis saab asendada niiöelda , kus on antud pĂ”hiteave sĂŒsteemi kohta. Minu poolt leiti ja . Peaaegu kohe sĂŒndis idee salvestada teavet FS-i hetkel tĂŒhjadesse plokkidesse. NĂŒĂŒd tuli vĂ€lja mĂ”elda kaitse programmeerija eest, relvastatud .
Kui hoida peidetud teavet ilma krĂŒpteerimiseta, siis isegi hoolimata selle hajutatusest FS-is, jÀÀb see ikkagi liiga silmatorkavaks, eriti kui programmeerija teab, mida otsida. SeetĂ”ttu otsustati krĂŒpteerida kĂ”ik algse faili plokid. Valisin plokkkrĂŒpteerimise , kuid nagu te mĂ”istate, ei ole see pĂ”himĂ”tteline.
Kasutades plokkide eristamiseks lugemise ajal, otsustati iga ploki algusesse lisada spetsiaalne mĂ€rk. See mĂ€rk krĂŒpteeriti sĂ”ltuvalt ploki numbrist algses failis. Selline nipp vĂ”imaldas mitte ainult vajalikku plokki leida, vaid ka tuvastada nende Ă”ige jĂ€rjekord.
SĂŒsteemi töö ĂŒldpĂ”himĂ”te.

Salvestamise algoritm
Punktide kaupa:
- Esmalt salvestage algsesse failisĂŒsteemi mingi teave;
- Kustutage see teave (mitte tingimata kogu);
- Fail peitmiseks jagada plokkideks, millel on sama pikkus, lisades mÀrgi;
- KrĂŒpteerida need plokid;
- Paigutada krĂŒpteeritud plokid FS-i tĂŒhjadesse plokkidesse.
Plokkdiagrammide armastajatele
Allpool on esitatud salvestamise algoritmi plokkdiagramm. Algoritm saab neli faili sisendiks:
- Muudetud failisĂŒsteemi pilt;
- Fail, mis lÀheb steganograafia alla;
- AES-ks krĂŒpteerimise vĂ”ti;
- MĂ€rgiga fail.

Tasub mĂ€rkida, et sellel algoritmil on ĂŒks puudus: pĂ€rast faili salvestamist FS-i, sisestada URL-i (see ei ole kunagi töötanud, kuid sisestusala lubas URL-i mÀÀrata, mis segas kasutajaid). salvestada midagi uut failisĂŒsteemi, kuna iga uus teave vĂ”ib sattuda nendesse plokkidesse, mis me oleme mÀÀranud meie steganograafilisele failile, tĂ”si, see avab vĂ”imaluse "kiireks jĂ€lgede peitmiseks".
Aga on ĂŒsna selge, kuidas seda parandada: on vajalik failisĂŒsteemi plokkide kirjutamise algoritmi ĂŒmberkirjutamine. See on arusaadav, kuid erakordselt töömahukas ĂŒlesanne.
Proof Of Concept'i jaoks ei ole ma seda rakendanud.
Tulemusena saab olema jĂ€rgmised muutused failisĂŒsteemis, nii nĂ€eb failisĂŒsteem vĂ€lja enne steganograafiat (enne on salvestatud helifail).

Ja nii nĂ€eb failisĂŒsteem vĂ€lja koos juba steganograafilise teabega.

Lugemise algoritm
Punktide kaupa:
- Teades vĂ”tit ja markerite koostamise meetodit, koostada esimesed N markereid, tagades et N, korrutatud failisĂŒsteemi ploki pikkusega, on suurem steganograafilise faili pikkusest;
- Otsida failisĂŒsteemist plokke, mis algavad markeritest;
- Dekodeerida saadud plokid ja eraldada markerid;
- Koguda saadud plokid Ôiges jÀrjestuses ja saada algne fail.
Plokkdiagrammide armastajatele
Allpool on esitatud algoritmi kirjutamise vooskeem. Algoritmi sisendiks on kolm faili:
-FailisĂŒsteemi image;
- AES-ks krĂŒpteerimise vĂ”ti;
- MĂ€rgiga fail.

PĂ€rast programmi töötamist ilmub fail Read, mis on steganograafilisest failisĂŒsteemist ekstraheeritud fail; kui vĂ”ti vĂ”i marker oli valesti mÀÀratud, on fail Read tĂŒhi.
(ilusate asjade armastajatele on vÔimalik lisada mitte ainult faili, vaid ka "pÀist", mis sisaldab metaandmeid: faili nimi, Ôigused, viimase muutmise aeg jne.)
KĂ€ivitamise automatiseerimine
Mugavuse huvides on kirjutatud bash skriptid, mis automatiseerivad kÀivitamise Linuxis (katsetatud Ubuntu 16.04.3 LTS peal).
AnalĂŒĂŒsime kĂ€ivitamist samm-sammult.
Salvestamine:
- sudo Copy_Flash.sh "DEVICE" â saame failisĂŒsteemi pildi DEVICE'ist (mĂ€lupulk);
- .\/Write.sh "FILE" "KEY" "MARKER" â loome virtuaalse keskkonna, allalaadime vajalikud raamatukogud ja kĂ€ivitame kirjutamis skripti;
- sudo .\/Write_Flash.sh "DEVICE" â salvestame muudetud failisĂŒsteemi uuesti DEVICE'ile.
Lugemine:
- sudo Copy_Flash.sh "DEVICE" â saame failisĂŒsteemi pildi DEVICE'ist (mĂ€lupulk);
- .\/Read.sh "KEY" 'MARKER' â loome virtuaalse keskkonna, allalaadime vajalikud raamatukogud ja kĂ€ivitame lugemis-skripti;
- Avame praeguses kataloogis faili Read â see on steganograafiline teave.
KokkuvÔte
See steganograafia meetod vajab tĂ”enĂ€oliselt tĂ€iendavat töötlemist, testimist ja laiemat rakendamist populaarsematele failisĂŒsteemidele, nagu , ja .
KĂ€esoleva töö eesmĂ€rgiks oli nĂ€idata pĂ”himĂ”tet, mille abil saab teostada peidetud teabe salvestamist failisĂŒsteemis.
Sarnaste algoritmide abil on vĂ”imalik teavet ohutult salvestada. Kui sĂŒsteemi, mille puhul on teada vĂ”ti, saab murda, kuigi see nĂ”uab pikka algoritmi, siis ilma vĂ”tmeta tundub see sĂŒsteem mulle tĂ€iesti kindel. Sellegipoolest vĂ”ib see olla pĂ”hjus eraldi artikli jaoks.
Kogu kood on kirjutatud Python 3.5.2 keeles. on esitatud minu YouTube kanalis. Projekti tÀiskood on saadaval .
(Jah, ma tean, et tootmisversiooni jaoks tuleb kirjutada millegi âkiiremaâ peale, nĂ€iteks C keeles đ )
KĂ€esolevas teostuses ei tohi steganograafia sisendfaili suurus ĂŒletada 1000 kB.
Soovin tÀnada kasutajat kasulike nÔuannete eest uurimistöö planeerimisel ja artikli vormimise kohta.
Allikas: habr.com
