GNU/Linux >> Znalost Linux >  >> Linux

Digitální podpisy s GnuPG

V předchozím článku jsem představil GnuPG ověřením podepsaného souboru a zašifrováním souboru 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 webu.

S GnuPG existuje několik metod podepisování souboru.

$ gpg --help | grep -i sign
Sign, 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

Až bude každá možnost probrána, podepíšu jednoduchý textový soubor.

$ cat sample.txt 
Sample text for gpg signing

Udělejte podpis

S --sign je soubor efektivně zašifrován soukromým klíčem. K zobrazení obsahu souboru je vyžadován veřejný klíč. To nutí příjemce ověřit původ a zároveň odstraňuje veškerý obsah prostého textu z přenosu. Není 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.gpg.

$ file sample*
sample.txt:     ASCII text
sample.txt.gpg: data

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

$ gpg --decrypt sample.txt.gpg 
Sample text for gpg signing

gpg: Signature made Sat 30 May 2020 09:16:24 AM EDT
gpg:             using DSA key 15AC***********
...omitted...

Vytvořte samostatný podpis

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

Vytvořte soubor podpisu pomocí --detach-sign možnost.

$ gpg -b sample.txt

Výsledkem je samostatný .sig datový soubor.

$ file sample*
sample.txt:     ASCII text
sample.txt.gpg: data
sample.txt.sig: data

Pokud nechcete sdílet, zveřejňovat nebo e-mailem datový soubor sdílet, můžete soubor podepsat pomocí --armor a vytvoří textový soubor ASCII s podpisem. Použije také .asc místo .sig rozšíření:

$ cat sample.txt.asc 
-----BEGIN PGP SIGNATURE-----

iF0EABECAB0WIQQVrPeUo9lk0dnOTCbvwxHCv6EJdAUCXtO/yAAKCRDvwxHCv6EJ
dC2BAJ49fIcOdBUdE0PELySEMlKNzVnZLgCdG1gsTim3gab2dgL6qagHArSlgq8=
=IvP/
-----END PGP SIGNATURE-----

Příjemci musí být zpřístupněn původní soubor ve formátu prostého textu a samostatný soubor s podpisem.

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

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

Pokud byly použity výchozí názvy, můžete ponechat název nezaš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...

Udělejte jasný textový podpis

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

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

$ gpg --clear-sign sample.txt
$ file sample*
sample.txt:     ASCII text
sample.txt.asc: ASCII text
sample.txt.gpg: data
sample.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 během procesu ověřování se zobrazí zpráva s upozorněním, že přidružený původní soubor není zkontrolován. Tento soubor můžete před umístěním na svůj web přejmenovat. Ověření bude stále kontrolovat obsah souboru.

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

Z manuálové stránky gpg:

Poznámka:Při ověřování podpisu s prostým textem ověřuje GPG pouze to, co tvoří data podepsaná prostým textem, a nikoli jakákoli další data mimo podpis prostého textu nebo řádky záhlaví přímo za přerušovanou čarou. Možnost --output lze použít k vypsání skutečných podepsaných dat, ale tento formát má i další úskalí. Doporučuje se vyhnout se podpisům s čistým textem ve prospěch samostatných podpisů.

Použití konkrétního páru klíčů

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

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

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

I když klíč k podepisování souborů používá pouze jedna osoba, vytvořte pro podepisování samostatný pár klíčů. Nepoužívejte stejný klíč pro jiné každodenní úkoly, jako je šifrování osobních e-mailů. Seznam názvů soukromých klíčů dostupných pomocí gpg --list-secret . K identifikaci klíče lze použít ID, jméno nebo e-mail.

Chcete-li soubor podepsat konkrétním klíčem ze svazku klíčů, použijte --local-user možnost identity.

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

Zabalit

Pokud je vaším jednoduchým textovým souborem seznam hodnot hash kontrolních součtů pro stažení vašeho produktu, lze tento soubor, všechny soubory podpisů a veřejný klíč použitý k ověření podpisů odeslat na webovou stránku. Spotřebitelé si pak mohou stažené soubory ověřit před instalací jakéhokoli softwaru do svých systémů.

[ Chcete se dozvědět více o zabezpečení? Podívejte se na kontrolní seznam zabezpečení IT a dodržování předpisů. ]


Linux
  1. Třídit příkaz v Linuxu s příklady

  2. Začínáme s ls

  3. Zkontrolujte oprávnění souborů Linux pomocí ls

  1. tar -C se vzorem souboru zástupných znaků

  2. Jak podložit soubor pomocí FF pomocí dd?

  3. Je mv se zástupným znakem stále atomický

  1. Vim:Vytvořit soubor pomocí +x Bit?

  2. Práce s obnovením úrovně souborů

  3. Oprávnění souborů v Linuxu s příkladem