Steganografi er slet ikke nemt.

Blandt hovmodige "cybernørder" er steganografi altid et hit, primært på grund af "alle strissere er for dumme" antagelsen.

Lige nu er en historie i nyhederne om terrorplaner fundet på en USB stick fyldt med pornofilm, et klassisk eksempel på steganografi.

Det er svært at lave steganografi godt, for det er begrænset hvor meget båndbredde man kan stjæle før det bliver synligt, men det er ikke de aspekt jeg finder mest problematisk.

For nogle år siden skrev jeg "GBDE" kryptering til hele disk-partitioner og takket være DARPAs sponsorat havde jeg tid og mulighed for at researche emnet og tale med alle mulige interessante mennesker.

Dengang var "STEGFS" meget i vælten blandt "cybernørderne".

STEGFS er kendetegnet ved at det har flere niveauer af sikkerhed, hver med deres kryptografiske nøgle. Ideen er så at man på det laveste niveau lagrer filerne med børnebilleder, ønskelister og ferieplaner der giver indtrykket af et solidt og ordentligt familiemenneske. På næste niveau gemmer man "throw-away secrets", f.eks lovlige pornobilleder, så man har en undskyldning for at køre STEGFS ("Konen skal helst ikke vide at jeg kigger på porno") og så er der frit slag på niveauerne opefter, til at gemme de rigtige hemmeligheder.

Det lyder meget tilforladeligt, gør det ikke ?

Så nu går vores "helt" igennem toldkontrollen i USA, de beder om at få lov til at kigge på hans laptop og finder at den kører STEGFS.

"Giv os passwordet", De får det første password, ser familiebillederne.

"Giv os det næste password". De ser pornobillederne.

"Giv os det næste password" og her knækker filmen.

STEGFS er bygget således at vores "helt" ikke kan bevise at der ikke er et password mere.

Derfor bliver han tilbageholdt, indtil myndighederne er overbevist om at der ikke er flere passwords.

Deres regnestykke er nemt: 20GB STEGFS partition, minus 3GB familiebilleder, minus 5 GB porno = 12GB der skal gøres rede for, før han slippes løs.

"Busted by Bandwidth" som folk i den branche siger.

Myndighedspersoner er nogen gange temmelig naive og håbløse, men hvis man ryger i kløerne på folk der jagter terrorister kan man roligt antage at de ved hvor deres håndklæde er og hvis ikke man kan gøre rede for alle sine bits, kan man nemt blive forsinket i meget lang tid.

Alle jeg talte med dengang og alle jeg har talt med siden, siger uden vaklen, at det er meget vigtigere at beskytte personen end hemmeligheden og derfor var der aldrig nogen professionelle der tog STEGFS seriøst: Man kan ikke bevise at man er uskyldig.

De fleste steganografiske metoder satser ensidigt på at den stjålne båndbredde ikke bliver opdaget, men giver slet ingen beskyttelse når den bliver opdaget.

GBDE er ganske vist ikke en steganografisk metode, der ligger en helt diskpartition og skriger "Jeg indeholder krypterede data!", men derfor fandt jeg alligevel problemstillingen relevant nok til at håndtere den.

I GBDE kan brugeren bevise at selv med passwordet mangler der stadig en hovednøgle før man kan hive indhold ud af partitionen.

Denne hovednøgle kan man slette inden man tager afsted og hvis man føler sig sikker, hente den over nettet når/hvis man er nået vel frem i udlandet.

Visse af GBDE's brugere kan ikke selv få remote adgang til hovednøglen, de skal først mødes med en lokal kontaktperson og have et løsen udleveret, efter en eller anden form for "torn-money" protokol, netop for at undgå at de under press giver lokale myndigheder adgang til kompromiterende data.

I sådanne tilfælde vælger myndighederne ofte at konfiskere disken, men det er kun et tab af data, det er ikke en afsløring af data.

En anden fordel ved at kryptere hele diske er, at hvis man sletter hovednøglen, kan disken risikofrit genbruges.

phk

Poul-Henning Kamps billede
Poul-Henning er selvstændig systemprogrammør, kernekoder, Varnish-forfatter, data-arkæolog og brokkehoved uden særlig portefølje.

Kommentarer (40)

Casper Bang

Ja det er klart at informationsteorien giver os nogle begrænsninger, men såfrem entropien er høj nok, eller hemmeligheden lille nok, vil det nok være svært at adskille i praksis alligevel - lidt ligesom passwords med høj entropi er umulige at brute force.

Og hvad hvis man udnytter en "falsk bund", så bliver helheden = summen af delene og intet vil se mistænkeligt ud. Her tænker jeg f.eks. på bad sectors, SSD spare area og lignende.

Poul-Henning Kamp Blogger

