通过互联网保护与火鸟连接的最佳方法

时间:2012-10-22 08:26:28

标签: database security firebird tunnel

我有一个客户端 - 服务器应用程序,它通过互联网使用firebird服务器2.5。 我遇到了安全访问FB数据库的问题,并且作为第一个尝试通过在应用程序中集成隧道解决方案(更准确地说是STunnel软件)来解决这个问题。但是,这个approch受到许多方面的影响: - 这会在客户端/服务器端添加更多的资源消耗(CPU,内存,线程), - 软件部署成为一个严重的问题,因为STunnel软件被写为WinNT服务,而不是Dll或组件(WinNT服务需要安装的管理员权限) 我的客户端应用程序需要在没有安装的情况下运行!

所以,我决定用喇叭(或者当我们谈论Firebird时用羽毛抓鸟)来取公牛。我已经下载了Firebird 2.5源代码并直接在其低级通信层(INET套接字层)中注入了安全隧道化代码。 现在,加密/解密由firebird引擎直接为每个TCP / IP数据包完成。

您如何看待这种方法与外部隧道化?

4 个答案:

答案 0 :(得分:1)

我建议从双方包装SSL / TLS流中的数据交换。这是经过验证的标准。 虽然使用静态密钥的自定义实现可能不安全。

例如,具有常数IV的CTR模式可以显示大量信息,因为它只加密递增的向量并将其与数据进行异或,因此对两个加密的数据包进行异或将显示未加密数据包的xored版本。

答案 1 :(得分:0)

一般来说,我对安全关键代码的看法是这样的,“你希望尽可能多地关注有问题的代码,而你不想自己维护它。”原因是我们都犯错误,在协作环境中,这些更容易被抓住。此外,这些可能会得到更好的测试。

在我看来,这里有一些可接受的解决方案。所有方法都会增加一些开销,但如果需要,可以在单独的服务器上处理此开销。可能性包括:

  1. Stunnel的

  2. IPSec(我最喜欢的一个)。请注意,使用IPSec,您可以创建隧道,然后可以将这些隧道转发到其他主机,这样您就可以将VPN管理移动到数据库主机以外的计算机上。您也可以直接向主机执行IPSec。

  3. PPTP

  4. 像tinc之类的跨平台vpn软件。

  5. 请注意,在安全方面,没有免费午餐,您需要非常仔细地检查您的要求,并确保彻底了解您正在使用的解决方案。

答案 2 :(得分:0)

stunnel建议是一个很好的建议,但是,如果这不合适,你可以在VM中运行真正的可信VPN。 (尝试说几次。)这有点奇怪,但它会像这样:

  1. 在firebird机器上设置VM并为该VM提供两个接口, 一个出去你的外部局域网(最好,如果你真的可以 将LAN卡绑定到它)和一个只有主机的LAN到firebird。
  2. 将openvpn服务器加载到该VM并使用客户端和服务器 证书
  3. 在您的客户端上运行您的openvpn客户端
  4. 奇怪,但确保了以下内容:

    1. 您的客户除非同时连接到服务器 客户和服务器同意证书
    2. 您的firebird服务仅接受此受信任VPN上的连接 链接。
    3. 从技术上讲,本地实体仍然可以连接到火鸟 VPN之外的服务器,如果你想要它 - 例如,a 同一本地局域网上的开发人员控制台。

答案 3 :(得分:0)

完成任务的最快方法不是改进firebird,而是改善你的连接。 获取两个可以进行SSL证书身份验证的防火墙设备,并将其放在数据库服务器和firebird设备前面。 让防火墙设备进行加密/解密,并让您的数据库服务器完成其工作,而无需干扰每个数据包。