Fitxategi-sistemaren esteganografia

Kaixo Habr.

Proiektu txiki bat aurkeztu nahi dizut esteganografia, nire denbora librean ikasketak eginda.

Fitxategi-sisteman informazioa ezkutuan gordetzeko proiektu bat egin nuen (gehiago FS).
Hau hezkuntza-helburuetarako isilpeko informazioa lapurtzeko erabil daiteke.

Fitxategi-sistemaren esteganografia

Linux FS oso zaharra aukeratu zen prototipo gisa ext2.

Inplementazioa

Gauzatzeko gogoetak

Ext2 estandarra "argitzea" ona bada, orduan ordezkatu dezakezu FSan deitzen den bat dagoela. Superblokeak, sistemari buruzko oinarrizko informazioa ematen duena. Aurkitu ninduten ondoren Blokeatu bitmapa ΠΈ Inodoen taula. Ia berehala, informazioa gaur egun hutsik dauden FS blokeetan grabatzeko ideia sortu zen. Orain, armatutako programatzaile baten babesari buruz pentsatzea merezi zuen hex editorea.

Ezkutuko informazioa enkriptatu gabe gordetzen baduzu, FSan lausotu arren, nabarmenegia izango da, batez ere programatzaileak zer bilatu behar duen badaki. Hori dela eta, iturburu-fitxategiaren bloke guztiak enkriptatzea erabaki zen. Bloke zifratua aukeratu nuen AES, baina ulertzen duzunez, hau ez da garrantzitsua.

Irakurtzean beharrezkoak diren blokeak beste guztietatik bereizteko, bloke bakoitzari markatzaile berezi bat gehitzea erabaki zen blokearen hasieran. Token hau iturburu-fitxategiko bloke-zenbakiaren arabera enkriptatu zen. Trikimailu honek berehala posible egin zuen beharrezko blokeak aurkitzeaz gain, haien ordena zuzena ezagutu ere.

Sistemaren funtzionamendu-printzipio orokorra.

Fitxategi-sistemaren esteganografia

Grabaketa algoritmoa

Puntuak:

  • Lehenik eta behin idatzi informazio pixka bat iturburu-fitxategi-sisteman;
  • Ezabatu informazio hau (ez derrigorrez guztia);
  • Ezkutatu beharreko fitxategia luzera bereko blokeetan banatzen da, markatzailea gehituz;
  • Enkriptatu bloke hauek;
  • Jarri enkriptatutako blokeak FS bloke hutsetan.

Bloke diagramen zaleentzat

Jarraian, grabazio algoritmoaren bloke-diagrama dago. Algoritmoak lau fitxategi jasotzen ditu sarrera gisa:
-Alda daitekeen fitxategi-sistema baten irudia;
-Esteganografiaren menpeko espedientea;
-AESrako enkriptatutako gakoarekin fitxategia;
-Fitxategia markatzailearekin.
Fitxategi-sistemaren esteganografia

Azpimarratzekoa da algoritmo honek eragozpen bat duela: fitxategia FSra idatzi ondoren, ezin da idatzi ezer berria FS-ra, informazio berri oro gure fitxategi konprimituari esleitu dizkiogun blokeetan buka baitezake, nahiz eta horrek "gure ibilbideak azkar estaltzeko" aukera ere irekitzen duen.

Baina nahiko argi dago nola konpondu daitekeen: beharrezkoa da FSn blokeak idazteko algoritmoa berridatzi. Ulergarria den zeregina da, baina denbora asko hartzen duena.
Proof Of Consept-erako ez nuen hau ezarri.

Ondorioz, aldaketa hauek egingo dira FSan; hau da FSk esteganografia baino lehen (audio-fitxategi bat grabatu zen aurretik).
Fitxategi-sistemaren esteganografia
Eta horixe da FSk dagoeneko konprimituta dagoen informazioarekin.
Fitxategi-sistemaren esteganografia

Irakurketa algoritmoa

