Все о фильтрации HTTPS в AdGuard
Этот пост предназначен больше для технически подкованных людей и призван подробно описать, что такое фильтрация HTTPS и зачем она нужна в Adguard. Дело в том, что HTTPS - это очень чувствительная и важная тема, и мы хотим быть максимально открытыми в этом вопросе.
Что такое HTTPS
HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP, для поддержки шифрования в целях повышения безопасности. Этот протокол используется для защищенной передачи важной информации - персональных данных, реквизитов банковских карт, и т.д.
Использование HTTPS - сугубо положительная вещь, ведь зашифрованный трафик защищен от “прослушивания” третьей стороной, и мы это только приветствуем. Рост HTTPS сильно ускорился в последние годы в связи с тем, что это поощряется Google, а также с появлением бесплатного центра сертификации Let’s Encrypt.
На диаграмме ниже мы описали разницу между простым протоколом HTTP и защищенным протоколом HTTPS.
Что такое сертификат безопасности?
Итак, HTTPS означает шифрование данных. Но остается еще одна проблема: как быть уверенным, что вы установили зашифрованную связь именно с тем сайтом, с которым планировали? Тут в игру и вступают сертификаты безопасности. Сертификат является удостоверением, что сайт представляет собой именно тот ресурс, за который себя и выдает. Если такого сертификата у сайта нет, или в нем содержится неправильная информация, то браузер не позволит вам установить защищенное соединение. При этом важно, чтобы сертификат, который использует сайт, был выдан центром сертификации, которому доверяет ваш браузер. Такие центры сертификации гарантируют, что сертификат выдан именно владельцу сайта.
Зачем нужно уметь фильтровать HTTPS?
Дело в том, что сейчас всё больше и больше сайтов, блогов и социальных сетей переходит на HTTPS. Кроме блогов и сайтов на HTTPS переходят всё больше рекламных сетей, так как это необходимо для отображения рекламы на сайте, работающем по HTTPS. Вот примеры популярных сайтов, рекламу и трекинг на которых невозможно заблокировать без фильтрации HTTPS: youtube.com, facebook.com, twitter.com.
Фильтрация HTTPS в Windows и Mac версии включена по умолчанию. В Android - нужно включать ее вручную.
Как происходит фильтрация зашифрованного трафика?
Если бы это было просто, HTTPS не был бы безопасным. При попытке браузера соединиться с сервером, Adguard устанавливает два защищенных соединения. Одно - с браузером, второе - с сайтом. Важно, чтобы при этом браузер "доверял" Adguard и созданному им соединению. Для этого Adguard генерирует и устанавливает специальный корневой сертификат в систему и при необходимости - в некоторые браузеры (например, Firefox). Таким образом, Adguard может увидеть, что происходит внутри защищенного соединения, и выполнить свою работу - заблокировать рекламу и трекинг.
Для лучшего понимания мы изобразили этот процесс на картинке:
Остается ли мой трафик защищенным и зашифрованным?
Конечно! Ваше соединение с удаленным сервером остается зашифрованным и защищенным. Adguard, точно также как и браузер, проверяет сертификат сервера перед тем как принимает решение о фильтрации.
Тем не менее, фильтрация HTTPS имеет некоторые недостатки. Самым важным из них является то, что она скрывает от браузера свойства реального сертификата, используемого сайтом. Вместо этого браузер видит сертификат, сгенерированный Adguard
В связи с этим, мы предпринимаем несколько дополнительных мер, призванных улучшить безопасность соединения, о которых речь пойдет ниже.
Финансовые сайты, и сайты с важной персональной информацией
По-умолчанию, Adguard не фильтрует информацию для сайтов банков, платежных систем, а также сайтов с важной персональной информацией. Мы поддерживаем список из более чем 1300 таких сайтов-исключений.
Если вы считаете, что какой-то сайт должен быть добавлен в этот список, пожалуйста, напишите нам об этом.
Сертификаты высокой надежности (EV)
Adguard предоставляет возможность исключить из фильтрации все сайты, которые используют сертификаты высокой надежности (extended validation или EV).
Сертификат высокой надежности обеспечивает более высокий уровень надежности и гарантий безопасности чем стандартные сертификаты, доказывая тем самым, что сайт не является одним из мошеннических или поддельных сайтов. Когда вы открываете веб-сайт, защищенный таким сертификатом, адресная строка становится зеленой, а название организации отображается в интерфейсе браузера.
Известные проблемы, связанные с фильтрацией HTTPS
Недавнее исследование показало, что от 5 до 10% HTTPS соединений осуществляется приложениями, осуществляющими фильтрацию HTTPS. В основном, это делают разнообразные антивирусы. Плохая новость в том, что 24 из 26 протестированных антивирусов тем или иным способом понижали защищенность соединения, а две трети - создавали “уязвимые” к взлому HTTPS соединения.
Вывод, сделанный исследователями - сообщество, занимающееся интернет-безопасностью, должно обратить пристальное внимание на работу программ, фильтрующих защищенные соединения. Разработчики же таких программ должны максимально серьезно озаботиться качеством реализации фильтрации.
Хочу заметить, что Adguard не был протестирован исследователями. По нашим прикидкам, судя по набору проверок, на момент тестирования мы бы получили максимальную оценку A*. Тем не менее, эта оценка не является идеалом. Есть целый набор проблем, которые были обозначены исследователями, но которые не учитывались в итоговой оценке.
Мы в Adguard совершенно согласны с выводами, сделанными исследователями. Более того, мы хотим быть открытыми с пользователями и рассказать о том, какие проблемы у нас сейчас есть, и какие шаги мы предпринимаем для улучшения качества и защищенности механизмов фильтрации. Список этих проблем отсортирован по приоритетности.
Большая часть проблем, найденных в исследовании выше, связана с механизмами валидации сертификатов. На этом мы хотим сконцентрироваться в первую очередь. Мы ведем работу над отдельной библиотекой валидации сертификатов, более того, мы хотим выложить ее код в открытый доступ. В отдельной статье мы перечислили все известные недостатки фильтрации HTTPS в Adguard и планируемые сроки их устранения.
Как самостоятельно проверить качество HTTPS?
Существует несколько сайтов, созданных специально для проверки качества HTTPS соединений. Эти сайты проверяют, подвержен ли браузер (или браузер+Adguard в нашем случае) основным уязвимостям. Если вы собираетесь использовать программу, фильтрующую HTTPS (не обязательно Adguard, это может быть какой-либо антивирус), мы советуем проверить качество соединения на этих сайтах.