Steganograffeg yn ôl ffeiliau: cuddio data yn uniongyrchol mewn sectorau

Rhagymadrodd byr

Mae steganograffeg, os nad yw unrhyw un yn cofio, yn cuddio gwybodaeth mewn rhai cynwysyddion. Er enghraifft, mewn lluniau (trafodwyd yma и yma). Gallwch hefyd guddio data yn nhablau gwasanaeth y system ffeiliau (ysgrifennwyd am hyn yma), a hyd yn oed mewn pecynnau gwasanaeth protocol TCP. Yn anffodus, mae gan yr holl ddulliau hyn un anfantais: er mwyn “mewnosod” gwybodaeth yn ddiarwybod i gynhwysydd, mae angen algorithmau cyfrwys arnoch sy'n ystyried hynodion strwythur mewnol y cynhwysydd. Ac mae problemau'n codi gyda gwrthwynebiad y cynhwysydd i drin: er enghraifft, os ydych chi'n golygu'r llun ychydig, mae gwybodaeth gudd yn cael ei golli.

A yw'n bosibl gwneud rhywsut heb algorithmau cyfrwys a thriniadau cynnil â data, a dal i sicrhau ymarferoldeb y cynhwysydd a lefel dderbyniol o ddiogelwch data cudd? Wrth edrych ymlaen, dywedaf - ie, gallwch chi! Byddaf hyd yn oed yn cynnig cyfleustodau.

Manylion gwaedlyd y dull

Mae'r syniad sylfaenol mor syml ag ergyd i'r talcen: mae yna feysydd ar y ddisg nad yw'r system weithredu byth yn ysgrifennu atynt (neu'n ysgrifennu mewn achosion prin). Er mwyn osgoi'r angen i chwilio am y meysydd hyn gan ddefnyddio algorithmau cyfrwys, byddwn yn defnyddio diswyddo - hynny yw, byddwn yn dyblygu ein gwybodaeth gudd lawer, lawer gwaith ar draws pob sector o'r ddisg. Yna, ar ben yr holl ysblander hwn, gallwch greu'r rhaniadau angenrheidiol, fformatio systemau ffeiliau, ysgrifennu ffeiliau a gosod OSes - i gyd yr un peth, bydd rhan o'r data cyfrinachol yn cael ei gadw a gellir ei adfer, a bydd dyblygu ailadroddus yn ein helpu ni. rhowch y cyfanwaith gwreiddiol at ei gilydd o'r darnau.

Mae mantais y dull hwn yn amlwg: nid ydym yn dibynnu ar fformat y ffeil, na hyd yn oed ar y math o system ffeiliau a ddefnyddir.

Mae’r anfanteision hefyd, rwy’n meddwl, yn amlwg:

  • Dim ond trwy ailysgrifennu'r ddisg gyfan yn llwyr y gellir newid data cyfrinachol, ac yna ail-greu'r cynnwys sy'n weladwy i'r defnyddiwr. Fodd bynnag, ni allwch ddefnyddio meddalwedd sy'n ail-greu'r ddisg o ddelwedd: bydd hefyd yn ail-greu'r data cyfrinachol blaenorol.
  • Po fwyaf yw maint y data cyfrinachol, y mwyaf yw'r tebygolrwydd o golli rhywfaint o wybodaeth.
  • Gall cymryd amser hir i adfer data o ddisg. O sawl munud i sawl diwrnod (mae disgiau modern yn fawr).

Nawr, gadewch i ni symud ymlaen at fanylion penodol.

Mae'n amlwg, os ydych chi'n taenu data cyfrinachol ar hyd y ddisg, dim ond rhag y llygad noeth y bydd yn cael ei guddio. Os byddwch yn rhoi, dyweder, golygydd disg ar eich syllu, bydd y data yn ymddangos yn ei holl ogoniant. Felly, byddai'n syniad da amgryptio'r data fel nad yw'n ymddangos. Byddwn yn amgryptio yn syml, ond yn chwaethus: gan ddefnyddio'r algorithm aes256-cbc. Byddwn yn gofyn i'r defnyddiwr am yr allwedd amgryptio ac yn gadael iddo ddod o hyd i gyfrinair da.

Y cwestiwn nesaf yw sut y gallwn wahaniaethu rhwng data “da” a data gwael. Yma bydd siec yn ein helpu, ond nid un syml, ond SHA1. A beth? Mae'n ddigon da i git, felly bydd yn addas i ni hefyd. Penderfynwyd: rydym yn rhoi siec i bob darn o wybodaeth sydd wedi'i storio, ac os yw'n cyfateb ar ôl dadgryptio, mae'n golygu bod y dadgryptio wedi bod yn llwyddiannus.

