З Firefox 52 видалять API рівня заряду акумулятора для збереження приватності користувача даних



Компанія Mozilla заблокує доступ до однієї з функцій браузера Firefox, відомої як Battery Status API. З її допомогою веб-сайти могли дізнаватися про рівень заряду батареї ноутбука, планшета або смартфона користувача. Рішення було прийнято з метою убезпечити користувачів право на приватність. Хронологія подій така, що історія почалася з підозр експертів, за ними пішла реалізація і реальне використання. На даний момент не зрозуміло, що будуть робити з цією функцією інші браузери.

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

Мета функції — пропонувати користувачам різні версії сайту в залежності від залишку заряду пристрою. Якщо пристрій розряджається, можна запропонувати версію сайту, яка не так сильно «їсть» батарейку. За різними версіями стоїть велика робота власників і авторів сайтів, розробників та інших. Battery Status API отримувала статус зарядки від мережі або від батарей і те, скільки часу залишилося до відключення пристрою. А також, який відсоток батареї залишився невитраченим. Конкретне застосування функції виглядало так: соціальні мережі відключали автоматичне відтворення відео, а сервіси з картами відображали менше деталей, без яких можна було обійтися.


Потенційна загроза стала реальністю, коли два дослідника безпеки з Прінстонського Університету виявили скрипти стеження, які використовувалися в реальному світі для функції
fingerprint
з конкретного пристрою з метою подальшого спостереження за ним у різних ситуаціях. Це відкриття мотивувало розробників компанії Mozilla видалення «нехорошої» можливості свого браузера. Остаточно функція була прибрана 27 жовтня 2016-го року. З моменту виявлення проблеми минуло 17 місяців.

Крім Firefox ще два браузера підтримували функцію: Opera і Google Chrome. Нехай Battery Status API є частиною специфікації HTML5, браузери IE, Edge ніколи не реалізовували її. WebKit підтримка Battery Status API була, але в браузері Safari вона ніколи не з'являлася. Існує лише кілька общевозможных застосувань в реальності за рамками задачі ідентифікації користувача.



Про самої функції
Battery Status API була задокументована у 2012-му році. Mozilla Firefox перший браузер, в якому вона була реалізована. Battery status API додає в window.navigator метод navigator.getBattery(). У прикладі нижче видно, як змінюється статус зарядки (підключення до мережі) і рівень заряду батареї і час, що залишився. Це можливо із застосуванням функції listen для подій: chargingchange, levelchange, chargingtimechange, dischargingtimechange.

navigator.getBattery().then(function(battery) {
function updateAllBatteryInfo(){
updateChargeInfo();
updateLevelInfo();
updateChargingInfo();
updateDischargingInfo();
}
updateAllBatteryInfo();

battery.addEventListener. ('chargingchange', function(){
updateChargeInfo();
});
function updateChargeInfo(){
console.log("Battery charging? "
+ (battery.charging ? "Так" : "Ні"));
}

battery.addEventListener. ('levelchange', function(){
updateLevelInfo();
});
function updateLevelInfo(){
console.log("Battery level: "
+ battery.level * 100 + "%");
}

battery.addEventListener. ('chargingtimechange', function(){
updateChargingInfo();
});
function updateChargingInfo(){
console.log("Battery charging time: "
+ battery.chargingTime + " с");
}

battery.addEventListener. ('dischargingtimechange', function(){
updateDischargingInfo();
});
function updateDischargingInfo(){
console.log("Battery discharging time: "
+ battery.dischargingTime + " с");
}

});

У сайту не має бути можливості зв'язати особистість користувача в режимі інкогніто з різними IP VPN і без нього. У разі швидкого відключення VPN, рівень заряду акумулятора буде приблизно однаковим. Прочитавши цю інформацію, браузер передасть її сайту. Два набору даних будуть співставлені і можна буде зробити висновок, що користувач один і той же.


Guardian наводить слова Лукаша Олійника, консультанта з безпеки і дослідника в UCL, з приводу того, що відбувається з Firefox. Він був одним з чотирьох людей, які першими виявили потенційну загрозу Battery Status API. Звичайно, він був радий, побачити як його робота принесла плоди. Фахівець не очікував, що компанія-розробник повністю відмовиться від використання API. «Це і правда безпрецедентно. Я не знаю про подібний розвиток подій за всю історію розробки. Щодо відстрочки у процесі видалення: це не так вже критично, тому що ми пропонували внести зміни в роботу функції в минулому році, а в результаті отримали повне видалення. Факт, що це відбувається для дотримання конфіденційності, підкреслює важливість прийнятого рішення». У своїй заяві представники Mozilla сказали, що для веб-контенту функція тепер доступна, але її все ще можна знайти в розширеннях. Battery Status API видалити 52-ї версії Firefox.

Поки що функцію зібралася видаляти тільки Mozilla. Розробники движка Webkit, який лежить в основі Safari від Apple, також запропонували видалити код API. Видання The Guardian звернулося до компаній Google і Mozilla за коментарями. Apple від коментарів відмовилися. Підтвердження про те, що функція видалена з доступу розміщено на офіційному сайті Mozilla.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.