Расширение TLS (TLS extension) – это расширение спецификации протокола, устраняющее обнаруженные недоработки или добавляющее функционал, не предусмотренный при утверждении оригинальной спецификации. Судя по результатам исследований в рамках проекта «Монитор госсайтов», администраторы веб-серверов часто не знают о расширениях TLS, довольствуясь конфигурацией по умолчанию (к тому же устаревшей версии веб-сервера). Почему расширения TLS важны и чем чревато игнорирование наиболее важных из них?
Полный список существующих расширений TLS можно найти на сайте IANA, там же доступны ссылки на соответствующие RFC, где подробно описано, чем грозит манкирование тем или иным расширением. Например, если вы не установили расширение Heartbeat на уязвимом веб-сервере, он будет светить в Сеть уязвимостью Heartbleed (CVE-2014-0160), а пренебрежение расширением Supported Groups попросту не позволит использовать на веб-сервере эллиптические кривые.
Однако существуют и такие расширения, без которых вроде бы все работает, и явных ошибок не видно, пока не прогонишь свой сервер через какой-нибудь сканер безопасности, чем многие администратор явно пренебрегают (да и не все сканеры одинаково полезны), о них и будет сказ.
Почему не все сканеры одинаково полезны
Renegotiation Indication позволяет предотвратить атаку на защищенное соединение классов «человек посередине» (MitM) и «отказ в обслуживании» (DoS), основанную на модификации сообщений клиента третьей стороной после искусственно вызванного ей пересогласования параметров защищенного соединения (renegotiation). Расширение позволяет клиенту и серверу проверять «связанность» сообщений Client/Server Hello с предшествующим им Finished и обнаруживать модификацию сообщений третьей стороной.
Поддержка самого расширения еще не означает, что будет выполняться безопасное пересогласование (secure renegotiation), соответствующую настройку необходимо задавать принудительно, причем следует выбрать опцию «только безопасное пересогласование по инициативе сервера» (server initiated).
Поддержка расширения требуется для TLS версии 1.0-1.2, тогда как в TLS 1.3 предусмотрен «встроенный» механизм защиты от соответствующих угроз.
Extended Master Secret позволяет предотвратить атаку на защищенное соединение класса «человек посередине» (MitM), основанную на вычислении значения «основного секрета» (master secret). Расширение меняет алгоритм генерации «основного секрета», добавляя в него «элемент случайности».
Поддержка расширения требуется для TLS версий 1.0-1.2. Встречается утверждение, что угроза реальна только, если на сервере используются шифронаборы на основе алгоритма согласования ключей DHE или RSA (последний из которых сегодня и вовсе не должен применяться для согласования ключей по соображениям безопасности), однако ECDHE также уязвим, хотя и в меньшей степени.
Encrypt then MAC позволяет предотвратить атаку на защищенное соединение класса «человек посередине» (MitM), основанную на восстановлении третьей стороной ключей шифрования из перехваченного зашифрованного сообщения.
Поддержка расширения требуется для TLS версии 1.2 (более ранние версии ее не поддерживают) и меняет поведение протокола по умолчанию (MAC then Encrypt) так, что контрольная сумма блока данных (Message Authentication Code) шифруется отдельно от данных и другим ключом. Расширение не требуется, если сервером поддерживаются только AEAD шифронаборы (а сегодня только их и следует поддерживать, во всяком случае на публичных веб-серверах).
И наконец, поговорим о Fallback Signaling Cipher Suite Value, который формально не расширение TLS, акостыль типа шифронабор TLS_FALLBACK_SCSV, как какой-нибудь TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA256, позволяющий предотвратить атаку на защищенное соединение класса «человек посередине» (MitM), основанную на принудительном понижении версии используемого протокола защиты транспортного уровня.
Этот псевдошифронабор не может использоваться для защиты соединения, но его упоминание в списке поддерживаемых шифронаборов при согласовании параметров защищенного соединения между клиентом и сервером требует от обоих сторон устанавливать соединение с использованием наиболее защищенной версии протокола, поддерживаемой ими обоими, даже если третья сторона пытается встрять в согласование и убедить их, что это невозможно.
Поддержка псевдошифронабора требуется только в том случае, если поддерживается несколько версий TLS ниже версии 1.3, например 1.1 и 1.2. В настоящее время Fallback SCSV имеет статус deprecated, однако это вызвано лишь присвоением того же статуса протоколу TLS версий 1.0 и 1.1, и если они продолжают поддерживаться на сервере (чего делать давно не следует), то необходимо поддерживать и Fallback SCSV.
Подробнее о том, как обеспечить более защищенное HTTPS-соединение со своим веб-сервером, можно прочесть в «Руководстве по достижению соответствия Индексу надежности HTTPS», а как мы исследуем на предмет безопасности сайты государственных органов и что при этом обнаруживаем – на странице проекта «Монитор госсайтов». Очередной доклад по результатам исследования сайтов региональных госорганов ждите уже в этом месяце.
Полный список существующих расширений TLS можно найти на сайте IANA, там же доступны ссылки на соответствующие RFC, где подробно описано, чем грозит манкирование тем или иным расширением. Например, если вы не установили расширение Heartbeat на уязвимом веб-сервере, он будет светить в Сеть уязвимостью Heartbleed (CVE-2014-0160), а пренебрежение расширением Supported Groups попросту не позволит использовать на веб-сервере эллиптические кривые.
Однако существуют и такие расширения, без которых вроде бы все работает, и явных ошибок не видно, пока не прогонишь свой сервер через какой-нибудь сканер безопасности, чем многие администратор явно пренебрегают (да и не все сканеры одинаково полезны), о них и будет сказ.
Почему не все сканеры одинаково полезны
Renegotiation Indication позволяет предотвратить атаку на защищенное соединение классов «человек посередине» (MitM) и «отказ в обслуживании» (DoS), основанную на модификации сообщений клиента третьей стороной после искусственно вызванного ей пересогласования параметров защищенного соединения (renegotiation). Расширение позволяет клиенту и серверу проверять «связанность» сообщений Client/Server Hello с предшествующим им Finished и обнаруживать модификацию сообщений третьей стороной.
Поддержка самого расширения еще не означает, что будет выполняться безопасное пересогласование (secure renegotiation), соответствующую настройку необходимо задавать принудительно, причем следует выбрать опцию «только безопасное пересогласование по инициативе сервера» (server initiated).
Поддержка расширения требуется для TLS версии 1.0-1.2, тогда как в TLS 1.3 предусмотрен «встроенный» механизм защиты от соответствующих угроз.
Extended Master Secret позволяет предотвратить атаку на защищенное соединение класса «человек посередине» (MitM), основанную на вычислении значения «основного секрета» (master secret). Расширение меняет алгоритм генерации «основного секрета», добавляя в него «элемент случайности».
Поддержка расширения требуется для TLS версий 1.0-1.2. Встречается утверждение, что угроза реальна только, если на сервере используются шифронаборы на основе алгоритма согласования ключей DHE или RSA (последний из которых сегодня и вовсе не должен применяться для согласования ключей по соображениям безопасности), однако ECDHE также уязвим, хотя и в меньшей степени.
Encrypt then MAC позволяет предотвратить атаку на защищенное соединение класса «человек посередине» (MitM), основанную на восстановлении третьей стороной ключей шифрования из перехваченного зашифрованного сообщения.
Поддержка расширения требуется для TLS версии 1.2 (более ранние версии ее не поддерживают) и меняет поведение протокола по умолчанию (MAC then Encrypt) так, что контрольная сумма блока данных (Message Authentication Code) шифруется отдельно от данных и другим ключом. Расширение не требуется, если сервером поддерживаются только AEAD шифронаборы (а сегодня только их и следует поддерживать, во всяком случае на публичных веб-серверах).
И наконец, поговорим о Fallback Signaling Cipher Suite Value, который формально не расширение TLS, а
Этот псевдошифронабор не может использоваться для защиты соединения, но его упоминание в списке поддерживаемых шифронаборов при согласовании параметров защищенного соединения между клиентом и сервером требует от обоих сторон устанавливать соединение с использованием наиболее защищенной версии протокола, поддерживаемой ими обоими, даже если третья сторона пытается встрять в согласование и убедить их, что это невозможно.
Поддержка псевдошифронабора требуется только в том случае, если поддерживается несколько версий TLS ниже версии 1.3, например 1.1 и 1.2. В настоящее время Fallback SCSV имеет статус deprecated, однако это вызвано лишь присвоением того же статуса протоколу TLS версий 1.0 и 1.1, и если они продолжают поддерживаться на сервере (чего делать давно не следует), то необходимо поддерживать и Fallback SCSV.
Подробнее о том, как обеспечить более защищенное HTTPS-соединение со своим веб-сервером, можно прочесть в «Руководстве по достижению соответствия Индексу надежности HTTPS», а как мы исследуем на предмет безопасности сайты государственных органов и что при этом обнаруживаем – на странице проекта «Монитор госсайтов». Очередной доклад по результатам исследования сайтов региональных госорганов ждите уже в этом месяце.
Расширения и псевдошифронаборы, которые позволят сделать HTTPS-соединение более надежным
Расширение TLS (TLS extension) – это расширение спецификации протокола, устраняющее обнаруженные недоработки или добавляющее функционал, не предусмотренный при утверждении оригинальной спецификации....
habr.com