Erinevus lehekülje "Plokkseadme LUKS formaadis krüptimine" redaktsioonide vahel
(→Plokkseadmele LUKS formaadi moodustamine) |
(→Plokkseadmele LUKS formaadi moodustamine) |
||
81. rida: | 81. rida: | ||
Siinjuures on näha, et selle ühe ja sama plokkseadme puhul saab kasutada kuni kaheksat erinevat võtit/parooli. | Siinjuures on näha, et selle ühe ja sama plokkseadme puhul saab kasutada kuni kaheksat erinevat võtit/parooli. | ||
− | Kõik krüptoseadet puudutavad andmed sisalduvad formaaditud seadmes endas va ligipääsuks vajalik võti/parool. Kuna nende andmete hoidmiseks on tarvis krüptitud seadmel | + | Kõik krüptoseadet puudutavad andmed sisalduvad formaaditud seadmes endas va ligipääsuks vajalik võti/parool. Kuna nende andmete hoidmiseks on tarvis krüptitud seadmel natuke ruumi, siis kasutatav krüptitud seadmele vastava loogilise seadme maht on pisut väiksem vastava füüsilise seadme mahust. |
Lisaks füüsilisele seadmele saab krüptida ka nt tarkvaralise RAID seadmeid või LVM voluume. | Lisaks füüsilisele seadmele saab krüptida ka nt tarkvaralise RAID seadmeid või LVM voluume. |
Redaktsioon: 24. detsember 2008, kell 13:22
Sisukord
Plokkseadme krüptimine
Kõvakettal olevaid andmeid saab krüptida mitmes kihis, alates plokkseadme plokkidest (need tavaliselt 512 baidi suurused tükid) kuni failisüsteemis asuvate üksikute failide krüptimiseni. Järgnev käsitleb plokkseadme (nt partitsiooni, tarkvaralise RAID lülituse või LVM voluumi) krüptimist.
Plokkseadme krüptimine on üks andmekandja füüsilise turvalisusega seotud instrument. St kui nt krüptitud ja parasjagu kasutuses mitte olev kõvaketas kaotsi läheb või ära varastatakse, siis ei saa seda kasutada ilma vastava parooli või võtmeta. Kui aga krüptitud plokkseadmelt on failisüsteem külge ühendatud, siis ei paku asjaolu, et plokkseade on krüptitud mingit täiendavat kaitset nt süsteemi sisse murdnud pahalase eest.
Andmekandjal asuvate andmete sh plokkseadme krüptimiseks on konstrueeritud mitmesuguseid tehnikaid, käesolevas palas tutvustatakse Linuxi tuuma dm-crypt alamsüsteemi abil LUKS (ingl. k. Linux Unified Key Setup) formaadis andmete krüptimist. Kerneli vastavate funktsioonide juhtimiseks kasutatakse tarkvara cryptsetup.
LUKS'ile on iseloomulik
- väidetavalt eeskujulikult dokumenteeritud ja standardne lahendus
- LUKSi saab portida erinevatele platvormidele (osalt järeldub eelmisest), nt http://en.wikipedia.org/wiki/FreeOTFE
- haldusprotseduure saab pandlikult sooritada (nt võtmete vahetamine)
Muud tuntud Linux tuuma DM (device mapper) infrastruktuuri kasutav alamsüsteemid on nt LVM2 (Logical Volume Management) ja multipath. DM võimaldab moodustada füüsilistele plokkseadmetele nn virtuaalseid kihte.
Krüptitud plokkseadme kasutamist võiks ette kujutada selliselt
/home /dev/mapper/c_home /dev/sdb1 failisüsteem <---> loogiline liides <---> füüsiline plokkseade nt ext3 encrypt/decrypt
- füüsilisel plokkseadmed on andmed krüptitud
- selleks, et füüsilisel plokkseadmed olevaid andmed saaks operatsioonisüsteem kasutada moodustatakse loogiline liides, mis on iseenesest samuti plokkseade ja mis töötab vahendajana füüsilise plokkseadme ja nö muu arvuti vahel ja mille ülesanne on ühes suunas liikuvaid andmeid krüptida ja teises suunas lahti krüptida
- failisüsteemi kiht (ja seda kasutavad rakendusprogrammid) kasutab nö tavalist plokkseadet ja ei pea midagi teadma seal taga toimuvast krüptimisest
- cryptsetup tarkvara abil juhitakse skeemil kujutatud loogilise liidese tööd (määratakse krüptoalgoritmid, võtmete pikkused jms)
Ettevalmistused
Selleks, et sissejuhatuses kirjeldatud moel krüptimist korraldada peab olema operatsioonisüsteemi tuumas vajalik tugi ning olemas olema vajalik haldustarkvara. Moodsates Linuxi distributsioonides sisaldub üldiselt kõik vajalik ja midagi ei ole kompileerida tarvis. Debian GNU/Linuxi kasutamisel piisab kui öelda
# apt-get install cryptsetup
Lisaks peab olema kasutada mõni plokkseade, mida saab hakata krüptitud kasutuseks ettevalmistama, nt olgu fdisk abil moodustatud partitsioon /dev/hdb1 ning kavatsus seda kasutada süsteemi kasutajate kodukataloogide jaoks. Lisaks soovitatakse see seade ennem kasutamist kirjutada üle juhuslike andmetega, nt piisavalt kvaliteetse tulemuse võiks saada nii, arusaadavalt hävivad seejuures partitsioonil olnud andmed
# dd if=/dev/urandom of=/dev/sdb1
Plokkseadmele LUKS formaadi moodustamine
Krüptimisel on oluline kasutatav võti, cryptsetup võimaldab kasutada kas failis asuvat võtit või klaviatuurilt sisestatavat parooli. Järgnevas on eelistatud võtme kasutamist failist, kuna sel moel on võtme materjal kvaliteetsem ning praktiliseks kasutamiseks ehk ka mugavam, nt saab bootimisel võtme anda arvutile ette USB pulgalt. Vajadusel saab LUKS võtme omakorda krüptida nt parooliga.
Moodustame 256 baidi pikkuse võtme
# dd if=/dev/random of=/root/cryptsetup-hdb1.key bs=1 count=256
Plokkseadme krüptimiseks tuleb esmalt plokkseadmele vastav LUKS formaat tekitada öeldes
# cryptsetup --key-size=256 luksFormat /dev/hdb1 /root/cryptsetup-hdb1.key
Tulemus saab vaadata öeldes
# cryptsetup luksDump /dev/hdb1 LUKS header information for /dev/hdb1 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: 69 84 d4 bb 3f 67 0b ac f3 8f 84 b3 4c f7 08 2e 9c 9a c2 ca MK salt: ab e9 db 52 73 54 62 0a 2d bb a3 0e 6b c1 f6 fe 6b 42 c7 bb f2 41 4b 2e 12 61 33 ac 5b ff 82 f6 MK iterations: 10 UUID: 0a9ca3d6-7e86-4fc6-999c-153b0fd0d266 Key Slot 0: ENABLED Iterations: 424787 Salt: 87 7b 1c da 55 bb 0f d2 cc ef a3 a9 f5 e1 ed fa 8b 16 05 53 66 29 ae bf f5 3e e9 b7 d3 fc 39 5e Key material offset: 8 AF stripes: 4000 Key Slot 1: DISABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED
Siinjuures on näha, et selle ühe ja sama plokkseadme puhul saab kasutada kuni kaheksat erinevat võtit/parooli.
Kõik krüptoseadet puudutavad andmed sisalduvad formaaditud seadmes endas va ligipääsuks vajalik võti/parool. Kuna nende andmete hoidmiseks on tarvis krüptitud seadmel natuke ruumi, siis kasutatav krüptitud seadmele vastava loogilise seadme maht on pisut väiksem vastava füüsilise seadme mahust.
Lisaks füüsilisele seadmele saab krüptida ka nt tarkvaralise RAID seadmeid või LVM voluume.
Krüptitud plokkseadme kasutamine
Krüptitud plokkseadme kasutamiseks tuleb seade avada öeldes
# cryptsetup --key-file /root/cryptsetup-hdb1.key luksOpen /dev/hdb1 c_home key slot 0 unlocked. Command successful.
Avatud seadme kohta saab küsida tema andmeid nii
# cryptsetup status c_home /dev/mapper/c_home is active: cipher: aes-cbc-essiv:sha256 keysize: 256 bits device: /dev/dm-43 offset: 2056 sectors size: 100661240 sectors mode: read/write
Tulemusena on moodustatud operatsioonisüsteemi ja krüptitud plokkseadme vahele pala alguses mainitud loogiline interface nimega /dev/mapper/c_home mida saab kasutada nagu tavalist plokkseadet. Antud juhul on nimeks valitud c_home, aga see võib olla ka samahästi midagi muud. Esmakordsel kasutamisel tuleks sinna moodustada failisüsteem
# mke2fs -j /dev/mapper/c_home
ning seejärel saab ta külge ühendada ning kasutama asuda, andmete krüptimisega eest hoolitseb Linuxi tuum
# mount /dev/mapper/c_home /home
Kasutamise lõpetamiseks tuleb ühendada failisüsteem lahti
# umount /dev/mapper/c_home
ja sulgeda loogiline interface, sulgemisel pole vaja võtit/parooli näidata
# cryptsetup luksClose c_home
Krüptitud seadme haldamine
Kõige levinumaks haldusprotseduuriks on krüptitud seadmega seotud paroolide/võtmetega tegelemine. Nt saab võtme lisada öeldes
# cryptsetup --key-file /root/cryptsetup-hdb1.key luksAddKey /dev/hdb1 /root/cryptsetup-hdb1-teine.key
Seejuures tuleb tähele panna, et nüüd saab kasutada sama krüptitud seadet nende mõlema võtmega.
Võtme eemaldamiseks tuleb öelda
# cryptsetup --key-file /root/cryptsetup-hdb1.key luksKillSlot /dev/hdb1 1 key slot 1 verified. Command successful.
Oluline on mitte kõiki võtmeid/paroole eemaldada, vastasel korral ei pääse enam andmetele juurde.
Krüptitud seadme kasutamise lõpetamiseks tuleb kõik võtmed hävitada ja võtta seade uude kasutusse.
Kürptitud plokkseadme kasutamine koos tarkvaralise RAID ja LVM lahendusega
Kuna plokkseadme krüptimisel on nö sisendiks ja väljundiks samuti plokkseade, siis saab seda teha RAID ja LVM lahenduse puhul põhimõtteliselt kolmes kohas
- failsüsteem -> LVM -> RAID -> krüptitud füüsiline seade (nt /dev/hdb1)
- failsüsteem -> LVM -> krüptitud RAID seade (nt /dev/md0)-> füüsiline seade
- failsüsteem -> krüptitud LVM voluum (nt /dev/system/home) -> RAID -> füüsiline seade
Valiku tegemisel peab arvestama, millised asjaolud on olulised. Nt kui krüptida LVM voluume, siis saab igale voluumile omistada erineva parooli/võtmega; kui krüptida kiht madalamal, siis on kõik voluumid plokkseadme krüptimise mõttes kaitstud sama LUKS parooli/võtmega.