Bydd angen rhif y darn a chyfanswm hyd y data cyfrinachol arnoch hefyd. Nod y rhif darn yw cadw golwg ar ba ddarnau yr ydym eisoes wedi'u dehongli a pha rai sydd ar ôl. Bydd y cyfanswm hyd yn ddefnyddiol i ni wrth brosesu'r darn olaf, er mwyn peidio ag ysgrifennu data diangen (hynny yw, padin). Wel, gan fod gennym bennawd o hyd, byddwn yn ychwanegu enw'r ffeil gyfrinachol yno. Bydd yn ddefnyddiol ar ôl dadgryptio, er mwyn peidio â dyfalu sut i'w agor.

Profi'r dull yn ymarferol

I wirio, gadewch i ni gymryd y cyfrwng mwyaf cyffredin - gyriant fflach. Deuthum o hyd i hen un gyda chynhwysedd 1 GB, sy'n eithaf addas ar gyfer arbrofion. Os gwnaethoch chi, fel fi, feddwl am y syniad o beidio â thrafferthu â chyfryngau corfforol, ond ei brofi ar ffeil - delwedd disg, yna dywedaf ar unwaith: ni fydd yn gweithio. Wrth fformatio “disg” o'r fath, mae Linux yn creu'r ffeil eto, a bydd pob sector nas defnyddiwyd yn cael ei lenwi â sero.

Fel peiriant gyda Linux, yn anffodus, roedd yn rhaid i mi ddefnyddio gorsaf dywydd ar y Raspberry Pi 3 yn gorwedd ar y balconi.Nid oes llawer o gof yno, felly ni fyddwn yn cuddio ffeiliau mawr. Rydym yn cyfyngu ein hunain i uchafswm maint o 10 megabeit. Nid oes unrhyw bwynt ychwaith mewn cuddio ffeiliau sy'n rhy fach: mae'r cyfleustodau'n ysgrifennu data i ddisg mewn clystyrau 4 KB. Felly, isod byddwn yn cyfyngu ein hunain i ffeil 3 kb - mae'n ffitio i mewn i un clwstwr o'r fath.

Byddwn yn ffugio'r gyriant fflach fesul cam, gan wirio ar ôl pob cam a yw'r wybodaeth gudd yn ddarllenadwy:

  1. Fformatio cyflym mewn fformat FAT16 gyda maint clwstwr o 16 KB. Dyma beth mae Windows 7 yn cynnig ei wneud gyda gyriant fflach nad oes ganddo system ffeiliau.
  2. Llenwi'r gyriant fflach gyda phob math o sbwriel 50%.
  3. Llenwi'r gyriant fflach gyda phob math o sbwriel 100%.
  4. Fformatio “hir” mewn fformat FAT16 (trosysgrifo popeth).

Daeth y ddau brawf cyntaf, yn ôl y disgwyl, i ben mewn buddugoliaeth lwyr: llwyddodd y cyfleustodau i dynnu 10 megabeit o ddata cyfrinachol o'r gyriant fflach yn llwyddiannus. Ond ar ôl i'r gyriant fflach gael ei lenwi i gapasiti â ffeiliau, digwyddodd methiant:

Total clusters read: 250752, decrypted: 158
ERROR: cannot write incomplete secretFile

Fel y gwelwch, dim ond 158 o glystyrau a gafodd eu dadgryptio'n llwyddiannus (632 kilobytes o ddata crai, sy'n rhoi 636424 beit o lwyth cyflog). Mae’n amlwg nad oes unrhyw ffordd i gael 10 megabeit yma, ac eto ymhlith y clystyrau hyn mae’n amlwg bod yna ddyblygiadau. Ni allwch hyd yn oed adennill 1 megabeit fel hyn. Ond gallwn warantu y byddwn yn adennill 3 kilobeit o ddata cyfrinachol o yriant fflach hyd yn oed ar ôl iddo gael ei fformatio a'i ysgrifennu i gapasiti. Fodd bynnag, mae arbrofion yn dangos ei bod yn eithaf posibl tynnu ffeil 120 kilobytes o hyd o yriant fflach o'r fath.

Yn anffodus, dangosodd y prawf diwethaf fod y gyriant fflach cyfan wedi'i drosysgrifo:

$ sudo ./steganodisk -p password /dev/sda
Device size: 250752 clusters
250700 99%
Total clusters read: 250752, decrypted: 0
ERROR: cannot write incomplete secretFile

Nid oes un clwstwr wedi goroesi... Trist, ond nid trasig! Cyn fformatio, gadewch i ni geisio creu rhaniad ar y gyriant fflach, ac eisoes ynddo system ffeiliau. Gyda llaw, daeth o'r ffatri gyda'r union fformatio hwn, felly nid ydym yn gwneud unrhyw beth amheus.
Disgwylir yn eithaf bod y gofod sydd ar gael ar y gyriant fflach wedi gostwng ychydig.

