11

Какие неприятности или реальные проблемы могут возникнуть при нарушении цифровой подписи приложения Mac?

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

  • Брандмауэр OS X может быть не в состоянии правильно установить специальную подпись, из-за чего неоднократно запрашивается «Хотите ли вы, чтобы приложение« [..] »принимало входящие сетевые подключения?"

  • Приложения, разрешенные Родительским контролем, могут больше не работать?

  • Брелок Доступ может быть сломан?

  • Некоторые говорят, что обновление программного обеспечения Apple может произойти сбой. Если это правда, то мне интересно, действительно ли это зависит от сигнатуры подписи кода или будет вызвано каким-то несовпадающим хешем для всего приложения или информацией из файлов спецификации.

Более подробная информация ниже.


Детали подписи кода могут быть показаны с помощью:

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 folder):

/Applications/iTunes.app/: a sealed resource is missing or invalid

... или (может быть, хуже, чем вышеупомянутое сообщение):

/Applications/iTunes.app/: code or signature modified

Подписание кода восходит к OS 9 или более ранней версии, но текущая реализация была представлена в 10.5 Leopard. Ars Technica пишет:

Подписание кода связывает криптографически проверяемую личность с набором кода и гарантирует обнаружение любых изменений в этом коде. О сторонах не дается никаких гарантий. Например, если вы загружаете приложение, подписанное Acme Inc., вы ничего не можете доказать, за исключением того, что оно было получено от того же лица, которое претендует на статус Acme Inc., когда вы в последний раз загружали что-либо с их веб-сайта.

Этот пример фактически показывает наиболее полезное применение технологии с точки зрения потребителя. При обновлении приложения Mac OS X сегодня [в 10.4 Tiger, AvB] пользователю часто предлагается повторно подтвердить, что этому приложению разрешен доступ к связке ключей для получения имен пользователей и паролей. Это похоже на хорошую функцию безопасности, но все, что она на самом деле делает, - это обучает пользователей Mac слепо нажимать "Всегда разрешать" каждый раз, когда оно появляется. И действительно, что обычный пользователь собирается сделать, запустить исполняемый файл через дизассемблер и вручную проверить, что код безопасен?

Подписанное приложение, с другой стороны, может математически доказать, что это действительно новая версия того же приложения от того же поставщика, которому вы выражали доверие в прошлом. Результатом является завершение диалоговых окон с просьбой подтвердить выбор, безопасность которого у вас нет разумного способа проверить.

Для брандмауэра в 10.5 Leopard Apple объясняет:

Когда вы добавляете приложение в этот список, Mac OS X ставит цифровую подпись на приложение (если оно еще не было подписано). Если приложение впоследствии будет изменено, вам будет предложено разрешить или запретить входящие сетевые подключения к нему. Большинство приложений не изменяют себя, и это функция безопасности, которая уведомляет вас об изменениях.

[..]

Все приложения, отсутствующие в списке и имеющие цифровую подпись центра сертификации, которому доверяет система (для подписи кода), могут принимать входящие соединения. Каждое приложение Apple в Leopard подписано Apple и может принимать входящие соединения. Если вы хотите отклонить приложение с цифровой подписью, вы должны сначала добавить его в список, а затем явно отклонить.

В 10.6 Snow Leopard последнее сделано более явным (и может быть отключено) как «Автоматически разрешать подписанному программному обеспечению принимать входящие соединения. Позволяет программному обеспечению, подписанному действующим центром сертификации, предоставлять услуги, доступные из сети ».

Брандмауэр Mac OS X 10.6: автоматически разрешать подписанному программному обеспечению принимать входящие соединения

(В 10.6 опции 10.5.1 "Разрешить все входящие подключения", "Разрешить только основные службы" и "Установить доступ для определенных служб и приложений" были изменены на выбор "Блокировать все входящие подключения" или список). разрешенных приложений и опций "Автоматически разрешать подписанному программному обеспечению принимать входящие соединения" и "Включить скрытый режим". До обновления 10.5.1 "Разрешить только основные службы" фактически называлось "Блокировать все входящие подключения".)

Для (Apple) приложений, которые каким-то образом потеряли свою оригинальную подпись, эта специальная подпись может как-то не сохраняться и, как известно , вызывает проблемы для configd, mDNSResponder и racoon.

5 ответов5

3

Что я могу вам сказать, так это Candybar, приложение для настройки значков, используемое довольно многими людьми, которое ломает цифровую подпись, по крайней мере, в Finder и Dock (и, возможно, в некоторых других приложениях основной системы), так как оно изменяет файлы ресурсов, но пока ничего было сообщено как проблема из-за этого. Так что выборочная проверка с использованием основных компонентов ОС скажет - не так много!

РЕДАКТИРОВАТЬ: вот результат проверки моей подписи кода для моего Dock в Snow Leopard:

⚛$ codesign --verify --verbose /System/Library/CoreServices/Dock.app/
/System/Library/CoreServices/Dock.app/: a sealed resource is missing or invalid
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-big.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/finder.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/frontline.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_large.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_medium.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-l.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-m.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-sm.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-xl.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashempty.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashfull.png: resource modified
1

Пример того, как подписывание кода «сломает» приложение:

  • Связка ключей Access.app не позволит вам просматривать пароли, если обнаружит, что они были подделаны.

Источник: список рассылки Apple и нереальность Джахарми

0

Я восстанавливал свои разрешения на диск на днях (из Дисковой утилиты) и получил это предупреждение:

Warning: SUID file "System/.../ARDAgent" has been modified and will not be repaired.

Так что что-то случится. Я не знаю, насколько это важно.

0

Нынешняя реализация подписи кода довольно беззуба и, вероятно, была выброшена за дверь в пользу разработчиков iPhone. Надеюсь, что в будущем он станет обязательным, и, надеюсь, к тому времени станет намного проще и дешевле.

0

Несколько подробное объяснение подписи кода в Snow Leopard представлено в обзоре ars technica Snow Leopard. Насколько я могу сказать, нарушение подписи кода на самом деле ничего не сломает. Однако это приведет к тому, что приложения станут ненадежными, что означает необходимость проверки большего количества их действий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .