Vzhledem k tomu, že mnoho organizací přechází od papírových dokumentů k digitálním dokumentům, jsou ke správě citlivých digitálních dokumentů vyžadovány digitální podpisy. Digitální podpisy lze použít k ověření zdroje zprávy, takže příjemce se může rozhodnout, zda bude odesílateli důvěřovat nebo ne. V současnosti je nejrozšířenější pro distribuci softwaru a finanční transakce.
V kryptografii veřejného klíče je možné k podepsání souboru použít soukromý klíč. Každý, kdo má odpovídající veřejný klíč, může zkontrolovat, zda byl soubor podepsán soukromým klíčem. Kdokoli, kdo nemá soukromý klíč, nemůže takový podpis zfalšovat.
Digitální podpisy lze použít k ověření odesílatele a jeho neodmítnutí. Podepisující osoba nemůže tvrdit, že dokument nepodepsala.
V dnešní době hrají digitální podpisy klíčovou roli v distribuci softwaru. Když nainstalujete jakýkoli software z debian mirroru, jakmile je software stažen, ověří, zda software pochází z důvěryhodného zdroje ověřením podpisu, čímž se zajistí, že balíček pochází z důvěryhodného zdroje.
Nyní uvidíme různé metody podepisování dokumentů pomocí nástroje GnuPG.
Pokud jste s nástrojem GnuPG noví, měli byste nejprve pochopit, jak používat základní příkazy gpg.
Digitální podpis, osvědčuje a opatřuje dokument časovým razítkem. Pokud je dokument jakýmkoli způsobem pozměněn, ověření podpisu se nezdaří.
1. Vytvořit digitální podpis pro soubor
K digitálnímu podepsání dokumentu se používá možnost podepsat. Budete požádáni o zadání své přístupové fráze pro odemknutí soukromého klíče, který se používá k podpisu dokumentu.
$ gpg --sign file.txt You need a passphrase to unlock the secret key for user: "lakshmanan (This is lakshmans key) " 2048-bit RSA key, ID 3630F8D6, created 2012-12-30 Enter passphrase:
Nyní vytvoří soubor s názvem „file.txt.gpg“ v binárním formátu. Vstupní soubor je před podepsáním souboru zkomprimován.
2. Ověřte digitální podpis
Máte-li podepsaný dokument, můžete podpis ověřit pomocí volby –verify.
$ gpg --verify file.txt.gpg gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Výše uvedený příkaz ověří, zda je vytvořený podpis dobrý.
3. Extrahujte dokument ze souboru
Chcete-li extrahovat původní dokument z podepsaného souboru, použijte volbu –decrypt. Můžete použít –output k určení výstupního souboru pro uložení skutečného obsahu souboru.
$ gpg --output doc.txt --decrypt file.txt.gpg gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Nyní bude aktuální dokument uložen do souboru doc.txt.
4. Chcete-li vymazat podpis dokumentů
Běžným použitím digitálních podpisů je odesílání e-mailů. V takovém případě není žádoucí soubor binárně komprimovat a podepisovat. Můžete použít volbu –clearsign k zabalení souboru do ASCII obrněných signatur.
$ gpg --output file.sig --clearsign file.txt
Nyní bude vytvořen ASCII soubor s názvem file.sig, který obsahuje digitální podpis a samotný soubor.
$ cat file.sig -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This is a test file -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAEBAgAGBQJQ8af1AAoJEHUf3BE2MPjWJ6QIAIoM7vZlvVD4PR4TgqKkUAr5 S4Pc/7tjkEquBcPfzHgm6MPdTd7kIvUzwHNkkST0FyB2cLzvx8wNf7Zp/kDYL0Uz /7UCocMPsDBYHasUY4XRfCDUkF0ER/NAFdiL9AUTvQf6oQxwuQG9sWxb6tcK8eiV U7BBvQvMl6RszP+e7VXgcDbNeYMrTDwrivP9BKwAFuBtZmRg0vQKnjenUyVJL6gJ tndkwtOd1XGpc5ZKCTRSKOoTonuUQAD1q0Pi6nmeaNskSqwVOxzQcV6lQ8nHJTh2 XfKSAopNriv405YfC1KO5H2Ffzee2jx+o3HqxfU1vQbHtP7uf4QqxUc2HtDnRNQ= =PN+K -----END PGP SIGNATURE-----
Ověření jasně podepsaného dokumentu je podobné ověření binárně podepsaného dokumentu.
5. Vytvořit oddělený podpis
V případě oddělených podpisů se jako podpis vytvoří nový soubor. K vytvoření odděleného podpisu můžete použít volbu –detach-sign.
$ gpg --armor --detach-sig file.txt
Nyní bude vytvořen ASCII soubor s názvem file.txt.asc, který bude obsahovat oddělený podpis. Pomocí –output můžete změnit název odpojeného souboru podpisu.
6. Ověřte oddělený podpis
Abyste mohli ověřit oddělený podpis, musíte mít soubor podpisu i datový soubor.
$ gpg --verify file.txt.asc file.txt gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Zkusme upravit soubor file.txt. Přidejte nějaký obsah do souboru file.txt a zkuste ověřit podpis.
$ echo "Append" >> file.txt $ gpg --verify file.txt.asc file.txt gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6 gpg: BAD signature from "lakshmanan (This is lakshmans key) "
Nyní se ověření nezdařilo, protože byl změněn obsah.
7. Šifrovat a podepsat dokument
V jednom z našich předchozích příspěvků jsme také podrobně diskutovali o tom, jak šifrovat a dešifrovat soubor pomocí GnuPG. Pokud však chcete dokument zašifrovat a podepsat zároveň, proveďte následující:
$ gpg --sign --encrypt --recipient raman file.txt
Výše uvedený příkaz zašifruje soubor.txt a dokument digitálně podepíše. Příjemce může ověřit podpis a dešifrovat dokument pomocí volby –decrypt.