H2数据库:如何通过加密进行保护,而不暴露文件加密密钥

And*_*ndy 5 java encryption aes h2

我们正在服务器模式下使用Java + H2数据库,因为我们不希望用户访问数据库文件。

为了给数据库文件增加保护,我们计划使用AES加密(将CIPHER = AES添加到数据库URL)以防存储被盗。

但是,每个用户在连接时也需要提供文件保护密码([文件密码] [空格] [用户密码])。

尽管用户无权访问数据库文件,但是知道加密密钥(文件保护密码)将使加密变得毫无用处。

有什么想法可以在不向用户暴露文件加密密钥的情况下保持数据库文件的安全(加密)?

谢谢。

Tho*_*ler 5

目前 H2 中还没有办法做到这一点。

一种解决方案是使用独立于 H2 的文件系统加密。

但请注意,有时您必须提供(数据库文件或文件系统)密码。这可能是在启动服务器时(提示手动输入密码)。不幸的是,由于必须有人输入密码,因此您无法完全自动启动服务器。

  • 我认为这是一个常见问题,即使在理论上也没有“好的”解决方案。如果您加密,则必须将密码存储在某处。如果您将密码与加密数据保存在同一系统上,则必须使用新密码对密码进行加密...最后,您确实需要密码的“安全”位置(可能在某些人的头脑中)或在安全系统上)。箱子和钥匙也是一样。您必须将钥匙保存在安全的地方。 (2认同)