iphone - 服务器如何验证 iPhone 应用程序(代码,而不是用户)?

标签 iphone authentication

假设我有一个涉及 iPhone 应用程序的解决方案,该应用程序生成一些信息,然后将该信息发送到 Web 服务进行处理。重要的是,只允许处理来自此特定 iPhone 应用程序实例的请求(许多不同用户可能使用该应用程序的许多实例,但我想确保它们都使用我信任的代码)。换句话说,我想确保我的 iPhone 应用程序不会(轻易)被其他客户端冒充。你会怎么做?

最佳答案

所有其他答案都提供了提供一些额外但不完美的安全性的合法方法。您应该事先知道(因为没有其他人如此明确),不可能提供理论上安全的通信,以便您的服务器始终可以验证另一端的客户端是否是购买的副本您的应用程序在认可的硬件上运行。你不能这样做,因为无论 Apple 内置了什么硬件级别的安全性来启动信任链(这样他们实际上可能做到这一点),他们都不会向你公开。

因此,您的策略应该是“许多障碍”之一,有些较大,有些较小,旨在阻止不同程度的攻击复杂性和攻击者的复杂性。请参阅此问题的其他答案以获得一些好主意。您需要多少障碍以及复杂程度,完全取决于攻击成功所需的成本(经济、信任等)。

还请考虑这样一个想法:如果您可以避免“可重复的”安全攻击,那么您的情况会更好。换句话说,如果有人破坏了您的应用程序/协议(protocol),并且其他人执行此操作的数据对于每个副本/实例都是相同的,那么您就会遇到更大的麻烦,因为说明/ key 可以直接发布到网络上某处。如果你能找到一种方法使每个副本/客户端都是唯一的,那么你可以在服务器上进行观察,最坏的情况是切断已知损坏的客户端等。(这在 iPhone 平台上很难。)

关于iphone - 服务器如何验证 iPhone 应用程序(代码,而不是用户)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2468331/

相关文章:

iphone - iPhone settings.bundle 中的数字文本字段

iphone - 提交按钮文本不以 iPhone 为中心?

asp.net-mvc-2 - Azure MVC2 应用程序的表单例份验证提供程序?

java - 执行登录后如何管理 j_username 值?

ios - UIUserNotificationSettings 的问题

iphone - 删除了所有证书/ key ,现在无法将推送通知推送到部署到应用商店的应用

iphone - 如何将日志文件从 iPhone 复制到台式电脑

php - 电子邮件地址验证(点和大写)

java - 使用 couchdb4j api 连接到 couchdb,HTTP 未经授权 : "You are not a server admin."

Java 小程序登录尝试计数器无法正常工作