Gnupg что это за программа

Использование PGP/GPG, руководство для нетерпеливых

Данная статья представляет собой краткое руководство по использованию GnuPG (он же GPG). В ней вы найдете основные команды, примеры использования, а также инструкции по прикручиванию GPG к почтовым клиентам. Далее предполагается, что вы знакомы с принципом работы GPG и объяснять, например, что такое ассиметричная криптография, открытый и закрытый ключ, цифровая подпись и так далее, не требуется. За несколько десятилетий существования GPG никто особо не преуспел в его взломе, что как бы намекает нам, что это довольно надежное решение как для обмена зашифрованными сообщениями, так и просто шифрования файлов.

Терминология

Существует некоторая путаница в терминологии. Например, далеко не все могут внятно объяснить, чем PGP отличается от GPG. Давайте же во всем разберемся.

  • OpenPGP — стандарт шифрования, описанный в RFC 4880 и RFC 6637. Не следует путать с конкретными реализациями, такими, как PGP и GPG;
  • GnuPG или GPG — конкретная открытая (GPLv3) реализация OpenPGP, речь о которой пойдет в настоящей статье;
  • PGP — сильно проприетарная реализация OpenPGP от компании PGP Corporation. В 2010-м году компанию купила Symantec, а ее продукты переименовала во что-то типа Symantec Desktop Email Encryption;

Часто, говоря «PGP», люди имеют в виду способ шифрования, описанный в OpenPGP, и соответственно любую из его реализаций.

Basic File Encryption with GPG key pairs!

Основные команды GnuPG

gpg —gen-key

Хорошей идеей будет выбрать алгоритм RSA и длину ключей 4096 бит.

Важно! Не забудьте пароль от закрытого ключа.

Частая проблема — сообщение вроде такого:

Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 204 more bytes)

Решается она установкой демона для сбора энтропии:

sudo apt-get install rng-tools

Просмотр списка ключей:

gpg —list-keys
gpg —list-secret-keys
gpg —list-public-keys

Получение fingerprint ключа:

pub 4096R/8640D6B9 2016-09-27
Fingerprint = DB5E AA39 0745 427D ED31 D189 3197 3F00 8640 D6B9
uid Aleksander Alekseev
sub 4096R/5982B4BF 2016-09-27

Fingerprints используются в основном для проверки того, что с сервера ключей (см далее) был импортирован действительно правильный ключ. Для поиска их не используют.

Для отображения более безопасных длинных id используйте опцию keyid-format:

gpg —keyid-format LONG —list-keys
gpg —keyid-format 0xLONG -k 7EFE74E5

Короткие keyid удобны для манипуляции с ключами локально. Для поиска всегда следует использовать длинные id и проверять fingerprints. В последних версиях GPG длинные id используются по умолчанию.

gpg —delete-secret-keys 8640D6B9
gpg —delete-keys 8640D6B9

Экспорт открытого ключа в текстовом виде (можно писать на всех заборах):

gpg —armor —output pubkey.txt —export 8640D6B9

What is PGP/GPG Encryption? In 3 Minutes — PGP/GPG Tutorial for Beginners

Экспорт закрытого ключа в текстовом виде (ключ все еще зашифрован мастер-паролем, можно использовать для бэкапа в Git):

gpg —armor —output privkey.txt —export-secret-keys 8640D6B9

Импорт открытого ключа:

gpg —import key.txt

Импорт закрытого ключа:

gpg —allow-secret-key-import —import privkey.txt

Если не указать —allow-secret-key-import , импортируется только открытый ключ, и при попытке подписать что-то вы будете получать странные ошибки вроде:

gpg: no default secret key: secret key not available
gpg: msg.txt: sign+encrypt failed: secret key not available

Экспорт открытого ключа на keyserver:

gpg —keyserver pgp.mit.edu —send-keys 8640D6B9

Важно! После того, как вы залили ключ на keyserver, его будет невозможно удалить, только сделать revoke. Убедитесь, что вы сделали надежную резервную копию ключа. Если вы раньше никогда не работали с PGP/GPG, очень советую сначала потренироваться на почтовых адресах в зоне example.ru.

Не имеет большого значения, какой keyserver указать. Например, еще есть keys.gnupg.net, а также другие. Все они время от времени обмениваются друг с другом данными. Не лишено смысла сделать send-keys сразу на несколько серверов, чтобы их быстрее увидели все пользователи PGP/GPG. Синхронизация серверов, по моим наблюдениям, занимает минут 10-15.

Hint: чтобы постоянно не указывать —keyserver , просто допишите в ~/.bashrc:

alias gpg = «gpg —keyserver pgp.mit.edu»

Импорт открытого ключа с keyserver:

