Цифровая подпись удостоверяет создателя и дату создания документа. Если документ будет каким-либо образом изменен, то проверка цифровой подписи будет неудачной. Цифровая подпись может использоваться в тех же целях, что и обычная подпись. Исходные тексты GnuPG, например, подписаны, и Вы можете убедиться, что они дошли до Вас неизменёнными.
Создание и проверка подписей отличается от зашифрования/расшифрования. При подписи документа используется закрытый ключ подписывающего, а проверяется подпись с использованием его открытого ключа. Например, Алиса использует свой секретный ключ, чтобы подписать свою новую статью в журнал. Редактор, получив письмо, использует открытый ключ Алисы, чтобы проверить, что письмо действительно от неё и не было изменено в процессе пересылки.
Для подписи документов используется команда
--sign
.
alice$
gpg --output message.txt.sig --sign message.txt
You need a passphrase to unlock the secret key for user: "Alice (test key) <alice@wonderland.uk>" 2048-bit RSA key, ID 8A9ED75D, created 2005-10-21 Enter passphrase:
Если не указать подписываемый документ, то данные считываются со стандартного ввода.
Имея подписанный документ, Вы можете либо только проверить подпись, либо проверить
подпись и восстановить исходный документ. Для проверки подписи используется команда
--verify
.
Для проверки подписи и извлечения документа используется команда
--decrypt
.
bob$
gpg --output message.txt --decrypt message.txt.sig
gpg: Signature made Wed Oct 26 02:21:56 2005 MSD using RSA key ID 8A9ED75D gpg: Good signature from "Alice (test key) <alice@wonderland.uk>"
Зачастую цифровые подписи применяются при подписи сообщений usenet и e-mail.
При этом желательно, чтобы сообщения можно было прочитать и не имея
GnuPG. Команда --clearsign
добавляет к документу цифровую
подпись в формате ASCII, не изменяя при этом сам документ.
alice$
gpg --output message.asc --clearsign message.txt
You need a passphrase to unlock the secret key for user: "Alice (test key) <alice@wonderland.uk>" 2048-bit RSA key, ID 8A9ED75D, created 2005-10-21 Enter passphrase:alice$
cat message.asc
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 GnuPG - инструмент для защиты коммуникаций. Эта глава коротко описывает основы работы с GnuPG, включая создание пар ключей, обмен ключами и их проверку, зашифровку и расшифровку документов, заверение документов цифровой подписью. Она не описывает в деталях принципы криптографии с открытым ключом, шифрования и цифровых подписей. Эти вопросы рассматриваются в главе 2. Здесь, также, не рассматриваются тонкости использования GnuPG. Эти вопросы рассматриваются в главах 3 и 4. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iQEVAwUBQ16x2sJ/MmGKntddAQK83gf/UZ9fq2jX5kUh9xHpHl0kXSjGeHs4IBmj YWbOVZu5ka71VFXCgNqifLfZirJHA1TWCxRHjxnGC/lD38EvFQyX+gaFaUNJ1wB4 BW53SplsNaMkOzK+J5hb+n28cIK9FEgg6K7VaR/AEl75N9BVF+wjLvPsccJtEfCh 8L3/C8Kmb9vy131VkGTxzq9HulYK2uQfwW+VjXzsRjXF4W7GoRrAG8gbqrfHfVPo f2D8GE0y8EJXjOu0JO7bdaOnFS5mtvHjPaqFNHkCPOT5OnHENh6Zu+KXdebsBvmJ fOIZvCS5tmM45eFKNwBTA3mo91Gf7xymAf4LeC2kFhEu/Z54hR6ejg== =vEd7 -----END PGP SIGNATURE-----
Применение подписанных документов ограниченно. Получатель
должен восстанавливать документ из подписанной версии, и даже в случае
прозрачной подписи, подписанный документ должен быть отредактирован для
получения оригинала. Поэтому имеется третий метод подписи документов,
который создает отделённую подпись (detached signature). Отделённая подпись
создается при использовании команды
--detach-sign
.
alice$
gpg --output message.txt.sig --detach-sign message.txt
You need a passphrase to unlock the secret key for user: "Alice (test key) <alice@wonderland.uk>" 2048-bit RSA key, ID 8A9ED75D, created 2005-10-21 Enter passphrase:
В файл message.txt.sig при выполнении команды будет помещена только
подпись для файла message.txt. Исходный файл при подписи не изменяется.
Для проверки подписи необходимы и подпись, и сам документ.
Для проверки используется команда --verify
.
bob$
gpg --verify message.txt.sig message.txt
gpg: Signature made Wed Oct 26 02:33:43 2005 MSD using RSA key ID 8A9ED75D gpg: Good signature from "Alice (test key) <alice@wonderland.uk>"
Отделённые подписи часто применяются для подписи дистрибутивов программ. Например, таким образом подписываются дистрибутивы GnuPG.