Шифрование в интернете: HTTPS — не панацея
Благодаря шифрованию HTTPS Интернет становится безопаснее, но многих владельцев сайтов пугают сложности. Выход: оппортунистическое шифрование защитит даже по HTTP
Безопасные сайты в интернете можно распознать по аббревиатуре HTTPS (Hypertext Transport Protocol Secure) и зелёной маркировке защиты в левой части адресной строки браузера — так обозначается шифрование обмена данными между сайтом со всеми модулями и браузером. Кроме того, перед началом передачи данных сервер предъявляет действительный сертификат. Так пользователи могут быть уверены, что открывают «правильный» сайт, а не подложенный злоумышленниками.
Впрочем, это подход в духе «всё или ничего»: сервер передает данные или полностью в зашифрованном виде по протоколу HTTPS, или полностью в незашифрованном по HTTP. Но часто бывают случаи, когда шифруется только часть сайта, например, если он содержит рекламу, которая передается по HTTP, или использует скрипты, которые опять-таки обращаются к HTTP-ресурсам. Это приводит к проблемам в HTTPS: браузеры выводят предупреждения, блокируют или неправильно отображают сайты. В таких случаях выход предлагает оппортунистическое шифрование (OE, Opportunistic Encryption).
Оппортунистическое шифрование
Оппортунистическое шифрование (OE) является важным промежуточным решением между HTTP и HTTPS. Этот метод при необходимости позволяет шифровать передачу данных сайта по HTTP. Побочный эффект использования OE — данные сайта могут передаваться по HTTP/2 на более высоких скоростях.
[caption id=«attachment_119977» align=«aligncenter» width=«1200»]
Увеличение доли безопасных соединений
Согласно регулярным оценкам Google, пользователи Chrome все чаще обмениваются данными по HTTPS-соединению[/caption]
Шифрование HTTP
OE — это метод, в настоящее время установленный в рамках проекта Инженерного совета Интернета (Internet Engineering Task Force). Суть заключается в следующем: для передачи данных HTTP-сайтов применяется криптографический протокол TLS (Transport Layer Security). Похоже на HTTPS только на первый взгляд, поэтому при использовании OE в адресной строке не видно пометки «HTTPS».
Для того, чтобы уловить разницу, нужно сравнить установление соединения браузера и сервера по HTTPS и OE и проанализировать поведение браузера. На правой странице предлагаем схематическое описание принципа работы обоих методов. HTTPS рассчитан на обеспечение безопасности с самого начала и срабатывает сразу вместе с конкретным запросом браузера об установлении зашифрованного соединения.
Если сервер не может его установить, обмен данными завершается уведомлением об ошибке, не успев действительно начаться. С точки зрения безопасности это правильное решение, поскольку по HTTPS передача данных в незашифрованном виде не может осуществляться.
OE работает по-другому. Браузер запрашивает у сервера незащищенный HTTP-сайт через порт 80. Через так называемую альтернативную службу, простой дополнительный заголовок, сервер в ответ сообщает браузеру, что данные аналогичного сайта он может передавать не только через порт 80, но и через порт 443 с использованием TLS. Если браузер поддерживает OE (в настоящее время только Firefox), следующие запросы могут происходить по TLS.
Как и в случае с HTTPS, сначала браузер проверяет сертификат сервера, затем происходит обмен ключом шифрования, и только потом устанавливается защищенное соединение между браузером и сервером. Но, в отличие от HTTPS, если шифрование не удается, передача данных не прерывается — происходит переход к незашифрованной связи, как изначально браузер запрашивал у сервера.
Технически отличие между HTTP с TLS и HTTPS, что касается запросов, заключается не в мощности шифрования, а только в букве S в адресной строке. Разница заключается в установлении соединения с сайтом и в том, что браузеры по-разному осуществляют соединения HTTP и HTTPS: при зашифрованном HTTP-соединении, в отличие от HTTPS, может быть сомнительный смешанный контент, например, ссылки на HTTP-ресурсы или реклама, которая передается только в открытом виде.
Сравнение скорости: обращение к сайту по HTTP и HTTP/2
Скорость протокола HTTP/2 намного выше, как показывают тесты, но каналы передачи данных по-прежнему защищаются HTTPS. HTTP-соединения по протоколу HTTP/2 позволяет только OE.
Больше скорости, меньше безопасности
Оппортунистическое шифрование можно спокойно воспринимать как инструмент для заполнения пробелов, пока все сайты не перешли на HTTPS — а этот процесс займет не один год. Между тем OE можно использовать для увеличения скорости обмена данными. Для HTTP/2, второй версии протокола HTTP, шифрование обязательно. По HTTP/2 передаются данные защищенных сайтов, причем скорость сайтов возрастает (см. справа), но только тех из них, которые поддерживают HTTPS. Поскольку OE работает как раз на HTTP-сайтах, данные таких сайтов тоже могут передаваться по более быстрому протоколу HTTP/2.
Пока не все сайты перешли на HTTPS, оппортунистическое шифрование является практическим временным решением
Что касается безопасности, OE выполняет не всю работу. Этим методом можно защититься от пассивного прослушивания, например, спецслужбами, которые следят за сетевым трафиком в целом. Активной же атаке достаточно перехватить только первый заголовок, в котором сервер предлагает альтернативную службу. Как только удаляется это указание, процесс установления шифрования прерывается и появляется возможность прослушивать незащищенный канал.
OE не представляет собой альтернативу HTTPS — на этом его сторонники даже не настаивают. Скептики также указывают на то, что OE — это отличный повод для администраторов сайтов не переходить на HTTPS. Но в действительности получается не совсем так: нередко перечисленные технические причины переходу препятствуют.
HTTPS совсем исчезнет?
Три метода обращения к веб-сайтам
Заезд Браузер и веб-сайт обмениваются данными или по незашифрованному каналу по протоколу HTTP, или по зашифрованному каналу по HTTPS, или при помощи нового метода шифрования Opportunistic Encryption по HTTP.
HTTP
При стандартном запросе по HTTP браузер обращается к серверу и отправляет запрос по незашифрованному каналу, на который сервер отвечает без аутентификации также в открытом виде.
HTTPS
Перед тем, как отправить хотя бы бит полезных данных, по протоколу HTTPS между браузером и сервером устанавливается зашифрованное соединение. Этот метод подразумевает в том числе аутентификацию.
Новинка: Оппортунистическое шифрование
Оппортунистическое шифрование начинается с незашифрованного запроса. Шифрование устанавливается только тогда, когда сервер отправляет альтернативный заголовок с предложением зашифровать канал.
Фото: компании-производители