Kryptatut säiliöt LUKS:n avulla

Viimeksi muokattu: 29.05.2010

Johdanto

Muutaman kerran olen tarvinnut / leikkinyt kryptatuilla säiliöillä. Kryptatulla säiliöllä tarkoitan tässä kryptattua tiedostoa, jossa itsessään on toimiva tiedostojärjestelmä ja tiedostoja. Tällainen säiliö on mahdollista luoda TrueCrypt-ohjelmalla, mutta en ole milloinkaan käyttänyt kyseistä ohjelmaa, joten aihetta ei tässä käsitellä. Tämä teksti kertoo miten säiliöitä voi luoda ja käyttää LUKS/cryptsetup-ratkaisua. LUKS-spesifikaation toteuttavia ohjelmia on olemassa Windows-ympäristöön, mutta en ole käyttänyt niitä. Tämä teksti ei käsittele steganografiaa. Tässä tekstissä oletetaan, että käytössä on GNU/Linux-järjestelmä, johon on asennettu tarpeelliset ohjelmat ja ytimeen on käännetty mukaan tarpeelliset moduulit. Tässä tekstissä ei myöskään paneuduta cryptsetup-ohjelman käyttöön ja hienosäätöön. Tässä esitetään pääpiirteet ja ideat säiliöiden luontiin. Omien tarpeiden selvittäminen jätetään luonnollisesti lukijalle.

Tiivistelmä

Luo haluamasi kokoinen tyhjä tiedosto, tee siitä näennäislaite, esim. /dev/loop/0, luo laitteeseen LUKS-osio tavalliseen tapaan ja käytä laitetta kuten tavallisesti LUKS-osioiden yhteydessä.

Säiliöiden luonti

Ensiksi on luotava säiliötä varten tyhjä tiedosto. Sillä ei ole merkitystä miten tämä tehdään. Seuraavassa komentosarjassa luodaan 100 MiB suuruinen tiedosto säiliö dd-ohjelman avulla.


# dd if=/dev/zero of=säiliö bs=1M count=100

Koska dmcrypt kryptaa vain laitteita, niin tiedostosta säiliö on tehtävä näennäislaite (loop-device). Tämä tapahtuu esimerkiksi seuraavalla komentosarjalla.


# losetup /dev/loop/0 säiliö

Huomaa, että laite /dev/loop/0 saattaa olla jo varattu. Selvitä vapaa laite käskemällä


# losetup -f
/dev/loop/1

Tämän jälkeen laitteen /dev/loop/0 voi kryptata kuten minkä tahansa muunkin laitteen. Esimerkiksi


# cryptsetup luksFormat /dev/loop/0

Oletuksena cryptsetup kryptaa laitteen 128-bittisellä AES-salauksella, joka on käytännössä riittävän hyvä suoja.

Tämän jälkeen laite avataan normaaliin tapaan kirjoittamalla seuraava komento ja antamalla purkuavain.


# cryptsetup luksOpen /dev/loop/0 kryptosäiliö

Tämän seurauksena cryptsetup luo laitteen /dev/mapper/kryptosäiliö, joka hoitaa salaamisen ja purkamisen läpinäkyvästi. Lopultakin, tätä laitetta voi käyttää kuten mitä tahansa muutakin tavallista massamuistilaitetta. Ensimmäiseksi tyhjään laitteeseen on luotava tiedostojärjestelmä. Esimerkiksi


# mkfs.ext2 /dev/mapper/kryptosäiliö

Nyt laitteen voi tavalliseen tapaan liittää tiedostojärjestelmään:


# mount /dev/mapper/kryptosäiliö /mnt/salapaikka

Kaikki onkin valmista. Salattujen tiedostojen siirtäminen hakemistoon salapaikka voi alkaa!


# cp -a riemann_hypothesis_is_false.pdf /mnt/salapaikka

Kryptosäiliö suljetaan luonnollisesti seuraavalla tavalla.


# umount /mnt/salapaikka
# cryptsetup luksClose kryptosäiliö
# losetup -d /dev/loop/0

Jatkossa säiliön avaaminen tapahtuu kuten edellä, mutta alustusvaiheet jätetään pois. Siis


# losetup /dev/loop/0 säiliö
# cryptsetup luksOpen /dev/loop/0 kryptosäiliö
# mount /dev/mapper/kryptosäiliö /mnt/salapaikka

Tiedostoa säiliö voi nyt huoletta säilyttää muistitikulla tai nettipalvelimella ilman pelkoa siitä, että joku pääsisi lukemaan sen sisältöä.

Mitä hyötyä tästä on?

Jokainen tietysti keksii salaukselle vaikka minkälaista käyttöä. Tässä muutama käytännön esimerkki.
Koska harva haluaa kryptata muistitikun tai ulkoisen kiintolevyn kokonaan, tämä menettely tarjoaa tavan kuljettaa salattua tietoa sillä tavalla, että massamuistilaitetta voidaan silti käyttää tietokoneissa, joissa ei ole tarvittavia salausohjelmia. Harva näitä asioita miettii tai pelkää, mutta oikeasti ei ole lainkaan epätodennäköistä, että aina mukana kulkeva massamuistilaite varastetaan tai se hukkuu. Joka tapauksessa tiedostot on siis menetetty jollekin ehkä epärehelliselle taholle. Salaus kuitenkin takaa, että he eivät koskaan voi lukea arkaluontoisia salattuja säiliöitä (olettaen, että käytettyä salausta ei voida murtaa).

Käytännössä salauksen arvoisia tietoja ovat vaikkapa henkilökohtaiset valokuvat ja kirjoitelmat. Eräs näppärä sovellus on salasanalistan tallennus kryptattuun säiliöön. Näin kaikki tarpeelliset salasanat kulkevat aina mukana turvallisesti. Tästä menettelystä on kuitenkin syytä varoittaa. Säiliön salausavaimen paljastuminen paljastaa tällöin kaikki muutkin salasanat. Toiseksi salasanalistaa lukeva tekstinkäsittelyohjelma voi vuotaa kopion listasta tietokoneen salaamattomalle levyalueelle. Näin voi käydä myös minkä tahansa muiden tiedostojen yhteydessä. Paremman turvan saa, kun varmistaa, että käytetty ohjelma ei vuoda tietoja muualle. Parasta on muokata tiedostoja aina salatulla levyalueella tai tietokoneen keskusmuistissa, joka siis tyhjenee koneen sammuessa.