Как зашифровать почту и сделать электронную подпись | GeekBrains — образовательный портал

Интеграция с электронной почтой

В популярном почтовом клиенте Mozilla Thunderbird есть интересный плагин для работы с сертификатами ЭЦП и шифрования сообщений — Enigmail. Он позволяет и шифровать почту, и подписывать её с помощью ЭЦП. Для работы плагина в системе должен быть установлен компонент PGP. Во многих Debian-подобных ОС Linux он присутствует в репозиториях пакетов.

Установите в систему PGP и настройте сертификаты шифрования, как обговорили выше. И можно перейти к настройке почтового клиента.

Чтобы установить Enigmail в Thunderbird, выберите меню «Инструменты» — «Дополнения». Далее найдите Enigmail и выполните инструкции:

Теперь мы можем создать новое письмо — при этом в меню появится пункт Enigmail. Настройки программы разнообразны и находятся в меню Enigmail — Preferences:

В настройках вы можете проверить, есть ли в системе GnuPG (ссылка выше). Это критически важно.

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

Сценарий 1: если вы ранее создали ключи и экспортировали их на сервер. В этом случае в Enigmail их можно получить с сервера. Добавляем в Thunderbird учётную запись почты, для которой были сформированы ключи. При создании письма у вас появится меню Enigmail, в котором можно будет импортировать ключи в систему:

Если щёлкнуть правой кнопкой мыши по полю с именем ключа, то попадём в контекстное меню с основными операциями, которые можно выполнить с сертификатами:

Теперь составляем письмо и выбираем в меню Enigmail пункты Sign Message и Attach my public key.

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

Адресат теперь получит подписанное письмо и сможет импортировать себе ключ отправителя.

Как только он сделает это, сможет проверить подлинность подписи.

Сценарий 2: если ключи не были созданы. В этом случае их можно будет сгенерировать прямо в Enigmail. Это делается с помощью мастера настройки согласно руководству или вручную.

Для тестирования мы будем использовать тестовый почтовый сервер на виртуальной машине с условным доменом (неважно каким). Создадим ключи для учётной записи pc1@”имя домена” и отправим его по адресу pc2@”имя домена”.

Сначала создаём новое сообщение. Далее переходим в меню Enigmail и выбираем раздел Key Management:

Теперь в открывшемся окне выбираем Generate — New Key Pair:

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

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

Система спросит пароль от сертификатов:

Теперь письмо можно подписать (и / или зашифровать) и отправить получателю. Для этого на панели появятся две кнопки. Помните, что сообщение подписывается закрытым ключом отправителя, а подпись проверяется по его открытому ключу (который можно послать вместе с письмом):

Получатель может импортировать себе открытый ключ отправителя. После этого письмо можно будет проверить:

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

Теперь встанем на место пользователя — сгенерируем открытый ключ для пользователя pc2 (аналогично pc1):

После генерации ключа можно создать новое сообщение и прикрепить ключ для pc2. На стороне получателя (теперь это pc1) добавим ключ в список доверенных. После этого можно будет проверить подпись:

Если потребуется зашифровать сообщение от pc1 к pc2, то потребуется открытый ключ получателя — ключ pc2. А если ещё и подписать — то и открытый ключ отправителя (pc1):

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

Вводим пароль и видим открытый текст:

Письмо было подписано, подпись проверена и расшифрована.

Fatality

Установим Драйверы Рутокен отсюда.

Поправим файлы конфигурации, лежащие в %APPDATA%/gnupg. В gpg-agent.conf нужно записать:

scdaemon-program C:/msys32/mingw32/bin/gnupg-pkcs11-scd.exe

Во втором файле — gnupg-pkcs11-scd.conf напишем:

providers rutoken
provider-rutoken-library C:/Windows/System32/rtPKCS11ECP.dll

Linux

Установите необходимые пакеты (используйте строчку в зависимости от системы, в которой вы работаете, первая — для Debian, вторая — для Red Hat):

sudo apt-get install gpg opensc libpkcs11-helper1-dev openssl libgpg-error-dev libassuan-dev libgcrypt20-dev autoconf pkg-config # Debian
sudo yum instal gnupg2 gnupg-pkcs11-scd opensc # Red Hat

Удостоверьтесь, что версия:

