2008-12-10 231 views
4

我想验证我正在编写的应用程序正在iPhone上运行。 会是什么样的完美之处:Apple将一个SSL客户端证书发送到每个可以通过接收服务器进行身份验证的iphone。我是这种情况?iPhone客户端证书

我还没有开始研究这个,但我会更新我找到的任何东西。

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

在iPhone OS,钥匙扣服务给它访问钥匙串之前检查应用程序的签名,并允许应用程序只能访问自己的钥匙串项目上网(可能的例外项目为其应用程序获得持久性参考)。 在iPhone OS中,用户永远不会被要求进行身份验证,并且Apple不提供Keychain Access实用程序。

回答

1

我认为,通过查看HTTP_USER_AGENT变量,执行此检测的大多数站点都会这样做。

+0

哪个可以被欺骗。 – erickson 2008-12-10 20:43:36

+0

是的,我正在寻找比这更安全的东西。 – 2008-12-10 21:04:22

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解决方案。