I yderste konsekvens kan du overføre en totalt udetekterbar bit, ved at vælge om du har et billede hvor din datter sidder til venstre for eller til højre for din søn i din pung.

Problemet kommer først når du har brug for at overføre et relevant antal bits.

I mange realistiske tilfælde, vil den "falske bund" du gemmer dine databits I stikke ud som en bullen tommelfinger, fordi krypterede data netop er kendetegnet ved at de ikke kan komprimeres, overhovedet.

I mange sammenhænge er bare det at have ikke-komprimerbare bits et alarmsignal for myndighedsundersøgelser.

F.eks findes der mange "forensic" programmer der minutiøst gennemgår billed og medie filer for at se om der er bits der "ikke bliver brugt".

Det er formodentlig noget software i den stil der har afsløret terroplanerne i pornofilmen.

Klaus Elmquist Nielsen

Denne historie er endnu et eksempel på hvorfor man skal holde sig langt væk fra USA hvis man bekymrer sig bare en lille smule om sit digitale privatliv herunder de amerikanske myndigheders erhvervsafdelingers anvendelse af de fundne data.

Spørgsmålet er om canadierne er lige så perfide med indholdet på de rejsendes datamedier?

Tak i øvrigt for en interessant og særdeles tankevækkende historie!

Niels Danielsen

Hvis man bliver taget med en FLASH disk med et par filer med suspekt entropi, kan det være svært at forklare sig.

Hvis man bliver taget med en PC med en rodet windows installation, hvor mange programmer er blevet installeret og fjernet over en årrække er der ingen i der ved 50% af disk pladsen bliver brugt til :-)
Hvis der ligger en ekstra binær 002356_.tmp fil et eller andet rodet sted i fil strukturen, er der ikke nogen der lægger mærke til den.

Svante Jørgensen

Problemet kommer først når du har brug for at overføre et relevant antal bits.

I mange realistiske tilfælde, vil den "falske bund" du gemmer dine databits I stikke ud som en bullen tommelfinger, fordi krypterede data netop er kendetegnet ved at de ikke kan komprimeres, overhovedet.

I mange sammenhænge er bare det at have ikke-komprimerbare bits et alarmsignal for myndighedsundersøgelser.


Kunne man ikke løse det ved at inflate det krypterede data tilpas så det ligner andet komprimerbar data? Det kunne eventuelt være en del af krypteringsalgoritmen, eller en separat "få-mig-til-at-ligne-noget-normalt" algoritme.
Det må da kunne lade sig gøre at få tilfældigt udseende bits (krypteret data) til at ligne noget normal data.

Poul-Henning Kamp Blogger

Overskriften var "Steganografi er slet ikke nemt" den var ikke "Steganografi er umuligt"

Det kan lade sig gøre, men hvis man starter med "alle pansere er dumme" antagelsen, bliver resultatet ikke godt.

Steganografi handler principielt ikke om at gemme nogle bits, det er kun en sekundær sideeffekt, det handler primært om ikke at kunne bevise existensen af nogle bits.

Med god steganografi kan en modstander, selv hvis vedkommende har viden om at der anvendes steganografi og viden om hvilken type steganografi, ikke bevise existensen af en skjult besked.

Casper Bang

I mange realistiske tilfælde, vil den "falske bund" du gemmer dine databits I stikke ud som en bullen tommelfinger, fordi krypterede data netop er kendetegnet ved at de ikke kan komprimeres, overhovedet.

Men stenografi adskiller sig jo fra klassisk kryptografi ved, istedet for at skabe voldsom (mistænkelig) entropi, at gemme sig i eksisterende moderat (normal) entropi "out of band" (som min pointe med "falsk bund" gik ud på).

Hvis jeg ville gemme en besked, kunne jeg vælge at gemme den i en ZIP fil med billeder, musik eller lignende. Man kunne lade en lille hashfunktion på et password mappe til en specifik fil, der repræsenterer starten på beskeden. Modified tidsstemplet på filen ændres således at det benyttes både som alfabet og symbolpointer, hvor nanosekund (0 - 999999999) opløsningen indeholder selve data, og hvor sekund opløsningen (0-59) peger næste filentry ud. Resterende filer påstemples ligeledes med de modified timestamps, der har været i brug, så at ingen skiller sig ud.

Så ved stenografi går øvelsen vel primært ud på, at algoritmen skal være "out of band" (ukendt), og at gøre forholdet imellem besked og data stort nok?

Casper Bang

Har du regnet på hvor mange timestamps du skal bruge for at gemme et regneark på den måde ?

Næ, men det invaliderer vel ikke min pointe "alt med måde"?

