Steganography pinaagi sa mga file: pagtago sa datos direkta sa mga sektor

Usa ka mubo nga pasiuna

Ang steganography, kung adunay wala makahinumdom, nagtago sa kasayuran sa pipila ka mga sudlanan. Pananglitan, sa mga hulagway (gihisgot dinhi ΠΈ dinhi). Mahimo usab nimo itago ang datos sa mga lamesa sa serbisyo sa file system (gisulat kini bahin sa dinhi), ug bisan sa TCP protocol service packets. Ikasubo, ang tanan nga kini nga mga pamaagi adunay usa ka disbentaha: aron dili mahibal-an nga "pagsulud" nga kasayuran sa usa ka sulud, kinahanglan nimo ang maliputon nga mga algorithm nga nagkonsiderar sa mga lahi sa sulud sa sulud sa sulud. Ug ang mga problema mitungha sa pagsukol sa sudlanan sa pagmaniobra: pananglitan, kung gamay ra nimo ang pag-edit sa litrato, nawala ang tinago nga kasayuran.

Posible ba nga buhaton nga wala’y tuso nga mga algorithm ug maliputon nga pagmaniobra sa datos, ug gisiguro gihapon ang pag-andar sa sulud ug usa ka madawat nga lebel sa seguridad sa natago nga datos? Sa pagtan-aw sa unahan, ako moingon - oo, mahimo nimo! Hatagan ko ikaw usa ka gamit.

Dugo nga mga detalye sa pamaagi

Ang sukaranan nga ideya yano ra sama sa usa ka hampak sa agtang: adunay mga lugar sa disk nga ang operating system wala gyud magsulat (o magsulat sa talagsaon nga mga kaso). Aron malikayan ang panginahanglan nga pangitaon kini nga mga lugar gamit ang maliputon nga mga algorithm, gamiton namon ang redundancy - nga mao, doblehon namon ang among tinago nga kasayuran sa daghang, daghang beses sa tanan nga mga sektor sa disk. Unya, sa ibabaw sa tanan niini nga kahalangdon, mahimo ka makahimo sa gikinahanglan nga mga partisyon, pag-format sa mga sistema sa file, pagsulat sa mga file ug pag-instalar sa mga OS - pareho ra, bahin sa sekreto nga datos ang maluwas ug mahimong makuha, ug ang balikbalik nga pagdoble makatabang kanato ibutang ang orihinal nga tibuok gikan sa mga piraso.

Ang bentaha niini nga pamaagi klaro: wala kami magdepende sa format sa file, o bisan sa matang sa file system nga gigamit.

Ang mga disbentaha usab, sa akong hunahuna, klaro:

  • Ang sekreto nga datos mausab lamang pinaagi sa hingpit nga pagsulat pag-usab sa tibuok disk, sundan sa paghimo pag-usab sa sulod nga makita sa user. Bisan pa, dili ka makagamit sa software nga nagmugna pag-usab sa disk gikan sa usa ka imahe: kini usab maghimo pag-usab sa miaging sekreto nga datos.
  • Ang mas dako nga gidaghanon sa sekreto nga datos, mas dako ang posibilidad nga mawala ang pipila ka impormasyon.
  • Ang pagkuha sa datos gikan sa disk mahimong magdugay. Gikan sa pipila ka minuto hangtod sa daghang mga adlaw (dako ang mga modernong disk).

Karon magpadayon kita sa mga detalye.

Klaro nga kung imong pahid lang ang sekretong datos sa tibuok disk, matago lang kini sa hubo nga mata. Kung gisangkapan nimo ang imong panan-aw, ingnon ta, usa ka editor sa disk, ang datos makita sa tanan nga himaya niini. Busa, maayo nga ideya nga i-encrypt ang datos aron dili kini makita. Simple ra ang among i-encrypt, apan nindot: gamit ang aes256-cbc algorithm. Among pangutan-on ang user alang sa encryption key ug tugotan siya nga makahimo og maayong password.

Ang sunod nga pangutana kung giunsa naton mailhan ang "maayo" nga datos gikan sa dili maayo nga datos. Dinhi ang usa ka checksum makatabang kanato, apan dili usa ka yano, apan SHA1. Ug unsa? Igo kini alang sa git, mao nga mohaum usab kini kanamo. Nakahukom: gihatagan namo ang matag gitipigan nga piraso sa impormasyon og checksum, ug kon human sa decryption motakdo kini, nagpasabot kini nga malampuson ang decryption.

