2

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

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

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

4

2 回答 2

2

我不能具体说 Sybase 的系统,但数据库加密一般设计用于在文件系统级别进行加密,以防止后门访问数据库数据(即读取二进制文件并自行解析,而不是通过 RDBMS),不要阻止通过标准数据库接口访问或混淆数据(预计您将使用 RDBMS 的安全机制来执行此操作)。

于 2010-06-09T15:48:36.367 回答
0

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

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

于 2010-06-09T15:55:43.867 回答