保护UDP – OpenSSL或GnuTls或…?

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

我发现有一些库已经实现了DTLS。 所以现在我试图select – OpenSSL或GnuTls? 你能告诉我什么是更好的使用? 有什么缺点或优点? 或者可能有另一个DTLS支持的库实现?

谢谢。

Solutions Collecting From Web of "保护UDP – OpenSSL或GnuTls或…?"

我发现了关于图书馆和DTLS的以下事实。

  1. 还有另外一个支持DTLS的库 – CyaSSL,但是现在只支持在测试模式下的DTLS。

  2. 尽管RFC 4347可以从2006年4月开始,但是自2005年以来,OpenSSL支持DTLS(v0.9.8)。 许多Linux发行版都包含这个版本。 OpenSSL API看起来很难看,但DTLS实现看起来很稳定。

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

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

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

概要:

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

IPsec是最老的,因此最兼容和稳定,但需要系统管理员的任务,并且对于新手来说可能是相当具有挑战性的。 DTLS正在从应用程序方面解决问题,程序员可以用更少的变化大大简化并与现有环境集成。

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

OpenSSL许可包含广告条款:

3.所有提及此软件功能或使用的广告材料必须显示以下声明:*“本产品包含由OpenSSL Project *开发的软件,用于OpenSSL Toolkit。”( http://www.openssl.org/ ) “

GnuTLS来自维基百科:

GnuTLS最初是为了允许GNU项目的应用程序使用安全协议(如TLS)而创建的。 尽管OpenSSL已经存在,但是OpenSSL的许可证与GPL不兼容;因此,GPL下的软件,比如GNU软件,不能使用OpenSSL而不发出GPL链接异常。

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