gpg >= 2.1.19
gnupg-pkcs11-scd > 0.9.2

Macos

Установим brew отсюда.Далее, используя его, поставим gpg и gnupg-pkcs11-scd:


brew install gpg gnupg-pkcs11-scd

Далее установим библиотеку librtpkcs11ecp отсюда.

В файле конфигурации ~/.gnupg/gpg-agent.conf впишем:

scdaemon-program /usr/local/lib/gnupg-pkcs11-scd

В файле конфигурации ~/.gnupg/gnupg-pkcs11-scd.conf впишем:

providers rutoken
provider-rutoken-library /usr/local/lib/librtpkcs11ecp.so

Windows

Итак, сначала опишу ситуацию и объясню, в чем собственно состоит сложность. Дело в том, что демон gnupg-pkcs11-scd зависит от множества таких библиотек, как libgnupg-error, libassuan, openssl, pkcs11-helper, libgcrypt. И если в Linux эти библиотеки можно было получить с помощью щелчка пальцев (с помощью менеджеров пакетов), то под windows не все так просто, и некоторые пакеты необходимо собирать вручную

потом и кровью

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

Босс баузер (libassuan)

Скачаем libassuan с сайта, разархивируем и выполним:

./configure --with-cygwin-native
make
make install

Босс вертолет (pkcs11-helper)

Скачаем pkcs11-helper с сайта и разархивируем.

Приступим к сборке библиотеки pkcs11-helper:

autoreconf --install
./configure --with-cygwin-native
make
make install

Босс данки конг (libgpg-error)

Скачаем libgpg-error с сайта и разархивируем.

И соберем библиотеку:

./configure --with-cygwin-native
make
make install

Voilà! Первый босс повержен!

Босс кибердемон (libgcrypt)

Скачаем libgcrypt с сайта, разархивируем и выполним:

./configure --with-cygwin-native
make
make install

Босс паук, паук огромный (gnupg-pkcs11-scd)

Испугались? Не бойтесь! Если вы прошли предыдущих боссов, то и с этим не будет проблем.

Скачиваем последнюю версию из репозитория и выполним команду:

autoreconf --install
./configure --with-cygwin-native
make
make install

Дополнение

Обратите внимание, что в этом окне имеется еще несколько параметров:

Использование криптопро csp в outlook 2000

Использование средств криптографической защиты в Outlook 2000 для клиента во многом совпадает с использованием в Outlook Express.

Особенностями использования почтовой программы Outlook 2000 и сервера Exchange являются:

Использование криптопро csp в outlook 2002/2003

Особенностями использования почтовой программы Outlook 2002/2003 и сервера Exchange являются:

1. Криптопровайдер КриптоПро CSP поддерживает только формат S/MIME защищенных почтовых сообщений, и поэтому в настройках сервера Exchange должна стоять опция использования формата MIME и разрешения маршрутизации защищенных сообщений S/MIME.

Читайте также:  Электронная подпись для Росреестра: какая нужна, как получить ЭЦП

2. Криптопровайдер КриптоПро CSP не поддерживает работу KMS сервера Exchange и хранения сертификатов открытых ключей в глобальной адресной книге. Поэтому для создания сертификатов открытых ключей должен использоваться внешний центр сертификации.

3. Для хранения сертификатов открытых ключей абонентов используйте локальную или общую (корпоративную) папку Контакты.

Использование криптопро csp в outlook 2007

Использование средств криптографической защиты в Outlook 2007 во многом совпадает с использованием в Outlook ранних версий. Однако стоит отметить следующие особенности:

1. Почтовая программа Outlook 2007 поддерживается только криптопровайдером КриптоПро CSP версии 3.0 (с установленным пакетом обновления SP2) и выше.

2. Криптопровайдер КриптоПро CSP поддерживает только формат S/MIME защищенных почтовых сообщений, и поэтому в настройках сервера Exchange должна стоять опция использования формата MIME и разрешения маршрутизации защищенных сообщений S/MIME.

3. Криптопровайдер КриптоПро CSP не поддерживает работу KMS сервера Exchange и хранения сертификатов открытых ключей в глобальной адресной книге. Поэтому для создания сертификатов открытых ключей должен использоваться внешний центр сертификации.

4. Для хранения сертификатов открытых ключей абонентов используйте локальную или общую (корпоративную) папку Контакты.

