Habari Habr.
Ningependa kukuonyesha mradi mdogo
Nilifanya mradi juu ya uhifadhi uliofichwa wa habari kwenye mfumo wa faili (zaidi FS).
Hii inaweza kutumika kuiba taarifa za siri kwa madhumuni ya elimu.
Linux FS ya zamani sana ilichaguliwa kama mfano
Utekelezaji
Mazingatio ya Utekelezaji
Ikiwa ni vizuri "kufungua" kiwango cha ext2, basi unaweza kuchukua nafasi ya kwamba katika FS kuna kinachojulikana.
Ikiwa utahifadhi habari iliyofichwa bila usimbuaji, basi, hata licha ya ukungu wake katika FS, bado itakuwa wazi sana, haswa ikiwa programu anajua nini cha kutafuta. Kwa hivyo, iliamuliwa kusimba vizuizi vyote vya faili ya chanzo. Nilichagua block cipher
Ili kutenganisha vitalu muhimu kutoka kwa wengine wote wakati wa kusoma, iliamuliwa kuongeza alama maalum kwa kila block mwanzoni mwa block. Tokeni hii ilisimbwa kwa njia fiche kulingana na nambari ya kuzuia katika faili chanzo. Hila hii mara moja ilifanya iwezekanavyo si tu kupata vitalu muhimu, lakini pia kutambua utaratibu wao sahihi.
Kanuni ya jumla ya uendeshaji wa mfumo.
Algorithm ya kurekodi
pointi:
- Kwanza andika habari fulani kwenye mfumo wa faili wa chanzo;
- Futa habari hii (sio lazima zote);
- Faili iliyofichwa imegawanywa katika vitalu vya urefu sawa, na kuongeza alama;
- Simba vizuizi hivi kwa njia fiche;
- Weka vizuizi vilivyosimbwa kwa njia fiche kwenye vizuizi tupu vya FS.
Kwa wapenzi wa mchoro wa block
Chini ni mchoro wa kuzuia wa algorithm ya kurekodi. Algorithm inapokea faili nne kama pembejeo:
-Picha ya mfumo wa faili unaoweza kubadilishwa;
-Faili chini ya steganografia;
-Faili iliyo na ufunguo wa usimbuaji kwa AES;
-Faili iliyo na alama.
Inastahili kuzingatia mara moja kwamba algorithm hii ina shida moja: baada ya kuandika faili kwa FS, hawezi andika chochote kipya kwenye FS, kwa kuwa taarifa yoyote mpya inaweza kuishia kwenye vizuizi ambavyo tumetenga kwa faili yetu iliyofungwa, ingawa hii pia inafungua uwezekano wa "kufunika nyimbo zetu kwa haraka."
Lakini ni dhahiri kabisa jinsi hii inaweza kurekebishwa: ni muhimu kuandika upya algorithm ya kuandika vitalu katika FS. Hii ni kazi inayoeleweka, lakini inayotumia wakati mwingi.
Kwa Uthibitisho wa Idhini sikutekeleza hili.
Kama matokeo, mabadiliko yafuatayo yatafanywa kwa FS; hivi ndivyo FS inavyoonekana kabla ya steganografia (faili la sauti lilirekodiwa hapo awali).
Na hivi ndivyo FS inavyoonekana na habari ambayo tayari imefungwa.
Algorithm ya kusoma
pointi:
- Kwa ujuzi wa ufunguo na njia ya kujenga alama, tengeneza alama za kwanza za N, na dhamana ya kwamba N iliyozidishwa na urefu wa kizuizi cha mfumo wa faili ni kubwa zaidi kuliko urefu wa faili iliyofungwa;
- Tafuta vitalu katika FS kuanzia na alama;
- Tambua vitalu vilivyopokelewa na utenganishe alama;
- Kusanya vizuizi vinavyotokana na mpangilio sahihi na upate faili ya chanzo.
Kwa wapenzi wa mchoro wa block
Chini ni mchoro wa kuzuia wa algorithm ya kurekodi. Algorithm inapokea faili tatu kama pembejeo:
- Picha ya mfumo wa faili;
-Faili iliyo na ufunguo wa usimbuaji kwa AES;
-Faili iliyo na alama.
Baada ya programu kuendeshwa, faili ya Soma inaonekana, ambayo itakuwa faili iliyotolewa kutoka kwa mfumo wa faili wa steganographed; ikiwa ufunguo au alama iliainishwa vibaya, basi faili ya Soma itakuwa tupu.
(kwa wapenzi wa urembo, unaweza kuingiza sio faili tu, lakini "kichwa" kilicho na habari ya meta: jina la faili, haki, wakati wa mwisho uliorekebishwa, nk.)
Anza otomatiki
Kwa urahisi, maandishi ya bash yaliandikwa ili kuhariri uzinduzi kwenye Linux (iliyojaribiwa kwenye Ubuntu 16.04.3 LTS).
Wacha tuangalie uzinduzi hatua kwa hatua.
Rekodi:
- sudo Copy_Flash.sh "DEVICE" - pata picha ya FS kutoka kwa DEVICE (flash);
- ./Write.sh "FILE" "KEY" "ALAMA" - tengeneza mazingira ya mtandaoni, pakua maktaba muhimu na uendesha hati ya kuandika;
- sudo ./Write_Flash.sh "DEVICE" - andika FS iliyobadilishwa tena kwa DEVICE.
Kusoma:
- sudo Copy_Flash.sh "DEVICE" - pata picha ya FS kutoka kwa DEVICE (flash);
- ./Read.sh "KEY" 'AMAKER" - tengeneza mazingira ya mtandaoni, pakua maktaba muhimu na uendeshe ruka kwa usomaji;
- Katika saraka ya sasa, fungua faili ya Soma - hii ni habari iliyofungwa.
Hitimisho
Mbinu hii ya steganografia pengine inahitaji uboreshaji, majaribio ya ziada na ugani kwa mifumo maarufu zaidi ya faili, kama vile
Lakini madhumuni ya kazi hii ilikuwa kuonyesha kanuni ambayo inawezekana kufanya uhifadhi wa siri wa habari katika mfumo wa faili.
Kwa msaada wa algorithms kama hizo, unaweza kuhifadhi habari bila woga, na ikiwa, ikiwa unajua ufunguo, inawezekana kuteka mfumo kama huo sio kwa nguvu ya kikatili (lakini kwa algorithm ndefu sana), basi bila kujua ufunguo, hii. mfumo unaonekana kwangu kuwa thabiti kabisa, hata hivyo, hii inaweza kutumika kama sababu ya nakala tofauti.
Nambari zote zinatekelezwa katika toleo la Python 3.5.2.
(Ndio, ndio, najua kuwa kwa toleo la uzalishaji unahitaji kuandika kwa kitu "haraka", kwa mfano C π)
Katika utekelezaji huu, ukubwa wa faili ya pembejeo kwa steganografia haipaswi kuzidi 1000 kB.
Ninataka kutoa shukrani zangu kwa mtumiaji
Chanzo: mapenzi.com