Kinahanglan usab nimo ang numero sa tipik ug ang kinatibuk-ang gitas-on sa sekreto nga datos. Ang numero sa tipik mao ang pagsubay kung unsang mga piraso ang na-decipher na namo ug unsa ang nahabilin. Ang kinatibuk-ang gitas-on mahimong mapuslanon kanato sa pagproseso sa katapusang tipik, aron dili magsulat sa wala kinahanglana nga datos (nga mao ang padding). Aw, tungod kay aduna pa kitay ulohan, atong idugang ang ngalan sa sekretong file didto. Mapuslanon kini pagkahuman sa pag-decryption, aron dili makatag-an kung giunsa kini pag-abli.

Pagsulay sa pamaagi sa praktis

Aron masusi, atong kuhaon ang labing komon nga medium - usa ka flash drive. Nakakita ako usa ka karaan nga adunay 1 GB nga kapasidad, nga angay alang sa mga eksperimento. Kung ikaw, sama kanako, adunay ideya nga dili magsamok sa pisikal nga media, apan sulayan kini sa usa ka file - usa ka imahe sa disk, dayon isulti ko dayon: dili kini molihok. Kung gi-format ang ingon nga "disk," ang Linux nagmugna pag-usab sa file, ug ang tanan nga wala magamit nga mga sektor mapuno sa mga zero.

Ingon usa ka makina nga adunay Linux, sa kasubo, kinahanglan nako nga mogamit usa ka istasyon sa panahon sa Raspberry Pi 3 nga naghigda sa balkonahe. Gilimitahan namo ang among kaugalingon sa labing taas nga gidak-on nga 10 megabytes. Wala usab kapuslanan ang pagtago sa mga file nga gamay ra kaayo: ang utility nagsulat sa data sa disk sa 4 KB clusters. Busa, sa ubos atong limitahan ang atong kaugalingon sa usa ka 3 kb file - kini mohaum sa usa sa maong cluster.

Among bugalbugalan ang flash drive sa mga yugto, pagsusi human sa matag yugto kon ang natago nga impormasyon mabasa:

  1. Ang paspas nga pag-format sa FAT16 format nga adunay gidak-on nga cluster nga 16 KB. Mao kini ang gitanyag sa Windows 7 nga buhaton sa usa ka flash drive nga walay file system.
  2. Pagpuno sa flash drive sa tanang matang sa basura sa 50%.
  3. Pagpuno sa flash drive sa tanang matang sa basura sa 100%.
  4. "Dugay" nga pag-format sa FAT16 nga format (pag-overwrit sa tanan).

Ang unang duha ka mga pagsulay, sama sa gipaabut, natapos sa hingpit nga kadaugan: ang utility nakahimo sa malampuson nga pagkuha sa 10 megabytes sa tinago nga data gikan sa flash drive. Apan human ang flash drive napuno sa kapasidad sa mga file, usa ka kapakyasan ang nahitabo:

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

Sama sa imong makita, 158 lang ka cluster ang malampusong na-decrypted (632 kilobytes sa hilaw nga data, nga naghatag ug 636424 bytes nga payload). Klaro nga walay paagi nga makakuha og 10 megabytes dinhi, ug bisan pa niini nga mga pungpong adunay klaro nga mga duplicate. Dili gani nimo mabawi ang 1 megabyte niining paagiha. Apan makagarantiya kami nga mabawi namo ang 3 ka kilobytes sa sekretong datos gikan sa flash drive bisan human kini maporma ug masulat sa kapasidad. Bisan pa, gipakita sa mga eksperimento nga posible nga makuha ang usa ka file nga 120 kilobytes ang gitas-on gikan sa ingon nga flash drive.

Ang katapusan nga pagsulay, sa walay palad, nagpakita nga ang tibuok flash drive gisapawan kanag:

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

Walay bisan usa ka pungpong ang naluwas... Makasubo, apan dili makaluluoy! Sa wala pa mag-format, atong sulayan ang paghimo og partition sa flash drive, ug naa na niini ang file system. Pinaagi sa dalan, kini gikan sa pabrika nga adunay eksakto nga kini nga pag-format, mao nga wala kami nagbuhat bisan unsa nga kadudahan.
Gilauman nga ang magamit nga wanang sa flash drive mikunhod gamay.

Gilauman usab nga ang 10 megabytes dili matago sa usa ka bug-os nga disk. Apan karon ang gidaghanon sa malampuson nga na-decrypted nga mga pungpong midoble na!

Total clusters read: 250752, decrypted: 405

Ikasubo, imposible nga magtigum og usa ka megabyte gikan sa mga piraso, apan ang duha ka gatus ka kilobyte sayon.