Как сделать красочную подпись в виде текста с картинкой

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

Порядок действий следующий:

1. Нажмите “Создать” новое письмо.

2. В поле для текста письма вводим текст подписи и форматируем его по своему вкусу, затем вставляем заранее подготовленную картинку.

4. Сохраняем текст в формате HTML в такое место, откуда Вы не сможете его случайно удалить.

5. Теперь, нажатием правой клавиши мыши на имени учетной записи, вызываем контекстное меню, в котором выберем пункт “Параметры”.

6. Откроется окно, в правой половине которого, находим и помечаем галочкой пункт “Вставлять подпись из файла”. Жмем кнопку “Выбрать”, чтобы указать путь к HTML файлу, который мы создали.

7. Проверяем результат.

Как сделать простую подпись в виде текста

Самый простой вариант — текстовая подпись, имеет вид:

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

Кликнув правой клавишей мыши на наименовании учетной записи, выпадет контекстное меню. Выберем пункт “Параметры”.

В параметрах учетной записи находим поле “Текст подписи” и вносим информацию, которую необходимо добавлять в текст письма. Жмем “Ок”, чтобы сохранить изменения.

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

Откройте меню File (Файл), выберите пункт Options (Параметры). В открывшемся окне выберите в закладке Trust Center (Центр управления безопасностью) пункт Trust Center Settings (Параметры Центра управления безопасностью).

Выберите закладку E-mail Security (Защита электронной почты) и выберите Параметры.

Выберите личные сертификаты, соответствующие ключам подписи и шифрования, используя кнопку Choose (Выбрать).

Отображаемый диалог позволяет пользователю указать свои личные сертификаты, которые будут использоваться при выборе личных ключей пользователя для формирования электронной цифровой подписи и расшифровки входящих сообщений. Установите флаг Send these certificates with signed messages (Передавать сертификаты с сообщением).

Окно выбора сертификата:

После выбора сертификата необходимо ввести Security Settings Name (Имя конфигурации). В противном случае Outlook выдаст ошибку:

В закладке E-mail Security (Защита электронной почты) можно включить режимы Encrypt contents and attachments for outgoing messages (Шифровать содержимое и вложения исходящих сообщений) и Add digital signature to outgoing messages (Добавлять цифровую подпись к исходящим сообщениям) для того, чтобы шифрование и электронная подпись выполнялись автоматически для каждого сообщения.

Если эти режимы не включены, опции шифрования и подписи нужно будет включать для каждого отправляемого сообщения. В этом же диалоге дополнительно можно установить опцию Send clear text signed message when sending signed messages (Отправлять подписанные сообщения открытым текстом).

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

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

Откройте меню File (Файл), выберите пункт Options (Параметры). В открывшемся окне выберите в закладке Trust Center (Центр управления безопасностью) пункт Trust Center Settings (Параметры Центра управления безопасностью).

Выберите закладку E-mail Security (Защита электронной почты).

Выберите личные сертификаты, соответствующие ключам подписи и шифрования, используя кнопку Choose (Выбрать).

Отображаемый диалог позволяет пользователю указать свои личные сертификаты, которые будут использоваться при выборе личных ключей пользователя для формирования электронной цифровой подписи и расшифровки входящих сообщений. Установите флаг Send these certificates with signed messages (Передавать сертификаты с сообщением).

Окно выбора сертификата:

После выбора сертификата необходимо ввести Security Settings Name (Имя конфигурации). В противном случае Outlook выдаст ошибку:

В закладке E-mail Security (Защита электронной почты) можно включить режимы Encrypt contents and attachments for outgoing messages (Шифровать содержимое и вложения исходящих сообщений) и Add digital signature to outgoing messages (Добавлять цифровую подпись к исходящим сообщениям) для того, чтобы шифрование и электронная подпись выполнялись автоматически для каждого сообщения.

Если эти режимы не включены, опции шифрования и подписи нужно будет включать для каждого отправляемого сообщения. В этом же диалоге дополнительно можно установить опцию Send clear text signed message when sending signed messages (Отправлять подписанные сообщения открытым текстом).

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

Настроить положение подписи при ответе на письмо

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

На этом все. Если у Вас остались вопросы, оставляйте их в комментариях к статье.

