【发布时间】:2020-06-21 06:11:24
【问题描述】:
我有一个独特的问题要解决。
我有一个连接到 Oracle RDBMS 的遗留 Java 应用程序。应用程序中散布着各种查询和 DML——插入、更新、删除,当然还有选择。它使用 JBC (Preparedstatement),不过最近添加的一个 lodule 使用 JPA。
我需要向应用程序/数据库添加保护层/逻辑,从而如果任何用户(甚至可能是 DBA 或操作系统 root 用户)试图绕过应用程序修改数据(更新、插入或删除) ,我们能够将操作识别为审计的一部分。
审计跟踪似乎是这里的首选,除了我们甚至不能信任操作系统 root 用户,因此拥有 DBA 和 root 访问权限的人可以轻松修改数据并在审计跟踪中删除它的踪迹。
我正在考虑在敏感表上实现一种循环加密算法,这样在应用程序执行的每个 DML 中,都会引入一个加密/哈希,并且它是增量的,以便通过使用审计轻松捕获任何更改应用程序。
理论上,这似乎是可行的,只是它可能会变得棘手,因为在每次 DML 之后,我们可能需要重新计算许多后续记录的哈希/校验和,这可能会使应用程序/数据库负担过重。
这是一个可行的解决方案吗?
【问题讨论】:
标签: java oracle hash cryptography checksum