Digitální podpisy s GnuPG

V předchozím článku jsem představil GnuPG ověření podepsaného souboru a šifrování souborů pro příjemce pomocí veřejného klíče. Také jsem sdílel, jak vytvořit pár klíčů a exportovat veřejný klíč, abychom mohli přijímat šifrované zprávy. V tomto článku ukážu, jak podepisovat soubory před sdílením e-mailem nebo publikováním na webových stránkách.

s GnuPG existuje několik způsobů podpisu souboru.

$ 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

při projednávání každé možnosti podepíšu jednoduchý textový soubor.

$ cat sample.txt Sample text for gpg signing

Vytvořte podpis

pomocí možnosti --sign je soubor účinně šifrován soukromým klíčem. Veřejný klíč je vyžadován pro zobrazení obsahu souboru. To nutí příjemce ověřit původ a odstraní veškerý jasný textový obsah z tranzitu. Není to soukromé, protože kdokoli s veřejným klíčem může soubor dešifrovat.

$ gpg -s sample.txt

výsledkem je soubor s názvem sample.txt.to je pravda.

$ file sample*sample.txt: ASCII textsample.txt.gpg: data
Obrázek
Grafické zobrazení dvou souborů z A do B, kde jeden je prostý text a je zašifrovaný

ověřit pouze podpis, použijte --verify možnost. Chcete-li zobrazit obsah a zobrazit ověření podpisu, použijte volbu --decrypt.

$ 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...

vytvořte samostatný podpis

možnost odděleného podpisu je k dispozici, aby všem poskytla možnost prohlížení zprávy bez veřejného klíče. Tím se vytvoří samostatný podpisový soubor, který se v případě potřeby použije k ověření původní zprávy. Ve své nejjednodušší podobě obsahuje tento soubor hash původní zprávy a je šifrován soukromým klíčem. Každý, kdo má veřejný klíč, může otevřít podpis a poté porovnat hashe, aby ověřil integritu podepsaného souboru.

Vytvořte soubor podpisu pomocí volby --detach-sign.

$ gpg -b sample.txt

výsledek je samostatný .sig datový soubor.

$ file sample*sample.txt: ASCII textsample.txt.gpg: datasample.txt.sig: data
Obrázek
Grafické zobrazení dvou souborů z A do B, kde jeden je prostý text a je zašifrovaný

Pokud nechcete sdílet, poštou, nebo e-mailem jako datový soubor, můžete podepsat soubor s --armor možnost, a to bude vytvořit ASCII textový soubor s podpisem. Bude také používat .asc rozšíření namísto .rozšíření sigu:

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

původní soubor prostého textu a samostatný soubor podpisu musí být příjemci k dispozici.

Chcete-li ověřit podpis, zadejte soubor podpisu a poté původní soubor.

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

pokud byly použity výchozí názvy, můžete nechat název nešifrovaného souboru.

$ 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...

vytvořte jasný textový podpis

volba --clear-sign je novější volbou z hlediska dlouhé historie GPG a je velmi běžná pro soubory publikované na webových stránkách, jako jsou soubory kontrolního součtu ke stažení Fedory. Obsah je čitelný kýmkoli. Informace o podpisu jsou také k dispozici ve stejném souboru pro ty, kteří chtějí ověřit původ a integritu obsahu.

Obrázek
Obsah kontrolní SOUČET souboru, ukazující jak prostý text SHA256SUM a PGP Podpis blok

--clear-sign možnost vytvořit nový soubor .rozšíření asc.

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

K ověření podpisu, použijte --verify možnost:

$ 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!

Všimněte si, že zpráva se zobrazí během procesu ověřování varování, že spojené původní soubor není zaškrtnuto. Tento soubor můžete přejmenovat před jeho odesláním na svůj web. Ověření bude stále kontrolovat obsah souboru.

i když je to často nejvhodnější metoda pro spotřebitele vašich produktů, na manuálové stránce GPG je varování, že oddělené podpisy jsou lepší volbou, pokud je vyžadováno úplné ověření.

Z manuálová stránka gpg:

Poznámka: Při ověřování prostého textu podpisu, GPG ověřuje pouze to, co tvoří cleartext podepsaných dat a ne žádné další údaje, mimo prostého textu podpis nebo záhlaví řádků přímo po dash obrysové linie. Volba –output může být použita k napsání skutečných podepsaných dat, ale existují i další úskalí s tímto formátem. Doporučuje se vyhnout se podpisům s jasným textem ve prospěch oddělených podpisů.

pomocí konkrétní pár kláves

všechny výše uvedené příklady byly podepsány prvním soukromým klíčem dostupným v mém klíčence. Možná budu chtít použít jiný klíč, když podepisuji soubor ke zveřejnění na webových stránkách. Pár klíčů je vytvořen speciálně pro projekt nebo produkt. Pár kláves může být dokonce na novém sdíleném klíčence.

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

pokud je soubor podepsán nebo zašifrován, nezapomeňte také zadat možnost --keyring.

i když pouze jedna osoba používá klíč k podepisování souborů, vytvořte samostatný pár kláves, který chcete použít pro podepisování. Nepoužívejte stejný klíč pro jiné každodenní úkoly, jako je šifrování osobních e-mailů. Názvy soukromých klíčů, které jsou k dispozici, můžete uvést pomocí gpg --list-secret. ID, jméno nebo e-mail lze použít k identifikaci klíče.

Chcete-li soubor podepsat konkrétním klíčem z klíčenky, použijte volbu --local-user identita.

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

zabalte

pokud je váš jednoduchý textový soubor Seznam hash kontrolního součtu pro stahování produktů, tento soubor, Všechny podpisové soubory a veřejný klíč používaný k ověření podpisů mohou být zveřejněny na webových stránkách. Spotřebitelé pak mohou ověřit stahování před instalací jakéhokoli softwaru do svých systémů.



+