Які роздратування чи реальні проблеми можуть виникнути при порушенні цифрового підпису програми Mac?
Програми на Mac можуть бути підписані цифровим шляхом. Коли підпис якимось чином зламаний, я знаю, що це може помітити кілька додатків. Але я не знаю, з якою деталлю це будуть лише роздратування чи справді ламають речі:
Брандмауер OS X може не в змозі правильно встановити спеціальний підпис, через що на нього неодноразово з'являється запит "Ви хочете, щоб програма" [..] "приймала вхідні мережеві з'єднання?"
Програми, дозволені батьківським контролем, можуть більше не працювати?
Можливо, буде порушено доступ до брелка?
Деякі кажуть, що оновлення програмного забезпечення Apple може вийти з ладу. Якщо це правда, то мені цікаво, чи це насправді залежить від підпису кодового підпису, чи це буде викликано невідповідним хешем для всієї програми чи інформацією з файлів BOM .
Більше довідкової інформації нижче.
Деталі підписання коду можуть бути показані за допомогою:
codesign --display -vv /Applications/iTunes.app/
... що дасть щось подібне (але не попередить про зміни):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
Підпис можна перевірити, використовуючи:
codesign --verify -vv /Applications/iTunes.app/
Що б дало:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... або (навіть якщо просто помістити додатковий файл у папку ./Contents/Resources):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... або (можливо, гірше, ніж вищезгадане повідомлення):
/Applications/iTunes.app/: code or signature modified
Підписання коду відноситься до ОС 9 або раніше, але поточна реалізація була введена в 10.5 Leopard. Ars Technica пише :
Підписання коду пов'язує ідентифікацію криптографічно підтвердженої сукупності коду та забезпечує виявлення будь-яких змін цього коду. Ніяких гарантій щодо залучених сторін не дається. Наприклад, якщо ви завантажите програму, підписану компанією Acme Inc., ви нічого не можете доводити, окрім того, що вона надходила від тієї самої організації, яка претендує на статус Acme Inc., коли ви останній раз завантажували щось з їх веб-сайту.
Цей приклад насправді висвітлює найбільш корисне застосування технології з точки зору споживача. Під час оновлення програми Mac OS X сьогодні [в 10.4 Tiger, AvB] користувачеві часто пропонується повторно перевірити, чи цей додаток має доступ до Keychain для отримання імен користувачів та паролів. Це здається гарною функцією безпеки, але все, що вона насправді - це навчити користувачів Mac сліпо клацати "Завжди дозволяти" кожного разу, коли воно з'являється. І справді, що робитиме середньому користувачеві, запускати виконувану програму через розбирач і вручну перевіряти, що код безпечний?
З іншого боку, підписана програма може математично довести, що це справді нова версія тієї самої програми від того самого постачальника, якій ви довіряли раніше. Результат - це закінчення діалогових вікон із проханням підтвердити вибір, безпеку якого у вас немає розумного способу перевірити.
Що стосується брандмауера в 10,5 леопарда, Apple пояснює :
Коли ви додаєте програму до цього списку, Mac OS X цифрово підписує програму (якщо вона вже не підписана). Якщо додаток буде згодом змінено, вам буде запропоновано дозволити або заборонити вхідні мережеві з'єднання з ним. Більшість програм не змінюють себе, і це функція безпеки, яка сповіщає вас про зміни.
[..]
Усі програми, що не входять до списку, які були цифрово підписані органом сертифікації, якому довіряє система (з метою підписання коду), можуть приймати вхідні з'єднання. Кожна заявка Apple в Леопарді підписана Apple, і їй дозволяється отримувати вхідні з'єднання. Якщо ви хочете відмовити у цифровій підписаній програмі, спочатку слід додати її до списку, а потім явно відмовити.
У 10.6 Snow Leopard остання робиться більш чіткою (і може бути відключена), оскільки "Автоматично дозволяти підписаному програмному забезпеченню отримувати вхідні з'єднання. Дозволяє програмному забезпеченню, підписаному дійсним сертифікаційним органом, надавати послуги, доступ до мережі".
(У 10.6 параметри 10.5.1 "Дозволити всі вхідні з'єднання", "Дозволити лише необхідні сервіси" та "Налаштувати доступ до певних служб і програм" перероблено на вибір "Блокувати всі вхідні з'єднання", або списку дозволених додатків та опцій "Автоматично дозволяти підписаному програмному забезпеченню отримувати вхідні з'єднання" та "Увімкнути режим невидимості". До оновлення 10.5.1 "Дозволити лише необхідні послуги" насправді називали "Блокувати всі вхідні з'єднання".)
Для додатків (Apple), які певним чином підписують оригінальний підпис, цей спеціальний підпис може якось не зберігатися, і, як відомо, він спричинив проблеми з налаштуваннями, mDNSResponder та racoon.