iPhone客户端证书

时间:2008-12-10 20:28:34

标签: iphone security ssl certificate client-certificates

我想验证我正在编写的应用是否正在iPhone上运行。会是什么 完美是这样的:Apple将SSL客户端证书添加到每个iphone中,可以通过接收服务器进行身份验证。我是这样的吗?

我还没有开始研究这个,我会用我发现的任何内容进行更新。

更新: Here是关于证书和钥匙串的Apple文档。所以:

  

在iPhone OS中,钥匙串服务在授予应用程序访问钥匙串之前检查应用程序的签名,并允许应用程序仅访问其自己的钥匙串项目(可能的例外是应用程序已获得持久引用的项目)。   在iPhone OS中,永远不会要求用户进行身份验证,Apple也不提供Keychain Access实用程序。

3 个答案:

答案 0 :(得分:1)

我认为大多数进行此检测的网站都是通过查看HTTP_USER_AGENT变量来实现的。

答案 1 :(得分:1)

trusted platform模块可以按照您要求的方式执行某些操作。它被称为remote attestation

然而,接受可信计算是有限的 - 精明的消费者认为这是供应商继续控制消费者拥有的设备和数据的一种方式。 Apple勉强承认DRM是愚蠢的,以及TPM的额外成本suggest the iPhone doesn't support this

答案 2 :(得分:0)

与Greg上面提到的内容有关。您绝对可以在我们的应用程序中为您的标头添加用户代理。整个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解决方案。