КриптоПро | КриптоПро TLS c ГОСТ

КриптоПро | КриптоПро TLS c ГОСТ ЭЦП

Описание проблемы и её решение

В нашей схеме подключение к серверу электронной подписи осуществляется по ГОСТ TLS с аутентификацией клиента по сертификату.

Но не секрет, что стандартные платформы, а именно горячо любимый мной .NET, не поддерживают российские криптошифры по ГОСТу.

В качестве эксперимента пробовал подключить rtengine, но он не завёлся, и, помимо прочего, он не является сертифицированным средством защиты информации. В таких случаях “КриптоПро” советует использовать «КриптоПро Stunnel».

Изначально, stunnel – это open-source приложение, выступающее в роли шлюза, который принимает незашифрованный трафик и пересылает его на целевой сервер поверх TLS. Часто используется, когда клиент сам не поддерживает TLS-шифрование.

А Stunnel от “КриптоПро” – это практически тот же stunnel, но с поддержкой ГОСТ TLS, а значит, он замечательно подходит для решения нашей проблемы.

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

Общее описание реализации

В ОС Windows протокол аутентификации доступа к ЛВС (EAP-TLS) реализован на основе расширяемой архитектуры модулей SSP/AP, которые в свою очередь реализованы на основе криптографической архитектуры CryptoAPI 2.0.

В процессе участвуют:

  1. Клиент ЛВС;
  2. Аутентификатор – устройство или компьютер обеспечивающее доступ клиента к ЛВС;
  3. RADIUS сервер – компонент IAS ОС Windows обеспечивает аутентификацию клиента ЛВС и назначение различных атрибутов соединению (тег VLAN, диапазоны IP адресов, периодичность повторной аутентификации и т.п.);
  4. AD (Active Directory, справочник LDAP) – обеспечивает хранение политик доступа, групп пользователей и т.п.;
  5. УЦ – обеспечивает управление сертификатами и СОС (Списками Отозванных Сертификатов, CRL). В качестве УЦ может использоваться как встроенный в Windows MS Enterprise CA, так и внешние УЦ: КриптоПро УЦ, Атликс УЦ и т.п.;
  6. КриптоПро OCSP – дополнительный необязательный участник, который может обеспечивать компактную информацию о статусе сертификатов клиентов и RADIUS сервера;

Компоненты 3-6 могут быть установлены как на одном компьютере, так и на нескольких. Также компоненты 2, 3, 4 и 6 могут существовать в нескольких экземплярах для обеспечения распределения нагрузки и/или обеспечения отказоустойчивости.

Что такое tls с гост?

В процессе работы над задачей разработки протокола TLS с поддержкой российских криптонаборов при активном участии специалистов КриптоПро было создано два ключевых документа, регламентирующих порядок работы протоколов TLS 1.2 и TLS 1.3 с ГОСТ Р 34.

12-2022 (с использованием алгоритмов Магма и Кузнечик) – рекомендации по стандартизации Р 1323565.1.020-2022 для TLS 1.2 и рекомендации по стандартизации Р 1323565.1.030-2020 для TLS 1.3. Документы определяют криптонаборы с российскими алгоритмами хэширования, шифрования и электронной подписи с учетом наиболее современных и безопасных практик использования криптоалгоритмов.

Для регламентации работы протокола с использованием криптонаборов на базе ГОСТ 28147-89 ранее были разработаны методические рекомендации МР 26.2.001-2022. Отметим, что сами российские режимы и криптонаборы стандартизованы в международных организациях ISO и IETF, пройдя экспертизу ведущих мировых специалистов.

Введение

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

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

Мы встроили данный SDK в наше корпоративное мобильное приложение, о котором писала моя коллега в своей статье на Хабре.

Но мой рассказ связан с опытом решения задачи со стороны бэкенда, и мы рассмотрим эту задачу подробнее.

Tls-клиент с гост

Одна из важнейших задач, стоящих перед командой КриптоПро, – создание для пользователя как можно более комфортных условий при работе с сервисами по TLS c ГОСТ. В настоящее время мы предлагаем несколько вариантов решений, включающих в себя как готовые клиентские решения для стационарных устройств, так и решения для разработки собственных мобильных приложений.

