Руководство по TLS Соответствие стандартам

Безопасность транспортного уровня (TLS) протокол является основным средством защиты сетевых коммуникаций через Интернет. Эта статья представляет собой краткое руководство, которое поможет вам настроить безопасный сервер в соответствии с текущими требованиями. TLS стандарты.

Введение

Ассоциация Безопасность транспортного уровня (TLS) Протокол является основным средством защиты сетевых коммуникаций через Интернет. Он (и его предшественник, Уровень защищенных сокетов или SSL) десятилетиями использовались во многих приложениях, но особенно в браузерах, когда они посещают HTTPS веб-сайтов. TLS обычно работает тихо на заднем плане, но вопреки тому, что можно подумать, TLS это не черный ящик, который просто работает. Скорее, безопасность TLS обеспечивает вытекает из сотрудничества различных криптографических алгоритмов. Более того, TLS, как и SSL до него, постоянно развивается вместе с отраслью безопасности - новые технологии и бизнес-требования должны быть удовлетворены, а новейшие угрозы безопасности должны быть устранены. Алгоритмы со временем могут устареть, или от практик можно отказаться, при этом каждое изменение влияет на общую безопасность TLS экземпляр (как тот, который защищает ваше соединение прямо сейчас).

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

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

Стандарты

Есть несколько организаций, которые поддерживают руководящие принципы для TLS в отношении сетевой безопасности, например, Департамент здравоохранения и социальных служб США (HHS) или Национальный институт стандартов и технологий (NIST). В данной статье для краткости будут изучены только три наиболее принятых документа:

  1. Ассоциация Медицинское страхование Портативность и Акт об ответственности (ХИПАА)
  2. НИСТ Рекомендации SP 800-52r2
  3. Ассоциация Стандарт безопасности данных индустрии платежных карт (PCI-DSS)

HIPAA

HIPAA - это постановление, принятое правительством США в 1996 году, касающееся безопасного обращения с Защищенная информация о здоровье (ФИ). PHI относится к любой цифровой информации о пациенте, такой как результаты анализов или диагнозы. HIPAA руководящий документ опубликовано в 2013 году, говорится следующее:

Допустимые процессы шифрования для данных в движении - это те, которые соответствуют, при необходимости, специальным публикациям NIST 800-52, Руководству по выбору и использованию безопасности транспортного уровня (TLS) Реализации; 800-77, Руководство по IPsec VPN; или 800-113, Руководство по SSL VPN, или другие утвержденные Федеральные стандарты обработки информации (FIPS) 140-2.

Стандарты NIST

В 2005 году NIST опубликовал специальную публикацию (SP) 800-52, в которой описаны правильные рабочие процедуры для безопасной настройки TLS экземпляр для государственных серверов. SP 800-52 был заменен версиями SP 800-52r1 (2014) и SP 80052r2 (2019). Эта статья соответствует рекомендациям SP 800-52r2, который в настоящее время является стабильным.

PCI-DSS

PCI-DSS - это стандарт соответствия, поддерживаемый Советом безопасности (SSC) по стандартам индустрии платежных карт, который устанавливает порядок обработки информации о платежах и картах на веб-сайтах электронной коммерции. Относительно правильной конфигурации TLS экземпляры PCI-DSS заявляют:

«Обратитесь к отраслевым стандартам и передовым методам для получения информации о надежной криптографии и безопасных протоколах (например, NIST SP 800-52 и SP 800-57, OWASP и т. Д.)»

TLS стандарты: собрать все это вместе

К настоящему времени следует отметить, что каждый стандарт влияет на разные системы в зависимости от их функций и обрабатываемых данных. Например, сервер электронной почты больницы может подпадать под действие правил HIPAA, поскольку передаваемые сообщения могут содержать информацию о пациентах, а система CRM больницы может подпадать под действие стандарта PCI-DSS, поскольку может содержать данные кредитной карты и другие данные о клиентах. Соответствие всем трем стандартам потребует использования общих TLS Параметры присутствуют во всех документах.

К счастью, очевидно, что все стандарты соответствуют рекомендациям NIST по выбору TLS параметры. Это означает, что на момент написания этой статьи совместимость с SP 800-52r2 должна сделать сервер также совместимым с HIPAA и PCI-DSS. (Хорошо, это не точно, правда, но в следующем разделе все прояснится.)

конфигурируемый TLS параметры

