Що таке HSTS?

click fraud protection

HSTS — це заголовок відповіді веб-безпеки. Назва є акронімом від «HTTP Strict Transport Security». Функція заголовка HSTS полягає в тому, щоб змусити браузери підключатися до веб-сайтів за допомогою HTTPS.

Порада. HTTPS використовує шифрування, щоб захистити ваше веб-з’єднання від хакерів, які намагаються його змінити або відстежувати. HTTP не має цих засобів захисту, тому хакер у потрібному місці може відстежувати та змінювати ваш HTTP-трафік.

Заголовок веб-відповіді — це фрагмент метаданих, який надсилає сервер, коли він відповідає на веб-запити. Підмножину цих заголовків часто називають заголовками безпеки, оскільки їх мета — підвищити безпеку веб-сайту та користувача.

Заголовок HSTS складається з двох обов’язкових частин і двох необов’язкових. Ім’я заголовка «Strict-Transport-Security», а потім оператор і значення «max-age» є обов’язковими. Інша пара операторів «includeSubDomains» і «preload» також іноді використовується.

Коли браузер отримує відповідь HTTPS із заголовком HSTS, йому вказується підключитися до цього веб-сайту та всіх ресурсів на ньому, використовуючи виключно HTTPS протягом таймера «max-age». «Максимальний вік» — це змінна, яка описує, як довго браузер повинен запам’ятати налаштування. Значення «max-age» вказано в секундах, рекомендоване значення – «31536000», тобто один рік.

Ідея полягає в тому, що протягом цього таймера, який скидається з кожним наступним завантаженням сторінки, браузер вимагає підключення HTTPS і відхилятиме будь-які ресурси HTTP. Це захищає від атак «особа посередині», коли хакер між вами та веб-сервером може маніпулювати отриманими вами відповідями.

Основна точка, в якій це захищає вас, - це перше з'єднання. Зазвичай, коли ви підключаєтеся до веб-сайту, ви можете запросити веб-сайт HTTP, а потім отримати переадресацію на веб-сайт HTTPS. На жаль, хакер на серединній посаді може запобігти цьому оновлення до HTTPS, а потім вкрасти або відстежувати вашу активність на веб-сайті. Однак після того, як заголовок HSTS побачить браузер, ваш браузер встановить навіть перше з’єднання через HTTPS, захищаючи вас від хакерів.

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

Оператор «includeSubDomains» використовується, щоб вказати, що заголовок також має застосовуватися до всіх субдоменів веб-сайту.

Список попереднього завантаження HSTS

Ви можете помітити, що HSTS все ще не захищає вас під час першого підключення до веб-сайту. Тут на допомогу приходить оператор «попереднє завантаження». Веб-сайти можуть подаватись на включення до списку попереднього завантаження HSTS, оператор «попереднього завантаження» є обов’язковим індикатором, якщо це так. Список попереднього завантаження HSTS регулярно оновлюється та зберігається у браузері, якщо сайт включено до нього, тоді браузер застосовуватиме до нього захист HSTS. Це відбувається навіть при першому підключенні до того, як браузер міг побачити заголовок відповіді HSTS.

Порада: до списку попереднього завантаження HSTS потрібно додати «максимальний вік» від року або більше.

Проблеми з HSTS

Одним з головних моментів HSTS є те, що він представляє повідомлення про помилку, якщо є якісь проблеми з підключенням HTTPS. Як додатковий захід безпеки, користувачі не повинні мати можливість обійти повідомлення про помилки HSTS, як вони могли б це зробити зі звичайними помилками HTTPS.

На жаль, це може спричинити проблеми, якщо компанія впровадить HSTS до того, як весь веб-сайт і кожен ресурс, що використовується на ньому, підтримує HTTPS. У цьому випадку користувачі почнуть бачити повідомлення про помилки безпеки HSTS, які вони не можуть обійти, по суті, повністю зламавши веб-сайт. Найгірше те, що просте видалення заголовка HSTS не вирішує проблему для цих користувачів, оскільки їхній браузер продовжуватиме застосовувати HSTS протягом потенційно багатомісячного «максимального віку».

Тому дуже важливо, щоб під час першого розгортання заголовка використовувався короткий «максимальний вік». Якщо є якісь проблеми, то вони залишаються лише на короткий час після виявлення. Лише якщо ви впевнені, що ваш веб-сайт повністю сумісний із HSTS, слід налаштувати довгий таймер HSTS.

Порада: також можна встановити «максимальний вік» на 0, це по суті видаляє збережений запис HSTS від усіх, хто його бачить. Це може допомогти, якщо є проблема, але це вплине лише на користувачів, коли й якщо вони вирішать спробувати ще раз.