Utilia

Skjul tekst i et billede

Skjul en hemmelig besked i et billede med LSB-steganografi, eventuelt krypteret med AES-256-GCM, og afslør den senere. Kører lokalt, uden upload.

Skjul en besked
Kapacitet
Tilføj et billede for at se, hvor meget tekst det kan rumme.

Resultatet gemmes altid som PNG: ny komprimering som JPEG, WebP eller HEIC ville slette de skjulte bits.

Afslør en besked

Sådan skjuler du en besked i et billede

  1. Slip et billede i dropzonen, eller klik på den for at vælge et. PNG er bedst, men alle billeder, som din browser kan åbne, virker: resultatet gemmes altid som en ny PNG.
  2. Under Skjul en besked skriver du din tekst i Hemmelig besked. Linjen Kapacitet viser, hvor mange bytes beskeden fylder, og hvor mange billedet kan rumme.
  3. Af hensyn til fortroligheden afkrydser du Kryptér beskeden med en adgangsfrase (AES-256-GCM) og skriver en Adgangsfrase. Med Vis adgangsfrase kan du kontrollere, hvad du har skrevet.
  4. Klik på Skjul besked og download PNG. Filen gemmes som navn-hidden.png, og statuslinjen fortæller, hvor mange farveværdier der er ændret.

Sådan afslører du en skjult besked

  1. Slip PNG-filen i den samme dropzone. Hvis den indeholder en besked, som er skjult med dette værktøj, får du besked om det, så snart billedet er indlæst.
  2. Hvis beskeden var krypteret, skriver du frasen i Adgangsfrase (kun hvis beskeden blev krypteret).
  3. Klik på Afslør skjult besked. Teksten vises under Skjult besked, klar til at kopiere.

Alt foregår i din browser: billedet, beskeden og adgangsfrasen uploades aldrig.

Sådan virker det: mindst betydende bit (LSB)

Hver pixel gemmer en rød, en grøn og en blå værdi mellem 0 og 255. Værktøjet erstatter den sidste bit (den mindst betydende bit) i disse tre værdier med én bit af din besked, pixel efter pixel i læserækkefølge. For eksempel er en rød værdi på 200 11001000 binært; gemmer man bitten 1, bliver det 11001001, altså 201. En farveværdi ændres aldrig med mere end 1, en forskel som øjet ikke kan se.

Kun helt uigennemsigtige pixels bruges, og alfakanalen røres aldrig. Delvist gennemsigtige pixels springes over, fordi browsere ikke kan bevare deres laveste bits nøjagtigt. Før beskeden skriver værktøjet en header på 13 bytes: en signatur, et flag der siger, om beskeden er krypteret, længden og en CRC-32-kontrolsum, som opdager beskadigede data.

Kapacitet er cirka (antal uigennemsigtige pixels × 3 ÷ 8) − 13 bytes. Et foto på 1000 × 1000 rummer ca. 375.000 bytes, langt mere end nogen tekstbesked. Kryptering tilføjer 49 bytes (version, antal iterationer, 16 bytes salt, 12 bytes IV og 16 bytes autentificeringsmærke). Ved kryptering udledes nøglen af din adgangsfrase med PBKDF2-SHA-256 (600.000 iterationer), og teksten krypteres med AES-256-GCM, som også opdager enhver manipulation.

Hvad steganografi ikke gør

Steganografi skjuler, at en besked findes; det er ikke stærk sikkerhed i sig selv. Sekventiel LSB-indlejring som denne er let at opdage med steganalyseværktøjer (chi-i-anden-tests, analyse af LSB-planet), og alle, der åbner billedet i dette værktøj, kan læse en ukrypteret besked. Hvis indholdet skal forblive privat, skal du bruge krypteringen med en lang, unik adgangsfrase: beskyttelsen er kun så stærk som frasen. Selv da beskytter kryptering indholdet, ikke det forhold, at noget er skjult.

De skjulte bits er også skrøbelige. Ny komprimering som JPEG eller WebP, ændring af størrelse, beskæring, skærmbilleder, filtre og de fleste sociale netværk og beskedapps (som komprimerer og ofte konverterer billeder) ødelægger beskeden. Del PNG-filen som fil: en vedhæftet fil i en mail, et link til skylagring eller »send som dokument« i en beskedapp.

Ansvarlig brug

Gode anvendelser er gåder, escape games og CTF-opgaver, mærkning af dine egne billeder, undervisning i, hvordan digitale billeder fungerer, og private noter. Brug det ikke til at omgå regler på arbejdspladsen eller i skolen eller lovgivningen, og respektér andres billeder og ophavsret.

Ofte stillede spørgsmål

Kan andre se, at mit billede indeholder en besked?

Ikke ved at se på det: hver farveværdi ændres med højst 1. Men et steganalyseværktøj kan ofte opdage LSB-indlejring, og selve dette værktøj melder, at der er en besked, når billedet indlæses.

Hvorfor gik min skjulte besked tabt?

Billedet er sandsynligvis blevet komprimeret igen, fået ændret størrelse eller konverteret, for eksempel af et socialt netværk, en beskedapp eller et fotoredigeringsprogram. Kun den nøjagtige PNG-fil bevarer bitsene intakte.

Kan jeg starte med et JPEG-foto?

Ja. Fotoet afkodes, og resultatet gemmes som PNG, som er tabsfri. Behold det som PNG: gemmer du det igen som JPEG, slettes beskeden.

Hvad sker der, hvis jeg glemmer adgangsfrasen?

Beskeden kan ikke gendannes. Der er ingen bagdør, og en forkert adgangsfrase afvises af AES-GCM-autentificeringen.

Hvorfor er PNG-filen større end originalen?

PNG er tabsfri, så den er som regel større end en JPEG af det samme foto. Det er prisen for at bevare hver eneste skjulte bit intakt.