Уровень безопасности, который TLS обеспечивает наиболее пострадавших от версия протокола (т.е. 1.0, 1.1 и т. д.) и разрешенные наборы шифров, Шифры - это алгоритмы, которые выполняют шифрование и дешифрование. Тем не менее, набор шифров представляет собой набор алгоритмов, включая шифр, алгоритм обмена ключами и алгоритм хеширования, которые используются вместе для установления безопасного TLS подключение. Наиболее TLS клиенты и серверы поддерживают несколько альтернатив, поэтому им приходится договариваться при установлении безопасного соединения, чтобы выбрать общий TLS версия и комплект шифров.

TLS версия протокола

Относительно TLS Поддержка версий, NIST SP 800-52r2 заявляет следующее:

Серверы, поддерживающие правительственные приложения должен быть настроенным на использование TLS 1.2 и должен быть настроенным на использование TLS 1.3 тоже. Эти серверы не следует быть настроенным на использование TLS 1.1 и не должны использование TLS 1.0, SSL 3.0 или SSL 2.0.

...

Серверы, поддерживающие гражданские или бизнес-приложения (т. Е. Клиент может не быть частью государственной ИТ-системы) должен быть настроенным на переговоры TLS 1.2 и должен быть настроенным на переговоры TLS 1.3. Использование TLS версии 1.1 и 1.0 обычно не рекомендуются, но эти версии могут быть настроены при необходимости для обеспечения взаимодействия с гражданами и предприятиями ... Эти серверы не должны разрешить использование SSL 2.0 или SSL 3.0.

Агентства должен поддержка TLS 1.3 до 1 января 2024 г. После этой даты серверы должен поддержка TLS 1.3 как для правительственных, так и для гражданских или бизнес-приложений. В общем, серверы, поддерживающие TLS 1.3 должен быть настроенным на использование TLS 1.2 тоже. Тем не мение, TLS 1.2 может быть отключен на серверах, поддерживающих TLS 1.3, если было установлено, что TLS 1.2 не требуется для взаимодействия.

В то время как TLS 1.0 запрещена и TLS 1.1 не рекомендуется для государственных сайтов, в рекомендациях NIST говорится, что для совместимости со сторонними сервисами, серверами, контролируемыми государством май осуществлять TLS 1.0 и 1.1 при необходимости. Под PCI-DSS 3.2.1 (текущая версия), совместимые серверы должен отказаться от поддержки для TLS 1.0 и «перейти как минимум на TLS 1.1, предпочтительно TLS 1.2. » HIPAA технически позволяет использовать все версии TLS. Таким образом, минимум обычно поддерживаемых TLS версия 1.1; однако PCI-DSS и NIST настоятельно рекомендуют использовать более безопасный TLS 1.2 (и, как видно выше, NIST рекомендует принять TLS 1.3 и планирует потребовать поддержки к 2024 году).

Наборы шифров

TLS 1.2 и ранее

SP 800-52r2 определяет множество приемлемых наборов шифров для TLS 1.2 и ранее. Стандарт не требует поддержки каких-либо конкретных наборов шифров, но предлагает рекомендации по выбору более сильных:

  1. Предпочитайте эфемерные ключи статическим (т. Е. Предпочитайте DHE вместо DH и предпочитайте ECDHE над ECDH). Эфемерные ключи обеспечивают идеальную прямую секретность.
  2. Предпочитайте режимы GCM или CCM режиму CBC. Использование режима аутентифицированного шифрования предотвращает несколько атак (дополнительную информацию см. В разделе 3.3.2 [SP 800-52r2]). Обратите внимание, что они недоступны в версиях до TLS 1.2.
  3. Предпочитайте CCM над CCM_8. Последний содержит более короткий тег аутентификации, который обеспечивает более низкую надежность аутентификации.

Кроме того, хотя это разрешается наборы шифров, если ваш TLS Сервер не работает с большим количеством различных платформ и клиентов, поэтому рекомендуется использовать только небольшое подмножество этих алгоритмов. Добавление большего количества комплектов шифров может расширить поверхность атаки на ваш сервер только в том случае, если (или когда) обнаружена новая уязвимость протокола.

