gpt4 book ai didi

security - H2 的安全问题

转载 作者:行者123 更新时间:2023-12-02 04:36:05 27 4
gpt4 key购买 nike

注意:虽然我提到的是 H2,但这可能适用于任何 DBMS,

  1. 允许您将整个数据库存储在一个文件中;

  2. 公开其源代码。

我的问题:

是否可以通过执行以下操作来破解加密的 H2 数据库?

  1. 在某个表中存储一个非常大的清零 BLOB,大小为几百 KB。

  2. 检查新的 H2 数据库文件二进制文件并在页面/ block 边界附近寻找重复模式。页/ block 大小可以从 H2 源代码中获得。如此获得的重复模式将是用于加密 H2 数据库的 key 。

  3. 一旦 key 暴露,黑客只需要足够专注,然后进一步挖掘 H2 源并弄清楚其表、列和行的确切结构。换句话说,从这一刻起,一切都暴露了。

我没有亲自研究过 H2 的源代码,也不是密码学专家,但这就是为什么我认为上面的方法——或者上面的一些 hack——可能有效:

  1. 出于性能原因,所有 DBMS 都以 block (页面或 block 大小为 512 字节到 8 KB)的形式读取/写入数据,H2 也是如此。

  2. 由于数百 KB 的 BLOB 大小将远远超过 DBMS 的页面/ block 大小,因此可以预期加密 key (使用用户密码在内部生成)以小于页面大小的重复模式出现/ block 大小。

最佳答案

好的加密算法不会受到这种攻击。

明文中的模式(此处为零的 BLOB)将在密文中消散。 secret key 在密文中不会作为模式或其他方式轻易可见。在使用分组密码时实现这一点的经典技术是使一个分组的加密依赖于前一个分组的密文。这里我指的 block 是密码算法中使用的 block ,通常为 128 位长度。

例如,您可以将明文 block 与前一个 block 加密的结果进行异或,这里是来自维基百科的 CBC 模式的架构,它在加密之前将当前 block 与前一个 block 的结果进行异或。

CBC mode

如您所见,即使您在每个明文 block 中输入全零,您最终也会得到一个看起来完全随机的结果。

这些只是示例,H2 中使用的实际混淆机制可能更复杂或涉及更多,具体取决于它们使用的算法。

关于security - H2 的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com