В мире PGP/GPG существуют так называемая сеть доверия (web of trust). В двух словах это означает, что GPG не доверяет ключу, если только он не подписан кем-то, кому вы доверяете. Кроме того, если вы доверяете Пете, а Петя доверяет Коле, то вы автоматически доверяете Коле. В частности, по умолчанию при проверке подписи и прочих действиях GPG будет ругаться так:

WARNING: This key is not certified with a trusted signature!
There is no indication that the signature belongs to
the owner.

Чтобы исправить это, говорим:

Затем в диалоге говорим trust , жмем 5 («I trust ultimately»), говорим quit . Другие ключи можно подписать командой tsign . Кстати, там же можно сменить пароль от вашего ключа (команда passwd ), изменить дату экспирации ключа в любую сторону (команда expire ), добавить имя/email (команда adduid ), удалить имя/email (команда revuid ), посмотреть алгоритмы шифрования, используемые по умолчанию ( showpref ) и делать другие интересные вещи.

Примечание: Что делать, когда ключ заэкспайрился? В этом случае можно изменить дату экспирации на более позднюю и перезалить ключ. Или же создать новый ключ, подписать его старым, и залить новый ключ на keyserver. Делать revoke не требуется.

Вы можете подписать чей угодно ключ и залить подписанный ключ на сервер, подтвердив тем самым, что ключ действительно принадлежит человеку, указанному в описании:

gpg —sign-key 7EFE74E5
gpg —keyserver pgp.mit.edu —send-keys 7EFE74E5

На какой-нибудь другой машине можно скачать ключ заново и посмотреть, кем он подписан:

Время от времени стоит обновлять ключи, на случай, если у ключей появились новые подписи, или какие-то ключи отозвали:

gpg —keyserver pgp.mit.edu —refresh-keys

Пример шифрования и подписи файла для заданного получателя (ключ -r можно указывать много раз):

Расшифровка файла и проверка подписи осуществляется командой:

gpg msg.txt.asc

Пример подписи и проверки подписи бинарного файла (например, ISO образа диска):

gpg —detach-sign file.iso
gpg —verify file.iso.sig

Симметричное шифрование/дешифрование файла (удобно, например, для хранения паролей):

gpg -o nonsense.gpg —cipher-algo AES -a -c nonsense.txt
gpg -o nonsense2.txt -d nonsense.gpg

Симметричное шифрование с сохранением в бинарном формате (удобно для шифрования бэкапов):

tar -cvzf — / home / eax |
gpg —symmetric —cipher-algo AES256 —digest-algo SHA256
—compression-algo Uncompressed > backup.tgz.gpg

Расшифровка зашифрованного таким образом файла:

gpg —decrypt backup.tgz.gpg | tar -xvzf —

При этом по умолчанию GPG запрашивает пароль через GUI интерфейс, что я лично нахожу не очень-то удобным. Изменить данное поведение можно так:

echo ‘pinentry-program /usr/bin/pinentry-tty’ >>
~ / .gnupg / gpg-agent.conf
killall gpg-agent

Может оказаться, что ваш закрытый ключ скомпрометирован, то есть, его украли и подобрали к нему пароль. Или же вы потеряли его. Или просто не можете вспомнить пароль от ключа. Для таких случаев предусмотрен отзыв ключа. Делается это так. Заранее, сразу после создания ключей, требуется создать сертификат отзыва:

Используя его, ключ можно отозвать так:

gpg —import revocation.crt
gpg —keyserver pgp.mit.edu —send-keys 7EFE74E5

Важно! Сертификат отзыва не шифруется и может быть использован кем угодно. Убедитесь, что храните его в надежном месте (лучше даже в нескольких таких местах) и непременно в зашифрованном виде!

Прикручиваем GnuPG к Claws Mail

В Ubuntu нам понадобятся следующие пакеты:

sudo apt-get install claws-mail-pgpinline claws-mail-pgpmime

В Configuration → Plugins → Load загружаем pgpcore.so, pgpinline.so и pgpmime.so. Далее просто настраиваем плагины через настойки клиента. В настройках аккаунта можно указать, какие ключи использовать, а также сгенерировать новые ключи и отправить их на keyserver. При написании письма в Options станут доступны галочки Encrypt и Sign.

В свойствах аккаунта во вкладке Privacy можно настроить плагины так, чтобы сообщения всегда подписывались, шифровались при ответе на зашифрованные сообщения, и так далее. Использовать советую PGP/MIME, так как PGP/Inline может не слабо раздражать пользователей, не использующих PGP/GPG. То есть, почти всех.

Из косяков плагина я столкнулся только с тем, что в настройках нужно указать полный путь к исполняемому файлу gpg, после этого все заработало.

Читайте также:
Html программа что это такое

Прикручиваем GnuPG к Mutt

Чтобы GPG заработал в Mutt, в ~/.muttrc дописываем:

