Steganografie

Steganografie is het verbergen van informatie in onschuldig ogende objecten en is onderdeel van cryptografie. Steganós betekent in het Oudgrieks verborgen, en gráphein schrijven. Sinds de komst van digitale bestanden voor beeld en geluid, heeft de steganografie een enorme opleving ondergaan.

Geschiedenis van de steganografie

[bewerken | brontekst bewerken]

Het verstoppen van boodschappen gebeurt al sinds de Oudheid, met als voorbeeld Herodotus die vertelt hoe rond 440 voor Christus een vorst het hoofd van een slaaf liet kaalscheren en daarna een tatoeage liet aanbrengen. De boodschap bevatte een waarschuwing voor Griekenland over de geplande invasie door Perzië. Toen het haar weer teruggroeide was de informatie verborgen voor de buitenwereld en kon weer zichtbaar gemaakt worden door het scheren van het hoofdhaar.

Een andere techniek in het oude Griekenland, ook beschreven door Herodotus, was het schrijven van boodschappen op hout, en ze dan te bedekken met een laag was, zodat het leek of het een ongebruikt tablet was.

Van oudsher kent men ook manieren om boodschappen te schrijven op papier met onzichtbare inkt.

Tijdens de Tweede Wereldoorlog gebruikten Duitsland en andere spionnen microdots om informatie te verzenden. Deze microdots waren ongeveer zo groot als een punt getypt met een schrijfmachine. Ze bevatten fotografisch verkleinde informatie.

Hedendaagse toepassingen

[bewerken | brontekst bewerken]
Een afbeelding die kleine gele puntjes op wit papier laat zien, gemaakt door een kleurenlaserprinter.

Vandaag de dag zijn er verschillende mensen die de techniek gebruiken om hun eigendom te beveiligen of geheime informatie te versturen via internet. Door bijvoorbeeld een watermerk aan te brengen kan de auteur zijn unieke stempel drukken op een afbeelding of geluidsbestand. Ook kunnen mensen via afbeeldingen op webpagina's publiekelijk informatie versturen, terwijl alleen ingewijden de informatie kunnen achterhalen.

Een niet zo bekende, en enigszins controversiële toepassing van de techniek is die van de zogenaamde gele puntjes op elke printout van een (kleuren/laser)printer. Deze met het blote oog vrijwel onzichtbare markeringen coderen de datum, de tijd en het serienummer van de printer waarmee geprint wordt. De meeste fabrikanten zoals Brother, Canon, Dell, Epson, HP, IBM, Konica Minolta, Kyocera, Lanier, Lexmark, Ricoh, Toshiba en Xerox[1] van (laser)printers passen deze techniek toe op hun producten. Dit doen zij op verzoek van overheden om te kunnen achterhalen waar een print vandaan komt.[2]

Verwerking in digitale bestanden

[bewerken | brontekst bewerken]

In digitale beeld- of geluidsbestanden vallen kleine veranderingen in kleurintensiteit of kleine veranderingen in echo-duratie of fase van geluiden een menselijke waarnemer niet op. Daardoor is het mogelijk systematisch kleine veranderingen aan te brengen en zodoende informatie te coderen. Deze informatie is nauwelijks van ruis te onderscheiden.

Steganografie en afbeeldingen

[bewerken | brontekst bewerken]

Afbeeldingen komen in verschillende formaten voor zoals JPEG, BMP en GIF. Elke afbeelding bestaat uit pixels die coderen voor één kleur: 8 bits voor rood, 8 voor groen en 8 voor blauw (RGB-waardes). Dit betekent dat in een standaard kleurenafbeelding 16.777.216 kleuren gecodeerd kunnen worden. In afbeeldingen met een grijsschaal zitten maximaal 256 kleuren omdat de RGB-waardes van de grijstinten gelijk zijn ( {0,0,0}=wit {128,128,128}=grijs {255,255,255}=zwart). Er zijn dan verschillende coderingen mogelijk om informatie in een afbeelding te verstoppen: door bijvoorbeeld even en oneven getallen als 0 en 1 respectievelijk te coderen. Als dit gebeurt bij alleen het blauwe kanaal (de waarde {0,23,128} veranderen in {0,23,127} om een 1 te coderen) kan later de informatie teruggehaald worden door alle waardes van de blauwe pixels te verwerken. Een methode is de Huffmancodering.

Steganografie en geluid

[bewerken | brontekst bewerken]

Ook in geluidsbestanden zoals WAV en MP3 kan informatie verstopt worden. Hierbij wordt bijvoorbeeld de informatie gecodeerd in faseverschuivingen van het dragersignaal. Door de informatie te transformeren met behulp van een Fourier-transformatie-algoritme, te coderen en daarna weer terug te transformeren kan informatie verborgen worden en later weer teruggehaald worden. Een andere methode is het introduceren van een echo in het signaal: door het tijdsinterval tussen het geluid en de echo te variëren kan informatie gecodeerd worden. Het nadeel van informatie verstoppen in dit type bestanden is dat het gevoeliger is voor corruptie en er minder bits opgeslagen kunnen worden (= een lage transmission rate of informatiedichtheid).

Steganografie en tekstbestanden

[bewerken | brontekst bewerken]

Ook in tekstbestanden zoals platte tekst, HTML-bestanden en PDF-documenten kan informatie verstopt worden. Hierbij wordt gebruikgemaakt van het feit dat bepaalde karakters niet worden weergegeven in tekstbestanden. Enkele voorbeelden hiervan zijn tabs, spaties en regeleindes in HTML-bestanden die tijdens het weergegeven genegeerd worden door de browser. Een nadeel van deze manier van steganografie is dat het openen van deze bestanden in bijvoorbeeld een tekstverwerker als Word meteen laat zien dat er iets aan de hand is. Dit komt doordat tekstverwerkers de informatie niet negeren, waardoor de opmaak van de tekst er verstoord uitziet.

Ontcijferen en ontdekken

[bewerken | brontekst bewerken]

Om een steganografisch bestand te ontcijferen moet een bestand geopend worden en met een wachtwoord ontsleuteld worden. Dit proces heet steganalyse, en hiervoor zijn verschillende programma's die elk andere methoden gebruiken om gegevens te versleutelen. Ook verschillen ze in de typen bestanden waarin je iets kunt verstoppen: sommige programma's zijn bedoeld om informatie op te slaan in grafische bestanden, andere weer in tekstbestanden of audiobestanden. Om te kijken of een afbeelding een geheime boodschap bevat, moet je beschikken over het origineel of een checksum van het origineel. Als je het origineel vergelijkt met het drager-bestand, dan zullen er discrepanties te vinden zijn op het niveau van individuele bits. Ook door een checksum te bepalen zoals met het MD5-algoritme kunnen verschillen aangetoond worden die niet met het oog zichtbaar zijn.

  • In het verhaal The purloined letter van Edgar Allan Poe wordt een geheime brief niet ergens verborgen, maar volop voor iedereen in het zicht gehangen, waardoor niemand eraan denkt hem van dichtbij te bekijken.

Boeken over steganografie

[bewerken | brontekst bewerken]
  • Information hiding, techniques for steganography and digital watermarking door S. Katzenbeisser en Fabien Petitcolas
  • Hiding in plain sight, steganography and the art of covert communication door Eric Cole
Zie de categorie Steganography van Wikimedia Commons voor mediabestanden over dit onderwerp.