Min kern.log indeholder p.t. ca. 10.000 linier. Hvis 2 bytes (16 LSB i timestamp) kan udnyttes for hver linie, bliver dette til 20K. Alm. Zip kan pakke denne fra 1.2M til 130K. En faktor 1:6½ imellem besked og data på disk. 20K er nok til et mindre kort i RLE over en bygning mv. og det ville næppe vække mistanke hvis denne blev sendt til phk@... med overskriften "Encountered SIGSEGV issue, anything suspicious in the log?"

Poul-Henning Kamp Blogger

Det kan du per definition aldrig, heller ikke med GBDE.

Du kan nå dertil hvor du kan dokumentere utilgængeligheden af en besked, som GBDE f.eks tillader, men du kan aldrig bevise at der ikke er en besked, alene af den grund at din blotte tilstedeværelse er en besked til at begynde med.

Kim Bygum

Jeg er fuldstændig enig i, at der er en konflikt mellem at få båndbredde og at skjule at der er brugt steganografi. Men lige for en god ordens skyld er dette:

Deres regnestykke er nemt: 20GB STEGFS partition, minus 3GB familiebilleder, minus 5 GB porno = 12GB der skal gøres rede for, før han slippes løs.

ikke steganografi men "hidden containers". Med steganografi kan du fylde helt op, der er det "støjen" i billeder/lyd/video der bærer det skjulte indhold, ikke den overskydende plads

Morten Jensen

Men du kan heller ikke bevise ikke-eksistensen ad en besked

Du kan ikke bevise ikke-eksistensen = du kan bevise eksistensen af en besked.

Du har ret. Den eneste måde at påpege at der er sket noget shady, er at finde beviser for at der var skjult en besked steganografisk. Hvis det er tilfældet at vi ikke kan bevise en ikke-eksistens af beskeder, er det så ikke det samme som at man bestemt har påvist at der er en besked? Undskyld ord-kløveriet - jeg er ærligt i tvivl.

Torben Frandsen

Du kan ikke bevise ikke-eksistensen = du kan bevise eksistensen af en besked.

Arh, ka' det nu ow pas'?

Du kan heller ikke bevise, at der ikke findes usynlige lyserøde pingviner på Nordpolen.

Morten Jensen

Torben: det jeg mener er, at hvis man kan bevise eksistensen af en besked, er det det samme som at bevise at ikke-eksistensen er falsk.

Jeg forstår ikke helt hvor du vil hen. Hvis jeg ved et tilfælde fandt en lyserød pingvin har jeg netop bevist eksistensen af dem. Det følger naturligt at man sjældent vil forsøge at påvise en ikke-eksistens, da det er paradoksalt i sig selv.
Med andre ord, jeg tror ikke helt jeg forstår hvor du vil hen - hjælp mig :) ?

Maciej Szeliga

...er det ikke nemmere nu om dage bare at uploade sine data (i krypteret form) og derefter bare downloade dem fra en café når man er kommet frem ?

Morten Andersen

Hvis nu STEGS var lavet så det altid afsatte en tilfældig mængde plads på disken til støj, og at dennne mængde var udenfor brugerens kontrol, så ville det virke mere plausibelt at der var plads der ikke kunne redegøres for (uden at de behøver at indeholde hemmelige data).

For at undgå problemet med ikke-komprimerbare data kunne man måske puffe data op igen efter komprimering. F.eks. enkode det i en mindre effektiv enkodning. Men det kan nok blive svært at lave noget der ikke springer ud i en eller anden statistisk test.

Hvis jeg skulle arbejde seriøst med emnet ville jeg nok prøve at skaffe mig et hav af 'uskyldige' USB sticks, altså sticks som folk på min egen alder, med mit køn og "udseende" typisk rejser rundt med. Så ville jeg undersøge omfanget af tilfældige data eller spildområder på sådanne sticks (jeg kunne evt. vælge den type der havde det største omfang af sådanne områder) og så bruge det til at gemme mine data. Men kan godt se der er en del komplicerede forhold der gør sig gældende, og det vil nok aldrig blive muligt at lave noget der er helt skudsikkert, da der trods alt må være en vis forskel i og med at den oprindelige indeholder en kodet besked mens den anden ikke gør!

Martin Kofoed

...er det ikke nemmere nu om dage bare at uploade sine data (i krypteret form) og derefter bare downloade dem fra en café når man er kommet frem ?

Det ville da spare dig for en del besvær simpelthen at vandre nøgen gennem indcheckningen i lufthavnen. Så kan du også snyde nøgenscanneren! Eller ...

Et andet alternativ er at sende et brev med "ze micro film" til dit hotel. Den kan naturligvis blive stoppet i tolden, så en VPN-forbindelse til din egen server er nok trods alt et bedre bud.

Men temaet er "plausible deniability", og det er ret interessant. I nogle dele af verden kan det endda være forskellen på liv og død, hvilket er ret skræmmende. Er der nogen af jer, der har studeret TrueCrypts hidden volumes, og tør vurdere, om de er skudsikre set fra et brugerbeskyttelsessynspunkt? Brugervenligheden er i hvert fald i top, det er nemt at komme i gang.