Puntuak:

  • Gakoa eta markatzaileak eraikitzeko metodoa ezagututa, konposatu lehen N markatzaileak, N fitxategi-sistemaren blokearen luzerarekin biderkatuta esteganografiatutako fitxategiaren luzera baino handiagoa dela bermatuz;
  • Markagailuetatik hasita FSn blokeak bilatu;
  • Deszifratu jasotako blokeak eta bereizi markatzaileak;
  • Bildu ondoriozko blokeak ordena egokian eta lortu iturburu-fitxategia.

Bloke diagramen zaleentzat

Jarraian, grabazio algoritmoaren bloke-diagrama dago. Algoritmoak hiru fitxategi jasotzen ditu sarrera gisa:
-Fitxategi sistemaren irudia;
-AESrako enkriptatutako gakoarekin fitxategia;
-Fitxategia markatzailearekin.
Fitxategi-sistemaren esteganografia

Programa exekutatu ondoren, Irakurri fitxategia agertzen da, esteganografiatutako fitxategi-sistematik ateratako fitxategia izango da; gakoa edo markatzailea gaizki zehaztu bada, Irakurri fitxategia hutsik egongo da.
(Edertasunaren zaleentzat, fitxategia ez ezik, metainformazioa duen "goiburua" txerta dezakezu: fitxategiaren izena, eskubideak, azken aldaketaren ordua, etab.)

Startup automatizazioa

Erosotasunerako, bash script-ak Linux-en abiarazte automatizatzeko idatzi ziren (Ubuntu 16.04.3 LTS-n probatua).
Ikus dezagun urratsez urrats abian jartzea.
erregistroa:

  1. sudo Copy_Flash.sh "DEVICE" - lortu FS irudia DEVICEtik (flash);
  2. ./Write.sh β€œFILE” β€œKEY” β€œMARKER” – sortu ingurune birtual bat, deskargatu beharrezko liburutegiak eta exekutatu idazteko scripta;
  3. sudo ./Write_Flash.sh "DEVICE" - idatzi aldatutako FS berriro DEVICE-n.

Irakurketa:

  1. sudo Copy_Flash.sh "DEVICE" - lortu FS irudia DEVICEtik (flash);
  2. ./Read.sh β€œKEY” 'MARKER” - sortu ingurune birtual bat, deskargatu beharrezko liburutegiak eta exekutatu skipt irakurtzeko;
  3. Uneko direktorioan, ireki Irakurri fitxategia - hau da konprimitutako informazioa.

Ondorioa

Esteganografia-metodo honek ziurrenik hobekuntza, proba osagarriak eta fitxategi-sistema ezagunenetara hedatzea behar du, adibidez Fat32, NTFS ΠΈ ext4.
Baina lan honen helburua fitxategi-sisteman informazioa gordetzeko ezkutuko printzipioa zein den erakustea zen.
Algoritmo horien laguntzaz, beldurrik gabe informazioa gorde dezakezu, eta, gakoa ezagutzen baduzu, posible bada horrelako sistema bat pirateatzea ez indar gordinaren bidez (algoritmo oso luze baten bidez baizik), orduan gakoa ezagutu gabe, hau sistema guztiz egonkorra dela iruditzen zait, hala ere, honek artikulu bereizi baterako arrazoi izan dezake.

Kode guztia Python 3.5.2 bertsioan inplementatuta dago. Lanaren adibidea nire youtubeko kanalean aurkeztua. Proiektuaren kode osoa argitaratuta dago GitHub.
(Bai, bai, badakit ekoizpen bertsiorako zerbait "azkar" idatzi behar duzula, adibidez C πŸ˜‰)
Inplementazio honetan, esteganografiarako sarrera-fitxategiaren tamainak ez du 1000 kB baino handiagoa izan behar.

Nire esker ona adierazi nahi diot erabiltzaileari PavelMSTU azterketa planifikatzeko aholku baliotsuak eta artikuluaren diseinuari buruzko gomendioak jasotzeko.

Iturria: www.habr.com

Gehitu iruzkin berria