Исследователи из Google, Университета Пердью, Международного института информационных технологий Хайдарабада и Ганноверского университета имени Вильгельма Лейбница несколько лет прочесывали 2000 отчетов об ошибках, составленных из более чем 300 миллионов ошибок, с которыми сталкивались пользователи Google Chrome, чтобы лучше классифицировать предупреждения об ошибках сертификатов.

Исследователи, в числе которых Эмили Старк (Emily Stark), Адрианна Портер Фелт (Adrienne Porter Felt) и Райан Сливи (Ryan Sleevi) из Google, надеялись обнаружить источник сообщений об ошибках. В идеале по результатам проекта они хотели реализовать более полезные предупреждения HTTPS, которые бы не слишком пугали пользователей, но при этом и не игнорировались ими.

В прошедшую пятницу исследователи опубликовали свои выводы в документе «Места обитания диких предупреждений: первопричины ошибок сертификатов HTTPS в Chrome» (Where the Wild Warnings Are: Root Causes of Chrome HTTPS Certificate Errors в формате PDF) и планируют представить свои находки на 24-й конференции ACM по компьютерам и информационным технологиям, которая состоится в конце октября в Далласе, штат Техас.

https://twitter.com/__apf__/status/908780673137205248

Исследователи обнаружили, что многие ошибки спровоцированы на стороне клиента или происходят из-за проблем с сетью.

Об этом они пишут так: «В своей предыдущей работе мы связывали проблемы HTTPS с  действиями разработчиков. Однако выяснилось, что проблемы клиента и сети имеют как минимум не меньшее влияние, чем неправильная конфигурация сервера. Из тех отчетов, которые классифицированы автоматически, половина — это ошибки сервера (31,2% от общего количества отчетов), а другая половина — ошибки клиента или сети (31,6%). После ручного анализа неклассифицированных отчетов чаша весов склонилась в пользу ошибок несерверного происхождения».

Значительная часть ошибок связана с работой так называемых Captive Portal — порталов, перехватывающих пользователя при подключении, например, к публичным сетям (в аэропортах, отелях и так далее), которые подменяют имя сайта и тем самым вызывают сообщение об ошибке.

Исследователи сообщают, что теперь вместо предупреждения безопасности для ошибок, связанных с работой Captive Portal, в Chrome предусмотрен более информативный отдельный интерфейс. Также с целью лучшего обнаружения Captive Portal в браузер включен список «сертификатов для потенциальных ресурсов Captive Portal», распространяемый через канал разработчиков.

Кроме того, неправильно выставленное время на системах Windows спровоцировало на удивление большое число «ложных ошибок», как их называют сами исследователи. 33,5% ошибок сертификатов появлялись из-за неправильно установленного локального времени в системе. Если в системе установлены время и дата «из будущего», браузер может прийти к выводу, что пользователь столкнулся с истекшим сертификатом.

Теперь Chrome будет бороться с ошибками времени, показывая специальное предупреждение для таких пользователей — красные часы с подписью «Ваши часы спешат».

«Для более точного определения ошибки часов клиента мы создали защищенную службу времени, у которой Chrome запрашивает точное время при возникновении ошибки с датой сертификата. Столкнувшись с сертификатом с неправильной датой, браузер отправляет HTTP-запрос, чтобы узнать текущее время, и задерживает отображение предупреждения на время до трех секунд. Полученный ответ должен быть подписан закрытым ключом, соответствующим открытому ключу, встроенному в Chrome. Если в течение трех секунд ответ будет получен и время в нем будет значительно отличаться от локальных часов, браузер отобразит предупреждение с часами», — пишут исследователи.

По словам исследователей, компания недавно изменила механизмы, из-за которых в Chrome для Android появлялись ошибки с нехваткой промежуточных сертификатов,  составлявшие основную долю всех ошибок сертификатов в этой ОС, а именно 36%. Эти ошибки возникают, если сервер не предоставил нужные сертификаты и клиент не может составить правильную цепочку сертификатов. В Google добавили механизм под названием Authority Information Access в Chrome 58, чтобы исправить эту проблему.

«Если удостоверяющий центр сертификата сообщает о неверном издателе, Chrome находит последний сертификат без издателя в отправленной сервером цепочке. Если этот сертификат содержит URL-адрес AIA, браузер снова отправляет сертификат на проверку удостоверяющим центром. В случае неудачной попытки Chrome будет повторять процесс до составления корректной цепочки сертификатов или пока не будет исчерпано максимальное число попыток».

Этот механизм помог сократить количество ошибок сертификатов. Исследователи утверждают, что после майского внедрения системы в Chrome 58 к августу количество ошибок, связанных с отсутствием промежуточных сертификатов, снизилось с 36% до всего лишь 3%.

За последние годы в Google сделали немало для улучшения информативности предупреждений, отображаемых в Chrome. В 2014 году в Chrome дебютировал красный экран, который появляется, если Google считает сайт фишинговым или подозревает о наличии вредоносных программ. В 2015 году предупреждения в браузере стали более понятными для обычных людей. Теперь просто пишется «Ваше соединение не защищено» красными буквами на сером фоне и изображен перечеркнутый красный замок.

Всего через пару недель Chrome начнет считать HTTP-страницы, которые запрашивают такие сведения, как учетные данные и пароли, «небезопасными». В планах Google в конечном счете отображать предупреждение на всех HTTP-страницах, даже если пользователь открывает их в режиме инкогнито. Все для того, чтобы пользователи четко понимали, что в режиме HTTP обмен данными между браузером и веб-сервером происходит в открытом, незащищенном виде.

Категории: Мошенничество