Krüpteerimine Linuxis

From EIK wiki

Sissejuhatus

On ammu teada, et Linux-Unix süsteemid on palju turvalisemad kui kodukasutajate seas levinud Windows operatsioonisüsteemid. Linuxis on turvalisuse tõstmiseks väga palju võimalusi ning antud teemas räägime ühest paljudest - krüpteerimine. Krüpteerida on võimalik faile, failisüsteeme, partitsioone ning ka tervet kõvaketast. Käesolev materjal vaatleb lähemalt failide krüpteerimist GPG-ga ja failisüsteemide krüpteerimist, kasutades kerneli dm-crypt tuge.

GPG

GPG ehk GnuPG ehk GNU Privacy Guard on tasuta tarkvra. Lühidalt kirjeldatuna on tegemist süsteemiga, mis kasutab kahte sorti võtmeid: salajasi ja avalikke. Salajane võti on ainult kasutaja enda teada, sellega saab andmeid allkirjastada ja avaliku võtmega krüptitud andmeid lahti krüptida. Avalik võti, nagu näha, on andmete krüpteerimiseks; avalikku võtit võib kartuseta levitada, selle abil saab kasutajale saadetavaid andmeid ära krüpteerida.

Võtmed

  • -c, - Kasutatakse krüpteerimiseks
  • -d, - Kasutatakse dekrüpteerimiseks
  • -k, - Näeb avalike võtmete vaadet
  • -K, - Näeb salajaste võtmete vaadet
  • -kvv, - Võtmehoidja sisuga tutvumiseks

Rohkem infot: man gpg

Sümmeetriline krüpteerimine GPG-ga

Sümmeetriline krüpteerimine on ühe ja sama võtmega krüpteerimine ning dekrüpteerimine.

Näited

Alustuseks tuleks kõigepealt installeerida gpg (veendu, et Sul on juurkasutajaõigused):

apt-get install gnupg

Loome ühe suvalise kausta, et seal krüpteerimist/dekrüpteerimist katsetada ning siseneme loodud kausta:

mkdir krypto
cd krypto

Loome ühe suvalise tekstifaili, mida hiljem hakkame krüpteerima:

echo "See siin on suvaline TEXT, mille hiljem ära krüpteerime" > sala.txt

Krüpteerime sala.txt faili ära ning kui krüpteeritud siis kustutame algfaili (sala.txt) ära.

gpg -c sala.txt
salasõna
salasõna
rm sala.txt

VÕI

gpg --output kryptitud.txt -c sala.txt

Nüüd ongi tekkinud fail sala.txt.gpg, mis on krüpteeritud

Vaatame krüpteeritud faili sisu:

less sala.txt.gpg

Dekrüpteerime faili:

gpg --output avatud.txt sala.txt.gpg
salasõna

Vaatame dekrüpteeritud faili:

less avatud.txt

Asümmeetriline krüpteerimine GPG-ga

Asümmeetriline krüpteerimine on krüpteerimine, kus krüpteeritakse ühe võtmega ja dekrüpteeritakse teisega.

Näited

Loome võtmepaari ja veendume selle olemasolus. Kõigepealt valime, millist võtmetüüpi me kasutame, valime võtme pikkuse ning määrame ära kui kaua on võti kehtiv (antun näites üks päev). Lisaks tuleb sisestada enda nimi, e-maili aadress ning ka kommentaar.

gpg --gen-key
1
2048
1
y

Krüpteerime nüüd faili avatud.txt

gpg --output kryptitud.txt --encrypt avatud.txt

Kui tahame faili krüpteerida kellegi teise jaoks, keda me tunneme (ja kelle võti meil andmebaasis on), nii et ainult tema saaks faili dekrüpteerida, siis trükime:

gpg -a -r [keegi] -o kryptitud.txt -e tekstainultsulle.txt

PS: [keegi] asemel on kellegi nimi (jutumärkides) või meiliaadress

Dekrüpteerime faili kryptitud.txt

gpg -o dekryptitud.txt -d kryptitud.txt

Kasutaja enda võtme kehtetuks tunnistamine

gpg --gen-revoke [kasutaja ID]


Failisüsteemide krüpteerimine dm-crypt'iga

Kui andmeid on vaja sagedasti krüpteerida/dekrüpteerida, siis üksikute failidega pusimine võtab palju aega. Efektiivsem on krüpteeritud failisüsteemide kasutamine.

Krüpteeritud failisüsteemi loomine

Installeerime cryptsetup'i:

apt-get install cryptsetup

Mõistlik oleks luua partitsioon juurkausta mõnesse alamkausta, millele tavakasutajatel ligipääs puudub. Selleks võime juurkasutajana luua uue kausta.

mkdir krypritud

Oletame, et meile piisab krüpteeritud andmete hoidmiseks 50 megabaidist. Loome esialgu tühja faili:

dd if=/dev/zero of=/encrypted/data.crypt bs=1M count=20

/dev/zero asemel võime kasutada ka /dev/random käsku, mis täidab faili suvaliste märgenditega.

Võimaldame antud faili käsitleda plokkseadmena, millele saaks luua failisüsteemi:

losetup /dev/loop0 /encrypted/data.crypt

Krüpteerimiseks läheb vaja võtit, mille järgi krüpteerida. Selleks võib olla salasõna või hoopiski mõni fail, mis sisaldab võtmefraasi. Läheme juurkasutaja kodukataloogi ning loome võtme ja salvestame selle faili. Viimaseks krüpteerime loodud failisüsteemi oma võtmega:

cd /root
echo "abcdefghijklmnopqrsztuvõäöüxy" > krypto.key
cryptsetup -d /root/krypto.key create data.crypt /dev/loop0

Loome krüpteeritud virtuaalsele plokkseadmele failisüsteemi

mke2fs -j /dev/mapper/data.crypt

Loome monteermispunkti ja monteerime failisüsteemi sinna

mkdir /mnt/kryptitud
mount /dev/mapper/data.crypt /mnt/kryptitud

Proovime kürpteeritud failisüsteemi faili luua:

echo "See on proovitekst" > /mnt/kryptitud/proov.txt

Lõpetame krüpteeritud failisüsteemi kasutamise

umount /mnt/kryptitud
cryptsetup remove data.crypt
losetup -d /dev/loop0

Vabastame krüpteeritud failisüsteemi

cryptsetup remove data.crypt
losetup -d /dev/loop0


Kasutatud kirjandus

http://kuutorvaja.eenet.ee/wiki/GnuPG_kasutamine_Debianiga

http://linux.about.com/library/cmd/blcmdl1_gpg.htm

http://www.linux.com/archive/feed/36596

http://www.linux.com/archive/articles/52820

http://www.linuxjournal.com/article/8599

Failide krüpteerimine Linuxis [1]

Autor

Kadri Kalpus