HTTPS (Hypertext Transfer Protocol Secure) — захищена версія HTTP, у якій вебтрафік шифрується, а справжність сайту підтверджується за допомогою протоколу TLS.
Як працює HTTPS
HTTPS — це звичайний HTTP, що передається всередині TLS-з’єднання, за замовчуванням на TCP-порт 443 (спершу описаний у RFC 2818). Відкриваючи адресу https://, браузер виконує TLS-рукостискання, перевіряє, що цифровий сертифікат сервера дійсний для цього домену й підписаний довіреним центром сертифікації, а потім обмінюється зашифрованими запитами й відповідями. Значок замка означає, що перевірка пройшла успішно. HTTP/3 забезпечує такий самий захист поверх QUIC.
Чому HTTPS важливий
Без шифрування будь-хто на шляху трафіку — користувач загальнодоступного Wi-Fi, зламаний роутер чи провайдер — може читати й змінювати дані. У 2010 році розширення для браузера Firesheep показало, як легко викрасти сесійні cookie з незашифрованих сайтів у спільній мережі Wi-Fi. HTTPS захищає паролі, cookie та дані форм і не дає впроваджувати в сторінки рекламу чи шкідливий код. З 2018 року Chrome позначає звичайні HTTP-сторінки як «Не захищено», а безкоштовні сертифікати Let’s Encrypt допомогли зробити HTTPS стандартом для переважної частини вебтрафіку.
Проте HTTPS має обмеження:
- Він підтверджує лише, що ви підключені до домену з адресного рядка, — фішингові сайти теж мають дійсні сертифікати.
- SSL stripping, продемонстрований інструментом sslstrip у 2009 році, переводить користувача на HTTP під час атаки «людина посередині», якщо сайт примусово не вимагає HTTPS.
- Він не захищає дані, що потрапили на скомпрометований сервер чи в заражений браузер.
Рекомендації
- Віддавати всі сторінки через HTTPS і перенаправляти HTTP-запити.
- Увімкнути HTTP Strict Transport Security (HSTS, RFC 6797) і розглянути попереднє завантаження HSTS.
- Позначати cookie прапорцем Secure й уникати змішаного вмісту.
- Користувачам — перевіряти доменне ім’я, а не лише замок.