2011-08-10 70 views
8

我需要保護我的UDP流量。據我瞭解DTLS協議是最好的方式來做到這一點。還有一個 - IPsec - 但它看起來不適合我,因爲它不易使用,並且可能存在硬件問題。確保UDP安全 - OpenSSL或GnuTls或...?

我發現有一些庫已經實現了DTLS。所以現在我試圖選擇 - OpenSSL或GnuTls?你能告訴我什麼更好用嗎?有什麼缺點或優點?或者可能有另一個實現了DTLS支持的庫?

謝謝。

+0

你的目標是什麼平臺/語言/開發工具? –

+0

@Eugene Mayevski我現在在使用C/GCC/Linux,也許在Windows之後。 – Rom098

+1

很多人在openldap有gnutls的問題,他們建議使用openssl。您可以查看此鏈接http://www.openldap.org/lists/openldap-technical/201202/msg00379.html更多 – HVNSweeting

回答

11

我發現關於庫和DTLS下面的事實。

  1. 還有另一個DTLS支持 - CyaSSL,但它現在只支持DTLS在測試模式。

  2. 儘管RFC 4347可以追溯到2006年4月,但OpenSSL自2005年以來支持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的信息。它可以手動構建,但它依賴於太多額外的庫,在某些分發版中可能沒有本地支持。

  4. 它看起來像所有這些庫可以在其他平臺(如Windows)上使用。

  5. 已知OpenSSL問題:OpenSSL默認啓用了DTLS壓縮功能,但它不應該是。 OpenSSL v0.9.8 API不提供任何禁用壓縮的方法。該方法應該手動實施。

摘要:

談到易用性,我個人寧願GNUTLS API,但在當時的OpenSSL看起來更加最好使用。

+1

不要忘記檢查許可證,並確保您使用的許可證適用於您。 – jtchitty

5

IPsec是最老的,因此也是最兼容和穩定的,但需要系統管理員的任務,並且對新手來說可能非常具有挑戰性。 DTLS正在從應用程序方面解決問題,程序員可以在很少改變的情況下顯着簡化和集成現有環境。

OpenSSL和GnuTLS之間的選擇幾乎總是由於許可。

OpenSSL許可證包括廣告子句:

3.所有的廣告材料的功能或使用本* 軟件必須顯示以下聲明:*「這 產品包括由OpenSSL項目開發的軟件*在OpenSSL工具包 使用(http://www.openssl.org/)」

維基百科的GnuTLS:

GnuTLS最初創建的目的是允許GNU項目 的應用程序使用安全協議(如TLS)。雖然OpenSSL已經存在,但是 OpenSSL的許可證與GPL不兼容; [4]因此GPL下的軟件 (例如GNU軟件)不能使用OpenSSL,而不使用 製作GPL鏈接例外。

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

+0

感謝您的回答。您是否知道RFC 4347合規性,平臺兼容性或特定錯誤的任何問題? – Rom098