Наборы шифров для сертификатов ECDSA
TLS 1.2:
IANA Значение OpenSSL
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC0, 0x2B ECDHE-ECDSA-AES128-GCM-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC0, 0x2C ECDHE-ECDSA-AES256-GCM-SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CCM 0xC0, 0xAC ECDHE-ECDSA-AES128-CCM
TLS_ECDHE_ECDSA_WITH_AES_256_CCM 0xC0, 0xAD ECDHE-ECDSA-AES256-CCM
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 0xC0, 0xAE ECDHE-ECDSA-AES128-CCM8
TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 0xC0, 0xAF ECDHE-ECDSA-AES256-CCM8
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xC0, 0x23 ECDHE-ECDSA-AES128-SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xC0, 0x24 ECDHE-ECDSA-AES256-SHA384
TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC0, 0x09 ECDHE-ECDSA-AES128-SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC0, 0x0A ECDHE-ECDSA-AES256-SHA
Наборы шифров для сертификатов RSA
TLS 1.2:
IANA Значение OpenSSL
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xC0, 0x2F ECDHE-RSA-AES128-GCM-SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xC0, 0x30 ECDHE-RSA-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x00, 0x9E DHE-RSA-AES128-GCM-SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x00, 0x9F DHE-RSA-AES256-GCM-SHA384
TLS_DHE_RSA_WITH_AES_128_CCM 0xC0, 0x9E DHE-RSA-AES128-CCM
TLS_DHE_RSA_WITH_AES_256_CCM 0xC0, 0x9F DHE-RSA-AES256-CCM
TLS_DHE_RSA_WITH_AES_128_CCM_8 0xC0, 0xA2 DHE-RSA-AES128-CCM8
TLS_DHE_RSA_WITH_AES_256_CCM_8 0xC0, 0xA3 DHE-RSA-AES256-CCM8
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xC0, 0x27 ECDHE-RSA-AES128-SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC0, 0x28 ECDHE-RSA-AES256-SHA384
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0x00, 0x67 DHE-RSA-AES128-SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0x00, 0x6B DHE-RSA-AES256-SHA256
TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC0, 0x13 ECDHE-RSA-AES128-SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC0, 0x14 ECDHE-RSA-AES256-SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x00, 0x33 DHE-RSA-AES128-SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x00, 0x39 DHE-RSA-AES256-SHA
Наборы шифров для сертификатов ECDSA
TLS 1.2:
IANA Значение OpenSSL
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 0x00, 0xA2 DHE-DSS-AES128-GCM-SHA256
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 0x00, 0xA3 DHE-DSS-AES256-GCM-SHA384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 0x00, 0x40 DHE-DSS-AES128-SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 0x00, 0x6A DHE-DSS-AES256-SHA256
TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x00, 0x32 DHE-DSS-AES128-SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x00, 0x38 DHE-DSS-AES256-SHA
Наборы шифров для сертификатов DH
DSA-подписанный, TLS 1.2:
IANA Значение OpenSSL
TLS_DH_DSS_WITH_AES_128_GCM_SHA256 0x00, 0xA4 DH-DSS-AES128-GCM-SHA256
TLS_DH_DSS_WITH_AES_256_GCM_SHA384 0x00, 0xA5 DH-DSS-AES256-GCM-SHA384
TLS_DH_DSS_WITH_AES_128_CBC_SHA256 0x00, 0x3E DH-DSS-AES128-SHA256
TLS_DH_DSS_WITH_AES_256_CBC_SHA256 0x00, 0x68 DH-DSS-AES256-SHA256
DSA-подписанный, TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x00, 0x30 DH-DSS-AES128-SHA
TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x00, 0x36 DH-DSS-AES256-SHA
RSA-подписано, TLS 1.2:
IANA Значение OpenSSL
TLS_DH_RSA_WITH_AES_128_GCM_SHA256 0x00, 0xA0 DH-RSA-AES128-GCM-SHA256
TLS_DH_RSA_WITH_AES_256_GCM_SHA384 0x00, 0xA1 DH-RSA-AES256-GCM-SHA384
TLS_DH_RSA_WITH_AES_128_CBC_SHA256 0x00, 0x3F DH-RSA-AES128-SHA256
TLS_DH_RSA_WITH_AES_256_CBC_SHA256 0x00, 0x69 DH-RSA-AES256-SHA256
RSA-подписано, TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x00, 0x31 DH-RSA-AES128-SHA
TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x00, 0x37 DH-RSA-AES256-SHA
Наборы шифров для сертификатов ECDH
ECDSA-подписано, TLS 1.2:
IANA Значение OpenSSL
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC0, 0x2D ECDH-ECDSA-AES128-GCM-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0xC0, 0x2E ECDH-ECDSA-AES256-GCM-SHA384
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0xC0, 0x25 ECDH-ECDSA-AES128-SHA256
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0xC0, 0x26 ECDH-ECDSA-AES256-SHA384
ECDSA-подписано, TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC0, 0x04 ECDH-ECDSA-AES128-SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xC0, 0x05 ECDH-ECDSA-AES256-SHA
RSA-подписано, TLS 1.2:
IANA Значение OpenSSL
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xC0, 0x31 ECDH-RSA-AES128-GCM-SHA256
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xC0, 0x32 ECDH-RSA-AES256-GCM-SHA384
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC0, 0x29 ECDH-RSA-AES128-SHA256
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC0, 0x2A ECDH-RSA-AES256-SHA384
RSA-подписано, TLS 1.2, 1.1 или 1.0:
IANA Значение OpenSSL
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xC0, 0x0E ECDH-RSA-AES128-SHA
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xC0, 0x0F ECDH-RSA-AES256-SHA

