HSTS

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

HSTS (сокр. от англ. HTTP Strict Transport Security) — механизм, активирующий форсированное защищённое соединение через протокол HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение, вместо использования HTTP-протокола. Механизм использует особый заголовок Strict-Transport-Security для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP (http://). Механизм специфицирован в RFC6797 в ноябре 2012 года.

HSTS помогает предотвратить часть атак, направленных на перехват соединения между пользователем и веб-сайтом, в частности атаку с понижением степени защиты и воровство кук.

Дополнительную защиту https-соединений предоставляют методы Certificate pinning (хранение списка разрешенных для домена сертификатов в исходных текстах браузера) и HTTP Public Key Pinning. Они предотвращают множество возможностей подмены tls-сертификатов https-сервера.

Спецификация[править | править вики-текст]

Спецификация была разработана и предложена Джеффом Оджом (=JeffH, Paypal), Адамом Бартом (Университет Беркли), Колином Джексоном (Университет Карнеги — Меллон). После обсуждения в рабочей группе IETF WebSec, спецификация была принята в качестве RFC 19 ноября 2012 года.

Механизм[править | править вики-текст]

Сервер сообщает о политиках HSTS с помощью специального заголовка при подключении через шифрованный HTTPS (Заголовок HSTS при подключении по нешифрованному HTTP игнорируется).[1] Например, сервера Википедии посылают заголовок HSTS со сроком действия 1 год, распространяющийся на все поддомены (Поле max-age указывает срок действия в секундах, величина 31536000 приблизительно соответствует одному году): Strict-Transport-Security: max-age=31536000; includeSubDomains;.

Когда сайт применяет политику HSTS, пользовательские браузеры, корректно воспринимающие заголовок HSTS должны:[2]

  1. Автоматически автономно преобразовывать все http ссылки на данный сайт на https-ссылки. (Например, вместо http://ru.wikipedia.org/wiki/HSTS браузер будет использовать https://ru.wikipedia.org/wiki/HSTS, преобразование произойдет до реального обращения к серверу.)
  2. Если безопасность соединения https не может быть проверена (в частности, если TLS-сертификат сервера не подписан доверенным ключом), будет показано сообщение об ошибке, и пользователь будет лишен доступа к сайту.[3]

Действующие политики HSTS помогают защитить пользователей сайта от части пассивных и активных атак.[4] Атаки класса MiTM значительно усложняются.

Использование[править | править вики-текст]

Примечания[править | править вики-текст]

  1. HTTP Strict Transport Security. Mozilla Developer Network. Проверено 12 июня 2015.
  2. Hodges, Jeff Section 5. HSTS Mechanism Overview. RFC 6797. IETF (November 2012). Проверено 21 ноября 2012.
  3. Hodges, Jeff Section 12.1. No User Recourse. RFC 6797. IETF (November 2012). Проверено 30 июня 2014.
  4. Hodges, Jeff 2.3. Threat Model. RFC 6797. IETF (November 2012). Проверено 21 ноября 2012.
  5. Adam Barth. Security in Depth: New Security Features (англ.). Chromium Blog (January 26, 2010). Проверено 19 ноября 2010. Архивировано из первоисточника 13 августа 2011.
  6. Sid Stamm. HTTP Strict Transport Security has landed! (англ.) (August 26, 2010). Проверено 19 ноября 2010. Архивировано из первоисточника 4 июля 2012.
  7. Giorgio. Strict Transport Security in NoScript (англ.) (23 сентября 2009). Проверено 19 ноября 2010. Архивировано из первоисточника 4 июля 2012.

Ссылки[править | править вики-текст]