Tik-76.115 Käyttöohje
Stegano
http://
Viimeksi päivitetty
.
Sisällysluettelo
1. Johdanto
2. Järjestelmän käyttöönotto
3. Toiminnot
4. Ongelmatilanteet
5. Kirjallisuusviitteet
6. Sanasto
7. Hakemisto
Tämä käyttöohje käsittelee viimeistä prototyyppiversiota proto27.
1.1 Sovellusalueen kuvaus
Steganograafisen systeemin ympäristö on kuvattu
kuvassa 1.
Lähettäjällä (sender) on jokin salainen viesti
(secret message), jonka hän haluaa lähettää vastaanoottajalle
(receiver) jotakin turvatonta kanavaa (insecure channel)
esimerkiksi internetiä pitkin.
Paitsi että lähettäjä ei tahdo kenenkään saavan tietää salaisen
viestin sisältöä (tämän takaamiseksi riittäisi pelkästään viestin
salaaminen jollain vahvoja kryptografisia algoritmejä käyttävällä
ohjelmalla, kuten PGP:llä), vaan hän tahtoo ettei kukaan edes tiedä
salaisen viestin olemassaolosta.
Viestien huomaamatonta lähetystä varten salainen
viesti kätketään johonkin viattomaan peitetiedostoon (cover file),
kuten esimerkiksi digitoituun kuvaan.

Kuva 1: Steganograafisen systeemin ympäristö
Stegano on tiedon kätkemisen ja purkamisen suorittava ohjelmisto.
Ohjelmisto soveltaa valittavia algoritmejä salaiseen viestiin ja
peiteviestiin salaisen avaimen avulla tuottaen tuloksena kätköviestin.
Ohjelmisto ilmenee kuvassa 1 laatikoina
Hiding ja Extracting.
Ongelmatapauksissa voi ottaa yhteyttä kehen tahansa ryhmän
jäsenistä, mieluiten siihen jonka "rooli" projektin parissa
on lähimpänä ongelma-aluetta.
Tommi Liittokivi
Tommi Junttila
Vesa Peltola
Lasse Huovinen
Tuomas Aura
Järjestelmä koostuu kirjastosta, ja sen päälle rakennetusta kahdesta
käyttöliittymästä.
Ennen kirjaston kääntämistä se on konfiguroitava
käyttöjärjestelmä kohtaisesti. Kirjasto koostuu kahdesta osasta,
steganografisesta ja kryptografisesta kirjastosta.
- Steganografinen kirjasto
Steganografinen kirjasto on suunniteltu mahdollisimman
laitteistoriippumattomaksi, ja sen pitäisi toimia hyvin
eri käyttöjärjestelmäympäristöissä.
- Kryptografinen kirjasto
Kryptografisena kirjastona on käytetty Wei Dai:n
Crypto++ 2.1:aa, joka on suunniteltu helposti siirrettäväksi
eri käyttöjärjestelmäympäristöihin. Konfigurointi tapahtuu
muuttamalla config.h-tiedostoa, joka kannattaa käydä läpi ja
valita ko. järjestelmälle oikeat parametrit. Tärkeimmät kohdat
ovat: käsitteleekö järjestelmä teksti- ja binääritiedostoja
eri tavalla ja käytetäänkö LITTLE ENDIAN prosessoria.
1.Tarkasta että Makefile:ssa on oikea polku Crypto-kirjaston hakemistoon.
2.Konfiguroi Crypto-kirjasto ja JPEG-kirjasto käyttöjärjestelmällesi
edellämainittujen ohjeiden mukaisesti.
3.Käännä kirjastot ja käyttöliittymä 'make' komennolla.
Ohjelma toimii laitteissa johon on asennettu windows 95/NT -käyttöjärjestelmä.
Ohjelmistoon pitäisi kuulua seuraavat tiedostot:
stegano.exe - ajettava ohjelma
stegano.hlp - online help
stegano.cnt
Mfc40.dll
mfc40d.dll
msvcr40d.dll
msvcrt40.dll
Kun tiedostot ovat samassa hakemistossa voi ohjelman käynnistää
komennolla stegano.exe.
Tiedostot *.dll kannattaa siirtää windowsin system-hakemistoon
sillä muutkin visual c++ 4.0:lla tehdyt ohjelmat todennäköisesti
käyttävät niitä. Jos tiedostot löytyvät jo windowsin system-hakemistosta,
voi ne poistaa stegano-ohjelman hakemistosta.
Unix-käyttöliittymän toiminnot on kuvattu sen manuaalisivussa:
NAME
stegano - hide/extract messages in/from image files
SYNOPSIS
stegano -h [-v] [-q] [-f msgfile] [-r selector] [-c compression algorithm]
[-s encryption algorithm] key coverfile stegofile
stegano -e [-v] [-t] [-r selector] [-s encryption algorithm] key stegofile
stegano coverfile
DESCRIPTION
Stegano is a steganography program that hides files in images.
A secret key is used to hide the data into a cover file, extracting
(or detecting that there is any data hidden) is not possible without
the correct key.
It's possible to select which compression, encryption and selection
algorithms program will use. You can see the list of algorithms a
cover file supports by typing 'stegano coverfile'.
FLAGS
-h Encrypt and hide a file into the cover file.
-e Extract and decrypt a file hidden in the cover file.
-v Verbose mode, displays more detailed information.
-q Doesn't display hiding statistics.
-t Shows the original name and lenght of the hidden message.
-f msgfile
Read the data from file 'msgfile' instead of standard input.
-s ea
Choose encryption algorithm. 'ea' is the name of the used algorithm.
If you don't use this option when extracting, Stegano will try
to decrypt file with every possible encryption algorithm. It's
not necessary to type the full name of the algorithm.
-c ca
Choose compression algorithm. 'ca' is the name of the used algorithm.
This option is not used when extracting the message. It's not necessary
to type the full name of the algorithm.
-r sa
Choose selector algorithm. 'sa' is the name of the used algorithm.
It's not necessary to type the full name of the algorithm.
Parametrit
key
The secret key which is used hiding/extracting the message in/from
the cover file.
coverfile
The name of the cover file where the message will be hidden.
stegofile
The name of the cover file which includes the hidden message.
3.2 Windows-käyttöliittymä
Kätkennän voit valita joko suoraan paineesta tai valitsemalla
"hide" action-alasvetovalikosta. Valinnan tehtyäsi avautuu
seuraavan kuvan kaltainen ikkuna.

