【发布时间】:2009-07-22 23:22:09
【问题描述】:
我的代码中有一个字符串,我在与服务器通信时将其用作秘密。加密此字符串以确保黑客无法通过搜索我的二进制文件或在运行时查看内存来找到它的最佳方法是什么? (如果有可能完全预防?)
您建议采取哪些措施至少使这变得尽可能困难?
【问题讨论】:
标签: iphone security encryption
我的代码中有一个字符串,我在与服务器通信时将其用作秘密。加密此字符串以确保黑客无法通过搜索我的二进制文件或在运行时查看内存来找到它的最佳方法是什么? (如果有可能完全预防?)
您建议采取哪些措施至少使这变得尽可能困难?
【问题讨论】:
标签: iphone security encryption
更好的方法是监控服务器的使用情况,并尝试检测与您的应用程序不匹配的使用模式 - 例如知道它总是会先发出一种请求,或者您传递的 iPhone ID作为调用的参数没有从多个来源过度使用。您可以让它在应用首次启动时进行初始呼叫,并在服务器上记录电话 ID 以允许其他呼叫。
有多种方法可以解决问题,但它们都是基于服务器的 - 客户端中的任何内容都可以并且将会被黑客看到。客户所说的任何话都必须始终被视为谎言,因为有时会这样。
【讨论】:
从技术上讲,这是不可能的,至少可以在连接之前的解密之后内存刮取代码,并且所需的整个解密算法也已经在代码中可用。反汇编将允许直接从二进制文件中解密数据。
实际上,由于这是一个封闭的平台(从您使用 iphone 标签的事实来看),即使它只是二进制中的普通十六进制字符串,也只有主要的黑客才能设法获得它。
【讨论】: