Digitális aláírások GnuPG

egy korábbi cikkben bemutattam a GnuPG-t egy aláírt fájl ellenőrzésével és egy fájl titkosításával a címzett számára nyilvános kulcs használatával. Azt is megosztottam, hogyan lehet létrehozni egy kulcspárt és exportálni egy nyilvános kulcsot, hogy titkosított üzeneteket kaphassunk. Ebben a cikkben bemutatom, hogyan kell aláírni a fájlokat, mielőtt megosztaná e-mailben vagy közzétenné egy webhelyen.

a GnuPG használatával többféle módszer létezik egy fájl aláírására.

$ gpg --help | grep -i signSign, check, encrypt or decrypt -s, --sign make a signature --clear-sign make a clear text signature -b, --detach-sign make a detached signature --verify verify a signature

mivel minden lehetőséget tárgyalunk, aláírok egy egyszerű szöveges fájlt.

$ cat sample.txt Sample text for gpg signing

készítsen aláírást

a --sign opcióval a fájl hatékonyan titkosítva van a privát kulccsal. A nyilvános kulcs szükséges a fájl tartalmának megtekintéséhez. Ez egyrészt arra kényszeríti a címzettet, hogy ellenőrizze a származást, másrészt eltávolítja a tiszta szöveges tartalmat a tranzitból. Ez nem privát, mivel bárki, aki rendelkezik nyilvános kulccsal, visszafejtheti a fájlt.

$ gpg -s sample.txt

ez egy minta nevű fájlt eredményez.txt.gpg.

$ file sample*sample.txt: ASCII textsample.txt.gpg: data
kép
grafika két fájl megjelenítése A-ból B-be küldve, ahol az egyik egyszerű szöveges, a másik pedig titkosított

csak az aláírás ellenőrzéséhez használja a --verify opciót. A tartalom megtekintéséhez és az aláírás-ellenőrzés megjelenítéséhez használja a --decrypt opciót.

$ gpg --decrypt sample.txt.gpg Sample text for gpg signinggpg: Signature made Sat 30 May 2020 09:16:24 AM EDTgpg: using DSA key 15AC***********...omitted...

különálló aláírás készítése

a leválasztott aláírás opcióval mindenki megtekintheti az üzenetet a nyilvános kulcs nélkül. Ez létrehoz egy külön aláírási fájlt, amelyet szükség esetén az eredeti üzenet ellenőrzésére használnak. A legegyszerűbb formában ez a fájl tartalmazza az eredeti üzenet kivonatát, és titkosítva van a privát kulccsal. Bárki, aki rendelkezik nyilvános kulccsal, megnyithatja az aláírást, majd összehasonlíthatja a kivonatokat az aláírt fájl integritásának ellenőrzéséhez.

hozza létre az aláírási fájlt a --detach-sign opcióval.

$ gpg -b sample.txt

az eredmény külön .sig adatfájl.

$ file sample*sample.txt: ASCII textsample.txt.gpg: datasample.txt.sig: data
kép
grafika két fájl megjelenítése A-ból B-be küldve, ahol az egyik egyszerű szöveges, a másik pedig titkosított

ha nem szeretne megosztani, közzétenni vagy e-mailben elküldeni egy adatfájlt, akkor aláírhatja a fájlt a --armor opcióval, és létrehoz egy ASCII szövegfájlt az aláírással. Azt is használja a .asc kiterjesztés helyett .Sig kiterjesztés:

$ cat sample.txt.asc -----BEGIN PGP SIGNATURE-----iF0EABECAB0WIQQVrPeUo9lk0dnOTCbvwxHCv6EJdAUCXtO/yAAKCRDvwxHCv6EJdC2BAJ49fIcOdBUdE0PELySEMlKNzVnZLgCdG1gsTim3gab2dgL6qagHArSlgq8==IvP/-----END PGP SIGNATURE-----

az eredeti egyszerű szöveges fájlt és a különálló aláírási fájlt egyaránt elérhetővé kell tenni a címzett számára.

az aláírás ellenőrzéséhez adja meg az aláírási fájlt, majd az eredeti fájlt.

$ gpg --verify sample.txt.sig sample.txt

ha az alapértelmezett neveket használta, kihagyhatja a titkosítatlan fájl nevét.

$ gpg --verify sample.txt.sig gpg: assuming signed data in 'sample.txt'gpg: Signature made Sat 30 May 2020 09:23:53 AM EDT...omitted...

tiszta szöveg aláírása

a --clear-sign opció egy újabb lehetőség a GPG hosszú története szempontjából, és nagyon gyakori az olyan webhelyeken közzétett fájloknál, mint A Fedora download CHECKSUM fájlok. A tartalom bárki számára olvasható. Az aláírási információk ugyanabban a fájlban is elérhetők azok számára, akik ellenőrizni akarják a tartalom eredetét és integritását.

kép
az ellenőrző összeg fájl tartalma, amely mind az SHA256SUM egyszerű szövegét, mind a PGP aláírási blokkot mutatja

a --clear-sign opció új fájlt hoz létre a .asc kiterjesztés.

$ gpg --clear-sign sample.txt
$ file sample*sample.txt: ASCII textsample.txt.asc: ASCII textsample.txt.gpg: datasample.txt.sig: data

az aláírás ellenőrzéséhez használja a --verify opciót:

$ gpg --verify sample.txt.asc gpg: Signature made Sat 30 May 2020 09:27:56 AM EDT...omitted...gpg: WARNING: not a detached signature; file 'sample.txt' was NOT verified!

vegye figyelembe, hogy az ellenőrzési folyamat során üzenet jelenik meg, amely figyelmezteti, hogy a társított eredeti fájl nincs bejelölve. Átnevezheti ezt a fájlt, mielőtt közzétenné a webhelyén. Az ellenőrzés továbbra is ellenőrzi a fájl tartalmát.

bár gyakran ez a legkényelmesebb módszer a termékek fogyasztói számára, a GPG man oldalon figyelmeztetés található, hogy a leválasztott aláírások a jobb megoldás, ha teljes ellenőrzésre van szükség.

a gpg man oldalról:

megjegyzés: a cleartext aláírás ellenőrzésekor a GPG csak azt ellenőrzi, hogy mi alkotja a cleartext aláírt adatokat, nem pedig a cleartext aláíráson vagy a közvetlenül a kötőjel jelölővonalát követő fejlécvonalakon kívüli extra adatokat. A — output opció használható a tényleges aláírt adatok kiírására, de vannak más buktatók is ezzel a formátummal. Javasoljuk, hogy kerülje a cleartext aláírásokat a különálló aláírások javára.

egy adott kulcspár használata

a fenti példák mindegyike a kulcstartómban elérhető első privát kulccsal lett aláírva. Lehet, hogy egy másik kulcsot szeretnék használni, amikor aláírok egy fájlt egy weboldalon való közzététel céljából. A keypair kifejezetten a projekthez vagy termékhez jön létre. A keypair akár egy új megosztott kulcstartón is lehet.

$ gpg --keyring /etc/gpgkeys --no-default-keyring --full-gen-key <other options>

amikor egy fájl alá van írva vagy titkosítva van, feltétlenül adja meg a --keyring opciót is.

még akkor is, ha csak egy személy használja a kulcsot a fájlok aláírásához, készítsen külön billentyűt az aláíráshoz. Ne használja ugyanazt a kulcsot más napi feladatokhoz, például a személyes e-mail titkosításhoz. Az elérhető privát kulcsneveket a gpg --list-secretgombbal lehet felsorolni. Az azonosító, a név vagy az e-mail felhasználható a kulcs azonosítására.

ha a fájlt egy kulcstartóból egy adott kulccsal szeretné aláírni, használja a --local-user identity opciót.

$ gpg --local-user "My Project 2" --clear-sign sample.txt

Wrap up

ha az egyszerű szövegfájl a termékletöltések ellenőrző összeg-kivonatainak listája, akkor ezt a fájlt, az aláírási fájlokat és az aláírások ellenőrzésére használt nyilvános kulcsot fel lehet tenni egy webhelyre. A fogyasztók ezután ellenőrizhetik a letöltéseket, mielőtt bármilyen szoftvert telepítenek a rendszerükre.



+