Протокол TLS: Краткая справка
Протокол TLS (Transport Layer Security) является одним из наиболее популярных протоколов, предназначенных для установления защищенного канала связи в сети Интернет. Он основан на спецификации протокола SSL (Secure Sockets Layer) версии 3.0, но за время своего существования претерпел довольно много изменений. Самой актуальной версией протокола на текущий момент является недавно вышедшая версия TLS 1.3, однако версия TLS 1.2 все еще остается наиболее распространенной.
Ключевая задача, решаемая TLS, – организация между клиентом и сервером аутентифицированного защищенного канала, обеспечивающего целостность и конфиденциальность передаваемых данных. На каждом этапе работы протокола используются различные криптографические алгоритмы, которые задаются криптонабором – совокупностью алгоритмов, определенной в стандартизирующих документах и включающей, например, алгоритм выработки симметричного ключа, алгоритм шифрования и алгоритм выработки имитовставки. Используемый криптонабор согласуется сторонами в самом начале установления защищенного канала.
Что такое TLS с ГОСТ?
В процессе работы над задачей разработки протокола TLS с поддержкой российских криптонаборов при активном участии специалистов КриптоПро было создано два ключевых документа, регламентирующих порядок работы протоколов TLS 1.2 и TLS 1.3 с ГОСТ Р 34.12-2015 (с использованием алгоритмов Магма и Кузнечик) – рекомендации по стандартизации Р 1323565.1.020-2018 для TLS 1.2 и рекомендации по стандартизации Р 1323565.1.030-2020 для TLS 1.3. Документы определяют криптонаборы с российскими алгоритмами хэширования, шифрования и электронной подписи с учетом наиболее современных и безопасных практик использования криптоалгоритмов. Для регламентации работы протокола с использованием криптонаборов на базе ГОСТ 28147-89 ранее были разработаны методические рекомендации МР 26.2.001-2013. Отметим, что сами российские режимы и криптонаборы стандартизованы в ISO и IETF, пройдя экспертизу ведущих мировых специалистов.
Внедрить TLS c ГОСТ? Легко!
Наша компания предлагает широкий спектр продуктов для организации каналов, защищенных с помощью TLS с использованием отечественной криптографии. Ниже мы опишем существующие решения для различных задач:
Также на данной странице представлена информацию об услугах нашего удостоверяющего центра CryptoPro TLS-CA по выдаче сертификатов TLS →
Клиент-серверные решения
TLS-сервер с ГОСТ
Предлагаем воспользоваться одним из двух подходов, позволяющих без дополнительной сертификации и разработки программного кода развернуть TLS-сервер, который будет одновременно работать как с российскими, так и с зарубежными криптонаборами:
- Если вам необходимо настроить работу для конкретного серверного ПО (IIS, Apache, nginx), вы можете на компьютере с указанным серверным ПО установить КриптоПро CSP и, следуя соответствующим инструкциям по настройке, получить TLS-сервер, дополнительно поддерживающий алгоритмы ГОСТ.
- Вы также можете воспользоваться решением КриптоПро NGate, представляющим собой самостоятельный TLS-шлюз (отдельная аппаратная или виртуальная платформа). Решение имеет большое количество преимуществ, одним из которых является удобство обеспечения классов защиты KC2-KC3: в отличие от предыдущего подхода, не требуется выполнение отдельных настроек, приобретение и конфигурирование электронных замков и прочих дополнительных мер защиты, все необходимое уже включено в аппаратные компоненты решения.
Ниже представлена сравнительная таблица характеристик каждого предлагаемого решения. В колонке “Cертификация” приведена информация о статусе сертификации решения: как самостоятельное СКЗИ или как решение, исследование которого было проведено в рамках сертификации КриптоПро CSP. Во втором случае указана соответствующая версия криптопровайдера.
Решение
|
Платформа
|
Сертификация
|
Класс защиты
|
CSP + IIS
|
Windows
|
любая поддерживаемая версия CSP
|
КС1, КС2*, КС3*
|
CSP + Apache
|
Linux
|
начиная с CSP 5.0 R2
|
КС1, КС2*, КС3**
|
CSP + nginx
|
Linux
|
начиная с CSP 5.0 R2
|
КС1, КС2*, КС3**
|
NGate
|
Усиленная ОС на базе Linux Debian
|
самостоятельное СКЗИ
|
КС1, КС2, КС3
|
* – требуются дополнительные настройки и технические средства защиты ** – КС3 только под Astra Linux
|
TLS-клиент с ГОСТ
Одна из важнейших задач, стоящих перед командой КриптоПро, – создание для пользователя как можно более комфортных условий при работе с сервисами по TLS c ГОСТ. В настоящее время мы предлагаем несколько вариантов решений, включающих в себя как готовые клиентские решения для стационарных устройств, так и решения для разработки собственных мобильных приложений.
Решения для стационарных устройств
Одним из популярных клиентских сценариев является взаимодействие клиента с сайтом, требующим защиту соединения с помощью отечественных алгоритмов (например, сайты банков). В этом случае необходимо, чтобы клиент со своей стороны, так же как и сервер, поддерживал работу по TLS с ГОСТ. Наиболее удобным решением является использование на стороне клиента криптопровайдера КриптоПро CSP совместно с одним из поддерживаемых браузеров.
Кратко о решении:
- На стороне клиента устанавливается КриптоПро CSP и один из поддерживаемых браузеров
- Решение не требует никакой дополнительной разработки
- Такое использование бесплатно для клиента (если с его стороны нет аутентификации по ключу и сертификату).
Ниже представлена сравнительная таблица характеристик поддерживаемых браузеров. Прочерк в колонке "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*
|
* – требуются дополнительные настройки и технические средства защиты
|
Решения для мобильных устройств
КриптоПро предоставляет возможность встраивания поддержки отечественных криптоалгоритмов в ваше мобильное приложение при помощи КриптоПро CSP для операционных систем iOS и Android.
Кратко о решении:
- CSP встраивается в мобильное приложение, пользователю не требуется устанавливать дополнительное ПО
- Приложение может использовать как российские, так и иностранные криптонаборы
Ниже представлен список поддерживаемых операционных систем и соответствующих классов защиты:
Операционная система
|
Сертификация
|
Класс защиты
|
iOS
|
любая поддерживаемая версия CSP
|
КС1
|
Android
|
начиная с CSP 5.0
|
КС1
|
В случае использования КриптоПро CSP версии 5.0 R2 встраивание не требует проведения тематических исследований. Для CSP 5.0 и более ранних версий требуются тематические исследования.
Другие решения
Протокол TLS позволяет обеспечивать защищенное соединение между любыми узлами в сети, что выводит область его применения за рамки представленных решений. TLS может обеспечивать защищенную передачу данных между узлами блокчейна, между пользователями VoIP, фактически между любыми двумя приложениями. Мы предлагаем продукт, позволяющий решить и такие задачи.
Приложение stunnel, входящее в дистрибутив КриптоПро CSP, позволяет устанавливать защищенный с помощью отечественных криптонаборов канал между любыми двумя незащищенными приложениями без дополнительной разработки.
Ниже представлен список наиболее популярных поддерживаемых операционных систем и соответствующих классов защиты:
Операционная система
|
Сертификация
|
Класс защиты
|
Windows
|
любая поддерживаемая версия CSP
|
КС1, КС2*, КС3*
|
Linux
|
КС1, КС2*, КС3**
|
MacOS
|
КС1
|
* – требуются дополнительные настройки и технические средства защиты ** – КС3 только под Astra Linux
|
Как настроить доверие к сертификату?
Не секрет, что почти все механизмы аутентификации сторон в протоколе TLS построены на основе инфраструктуры открытых ключей (PKI), одной из основных компонент которой является сертификат открытого ключа сервера или клиента. С помощью сертификата происходит доверенное связывание идентифицирующей сторону информации (например, имени домена сервера) с открытым ключом, для этого используется указанная в сертификате информация о том, кому принадлежит открытый ключ. Данный ключ и соответствующий ему закрытый ключ используются для аутентификации стороны при выполнении протокола TLS, при этом сертификат пересылается по каналу в процессе взаимодействия.
В протоколе TLS предусмотрена возможность аутентификации и сервера, и клиента (двухсторонняя аутентификация), однако обязательной является только аутентификация сервера. Наиболее распространенным сценарием использования протокола является взаимодействие браузера с сайтом, в рамках которого обычно необходима только односторонняя аутентификация. Поэтому далее мы поговорим о том, как правильно и безопасно настроить доверие к сертификату сервера в рамках работы TLS c ГОСТ.
При работе по протоколу TLS с ГОСТ клиент может доверять сертификату, если его корневым сертификатом является либо сертификат головного удостоверяющего центра Минцифры России (сертификат ГУЦ), либо сертификат любого доверенного удостоверяющего центра (сертификат TLS-CA). Сертификаты, имеющие в качестве корневого сертификат ГУЦ, выдаются только аккредитованными удостоверяющими центрами по 63-ФЗ «Об электронной подписи». Отметим, что сертификат, использующийся для аутентификации сервера по протоколу TLS, не обязан быть полученным в аккредитованном удостоверяющем центре, достаточно, чтобы сертификат был выдан доверенным в рамках системы удостоверяющим центром.
Сертификат, корневым сертификатом которого будет TLS-CA, можно получить в нашем удостоверяющем центре CryptoPro TLS-CA. Отдельно отметим, что сертификат можно получить полностью удаленно, не посещая офис компании, воспользовавшись распределенной схемой обслуживания. Подробно о процедуре получения сертификата можно узнать на странице нашего удостоверяющего центра.
Настроить в браузере доверие к сертификату сервера можно одним из следующих способов:
- вручную:
- браузер клиента предупреждает пользователя о том, что сертификат не входит в список доверенных, клиент может "согласиться" доверять этому сертификату и продолжить устанавливать TLS соединение. Однако, очевидно, что возлагать ответственность за принятие такого решения на пользователя является не самым безопасным решением.
- администратор безопасности системы заносит сертификат сервера в доверенные в ручном режиме, что является достаточно безопасным, но не самым удобным решением.
- автоматически без участия человека:
При установке КриптоПро CSP версии 4.0 R3 и выше для работы браузера по ГОСТ сертификат ГУЦ и сертификат удостоверяющего центра CryptoPro TLS-CA добавятся в список доверенных автоматически. Таким образом, доверие распространится на любой сертификат, выданный аккредитованным УЦ или CryptoPro TLS-CA, причем после прохождения полноценной проверки, не требующей принятия решений от человека.
Тестирование ГОСТ TLS
КриптоПро TLS входит в состав КриптоПро CSP на всех ОС и не требует отдельной установки.
Для использования протокола TLS предварительно получите сертификат по шаблону "Сертификат пользователя УЦ". Это можно сделать на тестовом Удостоверяющем центре КриптоПро.
Тестовая страница для установления защищенного соединения с сервером с двусторонней аутентификацией. Для работы тестовой страницы необходимо разрешить порт 4444 для исходящих соединений.
Дополнительные стенды для тестирования TLS.
Документация
Онлайн-версия руководства программиста доступна на нашем сайте.