2

我的客户想要在 iPhone 捆绑包中加密/压缩他们的医学书籍的 html 代码,以保护他们的 IP。

什么是为应用程序包准备此文件的好方法,我应该使用哪些补充库(C、Obj-C)在第一次启动应用程序时进行解密和解压缩?

将文件复制到 ~/Documents,然后处理它似乎是最好的解决方案。想法?

4

6 回答 6

2

这非常棘手......几乎不可能让它真正牢不可破。任何有合理动机的人都将能够穿透它。你只会让它变得更难做。无论如何,您绝对不能在捆绑包本身中存储任何密钥。您需要通过安全通道从服务器安全地获取解密密钥,并根据需要使用它。即使那样,越狱的人可能能够在您正在运行的程序上运行 GDB 并在 RAM 中提取密钥 + 密钥将在您的应用程序的所有用户之间共享......您实际上是在尝试实施 DRM 方案,这在设计上存在固有缺陷...除非您需要离线访问,否则您可能希望根据需要从安全的服务器中提取数据...至少您“可以”限制信息泄漏...

于 2009-03-04T23:36:26.823 回答
2

这里有一些想法。

如果书籍文本都是字母数字数据,则不要将数据保存为 ASCII - 以您自己的二进制编码格式保存它们(例如使用 5 位而不是 8 位并打包成单词)。这为您提供了一点压缩、轻微的混淆和非常便宜的(以时钟周期为单位)解压缩。您将拥有一种可以快速访问的数据格式,并且可以让随意好奇的黑客远离文本。时钟周期将是我的主要关注点和安全性第二。

另一个想法是以混淆格式在应用程序中存储典型 Blowfish 加密的解密密钥。拆分成两个或三个常量,例如需要一些奇怪的操作来恢复。但是,当然,现在 Blowfish 的开销或任何您关心的问题。

由于您将无法实现完美的安全性(完美的价格非常昂贵),IP 所有者将不得不使用传统的版权和商业秘密技术来充分保护他们的财产。你让黑客更难了,但律师们仍然需要勤奋,只是图书馆保留区的书架上的一本书(请不要复印!)。

干杯

于 2009-03-05T04:52:59.027 回答
1

如果我是您,我会将文件加密,并根据需要对其进行解密。人们可以很容易地访问越狱设备上的解密文件。

有关加密技术,请参阅“安全概述”文档和 CryptoExercise 示例代码

于 2009-03-04T22:30:44.157 回答
1

您可能不会喜欢它,但最好的方法是不使用 HTML。一旦您将解密的 HTML 传递给 UIWebView,恶意用户就很容易在该级别窃取它,从而破坏您的加密算法的任何目的。具有自定义绘图代码和自定义加密支持格式的 UIView 子类将更难以解决

于 2009-03-05T07:03:51.600 回答
1

Mac OS X 和 iPhone OS 安全服务

您可以使用钥匙串服务加密和存储少量数据(请参阅钥匙串服务参考钥匙串服务编程指南)。如果您想在 Mac OS X 中加密或解密大量数据,您可以使用 Common Security Services Manager (CSSM) Cryptographic Services Manager。该管理器还具有创建和验证数字签名、生成加密密钥和创建加密哈希的功能。在 iPhone OS 中,证书、密钥和信任服务 API 提供了生成加密密钥、创建和验证数字签名以及加密数据块的功能;请参阅 证书、密钥和信任服务参考

它总是在性能(加密不是免费的)和安全性(安全性和其他一切,真的)之间做出选择。但还有什么新东西?如果您将单个文件保持得足够小,那么解密可能不会让您减慢很多。或者,您可以考虑预测性解密,以便您在后台解密某些文件,例如从当前查看的文件中链接的文件等。但是,我意识到 iPhone 上的并发可能相当不稳定(我不知道因为我没有放弃现金购买许可证)。您还可以通过仅加密那些真正需要它的文件来实现性能提升;索引/目录或其他经常访问的文件真的需要加密吗?这算作您的客户担心的 IP 吗?

于 2009-03-12T19:06:22.837 回答
1

对于压缩,我可以推荐 QuickLZ(我见过的最快的引擎,压缩比很好)。

于 2009-11-07T15:52:19.970 回答