Steganografi ing sistem file

Hey Habr.

Aku kaya kanggo saiki sampeyan proyek cilik ing steganografi, digawe ing wektu luang saka sinau.

Aku nggawe proyek babagan panyimpenan informasi sing didhelikake ing sistem file (luwih FS).
Iki bisa digunakake kanggo nyolong informasi rahasia kanggo tujuan pendidikan.

Steganografi ing sistem file

Linux FS lawas banget dipilih minangka prototipe ext2.

РСализация

Pertimbangan Implementasine

Yen apik kanggo "mbukak" standar ext2, sampeyan bisa ngganti sing ing FS ana sing diarani Superblok, sing nyedhiyakake informasi dhasar babagan sistem kasebut. Sawise aku ketemu Blok Bitmap ΠΈ Tabel Inode. Meh langsung, ide ngrekam informasi menyang blok FS sing saiki kosong wis lair. Saiki iku worth mikir bab pangayoman saka programmer bersenjata editor hex.

Yen sampeyan nyimpen informasi sing didhelikake tanpa enkripsi, mula, sanajan blurriness ing FS, isih bakal katon banget, utamane yen programer ngerti apa sing kudu digoleki. Mulane, diputusake kanggo ndhelik kabeh blok file sumber. Aku milih block cipher AES, nanging sing sampeyan ngerti, iki ora penting.

Kanggo misahake blok sing dibutuhake saka kabeh liyane nalika maca, diputusake kanggo nambah marker khusus kanggo saben blok ing wiwitan blok. Token iki dienkripsi gumantung saka nomer blok ing file sumber. Trik iki langsung ndadekake ora mung nemokake blok sing dibutuhake, nanging uga kanggo ngenali urutan sing bener.

Prinsip operasi umum sistem.

Steganografi ing sistem file

Algoritma ngrekam

Intine:

  • Pisanan nulis sawetara informasi menyang sistem file sumber;
  • Mbusak informasi iki (ora kudu kabeh);
  • File sing bakal didhelikake dipΓ©rang dadi pamblokiran kanthi dawa sing padha, nambah panandha;
  • Enkripsi blok kasebut;
  • Selehake blok sing dienkripsi ing blok FS kosong.

Kanggo penyayang diagram blok

Ing ngisor iki diagram blok saka algoritma rekaman. Algoritma nampa papat file minangka input:
-Gambar sistem file sing bisa diowahi;
- File tundhuk steganografi;
-File nganggo kunci enkripsi kanggo AES;
- File nganggo marker.
Steganografi ing sistem file

Perlu dicathet yen algoritma iki nduweni siji kelemahan: sawise nulis file menyang FS, ora bisa nulis apa wae sing anyar menyang FS, amarga informasi anyar bisa uga ana ing blok sing wis dialokasikan menyang file zip, sanajan iki uga mbukak kemungkinan "cepet nutupi trek kita."

Nanging cukup ketok carane iki bisa didandani: perlu kanggo nulis ulang algoritma kanggo nulis pamblokiran ing FS. Iki minangka tugas sing bisa dingerteni, nanging wektu sing luar biasa.
Kanggo Proof Of Consept aku ora ngleksanakake iki.

AkibatΓ©, owah-owahan ing ngisor iki bakal ditindakake ing FS; iki kaya FS sadurunge steganografi (file audio sadurunge direkam).
Steganografi ing sistem file
Lan iki FS katon kaya informasi sing wis zipped munggah.
Steganografi ing sistem file

Algoritma maca

Intine:

  • Kanthi kawruh babagan kunci lan cara mbangun spidol, nyipta tandha N pisanan, kanthi njamin yen N dikalikan karo dawa blok sistem file luwih gedhe tinimbang dawa file zip;
  • Telusuri pamblokiran ing FS diwiwiti kanthi tandha;
  • Decipher blok sing ditampa lan misahake tandha;
  • Nglumpukake pamblokiran asil ing urutan sing bener lan njaluk file sumber.

Kanggo penyayang diagram blok

Ing ngisor iki diagram blok saka algoritma rekaman. Algoritma nampa telung file minangka input:
- Gambar sistem file;
-File nganggo kunci enkripsi kanggo AES;
- File nganggo marker.
Steganografi ing sistem file

Sawise program mlaku, file Read katon, sing bakal dadi file sing diekstrak saka sistem file steganographed; yen tombol utawa panandha salah ditemtokake, banjur file Read bakal kosong.
(kanggo penyayang kaendahan, sampeyan bisa nglebokake ora mung file, nanging "header" ngemot meta-informasi: jeneng berkas, hak, wektu pungkasan dipunΓ©wahi, etc.)

Otomatis wiwitan

Kanggo penak, skrip bash ditulis kanggo ngotomatisasi peluncuran ing Linux (dites ing Ubuntu 16.04.3 LTS).
Ayo ndeleng peluncuran langkah demi langkah.
Cathetan:

  1. sudo Copy_Flash.sh "DEVICE" - entuk gambar FS saka DEVICE (flash);
  2. ./Write.sh "FILE" "KEY" "MARKER" - nggawe lingkungan virtual, download perpustakaan perlu lan mbukak script nulis;
  3. sudo ./Write_Flash.sh "DEVICE" - tulis FS sing diganti maneh dadi DEVICE.

Waosan:

  1. sudo Copy_Flash.sh "DEVICE" - entuk gambar FS saka DEVICE (flash);
  2. ./Read.sh "KEY" 'MARKER" - nggawe lingkungan virtual, download perpustakaan sing dibutuhake lan mbukak skipt kanggo maca;
  3. Ing direktori saiki, bukak file Read - iki informasi sing wis di-zip.

kesimpulan

Cara steganografi iki bisa uga mbutuhake perbaikan, tes tambahan lan ekstensi menyang sistem file sing luwih populer, kayata Lemak32, NTFS ΠΈ ext4.
Nanging tujuan karya iki kanggo nuduhake prinsip sing bisa nindakake panyimpenan informasi sing didhelikake ing sistem file.
Kanthi bantuan saka algoritma kasebut, sampeyan bisa nyimpen informasi tanpa wedi, lan yen sampeyan ngerti kunci kasebut, bisa uga hack sistem kasebut ora kanthi brute force (nanging kanthi algoritma sing dawa banget), banjur tanpa ngerti kunci kasebut. sistem misale jek kula pancen stabil, Nanging, iki bisa dadi alesan kanggo artikel kapisah.

Kabeh kode dipun ginakaken ing Python versi 3.5.2. Tuladha karya ditampilake ing saluran youtubeku. Kode lengkap proyek kasebut dikirim ing GitHub.
(Ya, ya, aku ngerti yen kanggo versi produksi sampeyan kudu nulis kanthi "cepet", contone C πŸ˜‰)
Ing implementasine iki, ukuran file input kanggo steganografi ngirim ora ngluwihi 1000 kB.

Aku pengin ngucapake matur nuwun marang pangguna PavelMSTU kanggo saran terkenal ing planning sinau lan Rekomendasi ing desain artikel.

Source: www.habr.com

Add a comment