сертификат клиента iPhone

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

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

ОБНОВЛЕНИЕ: Вот некоторая документация Apple по сертификатам и цепочкам для ключей. Так:

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

10.12.2008 20:28:33
3 ОТВЕТА

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

1
10.12.2008 20:42:26
Да, я искал что-то более безопасное, чем это.
Martin Redmond 10.12.2008 21:04:22
Безопасность не произойдет, если вы не установите что-то на каждый телефон, который посещает ваш сайт.
Greg Hurlman 15.12.2008 13:49:25

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

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

1
10.12.2008 20:49:07

Относительно того, что Грег упомянул выше. Вы определенно можете добавить пользовательский агент в свой заголовок, который мы сделали в нашем приложении. Это еще не весь код подключения 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-решение.

0
11.12.2008 01:39:30
Я не вижу, что вы пытаетесь достичь здесь. Любой http-заголовок может быть подделан обычным веб-браузером.
rook 5.05.2010 20:37:52