KUVA 2: Peitetiedoston valinta hide-toiminnossa
Tässä valitaan peitetiedosto johon kuva kätketään. Peitetiedosto
voi olla tyyppiä PGM, GIF tai JPEG. Valittuasi peitetiedoston
avautuu kuvan kolme kaltainen ikkuna. Jos ohjelman asetuksiin on
määritelty kyseessä olevalle peitetiedostoformaatille sovellus, jolla
tulostetaan peitetiedosto näytölle, käynnistyy myös tämä
sovellus. (Ks. luku 3.2.3 Asetukset)

KUVA 3: Viestin kätkentä
Tekstilaatikkoon voit syöttää piilotettavan viestin. Jos haluat
piilottaa peitetiedostoon olemassa olevan tiedoston, valitse
"Use message file"-kohta ja syötä tiedoston nimi. Voit myös
valita piilotettavan tiedoston "browse"-aputoiminnon avulla.
Kirjoita kohdetiedoston nimi kohtaan "destination file". Oletusarvona
on peitetiedoston nimi, jolloin siis kirjoitetaan alkuperäisen
tiedoston päälle. Ohjelma tunnistaa automaattisesti peitetiedostoon
sopivat algoritmit. Näistä voit valita haluamasi algoritmit, tai käyttää
valmiina näkyviä oletusarvoisia algoritmeja.
Ennen viestin kätkentää on vielä syötettävä avain. Viesti löytyy
peitetiedostosta vain samalla avaimella, joten kannattaa varmistaa
että avain on muistissa ennenkuin sulkee ikkunan.
Nyt voit yrittää suorittaa kätkennän painamalla hide-painiketta.
Kätkentä saattaa kestää jonkun aikaa, hitaalla koneella jopa
useita minuutteja, odota kunnes ohjelma ilmoittaa kätkennän
onnistumisesta tai epäonnistumisesta.
Kätkennän onnistuessa peitetiedosto, johon viesti on kätketty,
tulostetaan näytölle, jos asetuksissa näin on valittu. (Ks. luku
3.2.3 Asetukset)
Purkamisen voit valita vastaavalla tavalla kuin kätkemisenkin, eli joko
suoraan painikkeesta tai valitsemalla "extract" action-alasvetovalikosta.
Valinnan tehtyäsi aukeaa kuvan 2 kaltainen ikkuna jossa valitaan
peitetedosto josta piilotettua viestiä yritetään purkaa. Peitetiedoston
valittuasi aukeaa kuvan 4 kaltainen ikkuna. Peitetiedoston sisältämä
kuva tulostetaan näytölle, jos asetuksissa näin on valittu. (Ks. luku
3.2.3 Asetukset)

