【发布时间】:2019-08-21 21:58:12
【问题描述】:
我有一些计算算法需要发送给我的客户进行测试。我被要求阻止我的客户对算法进行逆向工程。我认为我有两个选择:
- 将计算封装在 Objective-C 框架中,其中我 可以定期向我的服务器发出一些 HTTPS 请求, 只有在服务器允许的情况下,框架才会进行计算。
- 将计算封装在 C 程序中并编译成 .a 静态文件 图书馆。这是一个普通的 C 库,所以我认为会非常困难 发出 HTTPS 请求。但我也读到 C 静态库更多 相对于动态框架很难破解。
我知道没有 100% 的安全性,我只是想知道在安全性方面哪个选项更好?并且还请建议是否有任何其他方法来保护框架/静态库?
【问题讨论】:
-
您希望在客户端计算机上执行计算,但您不希望有权访问客户端计算机的人能够对计算进行逆向工程?有一些理论上的方法可以对加密数据执行操作,因此执行操作的人无法切实地辨别未加密的数据,但它们可能超出了您真正想要做的事情。这里的真实情况是什么?如果客户端要将计算结果发送回服务器,则您不能信任它们。
-
一般来说,在客户端计算机上执行的任何计算都应该被视为暴露给世界,在大多数情况下试图隐藏它们并不是一个可行的目标。您描述的方法会对攻击者造成滋扰,但对有经验的攻击者来说只是轻微的滋扰,不能被认为是安全的。
标签: ios c objective-c frameworks static-libraries