如何存储计算机可以读取但用户不能读取的数据?

信息安全 加密 访问控制
2021-09-10 16:11:55

在电视连续剧The Office中,德怀特说他使用日记来对电脑保密。我想知道相反的情况是否可能:我的计算机可以创建一个它可以读取但我不能读取的文件吗?

我猜想起点是加密,而不是许可但是如果一个文件被加密了,为了再次解密它,你需要将密钥存储在某个地方,对吧?如果它以明文形式存储,显然用户可以访问它。

所以我的问题(一个奇怪的问题,我知道)是:如果你想编写可以访问数据并阻止用户这样做的软件,你会怎么做?

4个回答

有两种方法可以“或多或少”地实现(正如其他答案指出的那样,没有 100% 安全的方法,因为一般没有 100% 的安全性):

  • 软件混淆:它依赖于这样一个事实,即程序的执行流程是自愿的,并且人为地使程序变得如此繁琐,以至于掌握其逻辑并理解在(数百)数千个无操作和误导性操作中具体做了什么变得非常复杂.

    您可以找到 DRM 强制执行软件使用的此类系统:程序本身将能够读取受 DRM 保护的文件,但您不会,也不会读取任何不符合 DRM 的软件。这样做的目的是允许您以受限的方式(例如仅在有限的时间段内)打开文件,而不能复制它或执行任何未经授权的操作(例如打印它)。

  • 专用硬件存储:一些芯片允许存储一些信息而无法读取它,芯片本身将在内部完全访问这些信息,因此能够围绕这些信息提供一些服务。

    这通常用于在类似HSM的设备中存储私钥:加密密钥存储在芯片中,计算机上运行的程序可以要求芯片使用密钥加密某些数据,但没有办法从芯片中读取密钥本身。这用于确保即使某些恶意人员能够访问整个计算机的内容,他也无法访问受保护的密钥。

您的问题本质上是几乎所有数字版权(或限制)管理(DRM)方案的要求。请参阅是否有 DRM 技术可以有效防止盗版?有关更多信息,为什么您的问题的答案最终是“否”。DRM 可以使实施该方案的人不希望您看到的信息难以访问,但如果它确实是您的计算机并且您有物理访问权限,则不可能做到这一点。

没有绝对的方法可以做到这一点,因为使用该文件的计算机应用程序需要加密密钥,因此有足够知识和时间浪费在它上面的人理论上可以对应用程序进行逆向工程并找出加密密钥或获取文件内容。

也就是说,这不是一件容易的事,并且可能会阻止大多数人访问它。密钥甚至可以由应用程序定义,使其更难猜测或查找。

如果您想让实现它的人无法访问,那将变得更加复杂。在这种情况下,您提出的解决方案既不现实也不正确。多年来我看到过类似的请求,但没有计算机化的解决方案来解决社会或心理问题。即使是最好的实施也会导致更严重的问题(计算机损坏、自残等)。

创建可以隐藏用户信息而不删除它并且没有外部访问加密密钥的软件的能力是......嗯......主观的。

首先,是的,它可以对普通用户隐藏文件/文件夹,但是,这在很大程度上取决于用户的技术技能。如果一个非常高级的用户正在寻找......他们会找到它......没有地方可以隐藏。

其次,在加密方面......您可以完全加密文件,但如果没有外部访问,加密密钥必须存储在本地机器上......因此只需找到它。