Stéganografi sistem file

Hejo Habr.

Abdi hoyong nampilkeun anjeun proyék leutik dina steganografi, dijieun dina waktu luang kuring ti diajar.

Kuring ngadamel proyék pikeun neundeun inpormasi anu disumputkeun dina sistem file (salajengna FS).
Ieu tiasa dianggo pikeun maok inpormasi rahasia pikeun tujuan pendidikan.

Stéganografi sistem file

FS Linux anu lami pisan dipilih salaku prototipe ext2.

Реализация

Pertimbangan Palaksanaan

Upami éta saé "ngabongkar" standar ext2, maka anjeun tiasa ngagentos yén dina FS aya anu disebut Superblok, nu nyadiakeun informasi dasar ngeunaan sistem. Sanggeus kuring kapanggih Blok Bitmap и Méja Inode. Ampir langsung, ide pikeun ngarékam inpormasi kana blok FS anu ayeuna kosong lahir. Ayeuna éta patut mikir ngeunaan panyalindungan tina programmer pakarang redaktur hex.

Upami anjeun nyimpen inpormasi anu disumputkeun tanpa enkripsi, teras, sanaos kaburna dina FS, éta masih bakal katingali teuing, khususna upami programer terang naon anu kedah dipilarian. Ku alatan éta, diputuskeun pikeun énkripsi sadaya blok file sumber. Kuring milih block cipher AES, Tapi anjeun ngartos, ieu teu penting.

Pikeun misahkeun blok-blok anu dipikabutuh tina anu sanés nalika maca, éta mutuskeun pikeun nambihan spidol khusus pikeun unggal blok di awal blok. Token ieu énkripsi gumantung kana jumlah blok dina file sumber. Trik ieu langsung ngamungkinkeun henteu ngan ukur milarian blok anu diperyogikeun, tapi ogé pikeun mikawanoh urutan anu leres.

Prinsip operasi umum tina sistem.

Stéganografi sistem file

Algoritma rékaman

Punten:

  • Tulis heula sababaraha inpormasi kana sistem file sumber;
  • Pupus inpormasi ieu (teu kedah sadayana);
  • File anu bakal disumputkeun dibagi kana blok anu panjangna sami, nambihan spidol;
  • Encrypt blok ieu;
  • Teundeun blok énkripsi dina blok FS kosong.

Pikeun pencinta diagram blok

Di handap ieu diagram blok tina algoritma rekaman. Algoritma nampi opat file salaku input:
-Gambar tina sistem file anu tiasa dimodifikasi;
- File tunduk kana steganografi;
-File sareng konci enkripsi pikeun AES;
- File sareng spidol.
Stéganografi sistem file

Perhatos langsung yén algoritma ieu ngagaduhan hiji kalemahan: saatos nyerat file ka FS, teu kedah nulis nanaon anyar kana FS, sabab sagala informasi anyar bisa mungkas nepi di blok nu urang geus disadiakeun pikeun file zip kami, sanajan ieu ogé muka kamungkinan "gancang nutupan lagu urang".

Tapi éta rada atra kumaha ieu bisa dibenerkeun: perlu nulis balik algoritma keur blok nulis dina FS. Ieu mangrupa tugas kaharti, tapi incredibly waktu-consuming.
Pikeun Buktina Konsép kuring henteu ngalaksanakeun ieu.

Hasilna, parobihan di handap ieu bakal dilakukeun ka FS; ieu mangrupikeun FS sateuacan steganografi (file audio sateuacana dirékam).
Stéganografi sistem file
Sareng ieu anu katingalina FS kalayan inpormasi anu parantos dipasang.
Stéganografi sistem file

Algoritma bacaan

Punten:

  • Kalayan pangaweruh ngeunaan konci sareng metode ngawangun spidol, nyusun spidol N munggaran, kalayan jaminan yén N dikali panjang blok sistem file langkung ageung tibatan panjang file zip;
  • Pilarian blok dina FS dimimitian ku spidol;
  • Decipher blok nampi sareng misahkeun spidol;
  • Kumpulkeun blok anu hasilna dina urutan anu leres sareng kéngingkeun file sumber.

Pikeun pencinta diagram blok

Di handap ieu diagram blok tina algoritma rekaman. Algoritma nampi tilu file salaku input:
- Gambar sistem file;
-File sareng konci enkripsi pikeun AES;
- File sareng spidol.
Stéganografi sistem file

Saatos program dijalankeun, file Baca némbongan, anu mangrupikeun file anu diekstrak tina sistem file steganographed; upami konci atanapi spidol henteu leres, file Baca bakal kosong.
(pikeun pencinta kageulisan, anjeun tiasa nyelapkeun teu ukur file, tapi "header" ngandung meta-inpormasi: ngaran file, hak, waktu panungtungan dirobah, jsb)

Otomatis ngamimitian

Pikeun genah, skrip bash ditulis pikeun ngajadikeun otomatis peluncuran dina Linux (diuji dina Ubuntu 16.04.3 LTS).
Hayu urang nempo peluncuran step by step.
Catetan:

  1. sudo Copy_Flash.sh "DEVICE" - kéngingkeun gambar FS tina DEVICE (flash);
  2. ./Write.sh "FILE" "KEY" "MARKER" - nyiptakeun lingkungan virtual, unduh perpustakaan anu diperyogikeun sareng jalankeun naskah nyerat;
  3. sudo ./Write_Flash.sh "DEVICE" - tuliskeun FS anu dirobih deui ka DEVICE.

Maca:

  1. sudo Copy_Flash.sh "DEVICE" - kéngingkeun gambar FS tina DEVICE (flash);
  2. ./Read.sh "KEY" 'MARKER' - nyiptakeun lingkungan virtual, unduh perpustakaan anu diperyogikeun sareng ngajalankeun skipt pikeun maca;
  3. Dina diréktori ayeuna, buka file Baca - ieu téh informasi zipped.

kacindekan

Métode steganografi ieu sigana peryogi perbaikan, uji tambahan sareng ekstensi kana sistem file anu langkung populer, sapertos Gajih32, NTFS и ext4.
Tapi tujuan tina karya ieu nya éta pikeun némbongkeun prinsip ku nu kasebut nyaéta dimungkinkeun pikeun nyimpen informasi disumputkeun dina sistem file.
Kalayan bantosan algoritma sapertos kitu, anjeun henteu sieun nyimpen inpormasi, sareng upami, upami anjeun terang koncina, anjeun tiasa nga-hack sistem sapertos kitu sanés ku gaya kasar (tapi ku algoritma anu panjang pisan), teras tanpa terang koncina, ieu. Sistem sigana mah leres pisan stabil, kumaha oge, ieu bisa dijadikeun alesan pikeun artikel misah.

Sadaya kode dilaksanakeun dina versi Python 3.5.2. Conto gawé dibere dina channel youtube kuring. Kodeu pinuh ku proyék dipasang dina github.
(Leres, leres, kuring terang yén pikeun versi produksi anjeun kedah nyerat dina hal "gancang", contona C 😉)
Dina palaksanaan ieu, ukuran file input pikeun steganography teu kudu ngaleuwihan 1000 kB.

Abdi hoyong nganyatakeun syukur kuring ka pamaké PavelMSTU pikeun naséhat berharga dina ngarencanakeun pangajaran sareng saran ngeunaan desain tulisan.

sumber: www.habr.com

Tambahkeun komentar