Aw, ang balita bahin sa katapusan, ika-4 nga tseke, kini nga panahon malipayon: ang hingpit nga pag-format sa ingon nga flash drive wala magdala sa pagkaguba sa tanan nga kasayuran! Ang 120 ka kilobytes sa sekretong datos mohaum gayod sa wala magamit nga wanang.

Talaan sa summary sa pagsulay:

Steganography pinaagi sa mga file: pagtago sa datos direkta sa mga sektor

Usa ka gamay nga teorya: bahin sa libre nga wanang ug wala magamit nga mga sektor

Kung gibahin nimo ang imong hard drive sa mga partisyon, mahimo nimong namatikdan nga dili kanunay posible nga igahin ang tanan nga libre nga wanang sa disk. Ang unang seksyon kanunay magsugod uban sa pipila ka indentation (kasagaran 1 megabyte, o 2048 sektor). Sa luyo sa katapusang seksyon, mahitabo usab nga adunay nagpabilin nga gamay nga "ikog" sa wala magamit nga mga sektor. Ug usahay adunay mga kal-ang tali sa mga seksyon, bisan kung panagsa ra.

Sa laing pagkasulti, adunay mga sektor sa disk nga dili ma-access sa panahon sa normal nga pagtrabaho sa disk, apan ang mga datos mahimong isulat niini nga mga sektor! Ug kana nagpasabot sa pagbasa usab niini. Gipahiangay alang sa kamatuoran nga adunay usab usa ka partition table ug bootloader code, nga nahimutang sa walay sulod nga lugar sa sinugdanan sa disk.

Mopahulay kita sa makadiyot gikan sa mga seksyon ug tan-awon ang disk gikan sa panan-aw sa usa ka langgam, ingnon ta. Dinhi kita adunay usa ka walay sulod nga partisyon sa disk. Magbuhat ta ug file system niini. Mahimo ba naton isulti nga ang pipila nga mga sektor sa disk nagpabilin nga wala mapapas?

E-e-e - drum roll! Ang tubag hapit kanunay nga oo! Sa tinuud, sa kadaghanan nga mga kaso, ang paghimo sa usa ka file system moabut sa pagsulat lamang sa pipila ka mga bloke sa impormasyon sa serbisyo sa disk, ug kung dili ang mga sulud sa partisyon dili mausab.

Ug usab - lunsay empirically - mahimo natong hunahunaon nga ang file system dili kanunay nga okupar ang tanang luna nga gigahin niini hangtod sa katapusang sektor. Pananglitan, ang usa ka sistema sa file sa FAT16 nga adunay gidak-on nga cluster nga 64 kilobytes klaro nga dili hingpit nga mag-okupar sa usa ka partisyon nga adunay gidak-on nga dili daghang 64 kilobytes. Sa katapusan sa ingon nga seksyon kinahanglan nga adunay usa ka "ikog" sa daghang mga sektor, dili ma-access alang sa pagtipig sa datos sa tiggamit. Bisan pa, kini nga pangagpas dili makumpirma sa eksperimento.

Busa, aron mapadako ang luna nga magamit alang sa steganogram, kinahanglan nimo nga gamiton ang usa ka file system nga adunay mas dako nga gidak-on sa cluster. Mahimo ka usab maghimo usa ka partisyon, bisan kung kini dili kinahanglan (sa usa ka flash drive, pananglitan). Dili kinahanglan nga maghimo og mga walay sulod nga mga seksyon o magbilin sa mga lugar nga wala gigahin - kini makadani sa atensyon sa mga interesado nga mga lungsuranon.

Utility alang sa mga eksperimento

Mahimo nimong mahikap ang source code sa utility dinhi

Sa pagtukod, kinahanglan nimo ang Qt nga bersyon 5.0 o mas taas ug OpenSSL. Kung adunay dili molihok, mahimo nimong usbon ang file nga steganodisk.pro.

Mahimo nimong usbon ang gidak-on sa cluster gikan sa 4 KB ngadto sa, ingnon ta, 512 bytes (sa secretfile.h). Sa samang higayon, ang gasto sa impormasyon sa serbisyo mosaka: ang header ug checksum nag-okupar sa usa ka fixed 68 bytes.

Kinahanglan nimo nga ipadagan ang utility, siyempre, nga adunay mga katungod sa gamut nga tiggamit, ug uban ang pag-amping. Wala’y mga pangutana nga gipangutana sa wala pa i-overwrite ang gipiho nga file o aparato!

Enjoy.

Source: www.habr.com

Idugang sa usa ka comment