Tls-сервер с гост

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

  1. Если вам необходимо настроить работу для конкретного серверного ПО (IIS, Apache, nginx), вы можете на компьютере с указанным серверным ПО установить КриптоПро CSP и, следуя соответствующим инструкциям по настройке, получить TLS-сервер, дополнительно поддерживающий алгоритмы ГОСТ.
  2. Вы также можете воспользоваться решением КриптоПро NGate, представляющим собой самостоятельный TLS-шлюз (отдельная аппаратная или виртуальная платформа). Решение имеет большое количество преимуществ, одним из которых является удобство обеспечения классов защиты KC2-KC3: в отличие от предыдущего подхода, не требуется выполнение отдельных настроек, приобретение и конфигурирование электронных замков и прочих дополнительных мер защиты, все необходимое уже включено в аппаратные компоненты решения.

Ниже представлена сравнительная таблица характеристик каждого предлагаемого решения. В колонке “Cертификация” приведена информация о статусе сертификации решения: как самостоятельное СКЗИ или как решение, исследование которого было проведено в рамках сертификации КриптоПро CSP. Во втором случае указана соответствующая версия криптопровайдера.

Архитектура аутентификации в windows

В ОС семейства Windows применялось несколько различных методов авторизации и аутентификации пользователей: SMB, NTLM, Novell, RADIUS, Kerberos и т.п. На сегодняшний день большинство этих методов представляют лишь исторический интерес. Современные методы авторизации и аутентификации пользователей RADIUS (EAP)

и Kerberos являются открытыми промышленными стандартами и позволяют достичь любого необходимого уровня защиты  информации с помощью дополнительных методов аутентификации. КриптоПро EAP-TLS — расширяет метод первоначальной аутентификации EAP протокола RADIUS.

Внедрить tls c гост? легко!

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

Также на данной странице представлена информацию об услугах нашего удостоверяющего центра CryptoPro TLS-CA по выдаче сертификатов TLS →

Документация

Онлайн-версия руководства программиста доступна на нашем сайте.

Доступ к лвс по ethernet vlan 802.1q/802.1x

Рисунок  2. Ethernet VLAN 802.1Q/802.1x

Серверам и клиентам в контролируемой зоне может назначаться тэг VLAN 802.1Q, как на основе фиксированных портов и/или сетевых (транспортных) адресов, так и на основе аутентификации по 802.1х. Клиентам вне контролируемой зоны тэг VLAN 802.1Q назначается по результатам аутентификации.

Доступ к лвс по ppp

Рисунок 3. PPP

Использовании сервера КриптоПро OCSP обязательно.

Доступ к лвс по беспроводным сетям 802.11/wi-fi

Рисунок 3. 802.11/Wi-Fi

При использовании сервера КриптоПро OCSP с ним взаимодействует RADIUS (IAS) сервер. Если КриптоПро OCSP не используется, то точка доступа к CRL (CDP) должна быть доступна без аутентификации.

Доступ к лвс через мэ

Рисунок 1. МЭ

При использовании сервера КриптоПро OCSP с ним взаимодействует RADIUS (IAS) сервер. Если КриптоПро OCSP не используется, то точка доступа к CRL (CDP) должна быть доступна без аутентификации.

Другие решения

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

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

Ниже представлен список наиболее популярных поддерживаемых операционных систем и соответствующих классов защиты:

Как настроить доверие к сертификату?

Не секрет, что почти все механизмы аутентификации сторон в протоколе TLS построены на основе инфраструктуры открытых ключей (PKI), одной из основных компонент которой является сертификат открытого ключа сервера или клиента. С помощью сертификата происходит доверенное связывание идентифицирующей сторону информации (например, имени домена сервера) с открытым ключом, для этого используется указанная в сертификате информация о том, кому принадлежит открытый ключ.

Криптопро | tls с гост на nginx/apache

Решения nginx и Apache HTTP Server (далее — Apache) — два самых широко распространенных веб-сервера с открытым исходным кодом в мире. Каждый из них обладает собственными преимуществами, при этом одной из основных функциональных возможностей обоих серверов является построение защищенного с использованием протокола TLS соединения между клиентом и сервером с обеспечением целостности и конфиденциальности передаваемых данных, в том числе с применением российских криптографических алгоритмов ГОСТ.

Возможность использования TLS с ГОСТ обеспечивается с помощью вызова функций СКЗИ КриптоПро CSP (далее — СКЗИ):

