[[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