# включаем поддержку GPG
set crypt_use_gpgme=yes

# по дэфолту подписывать все сообщения
set crypt_autosign=yes

# шифровать ответы на зашифрованные сообщения
set crypt_replyencrypt=yes

При написании письма жмем p , там выбираем опции — подписать, зашифровать, и так далее. Все опции crypt_* и pgp_* описаны в man muttrc . Плюс к этому здесь есть длинная строчка, благодаря которой Mutt можно научить проверять подписи для inline сообщений.

Мой полный и поддерживаемый в актуальном состоянии вариант конфига для Mutt находится здесь.

GPG прикручивается еще очень много к чему. Скажем, для Thunderbird есть плагин Enigmail. Существуют мобильные приложения с поддержкой GPG. Например, для iPhone есть oPenGP и iPGMail. Кроме того, существуют плагины и для IM-клиентов, в частности, для Psi.

К сожалению, рассмотреть их все в рамках одной статьи не представляется возможным.

В качестве домашнего задания можете добавить меня в свой keyring, подписать мои ключи и отправить мне на email зашифрованное письмо.

А используете ли вы PGP/GPG?

Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.

Источник: eax.me

Используем GPG для шифрования сообщений и файлов

Кратко о том, как создавать ключи, шифровать и подписывать файлы и отправлять ключи на сервер ключей.

GPG (также известный как GnuPG) создавался как свободная альтернатива несвободному PGP . GPG используется для шифрования информации и предоставляет различные алгоритмы (RSA, DSA, AES и др.) для решения этой задачи.

GPG может использоваться для симметричного шифрования, но в основном программа используется для ассиметричного шифрования информации. Если кратко — при симметричном шифровании для шифровки и расшифровки сообщения используется один ключ (например, какой символ соответствует той или иной букве). При ассиметричном шифровании используются 2 ключа — публичный и приватный.

Публичный используется для шифрования и его мы можете дать своим друзьям, а приватный — для расшифровки, и его вы должны хранить в безопасности. Благодаря такой схеме расшифровать сообщение может только владелец приватного ключа (даже тот, кто зашифровывал сообщение, не может произвести обратную операцию). Подробнее про асимметричное шифрование вы можете прочитать в Википедии.

Установка GPG


Windows

Скачайте и установите Gpg4win.

В большинстве дистрибутивов GNU/Linux GPG уже установлен. Если же он у вас не установлен, установите пакет gnupg с помощью своего пакетного менеджера или соберите его из исходников.

Для Android существуют программы GnuPG for Android и OpenKeychain. Создатели GnuPG for Android рекомендуют использовать OpenKeychain.

Спасибо товарищу под ником sormon за то, что напомнил!

Использование

Здесь будет приведено только использование в Linux (на момент написания статьи последней версией GPG является 2.2.6)

Для начала стоит уточнить, что в большинстве дистрибутивов Linux есть два бинарных файла: gpg и gpg2 . Насколько я помню, это были две разные версии: 1.4.x и 2.0.x, и для удобного использования я делал alias, чтобы при запуске gpg выполнялся gpg2. Сейчас же в Debian и Arch Linux /bin/gpg2 является символической ссылкой на /bin/gpg и потребность в таких манипуляциях пропала. Проверить это можно выполнив file /bin/gpg2 .

Введя gpg без аргументов он создаст необходимые ему файлы (если они ещё не созданы) и будет ждать ввода шифруемой информации.

При наличии ключа мы можем ввести текст, нажать сочетание клавиш Ctrl + D и получить порцию кракозябр прямо в консоль. Но пока что у нас нет ключа.

Создание ключа

Чтобы создать ключ, нужно запустить GPG с аргументом «—full-generate-key» (можно и с «—gen-key», но в этом случае у нас не будет выбора некоторых важных параметров).

UPD: Если запустить GPG ещё и с аргументом —expert , то выбор типа ключа будет намного шире. За дополнение спасибо товарищу nikitasius!

Вы можете выбрать любой вариант, но учтите, что выбрав третий или четвёртый вариант вы не сможете шифровать сообщения и файлы!

. Ваш выбор? 1 длина ключей RSA может быть от 1024 до 4096. Какой размер ключа Вам необходим? (2048)

Для RSA ключа размером 2048 бит вполне достаточно, но вы можете выбрать размер до 4096 бит (использовать ключи размера меньше 2048 бит небезопасно).

. Какой размер ключа Вам необходим? (2048) 2048 Запрошенный размер ключа — 2048 бит Выберите срок действия ключа. 0 = не ограничен = срок действия ключа — n дней w = срок действия ключа — n недель m = срок действия ключа — n месяцев y = срок действия ключа — n лет Срок действия ключа? (0)

