我目前正在计划一个项目,其中数据库数据的修订安全性很重要。这意味着:我们希望能够证明数据库中的数据自导入以来没有得到缓和 - 没有用户更改了值,没有数据库管理员登录到数据库并进行了更改。
实现这一目标的最佳方法是什么?
直到现在,我最喜欢签署数据库行的想法:我创建行中所有字段的MD5哈希值,然后将其发送到时间戳签名服务器(have a look on wikipedia)并存储创建的签名与行。从这个时候开始,我们可以证明自从创建这个邮票以来没有人改变过该行。
有更好的想法吗?而且,如果您像我一样喜欢这个想法,我应该使用什么时间戳服务器以及如何访问它? Verisign Timestamp Server似乎被大量使用,但我找不到任何关于如何使用它“原始”的文档,例如:没有Microsoft代码签名工具等。
谢谢!
答案 0 :(得分:1)
时间戳服务器通常不是免费使用的。
或者,您可以使用HMAC-MD5(或HMAC-SHA1),并使用仅为授权用户所知的密码。密码当然不是直接使用的,更好的是通过PKCS#5或至少使用种子进行哈希处理。没有密码,没有人可以验证或重新创建HMAC-MD5