Настройка kmail

Для начала скачаем kmail из репозитория:

sudo apt-get install kmail # Debian
sudo yum install kmail # Red Hat

Запустим KMail. Введем данные учетной записи почты и нажмем “Add Account”.

Как зашифровать почту и сделать электронную подпись | GeekBrains - образовательный портал

Во всплывшем окне выберем “Use GPG”.

Выбираем ключ, который мы хотим использовать для этого почтового ящика:

Настроим идентификатор личности в настройках:

Установим ключи для подписи и шифрования:

Установим email:

Попробуем отправить письмо. Убедитесь, что выставлены опции подписи и шифрования.

Проверим, что полученное письмо успешно проходит проверку подписи и расшифровывается:

Как можно увидеть, все отработало успешно!

Настройка outlook

Тут все просто, т.к. все, что нужно для работы у вас уже есть и настроено: плагин GPGol содержался в Gpg4Win и настроился автоматически. Попробуем просто отправить сообщение, указав в опциях, что его нужно зашифровать и добавить подпись.

Как зашифровать почту и сделать электронную подпись | GeekBrains - образовательный портал

Посмотрим на пришедшее письмо. Можно увидеть, что подпись прошла проверку и письмо расшифровывалось.

Читайте также:  Электронная подпись - где и как получить и поставить ЭЦП? — СКБ Контур

Настройка outlook 2000

Выберите пункт меню Сервис, Параметры… и нажмите на закладку Безопасность. Нажмите кнопку Изменить настройки….

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

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

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

Выберите пункт меню Сервис, Параметры… и нажмите на закладку Безопасность.

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

выполнялись автоматически для каждого сообщения.

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

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

Если режим выключен — сообщения и все вложения будут объединены в единое вложение с включенной в него цифровой подписью.

Настройка outlook 2002/2003

Выберите пункт меню Сервис, Параметры… и нажмите на закладку Безопасность. Нажмите кнопку Параметры.

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

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

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

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

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

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

Если режим выключен — сообщения и все вложения будут объединены в единое вложение с включенной в него цифровой подписью.

Настройка outlook 2007

Выберите пункт меню Сервис, Центр управления безопасностью и нажмите на закладку Защита электронной почты. Нажмите кнопку Параметры.

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

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

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

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

Настройка thunderbird

В первую очередь, опишем использование GPG ключей в Thunderbird. Дело в том, что это один из немногих почтовых клиентов, которые могут работать на Linux, Windows и macOS. Давайте попробуем его настроить (за основу была взята инструкция).

УстановкаВ первую очередь, скачаем и установим его. В Linux и macOS все просто:

sudo apt-get install thunderbird # Debian
sudo yum install thunderbird # Red Hat
brew cask install thunderbird #

Настройка клиента mail

Тиму Куку заплатите,
Чеканной монетой…
Чеканной монетой…

Данный способ, традиционно для Apple, является платным, и подойдет, если вы готовы потратить свои честно нажитые шекели на плагин GPG Suite. Если же вы дорожите своим золотом, то можете пользоваться бесплатным вариантом — Thunderbird.

Переходим на сайт GPG Suite и скачиваем последнюю версию данного пакета.

После установки необходимо будет активировать плагин GPGMail. Для этого переходим в настройки Mail > Preferences > General > Manage Plug-Ins и активируем GPGMailLoader.mailbundle.

Как зашифровать почту и сделать электронную подпись | GeekBrains - образовательный портал

Плагин активирован. Попробуем отправить тестовое письмо. Заметьте, что мы установили опцию подписи сообщения и его шифрования.

И проверим, что расшифрование и проверка подписи прошли успешно.

Ура, мы справились!

Настройка с уже собранным демоном

В первую очередь, необходимо установить Gpg4Win с сайта.

Установим Драйвер Рутокен отсюда.

Скачаем собранную версию демона, ее можно взять отсюда.

Поправим файлы конфигурации, лежащие в %APPDATA%/gnupg. В gpg-agent.conf нужно записать:

scdaemon-program C:/HERE_IS_PATH_TO/gnupg-pkcs11-scd.exe

Во втором файле — gnupg-pkcs11-scd.conf напишем:

providers rutoken
provider-rutoken-library C:/Windows/System32/rtPKCS11ECP.dll

