[[oktatas:linux:titkosítás|< Titkosítás]]
====== Kriptográfia ======
* **Szerző:** Sallai András
* Copyright (c) 2018, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Kriptográfiai szoftverek =====
* mcrypt
* bcrypt
* gnupg
* ccrypt
===== GnuPG =====
==== Telepítés ====
apt install gnupg
Webhely:
https://gnupg.org/
apt install gnupg2
==== Szimmetrikus kulcs ====
Használat szimmetrikus kulccsal:
gpg -c egy.txt
Az eredmény egy egy.txt.gpg fájl.
Visszafejtés:
gpg -d egy.txt.gpg
Ez csak a képernyőre ír. Ha szeretnénk fájlba írni:
gpg -d -o egy.txt egy.txt.pgp
==== Aszimmetrikus kulcs ====
Először generálnunk kell egy kulcspárt (nyilvános kulcs és titkos kulcs). Nézzük meg jelenleg milyen
titkos kulcsok vannak:
gpg --list-secret-keys
vagy:
gpg --list-secret-keys --keyid-format LONG
A kulcs-pár generálása:
gpg --gen-key
Ha véletlenek száma nem elég, használjuk az rng-tools csomagot:
# apt install rng-tools
A véletlenek növelése:
# rngd -r /dev/urandom
Az rngd program indítható a kulcsgenerálás hátterében is.
A 2.1.17 verziótól használhatjuk a --full-generate-key kapcsolót:
gpg --full-generate-key
Titkosítás megadásával:
gpg --default-new-key-algo rsa4096 --gen-key
ASCII formátum generálása:
gpg --armor --output pubkey.txt --export 'Teljes Név'
Esetleg így:
gpg --list-secret-keys --keyid-format LONG
/home/tanulok/13ei/nagyj13eib/.gnupg/pubring.kbx
------------------------------------------------
sec rsa2048/EF584EBA9A877662 2018-10-25 [SC] [expires: 2020-10-24]
EC9870854BADD01BF45F7B08EF584EBA9A877662
uid [ultimate] Nagy János
ssb rsa2048/4F57685D5972B452 2018-10-25 [E] [expires: 2020-10-24]
A sec sorból felhasználjuk a EF kezdetű részt:
gpg --armor --export EF584EBA9A877662
Nyilvános kulcs, kulcsszerverre:
gpg --send-keys 'Nagy János' --keyserver hkp://kulcsszerver.neve
==== Aszimmetrikus kulcsok használata ====
Titkosítás:
gpg --encrypt --recipient 'Nagy János' adat.txt
Visszafejtés:
gpg --output adat.txt --decrypt adat.txt.gpg
Titkosítás a fogadó fél számára:
gpg --search-keys 'baratneve@sarga.and' --keyserver hkp://kulcsszerver
gpg --import key.asc
gpg --list-keys
gpg --encrypt --recipient 'baratnev@sarga.and' adat.txt
==== Aláírás ====
gpg --verify csomag.tar.gz.asc csomag.tar.gz
gpg --armor --detach-sign csomag.zip
===== mcrypt =====
apt install mcrypt
$ mcrypt egy.txt
Enter the passphrase (maximum of 512 characters)
Please use a combination of upper and lower case letters and numbers.
Enter passphrase:
Enter passphrase:
File egy.txt was encrypted.
Visszafejtés:
mdecrypt egy.txt.nc
Vagy:
mcrypt -d egy.txt.nc
A használat után az eredeti fájl törlése:
mcrypt -u egy.txt
===== bcrypt =====
Telepítés:
apt install bcrypt
A Debian9-ben sem működik: http://bugs.debian.org/700758
===== ccrypt =====
Telepítés:
apt install ccrypt
Legyen a példa kedvéért egy adat.txt fájl.
Titkosítjuk:
ccrypt -e adat.txt
Meg kell adnunk kétszer a jelszót. A kimenet ehhez hasonló lesz:
Enter encryption key:
Enter encryption key: (repeat)
Az eredeti fájl átnevezésre kerül:
adat.txt.cpt
A visszafejtés:
ccrypt -d adat.txt.cpt
Bekéri a titkosításkor megadott jelszót:
Enter decryption key:
A fájl elveszti .cpt kiterjesztését, és szimpla .txt fájlként újra olvasható.
Kapunk egy ccat parancsot is, amely visszafejti a lekódolt tartalmat, de
megmarad a titkosított fájl, a tartalmat pedig a képernyőre írja.
Használata:
ccat adat.txt.cpt
===== openssl =====
Kódolás képernyőre:
openssl enc -base64 -in adat.txt
Kódolás fájlba:
openssl enc -base64 -in adat.txt -out adat.txt.enc
Dekódolás:
cat adat.txt.enc | openssl enc -base64 -d
===== Hash algoritmusok =====
==== md5sum ====
md5sum pika.txt
f3eeeaf8e0a470adf6ac40d3d9c9a88e pika.txt
==== crc32 ====
apt install libarchive-zip-perl
crc32 pika.txt
==== cksum ====
CRC ellenőrzőösszeg és a bájtok száma:
cksum pika.txt
==== cksfv ====
apt install cksfv
cksfv pika.txt
==== SHA ====
sha1sum pika.txt
sha224sum pika.txt
sha256sum pika.txt
sha384sum pika.txt
sha512sum pika.txt