Боротьба з перехопленням HTTPS-трафіку

Згідно з дослідженнями співробітників Mozilla, Google, Cloudflare та низки університетів, від 4 до 11% захищених з'єднань «прослуховуються» в результаті встановлення сумнівних кореневих сертифікатів на комп'ютерах користувачів, які навіть не здогадуються про ризик. Сьогодні я розповім, як наша команда привертає увагу до цієї проблеми за допомогою Яндекс.Браузера.

браузер

Якщо не можна розшифрувати потік, то його можна перенаправити через себе, змусивши браузер встановлювати з'єднання не з сайтом, а зі своїм сервером (атака типу man-in-the-middle). Наприклад, можна зламати маршрутизатор користувача та за допомогою заміни DNS-відповідей перенаправляти його на фішинг-сайт для крадіжки паролів. Досвідчений користувач навряд чи з таким зіткнеться, а своїм близьким можна налаштувати альтернативний сервер DNS з підтримкою DNSCrypt прямо в браузері . Але якщо зловмисник захоче піти далі та почне виступати посередником між користувачем та HTTPS-сайтом, то тут нас врятує інше завдання сертифікату – автентифікація.

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

перехопленням

Щоб обійти такий захист та приховати від користувача факт свого втручання у трафік, залишається лише одне – помістити у системне сховище свій кореневий сертифікат, який легалізує в очах браузера підписані ним сертифікати зловмисника. Причому зробити це може будь-яка програма. А з правамиадміністратора ще й без попереджень та запитань користувачеві. Людина встановлює з сумнівного сайту програму, а на додачу отримує прослуховування трафіку. І жоден сучасний браузер на це не відреагує. Ви побачите той самий напис «Надійний» і зелені замочки. Хіба що у випадку з Firefox зловмисникам знадобиться додати свій кореневий сертифікат ще й у сховище цього браузера, тому що він не використовує системне (але зробити це анітрохи не складніше).

https-трафіку

https-трафіку

кореневий

кореневий

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