2017. okt. 10.

JPEG APP Markerek - egyszerű (tökéletlen) csináld-magad vízjel

Amelyben kicsit felmelegítjük a sztegano és watermark témát kifejezetten a JPEG-ről tanultakat felhasználva. Amúgy közben találtunk egy régi könyvet, amiben mindenféle fileokban és mindenféle módokon  dugdosnak el titkos tartalmakat. Ide linkelem

Minden JPEG két marker, a 0xFFD8 és 0xFFD9 között helyezkedik el. Ezek a StartOfImage illetve EndOfImage speciális markerek, ugyanis nem következik utánuk adat.
Mivel a 0xFFD9 után a szoftverek már nem értelmezik a képet, ezért adja magát a lehetőség, hogy ide is rejthetünk tartalmat (hasonlóképpen, mint azt a BMP esetén már csináltuk). Gyakorlatilag a JPEG után szúrjuk be a cuccot.
Természetesen Szilágyit dugtuk el a file végén
Sajni, ezzel az a probléma, hogy újramentve PS-ben, törlődik minden, ami a  0xFFD9 marker után áll. Tehát nem bírja a szerkesztést. Kipróbáltuk, hátha a bele rejtett szöveg utáni  újabb 0xFFD9 megoldja a problémát, de nem. És persze nem lepett meg, hogy a Facebook se hagyta nyitva ezt a kiskaput. De a Google például igen (a BMP módszer pl. náluk nem működött). Később találtunk egy cikket, ahol egy JPEG-be rejtett ZIP állományt találnak meg azzal a módszerrel, hogy simán rákeresnek az EOI markerre. Na jó, köszi, ezek után semmibe nem kerül egy robottal figyeltetni hány EOI van egy JPEG-ben. Ennél valamivel combosabb megoldás kellene, ha legalább a Facebook beszopná, lehetne használni watermarknak (steganora semmiképp, még kriptálva is csak a szomszéd ellen), de így nem éri meg monyolni vele. 

Általában a JPEG többi markerei így néznek ki:
0xFF+Marker Number(1 byte)+Data size(2 bytes)+Data(n bytes)
0xFFE0-0xFFEF, vagyis az Application Markerek (összesen 16) nem szükségesek a JPEG kikódolására, ide írhatnak a szoftverek. Például az EXIF-et (amire remélem majd egyszer visszatérünk), ami történetesen az APP1(0xFFE1) markert használja. Az EXIF tagokról ez is érdekes olvasmány. Mindenesetre az EXIF-et nem tartjuk érdemesnek titkolt vízjel elhelyezésére, ugyanis könnyen törölhető. EXIF-ben érdemes ugyan copyright infókat tárolni, mivel még a Facebook is megtartja, de ha titkosat akarunk, akkor nem ez a megoldás.

Az 0xFFEC  marker, vagyis az APP12 "Ducky" marker elárulja, hogy a képünk Save for Web 60% beállítással volt mentve:
A marker utáni két byte: 0x0011 - 17 byte adatot jelent, de ebbe a Data Size is beleértendő, tehát még 15 byte adatnak jut hely a következő markerig (0xFFE1). Ebből a 0x003C jelenti a 60%-os tömörítést, amit a PS olt bele a fileba, ha Save for Web parancsot használunk.
Ha viszont Save as-t használtunk akkor az 0xFFED markerben (APP13) a 0x0406 Photoshop IRB resource pont (JPEG quality-t jelöli) után írja be a mentési minőséget. A 0x0008 az 12-es mentési minőséget jelenti. Részletesebben, itt arról, hogy milyen érték mit jelent.
Na jó, egy másik ötletünk az volt, hogy keressünk egy olyan markert, amit nem listáz az EXIFTOOLS sem, ahova írhatnánk saját infókat. Mivel az APP12 (Ducky marker) a SaveForWeb esetén kap értéket, nem is volt jelen a kiindulási fileban. 
Az 0xFFED elé szúrtuk be tehát, 0xFFEC címen (APP12) 0x000E hosszon (12byte), azt, hogy "krikszkraksz". Az ExifTools nem mutatja ki, de sajnos ez is törölhető a full metaadat törléssel. A Photoshop még úgy is felülírja mentéskor, hogyha nem a Save for Web parancsot használjuk. Ezután az APP14 marker tűnt jó választásnak, mivel tartalmazhat olyan információkat, amelyek érinthetik a kép megjelenítését. Ezért az ExifTools sem törli, legalábbis egy fórum szerint, ahol maga Phil Harvey írja ezt. 
Sajnos de. Azóta megváltozhatott a dolog. Valahogyan csak visszaállítja az eredeti értéket. A PS meg pláne minden mentésnél átírja.
Ugyanez volt az APP7-11 esetén is, pedig itt kifejezetten olyan markerek vannak, amiket nem a PS használ. De törli az ide rejtett információkat a Facebook is. Szóval az APP markerek úgy tűnik egyáltalán nem jó megoldás szteganográfiára.

Az a gyanúnk, hogy jól ki van találva ez a JPEG szabvány és eléggé le vannak zárva benne a kiskapuk. Korábban kellene kelni ahhoz, hogy meghekkeljük. 

Nincsenek megjegyzések:

Megjegyzés küldése