Mae hefyd yn eithaf disgwyl na ellid cuddio 10 megabeit ar ddisg gwbl lawn. Ond nawr mae nifer y clystyrau sydd wedi'u dadgryptio'n llwyddiannus wedi mwy na dyblu!

Total clusters read: 250752, decrypted: 405

Yn anffodus, mae'n amhosibl cydosod megabeit o ddarnau, ond mae dau gant cilobeit yn hawdd.

Wel, mae'r newyddion am yr olaf, 4ydd gwiriad, y tro hwn yn llawen: nid oedd fformatio gyriant fflach o'r fath yn llwyr yn arwain at ddinistrio'r holl wybodaeth! Mae 120 kilobeit o ddata cyfrinachol yn ffitio'n berffaith i ofod nas defnyddir.

Tabl crynodeb prawf:

Steganograffeg yn ôl ffeiliau: cuddio data yn uniongyrchol mewn sectorau

Ychydig o ddamcaniaethu: am ofod rhydd a sectorau nas defnyddir

Os ydych chi erioed wedi rhannu eich gyriant caled yn rhaniadau, efallai eich bod wedi sylwi nad yw bob amser yn bosibl dyrannu'r holl le rhydd ar y ddisg. Mae'r adran gyntaf bob amser yn dechrau gyda pheth mewnoliad (1 megabeit fel arfer, neu 2048 sector). Y tu ôl i’r adran olaf, mae hefyd yn digwydd bod “cynffon” fach o sectorau nas defnyddir o hyd. Ac weithiau mae bylchau rhwng adrannau, er yn anaml.

Mewn geiriau eraill, mae yna sectorau ar y ddisg na ellir eu cyrchu yn ystod gwaith arferol gyda'r ddisg, ond gellir ysgrifennu data i'r sectorau hyn! Ac mae hynny'n golygu ei ddarllen hefyd. Wedi'i addasu am y ffaith bod yna hefyd dabl rhaniad a chod cychwynnydd, sydd wedi'u lleoli yn yr ardal wag ar ddechrau'r ddisg.

Gadewch i ni gymryd seibiant o'r adrannau am ychydig ac edrych ar y ddisg o olwg aderyn, fel petai. Yma mae gennym raniad gwag ar y ddisg. Gadewch i ni greu system ffeiliau ynddo. A allwn ddweud bod rhai sectorau ar y ddisg yn parhau i fod heb eu dileu?

E-e-e - drum roll! Yr ateb bron bob amser fydd ydy! Yn wir, yn y rhan fwyaf o achosion, mae creu system ffeiliau yn dibynnu ar ysgrifennu ychydig flociau o wybodaeth gwasanaeth i'r ddisg yn unig, ac fel arall nid yw cynnwys y rhaniad yn newid.

A hefyd - yn empirig yn unig - gallwn dybio na all y system ffeiliau bob amser feddiannu'r holl ofod a neilltuwyd iddi hyd at y sector diwethaf. Er enghraifft, mae'n amlwg na all system ffeiliau FAT16 gyda maint clwstwr o 64 kilobytes feddiannu rhaniad yn gyfan gwbl gyda maint nid lluosrif o 64 cilobeit. Ar ddiwedd adran o'r fath bydd yn rhaid cael “cynffon” o sawl sector, yn anhygyrch ar gyfer storio data defnyddwyr. Fodd bynnag, ni ellid cadarnhau'r rhagdybiaeth hon yn arbrofol.

Felly, i wneud y mwyaf o'r lle sydd ar gael ar gyfer y steganogram, mae angen i chi ddefnyddio system ffeiliau gyda maint clwstwr mwy. Gallwch hefyd greu rhaniad, hyd yn oed os nad yw hyn yn angenrheidiol (ar yriant fflach, er enghraifft). Nid oes angen creu adrannau gwag na gadael ardaloedd heb eu dyrannu - bydd hyn yn denu sylw dinasyddion â diddordeb.

Cyfleustodau ar gyfer arbrofion

Gallwch chi gyffwrdd â chod ffynhonnell y cyfleustodau yma

I adeiladu, bydd angen Qt fersiwn 5.0 neu uwch ac OpenSSL. Os nad yw rhywbeth yn gweithio, efallai y bydd yn rhaid i chi olygu'r ffeil steganodisk.pro.

Gallwch newid maint y clwstwr o 4 KB i, dyweder, 512 bytes (yn secretfile.h). Ar yr un pryd, bydd cost gwybodaeth gwasanaeth yn cynyddu: mae'r pennawd a'r siec yn meddiannu 68 beit sefydlog.

Mae angen i chi redeg y cyfleustodau, wrth gwrs, gyda hawliau defnyddiwr gwraidd, a gyda gofal. Ni ofynnir unrhyw gwestiynau cyn trosysgrifo'r ffeil neu'r ddyfais benodedig!

Mwynhewch.

Ffynhonnell: hab.com

Ychwanegu sylw