4

我想验证我正在编写的应用程序是否在 iPhone 上运行。完美的是:Apple 将 SSL 客户端证书放入每个 iphone 中,该证书可以由接收服务器进行身份验证。我是这种情况?

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

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

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

4

3 回答 3

1

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

于 2008-12-10T20:42:26.123 回答
1

信任的平台模块可以按照您的要求做一些事情。这称为远程证明

然而,对可信计算的接受程度有限——精明的消费者将其视为供应商继续控制消费者拥有的设备和数据的一种方式。Apple 勉强承认 DRM 是愚蠢的,以及 TPM 的额外成本,这表明 iPhone 不支持此功能

于 2008-12-10T20:43:03.907 回答
0

与格雷格上面提到的有关。您绝对可以将用户代理添加到我们在应用程序中所做的标题中。整个 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 解决方案。

于 2008-12-11T01:39:30.470 回答