Таким образом, СКЗИ можно эксплуатировать совместно с серверами nginx и Apache определенных версий для реализации TLS с ГОСТ без проведения исследований по оценке влияния указанных серверов на СКЗИ, что делает возможным использование данного решения для обеспечения криптографической защиты передаваемых между клиентом и сервером конфиденциальных данных (в том числе персональных данных) в соответствии с требованиями законодательства РФ по информационной безопасности. При эксплуатации иных версий nginx/Apache или СКЗИ проведение оценки влияния является обязательным во всех случаях, предусмотренных законодательством. Подробнее о работе TLS с ГОСТ можно ознакомиться в нашей статье.

Процесс установки и настройки совместной работы СКЗИ с веб-серверами nginx описан в Руководстве администратора безопасности к соответствующей версии СКЗИ. Необходимые компоненты для работы решения можно скачать в составе СКЗИ. Программное обеспечение nginx и Apache не входит в комплект поставки СКЗИ. Исходные тексты nginx необходимо скачать с официального сайта с последующей проверкой контрольной суммы, а дистрибутив Apache обычно входит в состав ОС.

По сравнению со штатным использованием серверов nginx и Apache, при реализации TLS с ГОСТ на nginx или Apache в качестве криптографического ядра вместо OpenSSL используется СКЗИ КриптоПро CSP и поэтому функциональность решения имеет некоторые особенности:

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

В настоящее время в состав СКЗИ КриптоПро CSP версий 5.0 R2 KC1 (исполнение 1-Base) и 5.0 R2 КС2 (исполнение 2-Base) входят следующие версии компонентов решения для ОС семейства Linux:

Отдельно стоит отметить возможность реализации TLS с ГОСТ на веб-сервере Apache Tomcat, используемом для исполнения веб-приложений, написанных на Java. Для решения данной задачи можно использовать криптопровайдер КриптоПро JCP, реализующий SSL и TLS протоколы на базе российских криптографических алгоритмов ГОСТ. При этом, в случае использования КриптоПро JCP 2.0 R4, проведение оценки влияния Apache Tomcat на СКЗИ не потребуется.

В качестве альтернативы предлагаем также рассмотреть более функциональное и производительное решение — TLS-шлюз и VPN КриптоПро NGate, сертифицированный ФСБ России и позволяющий одновременно реализовать TLS с ГОСТ для большого количества веб-серверов, также без необходимости проведения оценки влияния среды функционирования.

Настройки коммутатора заключается в задании адреса RADIUS-сервера, метода и параметров связи с ним.

Настройка точки доступа заключается в задании адреса RADIUS-сервера, метода и параметров связи с ним.

Настройки isa 2003 и isa 2000

Для настройки ISA необходимо поднять  VPN сервер и в качестве метода аутентификации указать – внешний RADIUS-сервер. В качестве RADIUS-сервера необходимо указать адрес RAS-сервера, с настроенной политикой удаленного доступа по методу EAP-TLS.

Настройки ras

Настройка сервера доступа заключается в задании адреса RADIUS-сервера, метода и параметров связи с ним.

Протокол tls: краткая справка

Протокол TLS (Transport Layer Security) является одним из наиболее популярных протоколов, предназначенных для установления защищенного канала связи в сети Интернет. Он основан на спецификации протокола SSL (Secure Sockets Layer) версии 3.0, но за время своего существования претерпел довольно много изменений.

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

Реализация eap-tls 802.1x

Драйвер сетевой платы (Ethernet или Wi-Fi) вызывает SSP/AP для формирования содержимого специальных Ethernet фреймов 802.1x. Коммутатор (точка доступа) «конвертирует» содержимое Ethernrt фреймов 802.1x в пакеты протокола RADIUS (обычно UDP) и обратно.

RADIUS сервер IAS использует SSP/AP для аутентификации клиента ЛВС и сопоставления сертификата аутентифицированного клиента – записи в AD для проверки прав доступа и назначения атрибутов соединению (порту). По результатам аутентификации SSP/AP вырабатывают 192 байт аутентификационной информации, которая передаётся аппаратным компонентам платы и коммутатора (точки доступа) для защиты соединения встроенными средствами.

Аутентификационная информация предаётся между коммутатором (точкой доступа) и RADIUS сервером с использованием встроенных методов защиты. Рекомендуется, что бы RADIUS сервер(ы) и коммутатор(ы) находились на одной контролируемой территории (в одном охраняемом помещении).

При использовании встроенных в коммутационную аппаратуру алгоритмов TKIP WEP (RC4) и TKIP MIC (Michael) [802.11i] рекомендуется устанавливать интервал повторной аутентификации не более 1000 секунд для обеспечения вероятности ошибочной аутентификации 10-6 в этот интервал времени.

