Как проверить, является ли приложение частью ACL записи цепочки для ключей? - PullRequest
0 голосов
/ 21 мая 2018

Я новичок в разработке Mac и концепциях цепочки для ключей.Я хотел бы получить некоторую ясность по темам, но у меня есть конкретный вопрос.

У меня есть приложение, которое распространяется в частном порядке, а не через магазин приложений.Мой сертификат подписи изменился раньше, поэтому теперь у нас есть старое приложение и новое приложение.Они имеют одинаковый идентификатор пакета и путь к файловой системе, но новое приложение выдает подсказку при попытке доступа к записям цепочки для ключей, созданным старым приложением.Мне нужно запускать это удаленно, чтобы запросы не были приняты.

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

Как проверить, находится ли данное приложение в списке контроля доступа к записи цепочки для ключей?

Вот подход, который я попробовал: я использовал SecACLCopyContents на SecKeychainItemRef, чтобы получить массив SecTrustedApplicationRef s.

Затем я использовал SecTrustedApplicationCreateFromPath, чтобы получить SecTrustedApplicationRef для нового приложения.

Затем я перебрал массив SecTrustedApplicationRef и сравнил их результаты с SecTrustedApplicationCopyData, чтобы проверить, соответствует ли какое-либо приложение тому, которое я создал по пути.

Однако я получаюсовпадают для любых двух приложений, если они имеют одинаковый путь к файловой системе, даже если у них совершенно разный контент.Я, вероятно, неправильно понял назначение SecTrustedApplicationRef и SecTrustedApplicationCopyData.

TL; DR

Как правильно проверить, есть ли у какого-либо приложения доступ к записи цепочки для ключей, созданной давно?Учитывая то, что мы не можем предположить, что идентификатор пакета и путь к файловой системе являются уникальными идентификаторами содержимого приложения.

Дополнительный вопрос: Что на самом деле сравнивает безопасность, чтобы определить, имеет ли приложение разрешение на доступ к записи цепочки для ключей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...