保护UDP - OpenSSL或GnuTls还是......?

时间:2011-08-10 09:31:08

标签: linux security udp openssl

我需要保护我的UDP流量。据我所知,DTLS协议是最好的方法。还有一个 - IPsec - 但它看起来不适合我,因为它不容易使用,并且可能存在硬件问题。

我发现有些库已经实现了DTLS。所以现在我想选择 - OpenSSL还是GnuTls?你能告诉我什么更好用吗?有什么缺点或优点?或者可能有另一个已实现DTLS支持的库?

感谢。

2 个答案:

答案 0 :(得分:11)

我发现了关于库和DTLS的以下事实。

  1. 还有另一个支持DTLS的lib - CyaSSL,但它目前仅在测试模式下支持DTLS。

  2. 虽然RFC 4347的日期是2006年4月,但自2005年以来,OpenSSL支持DTLS(v0.9.8)。许多Linux发行版都包含此版本。 OpenSSL API看起来很丑陋,但似乎DTLS实现稳定。

  3. 自2011年起,GnuTls支持DTLS(v3.0.0)。看起来没有Linux包含此版本。 (例如,Ubuntu 11.04使用v2.8.6,Ubuntu 11.10将使用v2.10.5,而不是v3.0.0。)没有关于何时使用v3.0的信息。它可以手动构建,但是它依赖于太多额外的库,这些库在某些发行版中可能没有本机支持。

  4. 看起来所有这些库都可以在其他平台上使用(例如Windows)。

  5. 已知的OpenSSL问题:OpenSSL默认为DTLS启用了压缩,但不应该。 OpenSSL v0.9.8 API不提供任何禁用压缩的方法。该方法应手动实施。

  6. 内容:

    谈到可用性,我个人更喜欢GnuTls API,但当时OpenSSL看起来更适合使用。

答案 1 :(得分:5)

IPsec是最老的,因此最兼容和稳定,但需要来自系统管理员的任务,对初学者来说可能非常具有挑战性。 DTLS正在从应用程序方面解决问题,程序员可以通过更少的更改来显着简化和集成现有环境。

OpenSSL和GnuTLS之间的选择几乎总是由于许可。

OpenSSL许可包括广告条款:

  

3。所有提及此功能或使用的广告材料*   软件必须显示以下确认:*“这   产品包括由OpenSSL Project *开发的软件   在OpenSSL Toolkit中使用。 (http://www.openssl.org/)“

来自维基百科的GnuTLS:

  

最初创建GnuTLS是为了允许GNU项目的应用程序   使用安全协议,如TLS。虽然OpenSSL已经存在,   OpenSSL的许可证与GPL不兼容; [4]因此软件   在GPL下,如GNU软件,无法使用OpenSSL   使GPL链接异常。

http://en.wikipedia.org/wiki/GnuTLS