Чи дійсно ваш Mac здійснює запити до Apple кожного разу, коли ви запускаєте програму? Це питання стало актуальним після 12 жовтня 2020 року, коли сервери Apple працювали нестабільно, і комп’ютери Mac потребували значного часу для відкриття програм. Зараз ми детально розглянемо, що саме відбувається.
Варто зазначити, що це стосується як macOS Big Sur, так і macOS Catalina. Повільна робота та пов’язані з цим питання конфіденційності не є новими для macOS Big Sur.
Чому програми для Mac використовують підписи розробника?
Усі програми для Mac, які ви завантажуєте, незалежно від джерела – Mac App Store або інтернет, – мають цифровий підпис розробника. Коли ви запускаєте програму, система перевіряє цей підпис, щоб підтвердити легітимність розробника та переконатися, що програма не була підроблена. Це є важливим механізмом захисту від шкідливого програмного забезпечення.
Наприклад, коли Mozilla розробляє Firefox, вона компілює програмний файл і підписує його власним сертифікатом розробника. Це є підтвердженням того, що файл є офіційним і створеним Mozilla. Якщо файл програми буде змінено зловмисниками, ваш Mac виявить цю невідповідність.
Ці сертифікати мають обмежений термін дії, як правило кілька років, але вони можуть бути “відкликані” достроково. Наприклад, якщо Apple виявить, що розробник використовує свій сертифікат для поширення шкідливих програм, компанія анулює цей сертифікат. Після цього комп’ютери Mac не зможуть запускати програми з таким відкликаним сертифікатом.
Як працює OCSP: чому Mac “телефонує додому”?
Виникає питання, як саме Mac дізнається, чи Apple відкликала сертифікат програми на вашому комп’ютері? Для цього використовується протокол перевірки статусу онлайн-сертифікатів (OCSP). Цей же протокол застосовується веб-браузерами для підтвердження сертифікатів веб-сайтів.
Коли ви запускаєте програму, ваш Mac надсилає інформацію про її сертифікат на сервер Apple за адресою ocsp.apple.com. Mac запитує, чи сертифікат не відкликано. Якщо сертифікат є дійсним, програма запускається. Якщо ж сертифікат відкликано, Mac не дозволить її запуск.
Чи відбувається це кожного разу при запуску програми?
Ваш Mac зберігає відповіді на ці запити протягом певного часу. Станом на 12 листопада 2020 року відповіді кешувалися протягом п’яти хвилин. Тобто, якщо ви закрили та знову відкрили програму протягом чотирьох хвилин, Mac не звертався б до Apple повторно. Однак, якщо ви відкрили програму через шість хвилин після закриття, Mac знову б перевіряв сертифікат.
З невідомих причин, ймовірно через зміни в macOS Big Sur, 12 листопада 2020 року сервери Apple були перевантажені і працювали надзвичайно повільно. Це спричинило значне сповільнення відповідей, а програми довго завантажувалися, оскільки комп’ютери Mac чекали відповіді від сервера Apple.
Наразі сервер OCSP Apple повідомляє комп’ютерам Mac про необхідність зберігати відповіді про дійсність сертифікатів протягом 12 годин. Таким чином, ваш Mac перевірятиме сертифікат лише раз на 12 годин, якщо програму запускають частіше. Ця інформація щодо часу отримана від незалежного розробника Джеффа Джонсона.
Що відбувається, коли Mac в автономному режимі?
Перевірка OCSP має вбудований механізм відмови у разі збою. Якщо ви не підключені до інтернету, ваш Mac пропустить перевірку і дозволить запуск програм в звичайному режимі.
Аналогічна ситуація, якщо Mac не може з’єднатися з сервером ocsp.apple.com. Наприклад, якщо адреса сервера заблокована у вашій мережі. В такому разі Mac пропустить перевірку та запустить програму негайно.
Проблема 12 листопада 2020 року полягала в тому, що хоча Mac мав доступ до сервера Apple, сам сервер працював дуже повільно. Замість пропуску перевірки та продовження запуску програми, Mac очікував на відповідь. Якщо б сервер був повністю недоступним, то проблеми б не було.
Які ризики конфіденційності? Що дізнається Apple?
Існують певні питання щодо конфіденційності. Про них говорить хакер та дослідник безпеки Джеффрі Поль.
Сертифікати пов’язані з програмами: під час звернення до сервера OCSP, ваш Mac запитує інформацію про сертифікат, який найчастіше пов’язаний з однією конкретною програмою. Формально, Mac не повідомляє Apple, яку саме програму ви запускаєте. Наприклад, якщо ви відкриваєте Firefox, Apple дізнається лише, що ви запустили програму від Mozilla. Це може бути як Firefox, так і Thunderbird. Проте, якщо ви відкриєте програму, підписану проектом Tor, то Apple матиме підстави припустити, що ви відкрили браузер Tor.
Запити пов’язані з IP-адресами та часом: звісно, ці запити можуть бути пов’язані з часом, датою та вашою IP-адресою. Ваша IP-адреса пов’язана з конкретним містом та регіоном. Кожен запит OCSP повідомляє Apple розробника програми, яку ви запустили, ваше місцезнаходження, а також час та дату запуску.
Відсутність шифрування дозволяє спостереження: протокол OCSP не є зашифрованим. Це означає, що не тільки Apple отримує цю інформацію, але й будь-хто, хто перехопить трафік, може побачити ці дані. Ваш інтернет-провайдер, адміністратор мережі на роботі або навіть спецслужби можуть прослуховувати трафік OSCP між вами та Apple та отримувати всі ці деталі. Ці запити також проходять через мережу доставки контенту (CDN) Akamai. Це покращує швидкість, але додає ще одного посередника, який може технічно підглядати за вашим трафіком.
Важливо зазначити: ваш Mac не повідомляє Apple, яку саме програму ви запустили. Натомість, він повідомляє, який розробник створив цю програму. Звісно, багато розробників створюють лише один додаток, що робить цю різницю формальною.
(Пам’ятайте, що завдяки змінам кешування, ваш Mac не звертається до Apple кожного разу, коли запускаєте програму, а лише кожні 12 годин, а не кожні 5 хвилин.)
Чому ваш Mac так робить?
Як і очікується, це все про безпеку. Mac є більш відкритою платформою, ніж iPad та iPhone. Ви можете завантажувати програми з різних джерел, а не лише з Apple Mac App Store.
Щоб захистити Mac від шкідливого програмного забезпечення – так, шкідливе ПЗ для Mac стало більш поширеним – Apple впровадила цю перевірку безпеки. Якщо сертифікат програми відкликаний, ваш Mac може негайно відмовитися від її запуску. Таким чином Apple може заборонити запуск відомих шкідливих програм на комп’ютерах Mac.
Чи можна заблокувати перевірки OCSP?
Ці перевірки OCSP мають швидко і безшумно відмовляти у випадку відсутності підключення до інтернету або неможливості зв’язатися з сервером ocsp.apple.com.
Тому їх легко заблокувати: достатньо заборонити вашому Mac з’єднуватися з ocsp.apple.com. Ви можете зробити це, заблокувавши адресу на вашому роутері, що заборонить доступ для всіх пристроїв у вашій мережі.
На жаль, схоже, що Big Sur не дозволяє брандмауерам програмного рівня на Mac блокувати вбудований процес довіри Mac від доступу до віддалених серверів.
Важливо: якщо ви заблокуєте сервер ocsp.apple.com, ваш Mac не дізнається про відкликання сертифікатів розробників програм. Ви вимкнете функцію безпеки, що може наразити ваш Mac на ризик.
Що Apple каже і які зміни обіцяє?
Здається, що Apple прислухалась до критики. 16 листопада 2020 року компанія додала інформацію про “захист конфіденційності” для Gatekeeper на своєму сайті.
По-перше, Apple стверджує, що ніколи не поєднувала дані з перевірок сертифікатів з іншою інформацією, яку має про вас. Компанія обіцяє, що не використовує цю інформацію для відстеження програм, які ви запускаєте на своїх комп’ютерах Mac.
По-друге, Apple запевняє, що ці перевірки сертифікатів не пов’язані з вашим Apple ID або іншою інформацією про пристрій, окрім вашої IP-адреси. Apple заявила, що припинила реєстрацію IP-адрес, що пов’язані з цими запитами, та видалить їх з журналів Apple.
Протягом наступного року, тобто до кінця 2021 року, Apple обіцяє внести такі зміни:
Заміна OCSP зашифрованим протоколом: Apple планує розробити новий зашифрований протокол замість незашифрованого OCSP для перевірки сертифікатів розробника. Це унеможливить перехоплення даних третіми сторонами.
Усунення сповільнень: Apple також обіцяє “стійкий захист від збоїв сервера”. Іншими словами, програми не будуть довго завантажуватися через повільну роботу серверів.
Надання вибору користувачам: Apple запевняє, що користувачі Mac зможуть вимкнути ці засоби захисту і запобігти перевірці Mac на наявність відкликаних сертифікатів розробника.
Ці зміни мають вирішити різні проблеми. Треті сторони більше не зможуть перехоплювати дані. Комп’ютери Mac все ще надсилатимуть Apple інформацію, яку можна використовувати для відстеження запуску програм, але Apple обіцяє не прив’язувати цю інформацію до вас. Також мають бути вирішені проблеми зі швидкістю.
Яким буде новий протокол? Apple ще не повідомила, чим замінить OCSP. За словами дослідника безпеки Скотта Хельме, рішення на зразок CRLite могло б бути корисним. Уявіть, якби ваш Mac завантажував файл з Apple і регулярно його оновлював. У файлі був би стислий список усіх відкликаних сертифікатів. Запускаючи програму, ваш Mac міг би перевірити файл, усунувши необхідність перевірки через мережу та проблеми з конфіденційністю.
Ваш Mac інколи надсилає хеші програм до Apple
Окремо від перевірок OCSP, ваш Mac інколи надсилає хеші програм, які ви відкриваєте, на сервери Apple. Це пов’язано з нотаріальним завіренням Gatekeeper.
Розробники можуть завантажувати свої програми до Apple, яка перевіряє їх на наявність шкідливого ПЗ і “завіряє” їх безпечність. Ця інформація про нотаріальне завірення може бути вбудована у програму. Якщо розробник не зробив цього, Mac перевірить сервери Apple під час першого запуску програми.
Це відбувається лише під час першого запуску конкретної версії програми, а не кожного разу. Розробник також може вбудувати цю інформацію до програми.
Mac тут не є унікальним. Наприклад, комп’ютери з Windows 10 часто завантажують дані про програми до служби Microsoft SmartScreen для перевірки на наявність шкідливого ПЗ. Антивірусні програми та інші програми безпеки можуть також надсилати інформацію про підозрілі програми.