ПРИЛОЖЕНИЕ 4#
Инструкция по генерации ключей и сертификатов в ОС Astra Linux версии 1.6 и выше для работы с технологией HTTP BOOT#
Данный раздел описывает основные настройки для построения инфраструктуры открытых ключей (PKI) с помощью библиотеки OpenSSL в OC Astra Linux версии 1.6 и выше для работы с технологией HTTP Boot.
Предварительная подготовка АРМ с OC Astra Linux версии 1.6 и выше#
Для работ по генерации ключей и сертификатов в ОС Astra Linux необходимо:
- установить пакет библиотек libgost-astra;
- настроить конфигурационный файл;
- создать инфраструктуру УЦ для генерации ключей и сертификатов.
Установка и настройка пакета библиотек libgost-astra#
В состав дистрибутива ОС Astra Linux версии 1.6 и выше (далее - ОС Astra Linux) входит пакет библиотек libgost-astra для выполнения защитного преобразования по алгоритмам ГОСТ.
Для установки данного пакета необходимо:
- вставить установочный диск для ОС Astra Linux версии 1.6 и выше в дисковод;
- авторизоваться под административным пользователем;
- выполнить команду для установки пакета библиотек;
-
или выполнить установку с помощью графического менеджера пакетов Synaptic (менеджер пакетов устанавливается автоматически при установке ОС и доступен через меню «Пуск» → «Панель управления» → «Программы» → «Менеджер пакетов Synaptic»):
- найти пакет libgost-astra;
- поставить метку «Установить»;
- нажать кнопку «Применить»;
- следовать подсказкам установщика.
Установленный пакет libgost-astra обеспечивает включение в состав методов защитного преобразования, поддерживаемых пакетами OpenSSL, следующих алгоритмов:
- ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 - алгоритмы цифровой подписи;
- поддерживается обмен ключами, основанный на открытых ключах (см. RFC 4357).
Алгоритмы используют:
- закрытые ключи 256 бит для ГОСТ Р 34.11-2001, и 256/512 бит для ГОСТ Р 34.11-2012;
- открытые ключи 512 бит для ГОСТ Р 34.11-2001 и 512/1024 для ГОСТ Р 34.11-2012;
- ГОСТ Р 34.11-94 алгоритм хеширования. Хэш 256 бит;
- ГОСТ Р 34.11-2012 алгоритм хеширования. Хэш 256 и 512 бит;
- ГОСТ 28147-89 - симметричное защитное преобразование с ключом 256 бит; Реализованы режимы CBC, CFB и CNT, поддерживается алгоритмы “key meshing” (см. RFC 4357);
- ГОСТ 28147-89 в режиме выработки имитовставки. Базируется на алгоритме симметричного защитного преобразования. Симметричный ключ 256 бит и разрядность вставки от 8 до 64 бит (по умолчанию 32 бит).
- ГОСТ Р 34.13–2015 - симметричное защитное преобразование «Кузнечик».
Настройка файла конфигурации с поддержкой ГОСТ алгоритмов#
Автоматическая настройка конфигурационного файла#
При установке пакета библиотек OpenSSL образец стандартного конфигурационного файла копируется в архив с образцом конфигурации, расположенным /usr/share/doc/libgost-astra/openssl.cnf.gz.
Для распаковки архива в файл конфигурации /etc/ssl/openssl.cnf необходимо выполнить команду:
Примечание
Конфигурационный файл заменит существующий (в случае если он был), все внесенные изменения будут уничтожены.
Ручная настройка конфигурационного файла#
Для ручного изменения конфигурации после установки пакета libgost-astra в конфигурационном файле OpenSSL (/etc/ssl/openssl.cnf) необходимо выполнить следующие действия:
- добавить в начало конфигурационного файла /etc/ssl/openssl.cnf строку
- в конец конфигурационного файла добавить строки:
Дополнительные изменения в конфигурационный файл#
В конфигурационном файле /etc/ssl/openssl.cnf в разделе [ CA_default ] необходимо изменить значение директивы dir = ./demoCA на dir = ./.
В дальнейших настройках данный каталог будет использоваться по умолчанию.
В примере будут использоваться расширения для генерации сертификатов. Необходимо убедиться, что расширения включены в стандартном конфигурационном файле, для этого необходимо убедиться, что в конфигурационном файле /etc/ssl/openssl.cnf имеются записи вида (строки должны быть раскомментированы, т.е. должны отсутствовать любые знаки типа «#» до начала строки):
Создание удостоверяющих центров для генерации и работы с сертификатами#
Создание однорангового удостоверяющего центра#
Для создания однорангового удостоверяющего центра (далее - УЦ) необходимо осуществить следующие действия:
- создать ключ УЦ;
- создать сертификат УЦ;
- создать ключ клиента;
- создать запрос на сертификат администратора;
- выпустить сертификат для администратора на основе запроса;
- создать списка отзыва сертификатов.
- Создаем каталог (СА) для удостоверяющего центра, устанавливаем безопасные права доступа. Задаем значение параметра «umask» таким образом, чтобы вновь создаваемые файлы имели права доступа чтения и записи только для создавшего их пользователя:
-
Создаем структуру каталогов и файлов для УЦ:
Примечание
Файлы index.txt и serial необходимы, чтобы отслеживать статус выпущенных закрытых ключей и сертификатов.
-
Создаем закрытый ключ (private/rootca.key) для УЦ. В качестве алгоритма для закрытого ключа используется алгоритм ГОСТ Р 34.10-2012 с длиной ключа 256 бит:
Внимание!
Закрытый ключ корневого сертификата удостоверяющего центра является наиболее секретным элементом инфраструктуры открытых ключей и должен быть надежно защищен.
-
Изменяем права доступа к файлу «только на чтение» для пользователя, который сгенерировал данный ключ:
-
Выпускаем корневой сертификат УЦ (certs/rootca.crt) (далее CA сертификат), который подписывается закрытым ключом private/rootca.key. Для закрытого ключа в сертификате используется алгоритм ГОСТ Р 34.10-2012 с длиной ключа 256 бит.
Примечание
Параметр
–daysустановлен на 365, что означает, что сертификат действителен в течение следующих 365 дней. Для изменения срока действия сертификата необходимо заменить числовое значение 365 на необходимое.Корневой сертификат является сертификатом самого удостоверяющего центра и используется для подписи и удостоверения подлинности других сертификатов. Является самоподписанным.
-
Изменяем права на данный CA сертификат:
- Просмотреть содержимое СА сертификата можно командой:
- Генерируем закрытый ключ для сертификата администратора безопасности (private/admin.key):
- Просмотреть содержимое закрытого ключа можно командой:
- Для закрытого ключа изменяем права:
- Генерируем запрос на выдачу сертификата в УЦ с использованием закрытого ключа администратора безопасности (private/admin.key):
- Данный запрос на выдачу сертификата подписывается на УЦ:
- После выполнения команды из п.12 выводится информация о сертификате, производится уточнение о выпуске и подписи данного сертификата. Для завершения процедуры нажмите клавишу «y»:
- Изменяем права на сертификат:
- Создаем файл crlnumber
- Создаем список отозванных сертификатов (далее - CRL) с помощью команды
- Посмотреть результат можно следующим образом:
Электронная подпись файла#
С помощью OpenSSL возможно создание открепленной (отсоединенной) электронной подписи (далее – ЭП). С помощью открепленной ЭП возможна подпись файла любого формата, при этом сама ЭП записывается в отдельный файл (*.sign). Для создания ЭП используется закрытый ключ сертификата администратора безопасности (private/admin.key), генерируемого в предыдущем разделе.
Подпись файла и создание ЭП#
Выбрать файл образ загружаемой ОС, который необходимо подписать для констатации его целостности и подлинности - например, test.iso. Подписываем файл образ с помощью закрытого ключа сертификата администратора безопасности private/admin.key. Для создания файла ЭП test.iso.sign используется алгоритм ГОСТ Р 34.10-2012 с длиной ключа 256 бит.
Примечание
Имя файла подписи должно быть идентично имени файла загружаемого образа ОС. Если файл образа загружаемой ОС имеет наименование Filname.isо то файла подписи должен иметь имя Filename.iso.sign.
Настройка загрузки в Numa BIOS#
Для настройки загрузки с использованием технологии HTTP Boot необходимо:
- создать профиль загрузки, в качестве типа загрузки выбрать «HTTP Boot»;
- в поле “URL” указать адрес загружаемой подписанной ОС (test.iso). Если порт отличается от стандартных (http – 80, https – 443), необходимо указать порт через двоеточие;
- в раздел «Сертификаты» загрузить корневой сертификат УЦ == certs/rootca.crt, выработанного в п.2 настоящего приложения;
-
в появившемся разделе «Сертификат для HTTP Boot» загрузить сертификат администратора == certs/admin.crt.
Данный сертификат также возможно загрузить на сервер, где располагается подписанный образ загружаемой ОС, для этого необходимо переименовать данный сертификат admin.crt на Filename.iso.crt, где «Filename.iso» имя образа файла загружаемой ОС. Для текущего примера необходимо переименовать файл на test.iso.sign;
-
загрузить файл ЭП test.iso.sign (созданный во время подписи файла test.iso в п.3.1 настоящего приложения) на HTTP(S) сервер, где располагается соответствующий файл образ test.iso;
- сохранить профиль загрузки.