Если вы выберете ограниченный срок действия ключа, то по истечению его срока ключ будет признан недействительным. Вы можете продлить срок действия ключа, пока он не истечёт.

GPG спросит, верно ли мы указали срок, и если да, то нужно будет указать имя, адрес электронной почты и примечание (всё это опционально, но нужно указать хотя бы что-то одно).

Здесь вы можете сделать правки либо продолжить.

Дальше gpg попросит указать пароль (рекомендую освежить память и почитать о правилах выбора стойкого пароля). Если у вас запущен X сервер, то у вас вылезет диалоговое окно, куда нужно ввести пароль. Если же нет, то пароль вводится прямо в консоль.

Если вы не любите окошки

Добавьте в файл ~/.gnupg/gpg-agent.conf данную строчку:
pinentry-program /usr/bin/pinentry-tty
Pynentry — это те самые диалоговые окна. Помимо tty-версии (консольной) есть ещё несколько версий (графических), которые вы можете попробовать.
Затем перезапустите gpg-agent. На системах с systemd это делается так:
systemd —user reload gpg-agent

. Необходимо получить много случайных чисел. Желательно, чтобы Вы в процессе генерации выполняли какие-то другие действия (печать на клавиатуре, движения мыши, обращения к дискам); это даст генератору случайных чисел больше возможностей получить достаточное количество энтропии. Введите фразу-пароль для защиты нового ключа Фраза-пароль:

В терминале вводимый пароль никак не отображается!

Также тут есть полезный совет, который ускорит создание ключа. Следовать ему желательно, но необязательно (и очень аккуратно, чтобы не натыкать лишнего).

. Фраза-пароль: Повторите: Необходимо получить много случайных чисел. Желательно, чтобы Вы в процессе генерации выполняли какие-то другие действия (печать на клавиатуре, движения мыши, обращения к дискам); это даст генератору случайных чисел больше возможностей получить достаточное количество энтропии. gpg: /home/user/.gnupg/trustdb.gpg: создана таблица доверия gpg: ключ 5699884482E426AC помечен как абсолютно доверенный gpg: создан каталог ‘/home/user/.gnupg/openpgp-revocs.d’ gpg: сертификат отзыва записан в ‘/home/user/.gnupg/openpgp-revocs.d/2BB6803FCF82316969619C155699884482E426AC.rev’. открытый и секретный ключи созданы и подписаны. pub rsa2048 1970-01-01 [SC] 2BB6803FCF82316969619C155699884482E426AC uid Habrahabr User (My own key) sub rsa2048 1970-01-01 [E]

На этом этапе ключ генерируется и добавляется в связку ключей. В связке ключей может находится множество ключей. Также на этом этапе создаётся сертификат отзыва — файл, с помощью которого созданный ключ можно отозвать (признать недействительным). Рекомендуется хранить его в безопасном месте, т.к. если к нему получат доступ злоумышленники, то они смогут отозвать ваш ключ.

Итак, что же означают все эти странные последние строки?

rsa — Алгоритм шифрования RSA.
2048 — Длина ключа.
1970-01-01 — Дата создания ключа.
2BB680. E426AC — Отпечаток ключа. Его следует сверять при импортировании чужого публичного ключа — у обоих сторон он должен быть одинаков.
uid — Идентификатор (User-ID).
pub и sub — Типы ключа:

pub — Публичный ключ.
sub — Публичный подключ.
sec — Секретный ключ.
ssb — Секретный подключ.

[SC] и [E] — Предназначение каждого ключа. Когда вы создаёте ключ, вы получаете аж 4 криптоключа: для шифрования, расшифровки, подписи и проверки подписи:

S — Подпись (Signing).
C — Подпись ключа (Certification). Об этом пойдёт речь чуть позже.
E — Шифрование (Encryption).
A — Авторизация (Authentication). Может использоваться, например, в SSH.

Зачем нужно подписывать сообщения? Для того, чтобы подтвердить, что сообщение написано именно вами и не изменилось в процессе передачи. Если сообщение будет изменено, то при проверке подписи это будет указано.

Конфигурация

Файл конфигурации хранится в файле ~/.gnupg/gpg.conf
Вот, например, пример моего файла конфигурации, который я рекомендую себе поставить:

keyid-format 0xlong throw-keyids no-emit-version no-comments

keyid-format 0xlong — формат вывода идентификатора ключа. У каждого ключа и подключа есть свой идентификатор. По умолчанию он не выводится, раньше выводилась его короткая версия.
Доступные форматы:
none — Не выводить (По умолчанию).
short — Короткая запись.
0xshort — Короткая запись с префиксом «0x».
long — Длинная запись.
0xlong — длинная запись с префиксом «0x».

Читайте также:
Pc player что это за программа

