Нужен способ для безопасной связи между Priviliged Helper Tool (устанавливается с помощью SMJobBless) и приложением
Я пытаюсь установить привилегированный вспомогательный инструмент для выполнения некоторых повышенных работ. Я использую SMJobBless для того же. Я могу нормально установить инструмент, а также могу общаться с ним. Я использую Mac OS X 10.8.4 и использую NSXPCConnection для того же. я добавил .mach
сервис в листе который будет установлен в /Library/LaunchDaemons
, я использую [initWithMachServiceName:options:]
в приложении в качестве помощника является привилегированным инструментом и [– initWithMachServiceName:]
в помощнике слушать. Связь работает нормально.
Но проблема в том, что я попробовал ту же связь с другим созданным мною приложением, у которого вообще не было никакого кодового знака (ранее установщик вспомогательного инструмента был под кодовым знаком). Я попытался подключиться к сервису mach вспомогательного инструмента и смог легко подключиться. Это проблема, потому что каждый может общаться с ним и заставлять его делать что угодно.
Мне нужен какой-то способ безопасной связи между моим приложением и вспомогательным инструментом.
Большое спасибо.
2 ответа
Поскольку вы сказали, что не подписываете второе приложение, я считаю, что это проблема, которая позволяет 2-му приложению вызывать вспомогательное приложение. Из документов Apple и, в частности, файла ReadMe в SMJobBless, говорится:
Инфраструктура управления службами использует сигнатуры кода для обеспечения того, чтобы вспомогательное средство было ожидаемым для запуска основного приложения.
Этот документ должен помочь вам правильно установить вспомогательное приложение для его владельца.
Обратите внимание, что он ссылается на скрипт Python, который представлен здесь.
Отвечая на мой собственный вопрос: я зарегистрировал ошибку радара для того же самого, и Apple сказала, что поведение было предназначено:
"Привилегированный помощник не должен раскрывать небезопасные операции"