gpt4 book ai didi

jdbc - Firebird 3.0 使用 AES128 插件加密 - 无法连接

转载 作者:行者123 更新时间:2023-12-02 16:04:22 31 4
gpt4 key购买 nike

我正在使用 Firebird 3,并通过此处找到的 AES128 插件进行加密。 https://www.ibphoenix.com/products/software/encryptionplugin

我已成功加密数据库,并且可以使用 isql 连接和查询它,但是我无法从 ColdFusion CFIDE - 数据源区域内进行连接。我之前使用过 dbcrypt 插件,它工作得很好,只是与未加密的数据库相比速度非常慢。但使用 AES128 插件时,我收到错误

Connection verification failed for data source: devBBL java.sql.SQLException: Unsupported operation code: 97 The root cause was that: java.sql.SQLException: Unsupported operation code: 97

CFIDE 数据源窗口中的连接信息与以前相同。

JDBC URL: jdbc:firebirdsql:localhost/3050:C:\fbdb\MASTER25.FDB
Driver Class: org.firebirdsql.jdbc.FBDriver
Driver Name: JayBird
Username: SYSDBA
Password: PASSWORD

有人知道是什么导致我在尝试连接时收到此错误吗?我需要添加一些额外的参数吗?

最佳答案

如果数据库已加密并且插件需要回调来获取 key (而不是使用服务器本地加密 key ),则会发生这种情况。

如果配置为使用回调来获取加密 key ,则在附加阶段,Firebird 将向客户端发送一个带有操作代码 op_crypt_key_callback (= 97)(以及插件特定数据)的数据包,并且客户端反过来应该使用加密 key (或者至少使用插件可以用来派生加密 key 的插件特定数据)来响应。

Jaybird 3.0.4之前的版本不支持处理加密 key 回调(操作码97),因此会出现此错误。

Jaybird 3.0.4 中引入了将固定响应传递给加密 key 回调的基本支持。对于早期版本,如果无法升级,解决方法是使用服务器本地加密 key 。

解决方案

解决方案是将 Jaybird 升级到 Jaybird 3.0.4,引入了对数据库加密回调的支持。如果加密插件执行回调,但实际上不需要使用响应的内容,那么它将开箱即用。

如果加密插件需要 key 回复,您可以在dbCryptConfig连接属性中设置 key 。您可以通过在 Base64 编码值前添加 base64: 或字符串键来使用它,该值将使用 UTF-8 编码转换为字节。

例如在连接字符串中:

jdbc:firebirdsql://localhost/appdbalias?dbCryptConfig=base64:dmVyeXNlY3JldGtleQ==

jdbc:firebirdsql://localhost/appdbalias?dbCryptConfig=verysecretkey

该实现目前不支持更高级的回调。

Jaybird 3.0.4(或更高版本)可以从https://www.firebirdsql.org/en/jdbc-driver/下载

请参阅 Jaybird 3.0.x 发行说明,第 Database encryption support 部分了解更多信息。

解决方法

注意仅当您还无法升级到 Jaybird 3.0.4 或更高版本时才使用此解决方法。

根据https://www.ibphoenix.com/products/software/encryptionplugin上的说明您可以使用 KeyHolderPlugin = KeyFile 而不是 KeyHolderPlugin = Callback 来配置服务器本地 key 。

不幸的是,这不起作用。看起来相关插件正在无条件地执行对客户端的回调,即使它具有本地可用的必要数据。这可能是这个加密插件中的一个错误,或者可能是一个故意的设计决定。

IBPhoenix 发布了此插件的新版本,版本 1.2.1,它允许您通过在 plugins/KeyFile.conf 中设置 DisableCallback = true 的显式设置来禁用此回调.

关于jdbc - Firebird 3.0 使用 AES128 插件加密 - 无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49817579/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com