throw-keyids — Не включать информацию о ключе в зашифрованное сообщение. Эта опция может быть полезна для анонимизации получателя сообщения.

no-emit-version — Не вставлять версию GPG в зашифрованное сообщение.

no-comments — Убирает все комментарии из зашифрованного сообщения.

Всё это — опции, которые можно найти в man-странице. В файле конфигурации они записываются без префикса » — «.

Команды и опции

Я опишу только самое основное.

—armor
-a — Создаёт ASCII (символьный) вывод. При шифровании GPG по умолчанию создаёт бинарный вывод. При использовании этой опции GPG кодирует информацию кодировкой Radix-64 (Разновидность Base64). Этот текстовой вывод можно, например, отправить в мессенджере или по электронной почте, а также вывести на экран.

—encrypt
-e — Зашифровать сообщение.

—recipient
-r — Указать ключ, который будет использоваться для шифрования. Можно использовать информацию идентификатор пользователя (имя, почта), идентификатор ключа, отпечаток ключа.

—decrypt
-d — Расшифровать сообщение.

—sign
-s — Подписать сообщение. Подпись при этом будет распологаться отдельно от самого сообщения.

—clear-sign
—clearsign — Подписать сообщение. Подпись при этом сохраняется вместе с сообщением.

—local-user
-u — Указать ключ, который будет использоваться для подписи. Схож с опцией —recipient , но это не одно и то же.

—verify — Проверить подпись.

—list-keys
-k — Вывести список публичных ключей.

—list-secret-keys
-K — Вывести список приватных ключей.

—export — экспортировать публичный ключ в файл, который потом можно куда нибудь отправить.

—import — импортировать публичный ключ.

—edit-key — Редактировать ключ.

—expert — «Режим эксперта».

Примеры

gpg -a -r 0x12345678 -e decrypted.txt > encrypted.gpg
Зашифровать файл decrypted.txt в файл encrypted.gpg ключом 0x12345678 . При этом готовый файл будет текстовым, а не бинарным.

gpg -r 0x12345678 -d encrypted.gpg > decrypted.txt
Расшифровать файл encrypted.gpg ключом 0x12345678 и сохранить его в файл decrypted.txt .

gpg -u 0x12345678 -s message.txt > sign.asc
Подписать файл message ключом 0x12345678 и сохранить подпись в файл sign.asc .

gpg -r 0x12345678 —clearsign message.txt > message.gpg
Подписать файл message.txt ключом 0x12345678 и записать сообщение с подписью в файл message.gpg .

gpg —verify message.asc message.txt
Проверить подпись файла message.txt , которая записана в файле message.asc .

gpg —import pubkey.gpg
Импортировать публичный ключ из файла pubkey.gpg .

Редактирование ключа, подпись чужих ключей и отправка ключа на сервер ключей

Ключ редактируется командой gpg —edit-key .
После ввода этой команды вы увидите это:

Доступные команды вы можете узнать, введя help .
Здесь мы можем добавить различные подключи, добавить идентификаторы пользователя, а также подписать чужие публичные ключи.
Для чего нужно подписывать ключи? Так вы можете подтвердить то, что владелец подписываемого ключа является тем, за кого он себя выдаёт. Таким образом вы создаёте так называемую «Сеть Доверия». Пример: Алиса подписала публичный ключ Боба, а Боб подписал публичный ключ Чарли.

Если Алиса получит публичный ключ Чарли, она сможет ему доверять, потому что ключ подписан тем, кому Алиса доверяет, т.е. Бобом. Для того, чтобы получить подписи для своего ключа, люди даже устраивают специальные встречи, где они обмениваются своими публичными ключами и подписывают их.

Теперь о серверах ключей. Сервер ключей — это специальный сервер, хранящий публичные ключи. Сервера ключей используются для распространения публичных ключей.

1. Быстрый старт

GnuPG — инструмент для защиты коммуникаций. Эта глава коротко описывает основы работы с GnuPG, включая создание пар ключей, обмен ключами и их проверку, зашифровку и расшифровку документов, заверение документов цифровой подписью. Она не описывает в деталях принципы криптографии с открытым ключом, шифрования и цифровых подписей. Эти вопросы рассматриваются в главе 2 . Здесь, также, не рассматриваются тонкости использования GnuPG. Эти вопросы рассматриваются в главах 3 и 4 .

GnuPG использует криптографию с открытым ключом. Каждый пользователь имеет пару ключей (keypair), состоящую из секретного (private) и открытого (public) ключей. Секретный ключ является секретом пользователя и не может быть передан другому лицу, ни при каких обстоятельствах. Открытый ключ передается всем людям, с которыми пользователь будет обмениваться сообщениями.