Maciej Szeliga

...så en VPN-forbindelse til din egen server er nok trods alt et bedre bud.


Jeg ville nok vælge at dele det ud via bittorrent skjult med stegenografi i pornobilleder (eller andre billeder afh. af hvor man nu skal have data hen).

Jeg er i øvrigt helt enig i at "plausible deniability" er vigtigt emne... og som PHK skitser det kan enhver som har en større samling billeder blive tilbageholdt fordi billederne potentielt indeholder skjulte data.

Klavs Klavsen

Mounter vel bare en disk (om den så kommer fra en data fil eller fra en partition er underordnet) og - afhængig af anvendt kode - så reporteres mere eller mindre af disken som ledig plads.

Hvis der så er 12GB ledig plads - fordi man har givet kodeord 2 - og nogen så fylder disken - vil det på de "nedre" levels så blive slettet - men ingen kan bevise det har været der.

Ligeledes har man jo ledig plads på ens normale partitioner - deri kunne der jo snildt ligge data (det gør der jo faktisk) - så det ligestiller vel egentlig en rimeligt.

Lars Lundin

Ja, se også: http://ing.dk/artikel/122249-en-tur-bag-jerntaeppet

Jeg læste det med interesse.

Min eneste indsigelse er sammenligningen mellem vore dages USA og landene bag den kolde krigs jerntæppe.

Min erfaring med rejser til DDR og USSR var at grænsekontrollen var mere effektiv uden at være til mere besvær, snarere mindre. Samme erfaring har jeg iøvrigt med en rejse til det konfliktprøvede Israel.

Michael Jensen

Er løsningen ikke, at have en en del af en eksisterende partition, som iflg. FAT'en er tom, men som indeholder de krypterede data i tilfældige bits?

Mr. Security, som ønsker at se partitionen, ser en partition med tomme områder. Vælger han at teste området med nogle data, er de hemmelige data tabt...

Poul-Henning Kamp Blogger

Jeg ved en organisation der har brugt noget i den stil.

Maskinen booter som default Windows, hvis du ikke trykker på en bestemt tast på rette tid og sted. Windows kommer op og er fuldstændig steril.

Hvis du trykker på den rette tast, booter maskinen istedet FreeBSD fra en GBDE krypteret partition i Windows paging-fil.

Det hele er tunet så fint, at hvis du booter windows, smadrer den med sikkerhed GBDEs master-key, så data ikke er tilgængelige før home-office har været på banen.

Hvis du undersøger maskinen detaljeret, kan du sagtens se at det er sat op på den måde, men hvis blot maskine er tændt nogle få sekunder, er det ikke længere muligt at hente nogle af de krypterede data ud.

Setup'et er helt parallelt til "Diplomatic Bags" og "Vault Dynamite" der også har til funktion at gøre indholdet utilgængeligt, hvis de rette procedurer ikke følges.

Casper Bang

Er løsningen ikke, at have en en del af en eksisterende partition, som iflg. FAT'en er tom, men som indeholder de krypterede data i tilfældige bits?


Det er den "falske bund" jeg omtaler tidligere.

Det hele er tunet så fint, at hvis du booter windows, smadrer den med sikkerhed GBDEs master-key, så data ikke er tilgængelige før home-office har været på banen.

Det er vel ubrugligt imod forensics, eftersom det første de gør, er at tilslutte en R/O controller og klone indholdet, for derefter at arbejde på kopien: http://www.logicube.com/shop/omniclone2xi/

Casper Bang

Som altid afhænger det af hvem du prøver at beskytte dig selv imod...


Mja, er det ikke en rimelig standard arbejdsgang efterhånden? Grafikere arbejder ej heller på originalmateriale, de laver en kopi, og arbejder så på denne istedet.

Den nævnte metode vil beskytte imod tyveknægte der har nuppet din laptop, men spørgsmålet er bare om de i virkeligheden ikke er ligeglad med dine data.

Men hvad med et RAM drev? Man kan som bekendt have alt muligt skrammel liggende i RAM. Det er i dag ganske normalt at have 8GB+ RAM på en laptop, og mange bruger hibernate til at serialisere transparent til swap område. Ja faktisk er visse nyere OS'er, ligesom Android, jo lavet til altid at have RAM'en i gang.

Morten Jensen

Det er standard procedure i USA ikke at slukke computere ved beslaglægning. De graver strømstikket ud af væggen, kobler en generator på og tager lortet med sig mens det kører. Netop for at undgå de ovenfor nævnte tricks. Jeg prøver lige at finde et par links om det. Jeg fik et par links om det på Slashdot engang..

Log ind eller opret en konto for at skrive kommentarer