В статье описана настройка защитного преобразования (шифрования) и подписывания почтовых сообщений для их защиты при пересылке. Далее вместо термина защитное преобразование используется термин шифрование. Термин шифрование используется только для краткости исключительно в значении защитное преобразование данных. Описанные в статье процедуры не подразумевают какую-либо сертификацию.
Для защиты передаваемых сообщений почтовый клиент Evolution использует асимметричное шифрование. На момент написания настоящей статьи алгоритмы асимметричного шифрование не описаны в российских стандартах. Стандарт ГОСТ 34.10-2018 описывает генерацию ключевых пар предназначенных только для подписывания данных. В настоящей статье для примеров используется алгоритм шифрования RSA.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-17
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
- Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition 1.8
- Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition
Аннотация
S/MIME (Secure/Multipurpose Internet Mail Extensions) — стандарт защиты сообщений электронной почты с помощью асимметричного шифрования и подписывания. Для асимметричного шифрования используются пары ключей (специальных наборов данных), состоящие из открытого ключа и закрытого ключа. При этом:
- На стороне отправителя сообщения:
- сообщение шифруется с помощью открытого ключа получателя;
- сообщение подписывается с помощью закрытого ключа отправителя.
- На стороне получателя сообщения:
- сообщение расшифровывается с помощью закрытого ключа получателя;
- подпись проверяется с помощью открытого ключа отправителя.
Открытые ключи передаются в виде сертификатов открытых ключей (далее — сертификат). Сертификат содержит открытый ключ и информацию о владельце соответствующего закрытого ключа. Подлинность информации о владельце должна быть подтверждена доверенным удостоверяющим центром (далее - УЦ). Для проверки подлинности подтверждения информации о владельце требуется сертификат УЦ. Таким образом, для успешного обмена защищенными сообщениями:
- На клиенте отправителя должны быть доступны:
- доверенный сертификат УЦ, подтвердившего подлинность информации, содержащейся в сертификате получателя;
- сертификат получателя, подлинность которого проверяется сертификатом УЦ, для шифрования отправляемого сообщения;
- закрытый ключ отправителя для подписания отправляемого сообщения.
- На клиенте получателя должны быть доступны:
- закрытый ключ получателя для расшифровки полученного сообщения;
- доверенный сертификат УЦ, подтвердившего подлинность информации, содержащейся в сертификате отправителя;
- сертификат отправителя, подлинность которого проверяется сертификатом УЦ, для проверки подписи отправителя в полученном сообщении.
Закрытые ключи должны находиться исключительно в распоряжении их владельца, и не должны передаваться никому и никогда. Также не следует использовать закрытые ключи, полученные из сторонних источников.
Для загрузки ключей в почтовый клиент используются файлы (контейнеры) формата PKCS#12. Этот формат позволяет хранить закрытый ключ, соответствующий сертификат и сертификаты УЦ защитив сохраненную информацию паролем. Аналогичный функционал защищенного хранения ключевой информации реализуется специальными устройствами - ключевыми носителями (токенами).
Подготовка стенда
Для обмена почтовыми сообщениями необходима настроенная почтовая служба. Порядок настройки такой службы в настоящей статье не рассматривается. Можно использовать любую действующую почтовую службу.
- Установить и настроить почтовые клиенты Evolution (далее - клиенты). Для обмена зашифрованными почтовыми сообщениями необходимо два (или более) клиента. Порядок установки клиентов см. в статье Расширенный репозиторий Astra Linux Special Edition x.7: установка почтового клиента Evolution. После установки клиентов на них должен быть настроен обмен почтовыми сообщениями.
- Подготовить ключевые данные: ключевые пары, сертификаты открытых ключей, сертификаты УЦ. Подготовка ключевых данных в настоящей статье не рассматривается.
Дополнительные настройки для работы с ключевыми носителями описаны далее
Импорт собственных ключевых данных (без использования ключевых носителей)
Для импорта собственных ключевых данных:
- Выгрузить ключевые данные в контейнер PKCS#12, установив пароль на доступ к контейнеру. Порядок создания ключевых данных и их выгрузки определяется используемыми техническими средствами, и в настоящей статье не рассматривается. При использовании для хранения ключевых носителей выгрузка не требуется, порядок настройки использования ключевых носителей описан далее. В контейнер должны быть выгружены:
- собственный закрытый ключ;
- собственный сертификат;
- опционально — сертификат УЦ, подтверждающий подлинность собственного сертификата.
Запустить почтовый клиент Evolution (предполагается, что учетная запись электронной почты уже настроена).
Открыть пункт меню "Правка" → "Параметры":
Перейти в раздел "Сертификаты".
Перейти во вкладку "Ваши сертификаты".
Нажать кнопку "Импорт":
Выбрать ранее подготовленный файл с контейнером PKCS#12:
сертификатом на ключевом носителе в почтовом клиенте EvolutionВвести пароль:
Если импорт произошел успешно, сертификат появится во вкладе "Ваши сертификаты" текущей учетной записи электронной почты:
- Перейти во вкладку "Поставщики".
- Если сертификат УЦ был включен в контейнер, то при импорте контейнера сертификат будет автоматически импортирован в список сертификатов УЦ. Повторно импортировать его не получится (будет выдаваться сообщение, что такой сертификат уже есть), однако, чтобы увидеть этот сертификат в списке и установить к нему доверие понадобится перезапустить клиента. Если сертификат УЦ не был включен в контейнер, то сертификат необходимо импортировать, нажав кнопку "Импорт" и выбрав файл с сертификатом. В любом случае следует установить доверие к сертификату УЦ (или убедиться, что доверие установлено). Для этого:
- Выбрать сертификат в списке.
- Нажать кнопку "Правка".
- Отметить пункт "Доверять этому CA для идентификации пользователей эл.почты".
- Нажать кнопку ОК.
- Перейти во вкладку "Учётные записи".
- Выбрать учетную запись, для которой импортируется сертификат.
- Нажать кнопку "Правка":
- Перейти в раздел "Безопасность".
- В разделе "Безопасный MIME/S/MIME) нажать кнопку "Выбрать":
- Выбрать нужный сертификат для подписи и сертификат для шифрования
Импорт сертификатов получателей
Для шифрования отправляемых писем необходимо импортировать сертификат получателя. Импорт сертификатов получателей аналогичен импорту собственного сертификата, различие только в том, что импорт выполняется в разделе "Сертификаты контактов":
При импорте сертификата получателя также необходимо импортировать подтверждающий его подлинность сертификат УЦ и установить к нему доверие. Выполняется так же, как и для собственного сертификата.
Создание защищенного письма
Для создания защищенного письма п ри создании этого письма выбрать пункт меню "Параметры" и нужные способы защиты ("Зашифровать с помощью S/MIME" и/или "Подпись с помощью S/MIME"):
Отправка защищенного письма осуществляется в обычном порядке.
Защищенное письмо недоступно для отправки получателям, сертификаты которых не включены в список "Сертификаты контактов". При этом при попытке отправки выдается сообщение "No valid or appropriate certificate for ..."
Чтение защищенного письма
Полученное защищенное письмо помечается Evolution как защищенное c применением S/MIME:
Защищенное письмо недоступно для чтения, если ранее не был импортирован закрытый ключ для его расшифровки:
Использование сертификатов на ключевых носителях
Ключевые носители могут использоваться в качестве контейнеров PKCS#12 для сертификатов контрагентов. Для использования ключевых носителей:
- Установить пакет libnss3-tools:sudo apt install libnss3-tools
- Завершить работу почтового клиента Evolution, включая фоновые процессы клиента командой:pkill -9 evolution
Установить интерфейсные модули для используемых ключевых носителей (порядок установки интерфейсных модулей см. в статьях по подготовке ключевых носителей):
- Аладдин RD JaCarta в AstraLinux;
- Рутокен в Astra Linux;
- также можно использовать программные ключевые носители softhsm.
- Зарегистрировать установленные интерфейсные модули:
Для ключевых носителей Аладдин:
modutil -add "JaCarta" -libfile /usr/lib/libjcPKCS11-2.so -dbdir ~/.pki/nssdb -force- Для ключевых носителей Рутокен:modutil -add "RuToken" -libfile /usr/lib/librtpkcs11ecp.so -dbdir ~/.pki/nssdb -force
- Для программных ключевых носителей softhsm:modutil -add "SoftHSM" -libfile /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so -dbdir ~/.pki/nssdb -force
- Запустить клиент.
- Подключенные ключевые носители будут распознаны автоматически. Загрузить доступные на них сертификаты можно по аналогии с обычными сертификатами:
Открыть пункт меню "Правка" → "Параметры". При этом будет запрошен PIN-код ключевого носителя.
- После ввода PIN-кода будут проверены записи на ключевом носителе и:
- Сертификаты, для которых на ключевом носителе присутствуют закрытые ключи, будут импортированы в список сертификатов "Ваши сертификаты".
- Остальные сертификаты будут импортированы в список сертификатов "Сертификаты контактов".
Дополнительно можно импортировать сертификаты из файловой системы по описанной ранее процедуре. - Дальнейшие действия с сертификатами не отличаются от работы с обычными сертификатами. В частности, необходимо перед использованием сертификатов загрузить сертификаты УЦ, удостоверяющие их подлинность, в список сертификатов "Поставщики" и установить доверие к ним.