Отправка подписанных сообщений

Для создания и отправки подписанного сообщения нажмите кнопку Создать или выберите пункт меню Файл, Создать, Сообщение.

Выберите получателя сообщения (поле Кому) и введите тему сообщения. Если письмо будет содержать некоторые файлы, добавьте их в письмо, используя кнопку Вложить.

Для отправки сообщения в подписанном виде нажмите кнопку, затем кнопку Параметры безопасности, и в отображаемом диалоге установите флаг Добавить в сообщение цифровую подпись.

После того, как сообщение подготовлено к отправке, нажмите кнопку Отправить.

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

Отправка шифрованных сообщений

Для создания и отправки подписанного сообщения нажмите кнопку Создать сообщение или выберите пункт меню Файл, Создать, Сообщение.

Выберите получателя сообщения (поле Кому) и введите тему сообщения. Если письмо будет содержать некоторые файлы, добавьте их в письмо, используя кнопку Вложить.

Для отправки сообщения в зашифрованном виде проверьте состояние кнопки Зашифровать.

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

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

Получение сертификата открытого ключа абонента для шифрования сообщений

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

Для контроля добавления выполните следующие действия. Откройте полученное подписанное письмо. Установите курсор на адрес отправителя и, нажав правую кнопку мыши, выберите пункт Add to Outlook Contacts (Добавить в контакты Outlook).

После этого нажмите Save & Close(Сохранить и закрыть). Если абонент с таким адресом уже существует, программа предложит, либо добавить новый контакт (Add new Contact), либо обновить сведения о выделенном контакте (Update information of selected Contact).

Проверка работоспособности

Ура! Теперь вы здесь! Проверим, что все настроено успешно.

Для начала удостоверьтесь, что на токене находятся только RSA-ключи, ибо наличие ГОСТ- ключей сделает невозможным работу с токеном. Лучшим вариантом будет вообще удалить все ключи с токена и создать только одну пару RSA-ключей и сертификат для него (самоподписанный или подписанный другим сертификатом).

Читайте также:  Сертификат содержит недействительную цифровую подпись.

Сгенерировать их можно, например, через веб-сервис управления ключами и сертификатами, SDK или используя утилиту командной строки pkcs11-tool

Теперь отключим gpg-agent. Это можно сделать через gpgconf. На всех платформах к данному моменту он уже должен быть поставлен: на Linux и macOS содержится в пакетах gpg, на Windows поставляется внутри Gpg4Win. Введем:

gpgconf --kill gpg-agent

Проверим, что токен откликается:

gpg --card-status

Правильный вывод должен выглядеть примерно так:

[lo1ol@localhost .gnupg]$ gpg --card-status
Application ID ...: D2760001240111503131CAE8D55A1111
Version ..........: 11.50
Manufacturer .....: unknown
Serial number ....: CAE8D55A
Name of cardholder: [not set]
Language prefs ...: [not set]
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: 1R 1R 1R
Max. PIN lengths .: 0 0 0
PIN retry counter : 0 0 0
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Если отклика не происходит, попробуйте обратиться к демону через gpg-agent. Запустите gpg-agent сервер и подключитесь к демону:

gpg-agent --server
SCD LEARN

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

[lo1ol@localhost .gnupg]$ gpg-agent --server
OK Pleased to meet you
SCD LEARN
....
S KEYPAIRINFO 892E053AE031FC23F3E7CCC73BC60859F11F6B90 Aktivx20Cox2E/Rutokenx20ECP/3ac67ae9/Rutokenx20ECPx20x3Cnox20labelx3E/45
OK

Работа в kleopatra

Kleopatra предоставляет пользователю удобный графический интерфейс для работы с GPG, такие как: подпись, шифрование, проверка подписи, расшифрование и т.п. На Windows она ставится вместе с Gpg4Win, а на Linux ее можно поставить через менеджер пакетов:

sudo apt-get install kleopatra # Debian
sudo yum install kleopatra # Red Hat

Запустим ее и увидим, что работа в программе интуитивно понятна)

Расшифровываем файл

В Windows для расшифровки достаточно двойного клика по созданному зашифрованному файлу. Если в системе установлена Kleopatra, то ассоциация файлов настраивается автоматически и программа сама запускается.