KUVA 4: Viestin purkaminen
Voit antaa ohjelman yrittää purkamista kaikilla algoritmikombinaatioilla
tai voit itse valita algoritmit jolla purku yritetään suorittaa.
Syötettyäsi avaimen ja paina extract-painiketta. Jos avain ja algoritmit
olivat oikein, tulostetuu löydetty viesti ikkunan alalaidassa olevaan
laatikkoon. Jos viestinä oli käytetty tiedostoa, ohjelma kysyy millä
nimellä tiedosto talletetaan.
Valitsemalla toiminto "settings" action-alasvetovalikosta avautuu
seuraavan kuvan kaltainen ikkuna, jossa voit määritellä kullekin
peitetiedostoformaatille sovelluksen, jonka avulla peitetiedoston
sisältämää kuvaa voidaan tarkastella.

KUVA 5: Asetusten tekeminen
Aloita asetusten muuttaminen valitsemalla "cover file
type"-kohtaan se peitetiedostoformaatti, jonka asetuksia
haluat muuttaa. Kun olet valinnut peitetiedostoformaatin, muuttuvat
ikkunan muut kohdat vastaamaan valitun formaatin tämän hetkisiä
asetuksia.
Kullekin formaatille voit määritellä sovellusohjelman, jota käytetään
tulostamaan kyseisellä formaatilla tallennettuja kuvia. Sovellukseksi
voit valita jonkun seuraavista kolmesta mahdollisuuksista:
- Ei sovellusta
Kyseiselle kuvaformaatille ei määritellä
kuvien katseluun tarkoitettua sovellusta.
- Assosioitu sovellus
Kyseiseistä kuvaformaattia olevan kuvan
katseluun käytetään Windowsissa kuvaformaatille assosioitua
sovellusta. Jos ko. formaatille ei ole assosioitu sovellusta, tämä
valinta ei ole mahdollinen.
- Itse määritelty sovellus
Voit kirjoittaa sovelluksen nimen sille
varattuun tilaan tai hakea sovelluksen nimen browse-aputoiminnon
avulla.
Sekä assosioitu sovellus että itse määritelty sovellus tulee olla
sellaisia, että ne näyttävät tiedoston, joka on annettu komentorivillä
sovellusta käynnistettäessä, esim. komennolla "C:\ACDSee.exe
kuva1.gif".
Kun olet valinnut kuvien katseluun sopivan sovelluksen, sinun tulee
myös valita milloin kyseistä sovellusta kuvien katseluun
käytetään. Valittavia tilanteita on kolme:
- Ennen kätkentää
Peitetiedoston sisältämä kuva tulostetaan
näytölle ennen kuin siihen on kätketty viestiä. Tällöin siis
alkuperäinen peitetiedosto tulostetaan näytölle heti kun peitetiedosto
on valittu "viestin kätkentä"-toiminnossa.
- Kätkennän jälkeen
Peitetidoston sisältämä kuva tulostetaan
näytölle onnistuneen viestin kätkennän jälkeen. Tällöin uutta
viestin sisältämää kuvaa voidaan visuaalisesti verrata alkuperäiseen
kuvaan.
- Ennen purkua
Peitetiedoston sisältämä kuva tulostetaan näytölle
peitetiedoston valinnan jälkeen "viestin purku"-toiminnossa.
Edellä mainituista toiminnoista voi kunkin kytkeä päälle tai pois
täysin toisistaan riippumatta.
3.3 Esimerkkejä
Seuraavassa on esimerkki käyttösessiosta Unix-käyttöliittymällä.
Annetut komennot on tummennettu ja kommentit laitettu sulkuihin.
alpha proto 51 % proto foo.pgm (katsotaan lista tuetuista algoritmeista)
Source cover file is: foo.pgm
Cover file format is: PGM
Supported selector algorithms are: prp2D, sri2D,
Supported compression algorithms are: None, GZIP,
Supported encryption algorithms are: IDEA, DES,
alpha proto 52 % proto -h -s D secretkey foo.pgm bar.pgm
hello world
^D
hiding bits total: 56277
hiding bits used: 128
hiding bits used (%): 1
alpha proto 53 % proto -e -s IDEA bar.pgm (avain puuttuu)
Usage: proto -h [-v] [-D] [-f messagefile] [-r selector] [-s encryption algorithm] [-c compression algprithm] passphrase inputfile outputfile
proto -e [-v] [-D] [-r selector] [-s encryption algorithm] [-c compression algorithm] passphrase inputfile
proto inputfile
alpha proto 54 % proto -e -s IDEA secretkey bar.pgm (väärä salausalgoritmi)
error: No message hidden
alpha proto 55 % proto -e Secretkey bar.pgm (väärä avain)
error: No message hidden
alpha proto 56 % proto -e Secretkey bar.pgm
hello world
alpha proto 57 %
Unix-käyttöliittymän virheilmoitukset
- Unsupported selector algorithm
kätköbittien valinta-algoritmi on peitetiedostolle sopimaton.
- Unsupported compression algorithm
pakkausalgoritmi on peitetiedostolle sopimaton.
- Unsupported encryption algorithm
salausalgoritmi on peitetiedostolle sopimaton.
- Could not open message file
tiedostoa ei voitu avata
Steganografisen kirjaston antamat virheilmoitukset
- Could not open file
peitetiedostoa ei voitu avata.
- Unknown cover file format
ei löytynyt peitetiedostoluokkaa, jolla olisi sama formaatti.
- Unsupported cover file format
sopimaton peitetiedostotyyppi. Esim jos yritetään kätkeä
tietoa animoituihin gif-kuviin (joita kirjasto ei siis tunne).
- Corrupted file
peitetiedoston formaatti ei ole sellainen kun sen pitäisi olla.
- Out of memory
muisti ei riittänyt.
- No cover file open
Peitetiedostoa ei ole avattu. Esim kun käyttöliittymä yrittää
kutsua hide()-metodia ennekuin se on kutsunut open()-metodia.
- Unsupported selector
kätköbittien valinta-algoritmi on peitetiedostolle sopimaton.
- Unsupported compression algorithm
pakkausalgoritmi on peitetiedostolle sopimaton.
- Unsupported encryption algorithm
salausalgoritmi on peitetiedostolle sopimaton.
- Message too long
salattava viesti on liian pitkä eikä mahdu peitetiedostoon.
- No message hidden
peitetiedostosta ei löytynyt salattua viestiä.
- Corrupted message
peitetiedostosta on yritetty purkaa viesti jossa on jokin
virhe (esim liian pitkä).
- Could not write message into cover
viestin kirjoitus peitetiedostoon ei onnistunut.
- File does not contain any data that could be used for hiding
Viestiin ei pystytä piilottamaan tietoa, näin voi käydä esim
jos gif-kuvaformaatin paletti on sellainen ettei siinä ole yhtään
väriä jota pystyisi muuttamaan niin ettei muutosta pystyisi
visuaalisesti havaitsemaan.
4.2 Yleisimmät ongelmatilanteet
- Viesti ei löydy kätkötiedostosta vaikka avain on varmasti oikea
Todennäköisesti on käytetty väärää algoritmia, kokeile muita
peitetiedostolle sopivia algoritmeja. Lisäksi sekä Unix- että
Windows- käyttöliittymissä on toteutettu eri algoritmien
automaattinen kokeilu jota kannattaa käyttää.
- Viesti ei mahdu peitetiedostoon
Jos et ole käyttänyt mitään pakkausalgoritmia niin kokeile sitä!
Viestiä voi lisäksi yrittää jakaa useampaan peitetiedostoon tai
yrittää käyttää suurempaa peitetiedostoa.
- Bruce Schneier. Applied Cryptography. John Wiley & Sons, Inc. 1996.
- Tuomas Aura. Practical invisibility in digital communication, Workshop on Information Hiding, University of Cambridge, May 1995.
- Maxwell T. Sandford II, Jonathan N Bradley, and Theodore G. Handel. The data embedding method. In Proceeding of the SPIE Photonics East Conference, Philadelphia, September 1995.
- Michael Luby and Charles Rackoff. How to construct pseudorandom permutations from pseudorandom functions. SIAM Journal on Computing, 17(2):373-386, April 1988.
- Steffen Möller, Andreas Pfizmann, and Ingo Stierand. Rechnergstutzte Steganographie: Wie sie funktioniert und warum folglich jede Reglementierung von Verschlusselung unsinnig ist. Dateschultz und Datensicherung, (6):318-326, June 1994.
- gif89a.doc
- bmp.doc
- pbm.html
- jpeg
- Kätkentäbitti (hiding bit)
Sellainen peitetiedoston kohinainen bitti, johon salainen viesti
kätketään. Kaikki kohinaiset bitit eivät ole välttämättä
kätkentäbittejä.
- Peitetiedosto (cover file)
Tiedosto, johon salainen viesti kätketään. Tiedoston täytyy
sisältää kohinaa, johon salainen viesti kätketään.
- Kätkötiedosto (stego file)
Peitetiedosto kätkennän jälkeen, eli viesti, joka kuljettaa
kätkettyä salaista viestiä.