GnuPG использует несколько более хитроумную схему, при которой пользователь имеет первичную пару ключей и, возможно, дополнительно несколько подчиненных. Первичная и подчиненные пары объединены, для упрощения их использования, и эта связка, зачастую, может рассматриваться просто, как одна пара ключей.

Генерация новой пары ключей

Для создания первичной пары ключей используется команда —gen-key

alice% gpg —gen-key gpg (GnuPG) 0.9.4; Copyright (C) 1999 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Please select what kind of key you want: (1) DSA and ElGamal (default) (2) DSA (sign only) (4) ElGamal (sign and encrypt) Your selection?

GnuPG может создавать несколько разных типов ключей, но первичный ключ должен быть пригоден для создания подписи (signature). Поэтому есть только три варианта. Вариант 1 создает две пары ключей. DSA — первичная, используемая только для подписи. ElGamal — подчиненная, используемая для шифрования. Вариант 2 похож, но создает только пару DSA.

Вариант 4 [1] создает только пару ElGamal, используемую и для подписи и для шифрования. В любом случае, позже можно создать дополнительные пары ключей для подписи и шифрования. Большинству пользователей подойдет вариант 1.

Также Вы должны выбрать размер ключа. Размер ключа DSA должен быть между 512 и 1024 бит. Ключ ElGamal может быть любого размера. Обычно, GnuPG требует ключи не короче 768 бит. Таким образом, если Вы выбрали вариант 1 и размер ключа больше 1024 бит, то ключ ElGamal будет иметь указанный размер, а ключ DSA — 1024 бита.

About to generate a new ELG-E keypair. minimum keysize is 768 bits default keysize is 1024 bits highest suggested keysize is 2048 bits What keysize do you want? (1024)

Больший размер ключа дает большую защиту от взлома, но размер по умолчанию достаточен практически для любых целей. Большая длина ключа замедляет зашифровку и расшифровку и может отразиться на длине сигнатуры. Размер ключа нельзя будет впоследствии изменить.

Наконец, Вы должны указать срок действия ключа. В случае варианта 1, указанный срок используется для обоих ключей.

Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0)

Большинству пользователей подойдет бессрочный ключ. Срок действия следует выбирать с осторожностью; хотя можно изменить срок действия после создания ключа, не исключены проблемы с передачей изменений тем пользователям, у которых уже имеется Ваш открытый ключ.

В дополнение к параметрам ключа, Вы должны указать идентификатор пользователя. Идентификатор нужен, чтобы связать созданный ключ с конкретным лицом.

You need a User-ID to identify your key; the software constructs the user id from Real Name, Comment and Email Address in this form: «Heinrich Heine (Der Dichter) » Real name:

При генерации ключа создается только один идентификатор пользователя, но возможно создание дополнительных идентификаторов, если Вы хотите использовать ключ в нескольких контекстах; например, как инженер на работе и как политический деятель после нее. Идентификатор пользователя не может быть отредактирован после создания.

GnuPG запросит пароль для защиты первичного и подчиненного секретных ключей, которые Вы будете держать в недоступном для других месте.

You need a Passphrase to protect your private key. Enter passphrase:

На длину пароля нет ограничений, и его следует выбирать тщательно. С точки зрения безопасности, пароль для защиты ключа очень важен в GnuPG (и других системах с открытым ключом), т.к. это Ваша единственная защита в случае, если Ваш секретный ключ попадет в чужие руки. Не следует брать слова из БСЭ, чередуйте регистр букв и используйте неалфавитные символы. Хороший пароль критичен для надежности GnuPG.

Создание отзывающего сертификата

После создания пары ключей, Вам следует создать отзывающий сертификат (revokation certificate) для первичного открытого ключа, используя команду —gen-revoke . Если Вы забудете пароль, либо Ваш секретный ключ будет похищен или утерян, этот сертификат может быть разослан для уведомления о том, что открытый ключ нельзя больше использовать. Отозванный открытый ключ может использоваться для проверки сделанных Вами подписей и дальше, но он не может быть использован для зашифровки сообщений для Вас. Также Вы сохраняете возможность расшифровки посланных Вам сообщений, при наличии секретного ключа.

Читайте также:
Для чего нужна программа autodesk recap

alice% gpg —output revoke.asc —gen-revoke mykey [. ]

Аргумент mykey — идентификатор Вашей первичной пары ключей или любая часть идентификатора пользователя Вашей пары ключей. Сгенерированный сертификат будет сохранен в файле revoke.asc . Если опция —output опущена, результат помещается в стандартный вывод. Вы можете вывести сертификат на принтер и хранить его где-нибудь в надежном месте (банковский сейф подойдет). Если сертификат попадет в чужие руки и будет опубликован, то открытый ключ утратит свое действие.

Обмен ключами

Для общения с кем-либо, вы должны обменяться ключами. Просмотреть список имеющихся открытых ключей, можно используя команду —list-keys .