Чтобы собеседники могли отправлять нам зашифрованные сообщения и проверять подпись отправленных нами файлов, нужно экспортировать наш открытый ключ (сертификат) в файл. Для этого есть кнопка «Экспорт…».

Теперь этот файл можно передать на другое устройство. А собеседник сможет установить такой сертификат в свой менеджер ключей (например, Kleopatra) — и отправлять нам зашифрованные нашим открытым ключом сообщения. Этим же открытым ключом проверяется целостность ЭЦП у файлов, которые мы ему отправим.

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

Регистрация ключей с токена в gpg

Сначала надо узнать хеш сертификата на токене или смарт-карте, его можно узнать выполнив команду:

gpg-agent --server
SCD LEARN

Он должен отобразиться сразу напротив одной из выделенных строк, начинающихся на S KEYPAIRINFO. Например, в строке:

S KEYPAIRINFO 892E053AE031FC23F3E7CCC73BC60859F11F6B90 Aktivx20Cox2E/Rutokenx20ECP/3ac67ae9/Rutokenx20ECPx20x3Cnox20labelx3E/45

Хешем будет 892E053AE031FC23F3E7CCC73BC60859F11F6B90. Запомним его, зарегистрируем сертификат и его ключи в GPG. Для этого введем команду:

gpg --expert --full-generate-key

Далее нам будет предложено, какой тип ключа мы хотим получить. Выбираем импорт существующего RSA ключа (13 опция):

lo1ol@lo1ol-VirtualBox:~$ gpg --expert --full-generate-key
gpg (GnuPG) 2.2.4; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC and ECC
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
Your selection? 13

Теперь нас попросят ввести хеш сертификата данного ключа:

Enter the keygrip: 892E053AE031FC23F3E7CCC73BC60859F11F6B90

Сборка с нуля

Welcome to the club, buddy!

Приступим к самой сложной части данной статьи. Попробуем собрать pkcs11 демона смарт-карт для Windows. Казалось бы, какие тут сложности, взял и собрал. Но всегда есть подводные камни, давайте взглянем на них.

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

После установки запустим в терминал msys2. Как зашифровать почту и сделать электронную подпись | GeekBrains - образовательный портал

Ну что же, пришло время рассказать, в чем состоит основная сложность. Дело в том, что для сборки gnupg-pkcs11-scd требуется множество библиотек, от которых зависит данный демон. И если под Linux и macOS их можно получить просто из менеджеров пакетов уже в собранном виде, то для винды заранее собранных библиотек уже не так много. Тем не менее, одну из них все-таки можно получить, для этого введем последовательно команды:

pacman -Syuu

После нее необходимо будет перезапустить терминал.

pacman -S --needed git base-devel mingw-w64-i686-toolchain man2html pkg-config openssl-devel

Шифруем файл при помощи openpgp

Выбираем сертификат, жмём кнопку «Подписать / зашифровать». В открывшемся окне указываем файл для шифрования.

Теперь надо выбрать, для кого мы шифруем файлы.

Потом вводим пароль для сертификата — и всё, файл зашифрован. Можно открыть его в текстовом редакторе и посмотреть:

Проверка сертификата на отзыв

Периодичность издания списков отозванных сертификатов (СОС) определяется Удостоверяющим центром. Центр Сертификации издает СОС и публикует его в сетевом справочнике (при его наличии).

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

Для контроля проверки сертификатов на отзыв выполните следующие действия.

Откройте полученное подписанное письмо. Нажмите кнопку — признак подписанного сообщения. Как уже было отмечено раннее, для автоматической проверки подписи на отзыв необходимо установить флаг Проверять, не были ли отозваны сертификаты:

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

При установленном флаге проверки, если сертификат не отозван, в графе Состояние отзыва получите Сертификат не был отозван, или не удалось получить информацию об отзыве этого сертификата.

Если же сертификат отозвали, то при открытии письма появится предупреждение:

А при нажатии кнопки, в открывшемся окне во вкладке Безопасность будет значиться: Этот сертификат был отозван.

Итоги и рекомендации

Мы научились защищать свою почту с помощью шифрования. Электронная подпись генерируется закрытым ключом отправителя, а проверяется по открытому ключу отправителя. Шифрование осуществляется открытым ключом получателя, а дешифрование — закрытым ключом получателя.

Несколько советов:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector