我对大多数常见的本科/研究生安全基础非常熟悉;但我找不到与这种情况相关的任何内容:
一种方案/系统,其中一条数据只能被“解密”并且只能读取一次(可能在计算机程序中)。
甚至可能吗?我听说“硬件世界”中有这样的事情(?)。如果我的问题不精确/不完整,我愿意更新。但我实际上同时对通用设计/协议感兴趣。
我对大多数常见的本科/研究生安全基础非常熟悉;但我找不到与这种情况相关的任何内容:
一种方案/系统,其中一条数据只能被“解密”并且只能读取一次(可能在计算机程序中)。
甚至可能吗?我听说“硬件世界”中有这样的事情(?)。如果我的问题不精确/不完整,我愿意更新。但我实际上同时对通用设计/协议感兴趣。
没有办法做到这一点 - 这是 DRM 方案试图做的一个子集。
如果最终用户可以解密一次以查看它,他们就可以再次看到它。以下任何一种情况都是可能的:
您可以接近的唯一方法是完全控制硬件和软件,因此您可以在显示后删除,但即便如此,有人可以使用相机拍摄屏幕等照片。
所以,我想问一下您打算使用这种方案的目的是什么——因为在许多情况下有多种方法可以产生相同的效果。
正如您已经暗示的那样,这样的事情只能在硬件中实现。软件或加密数据解决方案总是会受到在解密前制作副本的影响。
在硬件中,该方案将破坏解密信息。一种天真的方法是简单地将一个块读入内存,在存储中销毁它,然后解密它。
当然,这种方法可能会成为篡改的受害者——攻击者可以操纵系统以使删除失败,但无论做什么解密都认为它成功并继续解密。
一种更复杂的方法是利用某些物理属性,使得读取信息也会破坏它。事实上,这就是使理论上的量子密码学变得安全的原因——你不能在不破坏信息的情况下窃听(监听),从而揭示有人正在拦截信息的事实。
在量子领域之外,可能会有使用化学或其他物理过程的解决方案,但它们也会受到篡改。
如果网络可用,您可以将解密过程(和私钥)卸载到在安全服务器上运行的服务。然后,您可以在服务器上执行您想要的任何规则。
客户端将不透明的文本提交给服务并要求它解密并返回明文内容,服务器可以根据解密历史决定是否允许客户端——可能会阻止多个解密操作。
但是,没有什么可以阻止调用者一遍又一遍地使用解密结果,这与一遍又一遍地解密它或多或少相同。已经尝试为音乐和电影这样做(请参阅受保护的媒体路径),但这是一场失败的战斗。如果不出意外,黑客可能会欺骗监视器硬件并记录输入信号,甚至只需将高清摄像机对准监视器并在播放时记录内容。类似的拦截技术可用于任何类型的数字内容。所以底线是……不,这不太可能。
一种更可行的方法是将序列号烘焙到内容本身并在授权服务器中跟踪它,或者烘焙过期时间戳。然后,您需要在接收端强制执行此操作,这必须是一个安全的应用程序。例如,这就是一次性密码的工作原理。但这要求您拥有数据路径的两端,并且数据本身在它之外是无用的。
这在任何方面都不实用,而且基本上是不可能的(以可靠的方式),但在某种程度上它可能是可能的。
使这项努力从根本上变得不可能的明显障碍是,无论你解密的是什么,一旦你读过它,它就在你的脑海里。因此,为了确保秘密保密,必须有某种毒丸机制。也许是一个包含 TTS 引擎的胶囊,通过骨传导将信息传输给你,然后爆炸,炸掉你的头。
因为,你知道,只要你呼吸,你就可以告诉别人。尽管如此,我们还是希望您不要大声重复 TTS 在您脑海中低语的内容。
除此之外,存在只能读取一次的数据存储系统。作为非易失性替代品的 DRAM 和铁电 RAM 就是其中的两个例子。这些需要内置的显式读后写,或不同的东西(例如电容器电路)。否则,读取信息会破坏信息。把它排除在外,你已经向前迈出了一大步。
现在,至少,一个人必须做两个副本(一个到非破坏性读取存储,然后另一个实际有副本)。尽管如此,这还是在“可行”的范围内,但是根据硬件兼容性,无论如何它可能有点负担(不确定您是否可以连接两种完全不同的、不兼容的存储类型并像《星际迷航》中那样复制数据,可能非常好吧,事实证明它比这更困难!)。但我们还没有结束。
解密密钥,甚至部分或完整的解密可执行文件(假设循环已展开)也可以存储在解密硬件内部的破坏性读取存储中。解密密钥永远不需要离开芯片,所以除了“数据”之外,不需要任何通道来传输它。它在解密期间被读取,然后它就消失了。所以……给你。
除非您假设有人可能会在芯片上钻几十纳米大小的孔并使用纳米线以某种方式窃听存储,否则无法获取数据。我并不是说这是不可能的,只是……这有点疯狂。没有任何信息有价值,足以证明这一点。另外,我猜这可能是一个非常危险的过程,因为意外泄漏一个微小的电荷或向左或向右移动几纳米也将不可避免地破坏密钥。
由于解密密钥通常非常小(32 字节或更少),它实际上可以存储在安全飞地处理器或类似设备中,就像现在许多移动设备中通常所做的那样。该存储可能也有破坏性的读取(以及飞地数据进行外部访问,就像每一个现代的手机上)。但它甚至不需要。
您可以使用如三星的 Knox 或 Apple 的 SEP 中的保险丝,原则上允许您解密数据 N 次(不只是一次,而是 N 次,只要您喜欢就可以)。之后,处理器就不会刷新(或显式覆盖)密钥。或者,安全性要低得多(但可能仍然足够好),它只是拒绝解密。
因此,制作加密数据的副本实际上并没有多大用处,因为您无法解密该副本。
当然,如果有任何方法,人们仍然可以轻松复制解密的数据。通常有数字和模拟两种。如果不出意外,您可以让两三个人同时看着屏幕,或者拍照。
然而,这是一个你根本无法解决的问题(除了爆炸装置或释放神经毒气的装置)。