我有一个需要自毁的iPhone应用程序。此应用程序将用于敏感位置,并保留一些除iPod Holder以外的任何人都不知道的算法。
删除应用程序的最“完整”方式是什么?
我在考虑如何将零写入nib文件。或实际的application.app但我相信这个文件夹是写保护和沙盒。
任何人都有更好的方法来实现这个目标吗?
精化(摘自原始海报的评论):
这是一部越狱的iPhone。
这些装置将被提供给军事人员,这个装置落入敌人手中将是我最不关心的问题。这将有一个按钮,所以一旦应用程序被写入零或更好但擦除应用程序擦除应用程序无法正常工作的垃圾损坏,它将需要检查iPod闪存芯片与设备,我100%知道错误的人不会有
答案 0 :(得分:3)
如果您在应用程序中公开存储包含此算法的代码,那么在运行“擦除”过程之前,没有什么能阻止“错误的人”越狱设备并复制设备的完整文件结构。
此外,如果您正在与美国政府客户打交道,我怀疑他们会批准购买越狱设备,因为此类设备的供应商有claimed that jailbreaking is illegal。无论这是否会在法庭上存在,政府在这些问题上往往保守,在谨慎方面也是错误的。由于苹果公司是一家大型美国公司,也是政府的供应商,因此我不希望政府采购商在这方面采取越狱行为。
我的建议是加密应用程序包中文件中的特定算法,并要求此应用程序的用户使用正确(困难)密码将此文件解密到内存中。这样,即使“坏人”要访问应用程序,他们也不会拥有访问这些算法所需的一切,并且必须在加密部分上强制密码。这可以在标准的,非越狱设备上完成。
美国陆军rolling out iPods in the field,有自定义应用程序,所以我确信你不是第一个面临这一挑战的人。如果这项工作是通过国防部SBIR资助(或类似)资助的,您甚至可以联系您的合同官,看看他们是否可以让您联系相应机构的人员,他们可以帮助您与此相关(或者甚至确定它是否是一个问题)。
答案 1 :(得分:1)
我打算在这里走出去,说你可能不想在这类应用中使用iphone。在iPhone和跳板上对这种确切类型的操作有故意限制。如果您正在做一些非常敏感的事情,以至于它不能落入未经授权的手中,我的建议是使用一个不同的,更可定制/可控制的平台。
答案 2 :(得分:1)
除非您使用越狱设备,否则您可能会遇到问题。
即使你能找到一种自动删除应用程序的方法,你仍然冒着那些算法落入坏人之手的风险 - 你本来会遇到苹果公司与越狱一样的问题 - 一旦设备出现问题在别人的手中,只需要适当的动力来访问数据。
保护算法的唯一方法是将数据传递到远程服务器并获取结果。仍然存在安全漏洞的可能性,但它要低得多。
答案 3 :(得分:1)
我不知道这会有多好用,但您可以将算法存储为应用程序包中的文件,可能使用脚本语言或其他东西从该文件运行算法,如果需要,可以删除该文件
答案 4 :(得分:0)
文件夹是沙盒的,但您的应用程序在那里。在我的越狱iPhone上,我看到所有权限都归手机所有,所以我看不出为什么你不能用零覆盖所有文件然后删除它们的原因。
答案 5 :(得分:0)
应用程序包实际上是只读的,也许你应该在网络上的某个地方以加密形式存储一些信息。
答案 6 :(得分:0)
即使您找到了在闪存中写入应用程序的方法,您也真的没有删除应用程序。闪存芯片使用wear leveling algorithms来减少对相同块的写入,因此当您写出零时,它们通常被写入新的内存块而不是之前使用的相同块,因此您实际上并没有删除任何内容。数据仍然可以从闪存芯片中恢复(由专业人员)。
另一种选择是分离算法的参数,使算法不再敏感(或至少不可用),并提供在文件中加密的参数。然后通过网络向授权用户提供密钥,并且不将该密钥存储到闪存中,只存储在RAM中。他们每次启动应用程序时都需要获取密钥。只授予授权用户密钥。当然,你还需要加密该密钥以便通过网络传输另一个密钥...有这样做的系统,不要发明自己的,无论如何你需要一个加密专家来做这个右。
答案 7 :(得分:0)
我会使用内置加密来存储数据,用户必须输入密钥才能解密。如果没有密钥,那么从设备恢复数据blob无关紧要。