【问题标题】:iPhone client certificateiPhone 客户端证书
【发布时间】:2010-09-26 07:53:32
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iphone security ssl certificate client-certificates


    【解决方案1】:

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

    【讨论】:

    • 我看不到你在这里想要完成什么。任何http头都可以被普通的网络浏览器伪造。
    【解决方案2】:

    trusted platform 模块可以按照您的要求做一些事情。它被称为remote attestation

    但是,对可信计算的接受程度有限——精明的消费者将其视为供应商继续控制消费者拥有的设备和数据的一种方式。 Apple 不情愿地承认 DRM 很愚蠢,以及 TPM 的额外成本,suggest the iPhone doesn't support this

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 是的,我一直在寻找比这更安全的东西。
      • 安全不会发生,除非您在访问您网站的每部手机上安装一些东西。
      猜你喜欢
      • 2010-10-09
      • 2011-09-18
      • 1970-01-01
      • 2015-09-06
      • 2017-01-02
      • 2016-01-27
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多