admin / 25.12.2017

Поддержка протоколов TLS по ГОСТу

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

Однако есть вещи, о которых нужно помнить:

  • является обязательным для и , но по соображениям безопасности он больше не поддерживается каждым сервером,
  • Mozilla рекомендует (и не только) одобрить вместо ,
  • Perfect Forward Secrecy (PFS), разрешенный DHE или ECDHE, теперь является обязательной функцией.

Итак, если я могу предоставить вам 4 набора шифров (столько же, сколько у вас есть), я бы сказал, что они от самых сильных до самых слабых:

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

    Теперь вопрос о поддержке только — это еще один вопрос, но если у вас достаточно места, я рекомендую вам добавить тоже ( не обеспечивает дополнительную совместимость).

    PS. Причина, по которой предпочитается вместо , — это то, что некоторые люди считают, что дополнительная безопасность, добавленная (на данный момент) никчемная, и что кажется более устойчивой к тайм-атакам.

    ответ дан Jyo de Lys 04 февр. '16 в 17:29

    источникподелиться

    Сетевые протоколы SSL и TLS являются криптографическими протоколами, обеспечивающими аутентификацию и защиту от несанкционированного доступа, нарушения целостности передаваемых данных. Протоколы SSL/TLS предназначены для исключения подмены идентификатора на клиентской или серверной стороне, раскрытия или искажения данных. Для этих целей используется надежный метод аутентификации, применяются шифрование канала связи и коды целостности сообщений. Стандартным портом, устанавливаемым по умолчанию для SSL/TLS, является порт 443 для HTTPS, 465 для SMTPS (электронная почта), 636 для LDAPS, 563 для NNTPS, 994 для IRCS (чат), 995 для POP3S.

    Протокол SSL

    Протокол SSL разработан компанией Netscape для защиты данных между сервисными и транспортными протоколами. Первая обнародованная версия была выпущена в 1995 году. Широко используется для VoIP-приложений, сервисов обмена мгновенными сообщениями. SSL представляет собой безопасный канал, имеющий следующие свойства:

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

    Протокол SSL использует как симметричный, так и асимметричный ключи.

    Особенности и назначение протокола SSL

    Протокола SSL обеспечивает решение двух задач — шифрование передаваемой информации и передача информации именно туда, куда требуется (аутентификация).

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

    Многослойная структура представлена слоем протокола подтверждения подключения и слоем протокола записи. Первым слоем выступает транспортный протокол, например, TCP — вместе с SSL Record Protocol данные слои образуют ядро SSL, которое впоследствии участвует в формировании сложных инфраструктур.

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

    Протокол TLS

    Протокол TLS представляет собой криптографический протокол, который применяется для защищенной передачи данных между различными узлами в сети интернет. Данный протокол нашел применение в VoIP-приложениях, веб-браузерах, приложениях для мгновенного обмена сообщениями. TLS реализован на спецификации SSL 3.0. Разработкой и развитием протокола занимается компания IETF.

    К основным мерам безопасности, которые обеспечивает протокол TLS, относятся:

    • Применение ключа для проверки кода аутентификации сообщения.
    • Исключена вероятность понижения версии TLS или подмены на менее защищенный сетевой протокол.
    • Сообщение с подтверждением связи содержит хэш всех сообщений, которыми обменивались стороны.
    • Использование нумерации записей приложения с применением MAC.
    • Применение псевдослучайной функции, разбивающей входные сообщения на 2 части, каждая из которых обрабатывается разной хэш-функцией.

    Особенности и назначение протокола TLS

    В протоколе TLS используются следующие алгоритмы:

    • RC4, Triple DES, SEED, IDEA и др. для симметричного шифрования.
    • RSA, DSA, Diffie-Hellman и ECDSA для проверки подлинности ключей.
    • MD5, SHA и SHA-256/384 для хэш-функций.

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

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

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

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

    Для использования ГОСТ алгоритмов в OpenSSL необходимо установить последнюю версию:

    sudo apt-get update sudo apt-get upgrade sudo apt-get install openssl

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

    # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. #

    добавить

    openssl_conf=openssl_def

    и в конец файла добавить:

    # OpenSSL default section [openssl_def] engines = engine_section # Engine scetion [engine_section] gost = gost_section # Engine gost section [gost_section] engine_id = gost dynamic_path = /usr/lib/ssl/engines/libgost.so default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

    • Параметр engine_id указывает на название движка. Устанавливаем значение gost
    • Параметр dynamic_path указывает на путь до динамической библиотеки libgost
    • Параметр default_algorithms указывает на использование движком всех алгоримов, которые есть в движке
    • Параметр CRYPT_PARAMS опция только для библиотеки libgost.

      Позволяет пользователю выбирать наборы параметров симметричного алгоритма шифрования. Без этой опции не будет работать опция -gost89, что в свою очередь ведёт к тому, что при шифровании данных вместо GOST 28147-89 используется rc2-cbc.

    Сохраняем файл.

    Далее находим расположение библиотеки libgost.so

    sudo find / -name «libgost.so»

    Если библиотека не расположена по путь, указанному в файле конфигурации с предыдущего шага (/usr/lib/ssl/engines/libgost.so), то создаём симлинк

    sudo mkdir -p /usr/lib/ssl/engines sudo ln -s /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgost.so /usr/lib/ssl/engines/libgost.so

    • Внимательно проверяем путь и архитектуру библиотеки того места, откуда мы ставим симлинк!

    Проверка правильности настройки можно командой

    openssl ciphers|tr ‘:’ ‘\n’|grep GOST

    в ответ должны получить что-то в виде:

    GOST2001-GOST89-GOST89
    GOST94-GOST89-GOST89

    На этом всё, поддержка ГОСТ алгоритмов в OpenSSL включена! С чем, собственно, можно и поздравить!

    Источник — документация проекта OpenSSL

     

    Запись опубликована автором kirill.zak в рубрике Linux с метками Linux Mint, OpenSSL, Ubuntu, ГОСТ, криптография. Добавьте в закладки постоянную ссылку.

    FILED UNDER : IT

    Submit a Comment

    Must be required * marked fields.

    :*
    :*