Interested Article - HSTS
- 2021-03-29
- 1
HSTS
(сокр. от
англ.
HTTP Strict Transport Security
) — механизм, принудительно активирующий защищённое соединение через протокол
HTTPS
. Данная
политика безопасности
позволяет сразу же устанавливать безопасное соединение вместо использования HTTP-протокола. Механизм использует особый
заголовок
Strict-Transport-Security
для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP (
http://
). Механизм описан в RFC6797 в ноябре 2012 года.
HSTS помогает предотвратить часть атак , направленных на перехват соединения между пользователем и веб-сайтом, в частности и угон куки (cookie) .
Дополнительную защиту https-соединений предоставляют методы (хранение списка разрешенных для домена сертификатов или CA в исходных текстах браузера) и . Они предотвращают множество возможностей подмены tls-сертификатов https-сервера.
Спецификация
Спецификация была разработана и предложена Джеффом Оджом (=JeffH, Paypal ), Адамом Бартом ( Университет Беркли ), Колином Джексоном ( Университет Карнеги — Меллон ). После обсуждения в рабочей группе IETF WebSec спецификация была принята в качестве RFC 19 ноября 2012 года.
Механизм
Сервер сообщает о политиках HSTS с помощью специального заголовка при подключении через шифрованный HTTPS (заголовок HSTS при подключении по нешифрованному HTTP игнорируется)
. Например, сервера Википедии посылают заголовок HSTS со сроком действия 1 год, распространяющийся на все поддомены (Поле max-age указывает срок действия в секундах, величина 31536000 приблизительно соответствует одному году):
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
.
Когда сайт применяет политику HSTS, пользовательские браузеры, корректно воспринимающие заголовок HSTS, должны :
- Автоматически автономно преобразовывать все http-ссылки на данный сайт в https-ссылки. (Например, вместо http://ru.wikipedia.org/wiki/HSTS браузер будет использовать https://ru.wikipedia.org/wiki/HSTS , преобразование произойдет до реального обращения к серверу.)
- Если безопасность соединения https не может быть проверена (в частности, если TLS - сертификат сервера не подписан доверенным ключом), будет показано сообщение об ошибке, и пользователь будет лишен доступа к сайту .
Действующие политики HSTS помогают защитить пользователей сайта от части пассивных и активных атак . Атаки класса MiTM значительно усложняются.
Статический список HSTS
Исходный вариант HSTS не защищает первое подключение пользователя к сайту. Злоумышленник может легко перехватить первое подключение, если оно происходит по протоколу http. Для борьбы с этой проблемой большинство современных браузеров использует дополнительный статический список сайтов ( HSTS preload list ), требующих использования протокола https. Такой список составляется авторами Google Chrome / Chromium с 2010 года , на базе него составляются подобные списки для браузеров Microsoft (Edge и Internet Explorer , с 2015 года) , Safari и в Mozilla Firefox (с 2012 года) . В подобный список по запросу включаются сайты, использующие HSTS-заголовок с максимальным сроком и флагом preload , и не планирующие отказ от https , однако технология плохо масштабируется .
По состоянию на конец 2014 года, в статическом списке находилось более тысячи доменов, из них около четверти — домены Google .
Использование
-
На клиентской стороне
- Chromium 4 и все браузеры на его основе .
- Firefox 4
- NoScript
- На стороне сайта (все перечисленные включены в HSTS preload list ) :
Отслеживание с помощью HSTS
HSTS может быть использован для трудноподавляемого маркирования браузеров высокоустойчивыми метками (см. также Супер-cookie ) независимо от использования режима "инкогнито".
Браузер Mozilla Firefox начиная с версии 85 предоставляет средства противодействия отслеживанию основанному на HSTS-кэшировании .
Примечания
- . Mozilla Developer Network . Дата обращения: 12 июня 2015. 18 марта 2014 года.
- Hodges, Jeff; Jackson, Collin; Barth, Adam.: . . IETF (ноябрь 2012). Дата обращения: 21 ноября 2012. 26 февраля 2020 года.
- Hodges, Jeff; Jackson, Collin; Barth, Adam.: . . IETF (ноябрь 2012). Дата обращения: 30 июня 2014. 26 февраля 2020 года.
- Hodges, Jeff; Jackson, Collin; Barth, Adam.: . . IETF (ноябрь 2012). Дата обращения: 21 ноября 2012. 26 февраля 2020 года.
- от 3 апреля 2018 на Wayback Machine / Chromium — Preloaded HSTS sites
- от 7 февраля 2015 на Wayback Machine This form is used to submit domains for inclusion in Chrome’s HTTP Strict Transport Security (HSTS) preload list.
- от 27 ноября 2019 на Wayback Machine / Microsoft Enge Blog, 2015-06-09
- ↑ . Дата обращения: 17 сентября 2015. 3 апреля 2018 года.
- ↑ от 24 февраля 2020 на Wayback Machine / Mozilla Security Blog, 2012
- от 4 марта 2016 на Wayback Machine / NDSS ’15, 8-11 February 2015 // Internet Society, ISBN 1-891562-38-X (англ.)
- Adam Barth. (англ.) . Chromium Blog (26 января 2010). Дата обращения: 19 ноября 2010. Архивировано из 13 августа 2011 года.
- Sid Stamm. (англ.) (26 августа 2010). Дата обращения: 19 ноября 2010. Архивировано из 4 июля 2012 года.
- Giorgio. (англ.) (23 сентября 2009). Дата обращения: 19 ноября 2010. Архивировано из 4 июля 2012 года.
- от 18 февраля 2020 на Wayback Machine / Chromium
- . sophos.com . Дата обращения: 1 декабря 2015. 11 февраля 2020 года.
- . mozilla.org . Дата обращения: 19 февраля 2021. 3 февраля 2021 года.
Ссылки
- Спецификация HTTP Strict Transport Security (HSTS) , ноябрь 2012 (англ.)
- / NDSS ’15, 8-11 February 2015 // Internet Society, ISBN 1-891562-38-X (англ.)
- 2021-03-29
- 1