数据库加密问题

时间:2010-06-09 15:44:08

标签: database encryption sqlanywhere

我们正在使用Sybase SQL Anywhere 11。我们需要加密数据库中的一些表。我按照说明做了。我们选择了使用encryptionKey和AES256_FIPS算法的“强”选项。但是有一些我不清楚的事情。

  1. 当我们创建数据库,删除数据库并启动数据库服务器时,它将需要encryptonKey,但是当我们停止数据库服务器并连接到服务器以创建表并添加数据时,它将不需要encryptionKey。为什么没有加密密钥问我们什么时候连接它或试图停止服务器?我做错了什么?

  2. 不知道如何测试加密?使用Sybase Central工具时,我仍然可以在加密表中看到所有纯文本。如果有人知道数据库用户名和密码,他/她可以连接到数据库并读取没有encryptionKey的内容。这是对的吗?

2 个答案:

答案 0 :(得分:2)

我不能专门针对Sybase的系统,但数据库加密一般旨在加密文件系统级别,以防止后门访问数据库的数据(即读取二进制文件和解析它本身而不是通过RDBMS),以防止通过标准数据库接口访问或混淆数据(预计您将使用您的RDBMS的安全机制来执行此操作)。

答案 1 :(得分:0)

最有可能的是,SQL Anywhere工具在您第一次输入时(即在服务器启动时)捕获加密密钥,然后将其存储在内存中以解密其他操作。正如@Adam Robinson所说,数据需要在文件系统中加密,或者通过采用“模拟解决方案”并解析原始文件来实现后门,这对于您的第二个问题来说是个不错的选择...

如果要测试加密,请尝试在Sybase工具之外查找并打开文件,看看是否可以发现任何可识别的数据。我将从一个简单的文本搜索字符串开始(创建一个可以搜索的唯一字符串的单元格),并确保它不在加密文件中。要验证,您还可以解析数据库的非加密版本,并确保可以在那里找到字符串。