Реализация eap-tls ppp (pptp, l2tp, pppoe)

Протокол PPP используется Windows не только для соединений по линиям связи (PPP – асинхронные коммутируемые или выделенные линии, PPPoE – xDSL), но и как туннельный протокол VPN для защиты соединения клиентов ЛВС с МЭ или МЭ между собой (PPTP, L2TP).

Реализация PPP (компонент RAS) вызывает SSP/AP для формирования содержимого специальных PPP пакетов. Сервер доступа (МЭ) «конвертирует» содержимое аутентификационных PPP пакетов в пакеты протокола RADIUS (обычно UDP) и обратно. RADIUS сервер IAS использует SSP/AP для аутентификации клиента ЛВС и сопоставления сертификата аутентифицированного клиента – записи в AD для проверки прав доступа и назначения атрибутов соединению (порту).

По результатам аутентификации SSP/AP вырабатывают 192 байт аутентификационной информации, которая передаётся реализации PPP для защиты соединения встроенными средствами. Аутентификационная информация предаётся между сервером доступа и RADIUS сервером с использованием встроенных методов защиты.

При использовании встроенных в реализации PPP алгоритмов 3DES и MD5 рекомендуется устанавливать интервал повторной аутентификации не более 1000 секунд для обеспечения вероятности ошибочной аутентификации 10-6 в этот интервал времени.

Реализация ocsp расширения tls

При использовании аутентификации совместно с протоколами 802 и PPP требуется, либо возможность доступа к CDP (CRL Distribuition Point) без аутентификации, либо хранение СОС в локальном кэше компьютера, либо получение информации о статусе сертификата в процессе аутентификации. Первые две возможности сложны в администрировании и/или эксплуатации.

КриптоПро EAP-TLS содержит дополнительный модуль SSP/AP, который использует расширение протокола TLS для доставки OCSP ответа на сертификат сервера к клиенту непосредственно в процессе аутентификации. В этом случае клиенту требуется только хранение доверенных сертификатов в локальном хранилище сертификатов для проверки сертификатов сервера и OCSP ответа.

Модуль SSP/AP в зависимости от настроек и/или флагов формирует client_hello сообщение с расширением «status_request» (см. п. 3.6 RFC 3546). В данных этого расширения передаётся список доверенных OCSP серверов и требуемы параметры OCSP  запроса (возможно включая «id-pkix-ocsp-nonce»).

Решения для мобильных устройств

КриптоПро предоставляет возможность встраивания поддержки отечественных криптоалгоритмов в ваше мобильное приложение при помощи КриптоПро CSP для операционных систем iOS и Android.

Кратко о решении:

Ниже представлен список поддерживаемых операционных систем и соответствующих классов защиты:

В случае использования КриптоПро CSP версии 5.0 R2 встраивание не требует проведения тематических исследований. Для CSP 5.0 и более ранних версий требуются тематические исследования.

Решения для стационарных устройств

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

Кратко о решении:

Ниже представлена сравнительная таблица характеристик поддерживаемых браузеров. Прочерк в колонке «Cертификация» означает необходимость проведения тематических исследований.

Браузер

Платформа

Сертификация

Класс защиты

Internet Explorer

Windows

любая поддерживаемая версия CSP

КС1, КС2*, КС3*

Спутник Браузер

Windows, Astra Linux, ALT Linux

самостоятельное СКЗИ

КС1, КС2*

Chromium-Gost

Astra Linux

начиная с CSP 5.0 R2

КС1, КС2*, КС3*

Windows, Linux, MacOS

Яндекс.Браузер

Windows

начиная с CSP 5.0 R2

КС1, КС2*, КС3*

 * – требуются дополнительные настройки и технические средства защиты

Сценарии использования

Для клиентов ЛВС рекомендуется использовать отделяемые ключевые носители.

Для серверов при требуемом уровне защиты КС1 возможно использовать ключевой носитель «реестр» (согласно документации на «КриптоПро CSP»). При требуемом уровне защиты КС2 рекомендуется использовать отделяемые ключевые носители.

При совместном использовании КриптоПро EAP-TLS и КриптоПро Winlogon на персональных клиентах, возможно использование совместного ключевого носителя (сертификата), и для доступа к ЛВС, и для входа в домен Windows. Для клиентов с несколькими пользователями или для серверов желательно использовать разные ключевые носители (сертификаты).

Оцените статью
ЭЦП64
Добавить комментарий