сертификат клиента iPhone - PullRequest
4 голосов
/ 10 декабря 2008

Я хочу убедиться, что приложение, которое я пишу, работает на iPhone. Что будет безупречным является следующее: Apple встраивает SSL-сертификат клиента в каждый iphone, который может быть аутентифицирован принимающим сервером. Я это дело?

Я еще не начал исследовать это, я обновлю все, что найду.

UPDATE: Здесь - это некоторая документация Apple по сертификатам и цепочкам для ключей. Итак:

В ОС iPhone OS Keychain Services проверяет подпись приложения перед тем, как предоставить ему доступ к цепочке для ключей, и позволяет приложению иметь доступ только к своим собственным элементам цепочки для ключей (с возможным исключением элементов, на которые приложение получило постоянные ссылки). В iPhone OS пользователя никогда не просят пройти аутентификацию, и Apple не предоставляет утилиту Keychain Access.

Ответы [ 3 ]

1 голос
/ 10 декабря 2008
Модуль

A доверенная платформа может сделать что-то в соответствии с тем, что вы ищете. Это называется удаленная аттестация .

Однако принятие надежных вычислений ограничено - опытные потребители видят в этом способ для поставщиков продолжать осуществлять контроль над оборудованием и данными, которыми владеет потребитель. Неохотное признание Apple, что DRM - это глупость, а также дополнительная стоимость TPM, предполагает, что iPhone не поддерживает .

1 голос
/ 10 декабря 2008

Я думаю, что большинство сайтов, которые делают это обнаружение, делают это, просматривая переменную HTTP_USER_AGENT.

0 голосов
/ 11 декабря 2008

Относительно того, что Грег упомянул выше. Вы определенно можете добавить пользовательский агент в свой заголовок, который мы сделали в нашем приложении. Во всем коде http-соединения есть кое-что еще, но вот один способ, которым вы можете добавить пользовательский агент в свой заголовок:

NSMutableURLRequest *request;
NSMutableDictionary *headers;
headers = [[[NSMutableDictionary allocWithZone:[self zone]] init] autorelease];
[headers setValue:@"YourApp/1.0 (iPhone)" forKey:@"User-Agent"];
[request setAllHTTPHeaderFields:headers];

Опять же, обратите внимание, что этот код ориентирован только на бит заголовка, поэтому вам придется реализовать полное http-решение.

...