CarrierEdit
Bæreren er det signal, den strøm eller den datafil, hvori de skjulte data er skjult ved at foretage subtile ændringer. Eksempler omfatter lydfiler, billedfiler, dokumenter og eksekverbare filer. I praksis bør bæreren se ud og fungere på samme måde som den oprindelige uændrede bærer og bør fremstå godartet for enhver, der inspicerer den.
Visse egenskaber kan give mistanke om, at en fil indeholder skjulte data:
- Hvis de skjulte data er store i forhold til indholdet af bæreren, som i et tomt dokument, der er en megabyte stort.
- Brug af forældede formater eller dårligt understøttede udvidelser, der bryder almindeligt anvendte værktøjer.
Det er et kryptografisk krav, at bæreren (f.eks. foto) er original, og ikke en kopi af noget offentligt tilgængeligt (f.eks, downloadet). Dette skyldes, at de offentligt tilgængelige kildedata kan sammenlignes med den version, hvor der er indlejret en skjult meddelelse.
Der er et svagere krav om, at den indlejrede meddelelse ikke ændrer bærerens statistikker (eller andre målinger) på en sådan måde, at tilstedeværelsen af en meddelelse kan påvises. Hvis f.eks. de mindst betydningsfulde bits i den røde kamerapixelkanal i et billede har en gaussisk fordeling givet et konstant farvet felt, kan simpel billedsteganografi, der frembringer en tilfældig fordeling af disse bits, gøre det muligt at skelne mellem stego billeder og uændrede billeder.
Den blotte mængde af moderne (ca. 2014) og intetsigende medier med høj båndbredde (f.eks, youtube.com, bittorrent-kilder, eBay, Facebook, spam osv.) giver rig mulighed for skjult kommunikation.
ChainEdit
Skjulte data kan opdeles på et sæt filer, hvorved der produceres en carrier-kæde, som har den egenskab, at alle carriers skal være tilgængelige, uændrede og behandles i den korrekte rækkefølge for at kunne hente de skjulte data. Denne yderligere sikkerhedsfunktion opnås normalt ved at:
- anvendelse af en anden initialiseringsvektor for hver carrier og lagring af den inden for behandlede carriers -> CryptedIVn = Crypt( IVn, CryptedIVn-1 )
- ved at anvende en anden kryptografialgoritme for hver bærer og vælge den med en kædeordningsafhængig equiprobabilistisk algoritme
Robusthed og kryptografiRediger
Steganografiværktøjer sigter mod at sikre robusthed over for moderne kriminaltekniske metoder, såsom statistisk steganalyse. En sådan robusthed kan opnås ved en afbalanceret blanding af:
- en strømbaseret kryptografiproces;
- en dataflødningsproces;
- en kodningsproces.
Hvis dataene opdages, er kryptografi også med til at minimere den deraf følgende skade, da dataene ikke afsløres, men kun det faktum, at der blev overført en hemmelighed. Afsenderen kan være tvunget til at dekryptere dataene, når de er blevet opdaget, men der kan udnyttes benægtende kryptering for at få de dekrypterede data til at fremstå godartede.
Stærk steganografisoftware er baseret på en arkitektur i flere lag med en dyb, dokumenteret obfuskeringsproces.
Carrier engineEdit
The carrier engine is the core of any steganography tool. Forskellige filformater ændres på forskellige måder med henblik på at indsætte skjulte data i dem på skjult vis. Behandlingsalgoritmerne omfatter:
- Injektion (mistænkeligt på grund af den indholdsrelaterede forøgelse af filstørrelsen)
- Generering (mistænkeligt på grund af sporbarheden af de genererede bærere)
- Substitution af hjælpedata og metadata
- LSB- eller adaptiv substitution
- Frekvensrumsmanipulation