1

我在硬盘驱动器的某处有一个文件,我想确保它只能由特定程序访问,而不是

  • 由时间机器支持
  • 由 OS X 10.7 的版本功能复制
  • 以系统复制的任何其他方式 - 除非用户明确这样做,即通过将其复制到其他目录。

是否可以在 Objective-C 或 C 中以编程方式执行此操作?

4

2 回答 2

2

据我所知,使用CSBackupSetItemExcluded就足够了 - 您需要链接到CoreServices框架才能访问它。这负责 Time Machine 和版本。我不知道系统会自动复制文件的任何其他情况,除非用户明确完成。

于 2013-05-02T17:56:25.277 回答
2

不可能绝对确定只有特定程序才能访问用户计算机上的本地文件。这是因为如果用户足够精明,所有可能的方法都可以绕过。

执行此操作的一种常见(尽管复杂)方法是使用 Web 服务器提供的密钥加密文件。为了获取密钥并解锁文件,程序必须联系 Web 服务器,进行身份验证,然后使用密钥解密文件。如果您经常更改密钥并将其绑定到用户,攻击者将很难绕过这一点。攻击将包括当文件在内存中未加密时转储进程内存,然后以这种方式访问​​它。这很难,但可行。这种方法可以阻止除最老练的攻击者之外的所有攻击者。许多 PDF 和其他文档 DRM 都是以这种方式实现的(亚马逊为每个设备分配一个密钥并进行安装,但除此之外是相同的想法)。

于 2013-05-03T01:36:38.447 回答