Hei Habr.
Haluan esitellä teille pienen projektin
Tein projektin tiedon piilottamisesta tiedostojärjestelmään (jatkoa ФС).
Tätä voidaan käyttää luottamuksellisten tietojen varastamiseen koulutustarkoituksiin.
Prototyypiksi valittiin hyvin vanha Linux FS
Реализация
Täytäntöönpanon näkökohdat
Jos on hyvä "purkaa" ext2-standardi, niin voit korvata sen, että FS:ssä on ns.
Jos tallennat piilotettua tietoa ilman salausta, vaikka sen epäselvyydestä huolimatta FS:ssä, se on silti liian näkyvä, varsinkin jos ohjelmoija tietää mitä etsiä. Siksi päätettiin salata kaikki lähdetiedoston lohkot. Valitsin lohkosalauksen
Tarvittavien lohkojen erottamiseksi kaikista muista lukemisen aikana päätettiin lisätä jokaiseen lohkoon erityinen merkki lohkon alkuun. Tämä tunnus salattiin lähdetiedoston lohkonumeron mukaan. Tämä temppu mahdollisti välittömästi tarvittavien lohkojen löytämisen lisäksi myös niiden oikean järjestyksen tunnistamisen.
Järjestelmän yleinen toimintaperiaate.
Tallennusalgoritmi
Kohdissa:
- Kirjoita ensin joitakin tietoja lähdetiedostojärjestelmään;
- Poista nämä tiedot (ei välttämättä kaikkia);
- Piilotettava tiedosto jaetaan samanpituisiin lohkoihin lisäämällä merkintä;
- Salaa nämä lohkot;
- Aseta salatut lohkot tyhjiin FS-lohkoihin.
Lohkokaavioiden ystäville
Alla on lohkokaavio tallennusalgoritmista. Algoritmi vastaanottaa syötteenä neljä tiedostoa:
-Kuva muokattavasta tiedostojärjestelmästä;
-Steganografian alainen tiedosto;
-Tiedosto AES-salausavaimella;
-Viilaa tussilla.
On syytä huomata heti, että tällä algoritmilla on yksi haittapuoli: tiedoston kirjoittamisen jälkeen FS:ään, ei voi kirjoita FS:ään mitä tahansa uutta, koska kaikki uudet tiedot voivat päätyä lohkoihin, jotka olemme osoittaneet zip-tiedostollemme, vaikka tämä avaa myös mahdollisuuden "peittää jäljet nopeasti".
Mutta on aivan ilmeistä, kuinka tämä voidaan korjata: FS:n lohkojen kirjoitusalgoritmi on kirjoitettava uudelleen. Tämä on ymmärrettävä, mutta uskomattoman aikaa vievä tehtävä.
Proof Of Consept -sovelluksessa en ottanut tätä käyttöön.
Tämän seurauksena FS:ään tehdään seuraavat muutokset: tältä FS näyttää ennen steganografiaa (äänitiedosto on tallennettu aiemmin).
Ja tältä FS näyttää, kun tiedot on jo pakattu.
Lukualgoritmi
Kohdissa:
- Kun tiedät avaimen ja merkkien rakennusmenetelmän, muodosta ensimmäiset N merkkiä ja takaa, että N kerrottuna tiedostojärjestelmälohkon pituudella on suurempi kuin pakatun tiedoston pituus;
- Etsi lohkoja FS:stä alkaen merkeillä;
- Pura vastaanotetut lohkot ja erota merkit;
- Kerää tuloksena olevat lohkot oikeassa järjestyksessä ja hanki lähdetiedosto.
Lohkokaavioiden ystäville
Alla on lohkokaavio tallennusalgoritmista. Algoritmi vastaanottaa kolme tiedostoa syötteenä:
-Tiedostojärjestelmän kuva;
-Tiedosto AES-salausavaimella;
-Viilaa tussilla.
Kun ohjelma on suoritettu, näyttöön tulee Read-tiedosto, joka on steganografoidusta tiedostojärjestelmästä purettu tiedosto; jos avain tai merkki on määritetty väärin, Read-tiedosto on tyhjä.
(kauneuden ystäville voit lisätä tiedoston lisäksi "otsikon", joka sisältää metatietoja: tiedoston nimi, oikeudet, viimeisin muokkausaika jne.)
Käynnistyksen automaatio
Mukavuussyistä bash-komentosarjat kirjoitettiin automatisoimaan käynnistys Linuxissa (testattu Ubuntu 16.04.3 LTS:ssä).
Katsotaanpa käynnistystä askel askeleelta.
Запись:
- sudo Copy_Flash.sh “DEVICE” - hanki FS-kuva LAITTEESTA (flash);
- ./Write.sh “FILE” “KEY” “MARKER” – luo virtuaalinen ympäristö, lataa tarvittavat kirjastot ja suorita kirjoitusskripti;
- sudo ./Write_Flash.sh “DEVICE” – kirjoita muutettu FS uudelleen kohtaan DEVICE.
Lukeminen:
- sudo Copy_Flash.sh “DEVICE” - hanki FS-kuva LAITTEESTA (flash);
- ./Read.sh “KEY” 'MERKKI' - luo virtuaaliympäristö, lataa tarvittavat kirjastot ja suorita ohitus lukemista varten;
- Avaa nykyisessä hakemistossa lukutiedosto - tämä on pakatut tiedot.
Johtopäätös
Tämä steganografiamenetelmä tarvitsee todennäköisesti parannusta, lisätestausta ja laajennusta suositumpiin tiedostojärjestelmiin, kuten
Mutta tämän työn tarkoituksena oli näyttää periaate, jolla on mahdollista suorittaa piilotettu tietojen tallennus tiedostojärjestelmään.
Tällaisten algoritmien avulla voit pelottomasti tallentaa tietoja, ja jos, jos tiedät avaimen, on mahdollista hakkeroida tällainen järjestelmä ei raa'alla voimalla (mutta erittäin pitkällä algoritmilla), niin tietämättä avainta, tämä järjestelmä vaikuttaa minusta täysin vakaalta, mutta tämä saattaa kuitenkin toimia syynä erilliselle artikkelille.
Kaikki koodi on toteutettu Python-versiossa 3.5.2.
(Kyllä, kyllä, tiedän, että tuotantoversioon pitää kirjoittaa jotain "nopeaa", esim. C 😉)
Tässä toteutuksessa steganografian syöttötiedoston koko ei saa ylittää 1000 kB.
Haluan ilmaista kiitokseni käyttäjälle
Lähde: will.com