Это старая версия документа!
# Как пользоваться gpg: шифрование, расшифровка файлов и сообщений, подпись файлов и проверка подписи, управление ключами. Часть 1.Основы
## Что такое GPG
gpg — это инструмент шифрования и электронного подписывания. В его работе используется ассиметричное шифрование, основанное на двух ключах: приватный и публичный. Приватный ключ иногда называют *секретным*. А публичный ключ называют *открытым*.
Суть работы: любой желающий может сгенерировать себе пару ключей. Публичный ключ , не является секретным — этот ключ может находиться в открытом доступе. С помощью этого ключа можно шифровать сообщения и файлы. При этом сообщения и файлы шифруются только «в одну сторону» - расшифровать их, даже используя этот самый публичный ключ, уже невозможно. Их расшифровка возможна только при использовании соответствующего приватного ключа.
Таким образом, если вы хотите отправить секретное сообщение или зашифрованный файл определённому лицу, то вы берёте публичный ключ этого лица (который может быть в свободном доступе), зашифровываете информацию и отправляете ему эту зашифрованную информацию — кроме владельца соответствующего приватного ключа её уже никто не сможет узнать.
Если обменяться публичными ключами, то вы с этим лицом можете вести зашифрованную беседу:
- вы шифруете свои сообщения публичным ключом вашего собеседника и отправляете ему - он с помощью своего приватного ключа читает эти сообщения - ваш собеседник шифрует свои сообщения вашим публичным ключом и отправляет вам - вы с помощью своего приватного ключа читаете свои сообщения - и так далее
Приватный ключ умеет делать ещё один интересный фокус: он умеет подписывать файлы. Причём, как можно уже догадаться, проверять подпись можно соответствующим публичным ключом.
## Предупреждение по использованию GPG
Используйте хороший пароль для вашего пользовательского аккаунта и хорошую парольную фразу для защиты вашего секретного ключа. Эта парольная фраза является *самой слабой частью всей системы*. Касательно GPG, вам нужно защитить от постороннего доступа папку «~/.gnupg/».
Для использования в скриптах, у gpg есть хорошо документированная реализация API, чтобы активировать этот интерфейс используйте опции --with-colons и --status-fd. Также для определённых операций может пригодиться опция --command-fd.
## Каким публичным GPG ключам можно доверять?
Создать пару публичный-приватный ключ можно у себя на компьютере для любого имени. Поэтому когда вы скачиваете публичный GPG ключ для проверки цифровой подписи, вы должны быть полностью уверены, что он именно от того лица, от кого вы думаете. Иначе вся процедура теряет смысл. После самого первого обмена публичными ключами, дальнейший обмен более надёжен: другая сторона, чтобы подтвердить, что новый публичный ключ исходит от неё, подпишет этот самый новый публичный ключ своим предыдущим приватным ключом.