alice% gpg —list-keys /users/alice/.gnupg/pubring.gpg ————————————— pub 1024D/BB7576AC 1999-06-04 Alice (Judge) sub 1024g/78E9A8FA 1999-06-04

Экспорт открытого ключа

Перед тем как послать открытый ключ кому-либо, Вы должны его экспортировать. Для этого используйте команду —export . Ей требуется, дополнительно, аргумент, идентифицирующий экспортируемый открытый ключ, как и —gen-revoke .

Ключ экспортируется в двоичном формате, что бывает неудобно. GnuPG имеет опцию командной строки —armor , которая указывает на необходимость вывода в формате ASCII. Практически любой вывод GnuPG, т.е. ключи, зашифрованные документы, подписи, может происходить в формате ASCII. [2]

Импорт открытого ключа

Открытый ключ может быть добавлен к множеству Ваших открытых ключей при помощи команды —import .

alice% gpg —import blake.gpg gpg: key 9E98BC16: public key imported gpg: Total number processed: 1 gpg: imported: 1 alice% gpg —list-keys /users/alice/.gnupg/pubring.gpg ————————————— pub 1024D/BB7576AC 1999-06-04 Alice (Judge) sub 1024g/78E9A8FA 1999-06-04 pub 1024D/9E98BC16 1999-06-04 Blake (Executioner) sub 1024g/5C8CBD41 1999-06-04

Достоверность импортированного ключа должна быть подтверждена. GnuPG использует гибкую и мощную модель проверки подлинности, не требующую, чтобы Вы лично проверяли достоверность каждого импортированного ключа. Тем не менее, достоверность некоторых ключей Вам придется проверить самому. Сначала проверяются отпечатки(fingerprint) ключа, затем он заверяется подписью, для подтверждения того, что ключ достоверен. Отпечатки ключа можно быстро просмотреть командой —fingerprint , но для заверения ключа Вы должны отредактировать его.

Отпечатки ключа проверяются его владельцем. Это может быть сделано при личной встрече, по телефону, или любым другим способом, гарантирующим, что Вы общаетесь с владельцем ключа. Если отпечатки полученные Вами совпадают с указанными владельцем ключа, то можете быть уверены, что обладаете достоверной копией ключа.

После проверки отпечатков Вы можете подписать ключ. Так как проверка ключа слабое звено в криптографии с открытым ключом, то Вы должны быть совершенно уверены в ключе перед тем, как его подписывать, и всегда проверяйте отпечатки.

Command> sign pub 1024D/9E98BC16 created: 1999-06-04 expires: never trust: -/q Fingerprint: 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98 BC16 Blake (Executioner) Are you really sure that you want to sign this key with your key: «Alice (Judge) » Really sign?

Подписав ключ, Вы можете просмотреть список подписей на ключе и увидеть там добавленную Вами. Каждый идентификатор пользователя ключа подписан этим ключом и каждым пользователем, заверившим этот ключ.

Command> check uid Blake (Executioner) sig! 9E98BC16 1999-06-04 [self-signature] sig! BB7576AC 1999-06-04 Alice (Judge)

Зашифрование и расшифрование документов

Открытый и секретный ключи, играют каждый свою роль при зашифровке и расшифровке документов. Открытый ключ можно представить как открытый сейф. Когда корреспондент зашифровывает сообщение при помощи открытого ключа, это сообщение помещается в сейф и сейф закрывается. Соответствующий закрытый ключ — комбинация, необходимая для того, чтобы открыть сейф и получить документ. Другими словами, только обладатель закрытого ключа может восстановить документ, зашифрованный соответствующим открытым ключом.

Если Вы хотите послать сообщение другу, то зашифровываете его при помощи открытого ключа друга, а тот расшифровывает его при помощи своего секретного ключа. Если друг захочет Вам ответить, то он зашифрует ответ при помощи Вашего открытого ключа, а Вы расшифруете его своим секретным.

Для зашифрования документа используется команда —encrypt . Вы должны иметь открытые ключи предполагаемых получателей. Программа ожидает в качестве параметра имя шифруемого документа или, в случае его отсутствия, шифрует стандартный ввод. Зашифрованный результат помещается в стандартный вывод, если не указана опция —output . Для повышения защиты документ дополнительно сжимается.

Опция —recipient используется для каждого получателя и имеет аргумент, идентифицирующий открытый ключ, которым должен быть зашифрован документ. Зашифрованный документ может быть расшифрован только тем, чей секретный ключ соответствует одному из указанных открытых ключей. В частности, Вы не можете расшифровать зашифрованный Вами документ, если не включили свой открытый ключ в список получателей.

Для расшифрования сообщения используется команда —decrypt . Вам нужен секретный ключ, для которого это сообщение было зашифровано. Документ для расшифровки на входе программы, расшифрованный документ на выходе.