TLS 1.3

TLS 1.3 имеет гораздо более короткий список наборов шифров:

  • TLS_AES_128_GCM_SHA256 (0x13, 0x01)
  • TLS_AES_256_GCM_SHA384 (0x13, 0x02)
  • TLS_AES_128_CCM_SHA256 (0x13, 0x04)
  • TLS_AES_128_CCM_8_SHA256 (0x13, 0x05)

Заключение

Мы надеемся, что это краткое руководство поможет вам лучше понять TLSи помочь вам при настройке TLS на вашем собственном сервере. Что касается стандартов и рекомендаций, которые мы обсудили, следующий раздел содержит пример конфигурации, которую вы сможете применить к наиболее популярным решениям веб-серверов. Если у вас есть какие-либо вопросы о том, как обеспечить соблюдение нормативных требований в сети, свяжитесь с нами по электронной почте. Support@SSL.com или нажав кнопку живого чата внизу этого экрана.

Приложение: Пример TLS Конфигурации

Собирая правила, указанные в трех документах спецификации, современный защищенный сервер должен реализовать TLS 1.2 и / или TLS 1.3, с коротким, но разнообразным списком избранных наборов шифров. В качестве краткого справочника ниже приведены примеры конфигураций наиболее популярных веб-серверов на рынке. Это «промежуточные» (универсальные) конфигурации, созданные с помощью Mozilla Генератор конфигурации SSL:

апашNginxлайтпдHAProxyАМС ЭЛБ

HTTP-сервер Apache

... SSLProtocol все -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM384- SHA20: ECDHE-RSA-AES1305-GCM20- SHA1305 POLY128: ECDHE-RSA-CHACHA256-POLY256: DHE-RSA-AES384-GCM-SHAXNUMX: DHE-RSA-AESXNUMX-GCM-SHAXNUMX SSLHonorCipherOrder off SSLSessionTickets off

Nginx

... ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

лайтпд

... ssl.openssl.ssl-conf-cmd = ("Протокол" => "ВСЕ, -SSLv2, -SSLv3, -TLSв1, -TLSv1.1 ") ssl.cipher-list =" ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384 "ssl.honor-cipher" отключить ssl.honor-cipher

HAProxy

...

ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-bind-options предпочитают-client-ciphers no-sslv3 no-tlsv10 нет-tlsv11 нет-tls-tickets

ssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-server-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-server-options no-sslv3 no-tlsv10 нет-tlsv11 нет-tls-Билеты

АМС ЭЛБ

... Политики: - Имя политики: Mozilla-intermediate-v5-0 Тип политики: Атрибуты SSLNegotiationPolicyType: - Имя: Протокол-TLSv1.2 Значение: true - Имя: Определяемый сервером-Cipher-Order Значение: false - Имя: ECDHE-ECDSA-AES128-GCM-SHA256 Значение: true - Имя: ECDHE-RSA-AES128-GCM-SHA256 Значение: true - Имя: ECDHE-ECDSA-AES256-GCM-SHA384 Значение: true - Имя: ECDHE-RSA-AES256-GCM-SHA384 Значение: true - Имя: DHE-RSA-AES128-GCM-SHA256 Значение: true - Имя: DHE-RSA -AES256-GCM-SHA384 Значение: true

Twitter
что его цель
LinkedIn
Reddit.
Эл. адрес

Будьте в курсе и будьте в безопасности

SSL.com является мировым лидером в области кибербезопасности, PKI и цифровые сертификаты. Подпишитесь, чтобы получать последние новости отрасли, советы и анонсы продуктов от SSL.com.

Мы будем рады вашим отзывам

Пройдите наш опрос и поделитесь с нами своими мыслями о своей недавней покупке.