Хранение цепочек сертификатов в ключевой мачине приложения

StackOverflow https://stackoverflow.com/questions/4659103

Вопрос

На iOS я знаю, что мы можем оценить доверие с помощью Sectrustevaluate (). Чтобы создать доверие, мы либо импортируем его из файла *.p12, либо создаем его, используя массив сертификатов и набор политик.

Я также знаю, что для обеспечения того, чтобы сервер, которому не доверяют по умолчанию, доверяют, мы можем использовать SecTrustSetAnchorCertificates () для увеличения списка root cas sectrustevalate () для проверки сертификата сервера.

Теперь, как я могу гарантировать, что эти якорные сертификаты доступны при последующем запусках? Я могу хранить сертификаты, ключи и личности в ключах приложения, но не цепочка сертификатов. Даже если я храню все сертификаты в цепочке, как я узнаю, какие сертификаты будут использоваться в качестве сертификатов привязки?

Одно решение, которое приходит на ум, - просто получить все Сертификаты из ключичного малина и устанавливают их в качестве сертификатов привязки. Другим методом может быть все цепочки сертификатов на диске как *.p12 файлы и загружать их один раз на каждый запуск приложения.

Это было полезно?

Решение

Eskimo1 из Apple Devorums ответил на это:

Во -первых, вам не нужно хранить сертификаты в ключевой матче. Вы можете хранить их в другом месте, если хотите (и создать Seccertificateref, используя seccertificatecreatewithdata).

Во -вторых, в вашем вопросе рассказывается о файлах .p12, но я не уверен, что это связано с вещами. В целом вы используете только файл .p12 для распределения конфиденциальной информации, а сертификаты не являются конфиденциальными.

Наконец, вы можете сохранить цепочку сертификатов, просто сохраняя постоянную ссылку на каждый сертификат в этой цепочке (или, сохранив фактические данные каждого сертификата).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top