blake% gpg —output doc —decrypt doc.gpg You need a passphrase to unlock the secret key for user: «Blake (Executioner) » 1024-bit ELG-E key, ID 5C8CBD41, created 1999-06-04 (main key ID 9E98BC16) Enter passphrase:

Документы, также, можно зашифровывать без открытого ключа. Вместо этого используется симметричный шифр для зашифровки документа. Ключ, используемый при зашифровании, образуется из ключевой фразы, запрашиваемой перед зашифрованием. Для большей безопасности этот пароль не должен совпадать с тем, который Вы используете для защиты секретного ключа. Симметричный шифр применим, когда нет необходимости обмениваться ключевой фразой. Для использования симметричного шифра применяется команда —symmetric .

alice% gpg —output doc.gpg —symmetric doc Enter passphrase:

Подписи и их проверка

Цифровая подпись удостоверяет создателя и дату создания документа. Если документ будет каким-либо образом изменен, то проверка цифровой подписи выдаст ошибку. Цифровая подпись может использоваться в тех же целях, что и обычная подпись. Исходные тексты GnuPG, например, подписаны, и Вы можете убедиться, что они дошли до Вас неизмененными.

Создание и проверка подписей отличается от зашифрования/расшифрования. При подписи документа используется закрытый ключ подписывающего, а проверяется подпись с использованием его открытого ключа. Например, Alice использует свой секретный ключ, чтобы подписать свою новую статью в журнал. Редактор, получив письмо, использует открытый ключ Alice, чтобы проверить, что письмо действительно от Alice и не было изменено за время пересылки.

Для подписи документов используется команда —sign . Документ для подписи на входе и подписанный на выходе.

alice% gpg —output doc.sig —sign doc You need a passphrase to unlock the private key for user: «Alice (Judge) » 1024-bit DSA key, ID BB7576AC, created 1999-06-04 Enter passphrase:

Документ сжимается перед подписью и выводится в двоичном формате.

Имея подписанный документ, Вы можете либо проверить подпись, либо проверить подпись и восстановить исходный документ. Для проверки подписи используется команда —verify . Для проверки подписи и извлечения документа используется команда —decrypt . Подписанный документ на входе и проверенный и восстановленный на выходе.

blake% gpg —output doc —decrypt doc.sig gpg: Signature made Fri Jun 4 12:02:38 1999 CDT using DSA key ID BB7576AC gpg: Good signature from «Alice (Judge) «

Прозрачно подписанные(Clearsigned) документы

Обычно цифровые подписи применяются при подписи сообщений usenet и e-mail. При этом нежелательно сжимать подписываемые документы. Команда —clearsign добавляет к документу цифровую подпись в формате ASCII, но не изменяет сам документ.

alice% gpg —clearsign doc You need a passphrase to unlock the secret key for user: «Alice (Judge) » 1024-bit DSA key, ID BB7576AC, created 1999-06-04 ——BEGIN PGP SIGNED MESSAGE—— Hash: SHA1 [. ] ——BEGIN PGP SIGNATURE—— Version: GnuPG v0.9.7 (GNU/Linux) Comment: For info see http://www.gnupg.org iEYEARECAAYFAjdYCQoACgkQJ9S6ULt1dqz6IwCfQ7wP6i/i8HhbcOSKF4ELyQB1 oCoAoOuqpRqEzr4kOkQqHRLE/b8/Rw2k =y6kj ——END PGP SIGNATURE——

Отделенная подпись

Применение подписанных документов ограниченно. Получатель должен восстанавливать документ из подписанной версии, и даже в случае прозрачной подписи, подписанный документ должен быть отредактирован для получения оригинала. Поэтому имеется третий метод подписи документов, который создает отделенную подпись (detached signature). Отделенная подпись создается при использовании команды —detach-sign .

alice% gpg —output doc.sig —detach-sign doc You need a passphrase to unlock the secret key for user: «Alice (Judge) » 1024-bit DSA key, ID BB7576AC, created 1999-06-04 Enter passphrase:

Для проверки подписи необходимы и отделенная подпись, и документ. Для проверки используется команда —verify .

blake% gpg —verify doc.sig doc gpg: Signature made Fri Jun 4 12:38:46 1999 CDT using DSA key ID BB7576AC gpg: Good signature from «Alice (Judge) «

[1]

Вариант 3 генерирует пару ElGamal, которая не пригодна для подписи.

Многие, часто используемые, опции командной строки могут быть установлены в файле конфигурации .

Пред. Начало След.
Описание GNU Privacy Guard Общие понятия

PostgresPro

Inferno Solutions

Закладки на сайте
Проследить за страницей
Created 1996-2023 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру

Источник: www.opennet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru