Steganograffeg system ffeiliau

Hei Habr.

Hoffwn gyflwyno prosiect bach i chi ar steganograffeg, a wnaed yn fy amser rhydd o astudio.

Gwneuthum brosiect ar storio gwybodaeth yn gudd yn y system ffeiliau (ymhellach FS).
Gellir defnyddio hwn i ddwyn gwybodaeth gyfrinachol at ddibenion addysgol.

Steganograffeg system ffeiliau

Dewiswyd Linux FS hen iawn fel prototeip ext2.

Gweithredu

Ystyriaethau Gweithredu

Os yw'n dda “ddatod” y safon ext2, yna gallwch chi ddisodli'r hyn a elwir yn yr FS. Superblocks, sy'n darparu gwybodaeth sylfaenol am y system. Wedi i mi gael fy nghael Bloc Didfap и Tabl Inode. Bron ar unwaith, ganwyd y syniad o gofnodi gwybodaeth i mewn i flociau FS gwag ar hyn o bryd. Nawr roedd yn werth meddwl am amddiffyniad rhag rhaglennydd arfog golygydd hecs.

Os ydych chi'n storio gwybodaeth gudd heb ei amgryptio, yna, hyd yn oed er gwaethaf ei aneglurder yn yr FS, bydd yn dal yn rhy amlwg, yn enwedig os yw'r rhaglennydd yn gwybod beth i'w chwilio. Felly, penderfynwyd amgryptio pob bloc o'r ffeil ffynhonnell. Dewisais seiffr bloc AES, ond fel y deallwch, nid yw hyn yn bwysig.

Er mwyn gwahanu'r blociau angenrheidiol oddi wrth y lleill i gyd wrth ddarllen, penderfynwyd ychwanegu marciwr arbennig i bob bloc ar ddechrau'r bloc. Cafodd y tocyn hwn ei amgryptio yn dibynnu ar rif y bloc yn y ffeil ffynhonnell. Roedd y tric hwn yn ei gwneud hi'n bosibl ar unwaith nid yn unig dod o hyd i'r blociau angenrheidiol, ond hefyd i gydnabod eu trefn gywir.

Egwyddor gweithredu cyffredinol y system.

Steganograffeg system ffeiliau

Algorithm recordio

Ar bwyntiau:

  • Yn gyntaf, ysgrifennwch rywfaint o wybodaeth i'r system ffeiliau ffynhonnell;
  • Dileu'r wybodaeth hon (nid o reidrwydd y cyfan);
  • Rhennir y ffeil sydd i'w chuddio yn flociau o hyd cyfartal, gan ychwanegu marciwr;
  • Amgryptio'r blociau hyn;
  • Rhowch flociau wedi'u hamgryptio mewn blociau FS gwag.

Ar gyfer y rhai sy'n hoff o ddiagramau bloc

Isod mae diagram bloc o'r algorithm recordio. Mae'r algorithm yn derbyn pedair ffeil fel mewnbwn:
-Delwedd o system ffeil y gellir ei haddasu;
-Ffeil yn amodol ar steganograffeg;
-Ffeil gydag allwedd amgryptio ar gyfer AES;
-Ffeil gyda marciwr.
Steganograffeg system ffeiliau

Mae'n werth nodi ar unwaith bod gan yr algorithm hwn un anfantais: ar ôl ysgrifennu'r ffeil i'r FS, Ni ddylai ysgrifennwch unrhyw beth newydd i'r FS, gan y gall unrhyw wybodaeth newydd ddod i ben yn y blociau yr ydym wedi'u dyrannu i'n ffeil sip, er bod hyn hefyd yn agor y posibilrwydd o “orchuddio ein traciau yn gyflym.”

Ond mae'n eithaf amlwg sut y gellir ei drwsio: mae angen ailysgrifennu'r algorithm ar gyfer ysgrifennu blociau yn yr FS. Mae hon yn dasg ddealladwy, ond sy'n cymryd llawer o amser.
Er Prawf o Gonsept ni weithredais hyn.

O ganlyniad, bydd y newidiadau canlynol yn cael eu gwneud i'r FS; dyma sut olwg sydd ar yr FS cyn steganograffeg (fe recordiwyd ffeil sain yn flaenorol).
Steganograffeg system ffeiliau
A dyma sut olwg sydd ar yr FS gyda'r wybodaeth sydd eisoes wedi'i sipio.
Steganograffeg system ffeiliau

Darllen algorithm

Ar bwyntiau:

  • Gyda gwybodaeth am yr allwedd a'r dull o adeiladu marcwyr, cyfansoddwch y marcwyr N cyntaf, gyda'r warant bod N wedi'i luosi â hyd bloc y system ffeiliau yn fwy na hyd y ffeil steganograffedig;
  • Chwilio am flociau yn yr FS gan ddechrau gyda marcwyr;
  • Decipher y blociau a dderbyniwyd a gwahanu'r marcwyr;
  • Casglwch y blociau canlyniadol yn y drefn gywir a chael y ffeil ffynhonnell.

Ar gyfer y rhai sy'n hoff o ddiagramau bloc

Isod mae diagram bloc o'r algorithm recordio. Mae'r algorithm yn derbyn tair ffeil fel mewnbwn:
-Delwedd system ffeil;
-Ffeil gydag allwedd amgryptio ar gyfer AES;
-Ffeil gyda marciwr.
Steganograffeg system ffeiliau

Ar ôl i'r rhaglen redeg, mae'r ffeil Read yn ymddangos, sef y ffeil a dynnwyd o'r system ffeiliau steganograff; os yw'r allwedd neu'r marciwr wedi'i nodi'n anghywir, yna bydd y ffeil Read yn wag.
(i'r rhai sy'n hoff o harddwch, gallwch chi fewnosod nid yn unig y ffeil, ond "pennawd" sy'n cynnwys meta-wybodaeth: enw ffeil, hawliau, yr amser a addaswyd ddiwethaf, ac ati)

Awtomatiaeth cychwyn

Er hwylustod, ysgrifennwyd sgriptiau bash i awtomeiddio'r lansiad ar Linux (wedi'i brofi ar Ubuntu 16.04.3 LTS).
Gadewch i ni edrych ar y lansiad gam wrth gam.
Cofnod:

  1. sudo Copy_Flash.sh “DYFAIS” - cael y ddelwedd FS o DYFAIS (fflach);
  2. ./Write.sh “FFEIL” “ALLWEDDOL” “MARCWR” - creu amgylchedd rhithwir, lawrlwytho'r llyfrgelloedd angenrheidiol a rhedeg y sgript ysgrifennu;
  3. sudo ./Write_Flash.sh “DYFAIS” – ysgrifennwch yr FS wedi'i newid eto i DDYFAIS.

Darllen:

  1. sudo Copy_Flash.sh “DYFAIS” - cael y ddelwedd FS o DYFAIS (fflach);
  2. ./Read.sh “MARFER ALLWEDDOL” - creu amgylchedd rhithwir, lawrlwytho'r llyfrgelloedd angenrheidiol a rhedeg y sgip ar gyfer darllen;
  3. Yn y cyfeiriadur cyfredol, agorwch y ffeil Darllen - dyma'r wybodaeth wedi'i sipio.

Casgliad

Mae'n debyg bod angen gwella'r dull steganograffeg hwn, profion ychwanegol ac estyniad i systemau ffeiliau mwy poblogaidd, megis Fat32, NTFS и ext4.
Ond pwrpas y gwaith hwn oedd dangos yr egwyddor y gellir ei defnyddio i storio gwybodaeth yn gudd yn y system ffeiliau.
Gyda chymorth algorithmau o'r fath, gallwch chi storio gwybodaeth yn ddi-ofn, ac os, os ydych chi'n gwybod yr allwedd, mae'n bosibl hacio system o'r fath nid trwy rym 'n Ysgrublaidd (ond gan algorithm hir iawn), yna heb wybod yr allwedd, hyn system yn ymddangos i mi i fod yn gwbl sefydlog, fodd bynnag, gall hyn fod yn rheswm dros erthygl ar wahân.

Gweithredir yr holl god yn fersiwn Python 3.5.2. Enghraifft o waith cyflwyno ar fy sianel youtube. Mae cod llawn y prosiect wedi'i bostio ymlaen GitHub.
(Ie, ydw, dwi'n gwybod bod angen ysgrifennu rhywbeth “cyflym” ar gyfer y fersiwn cynhyrchu, er enghraifft C 😉)
Yn y gweithrediad hwn, ni ddylai maint y ffeil mewnbwn ar gyfer steganograffeg fod yn fwy na 1000 kB.

Rwyf am fynegi fy niolch i'r defnyddiwr PavelMSTU am gyngor gwerthfawr wrth gynllunio'r astudiaeth ac argymhellion ar ddyluniad yr erthygl.

Ffynhonnell: hab.com

Ychwanegu sylw