1

我有一个需要自毁选项的 iPhone 应用程序。这个应用程序将在敏感位置使用,并包含一些算法,除了 iPod Holder 之外任何人都不知道。

删除应用程序最“完整”的方式是什么?

我在想一些如何将零写入 nib 文件。或实际的 application.app 但我相信这个文件夹是写保护和沙盒的。

有人对实现这一目标的更好方法有任何想法吗?

详细说明(取自原始海报的评论):

这适用于越狱的 iPhone。

这些设备将提供给军事人员,而落入敌人手中的设备将是我最不担心的。它将有一个按钮,因此一旦应用程序被写入零或更好但在“exe”上被垃圾损坏,应用程序无法工作,它需要使用我的设备检查 iPod 闪存芯片100% 知道错误的人不会有

4

8 回答 8

3

如果您在应用程序中公开存储包含此算法的代码,那么在您运行“擦除”过程之前,没有什么可以阻止“错误的人”越狱设备并复制设备的完整文件结构。

此外,如果您与美国政府客户打交道,我怀疑他们是否会批准购买越狱设备,因为此类设备的供应商声称越狱是非法的。无论这是否会在法庭上成立,政府在这些问题上往往是保守的,并且在谨慎方面犯了错误。因为苹果是一家美国大公司,也是政府的供应商,我不希望政府采购人员在这方面站在越狱者一边。

我的建议是加密应用程序包中文件中的特定算法,并要求此应用程序的用户使用正确(困难的)密码将此文件解密到内存中。这样,即使“坏人”获得了对应用程序的访问权限,他们也不会拥有访问这些算法所需的一切,并且必须在加密部分强制使用密码。这可以在标准的非越狱设备上完成。

美国陆军正在战场上推出带有自定义应用程序的 iPod,所以我相信您不是第一个面临这一挑战的人。如果这项工作是通过国防部 SBIR 赠款(或类似项目)资助的,您甚至可以联系您的合同官,看看他们是否可以让您与相关机构的人取得联系,他们可能会为您提供帮助解决这个问题(或者甚至确定这是否是一个问题)。

于 2009-11-14T01:04:19.667 回答
1

Unless you're working from a jailbroken device, you're probably going to run into problems here.

Even if you can find a way to automatically delete the app, you're still running the risk of those algorithms getting into the wrong hands - you would essentially be running into the same problems that Apple has with jailbreaking - once the device is in someone else's hands, it only takes the proper amount of motivation for the data to be accessed.

The only way to secure your algorithms is to pass the data to a remote server and get the results. There's still a possibility of a security breach, but it's much, much lower.

于 2009-11-13T22:05:29.807 回答
1

我不知道这会有多好,但您可以将算法作为文件存储在应用程序包中,可能使用脚本语言或其他东西从该文件运行算法,并在需要时删除该文件。

于 2009-11-13T22:23:55.200 回答
1

我要在这里冒昧地说你可能不想将 iphone 用于这种类型的应用程序。在 iphone 和跳板上,这种确切类型的操作存在故意限制。如果您正在做的事情如此敏感以至于它不能落入未经授权的手中,我的建议是使用不同且更可定制/可控的平台。

于 2009-11-13T21:47:06.163 回答
0

应用程序包实际上是只读的,也许您应该将一些信息以加密形式存储在网络的某个地方。

于 2009-11-13T21:59:57.673 回答
0

即使您找到了在闪存中重写应用程序的方法,您实际上并没有擦除该应用程序。闪存芯片使用磨损均衡算法来减少对相同块的写入,因此当您写出零时,它们通常会写入新的内存块,而不是之前使用的同一块,因此您实际上并没有擦除任何内容。数据仍然可以从闪存芯片中恢复(由专业人士)。

另一种选择是分离出算法的参数,使算法不再敏感(或至少不可用),并在文件中提供加密的参数。然后通过网络向授权用户提供密钥,不要将该密钥存储到闪存中,只存储在 RAM 中。他们每次启动应用程序时都需要获取密钥。仅将密钥提供给授权用户。当然,您还需要使用另一个密钥加密该密钥以通过网络传输......有系统可以做到这一点,不要发明你自己的,在任何情况下你都需要加密专家来做到这一点正确的。

于 2009-11-13T22:21:20.660 回答
0

这些文件夹是沙盒的,但您的应用程序在那里。在我越狱的 iPhone 上,我看到所有权限都归手机所有,所以我看不出有什么理由不能用零覆盖所有文件然后删除它们。

于 2009-11-13T21:48:17.103 回答
0

我会使用内置的加密来存储数据,用户必须输入一个密钥来解密它。如果没有密钥,数据 blob 是否从设备中恢复也没关系。

于 2009-11-14T03:53:40.777 回答