2011-07-08 66 views
1

我提前道歉這個問題有點長時間的囉嗦,但我覺得我需要提供一些額外的信息,以便適當地限定我目前的困境。Openfire是否支持通過Http綁定的TLS?如果不是什麼替代

背景

好了,所以在許多方面,這問題是一個跟進到previous question I asked regarding TLS/SSL encryption for XMPP communication and which libraries were the best.起初我順從地只使用使用TLS/SSL,但此後擴大到包括Java庫爲.NET庫也是一個合適的替代品,並嘗試了Smack API的簡單實現。在對TLS/SSL加密進行詳盡的(並且很大程度上是誤導性的)研究之後,我意識到,當Openfire正確配置爲阻止非安全連接時,大多數XMPP客戶端在連接到Openfire時將自動協商TLS加密通信,只要我控制服務器端的用戶名單(即禁止用戶從任何客戶端創建新帳戶的能力),我可以通過Openfire或多或少地創建安全的端到端XMPP協作。

面臨的新問題

一旦我解決了以前的問題,我嘗試過通過的Openfire的HTTP綁定功能和端口的HTTP綁定用於安全通信此方法。原因是因爲我們的實施將要求用戶從其他網絡連接到我們的Openfire服務器。另外,也許很明顯,我們將無法控制這些用戶防火牆如何配置爲允許通過端口5222傳出套接字連接,更何況由於我們正在實施的系統的性質,我們的任何客戶都不太可能願意/允許打開他們的防火牆來建立到我們的XMPP服務器的套接字連接。

這個問題是由於Openfire的Http Bind似乎不支持自動TLS,而是僅支持(如Openfire所說)的「舊SSL」加密方法。 This and other Openfire Socket vs Http are discussed in another question here, although not yet at great length

問題(最後)

  • 首先,任何人都可以證實, 的Http-通過綁定實際的Openfire 不支持自動TLS?

  • 二,Smack API支持 Http-Bind?目前有關Ignite實時的 網站的existing ticket,似乎表明它 不支持,但門票 成立於2007年,並從2011年6月,詢問 任何更新已就這一 功能作爲其最後 評論尚未回覆 。

  • 第三,好像我的最後 訴諸使用的Openfire和 的Http綁定將使用「老 SSL」的方法實現安全 通信然而這並不 似乎是一個很好的長期解決方案。 此外,Openfire的論壇和其他 各種謠言鋼廠已表示 了SSL功能將 在未來的Openfire 版本(任何人都可以輕信 這個傳聞)已過時。所有這一切,是 SSL我唯一真正的替代 安全連接使用Http綁定。

回答

1

默認情況下,Openfire會爲基於HTTP綁定(BOSH)的連接打開兩個端口。一個是純文本端口(7080),一個是TLS/SSL加密端口(7483)。這很像用於常規套接字連接的兩個端口(5222,5223)。

通過非HTTP常規套接字端口(5222)連接的客戶端可以將最初的純文本通道提升爲加密通道(使用STARTTLS)。當STARTTLS被引入時(當時我沒有孩子),預先存在的TLS/SSL加密端口(5223)被稱爲'舊'加密方式。也許有些過分熱情,有人建議放棄'舊'技術來支持'新'技術。

STARTTLS尚未明確添加到HTTP綁定(BOSH)實現的「純文本」端口(7080)。這是設計。與5222端口上的'plain socket'連接不同,BOSH使用傳輸協議:HTTP。 BOSH的信道加密應該在HTTP(傳輸)層(端口7483)完成,而不是XMPP(應用)層(在非基於HTTP的世界中轉換回「舊」方式)。順便說一下,這不是Openfire特定的:它由the BOSH protocol指定。

對於舊的基於SSL的端口的棄用:Openfire開發人員之間的普遍一致意見是,刪除舊的SSL端口沒有意義:儘管該技術有些過時,但並不安全比更現代的(STARTTLS)技術。最重要的是,放棄'舊'SSL端口的討論面向非基於HTTP的連接(客戶端,服務器到服務器,外部組件等的套接字連接)。最後,關於是否更改BOSH的默認端口編號(Openfire 7080/7483的使用早於標準BOSH端口編號的定義)的類似但鮮明的討論,討論有些失真。

由於BOSH的設計目的是利用HTTP提供的加密技術,其加密端口將繼續存在。

至於Smack-supporting-BOSH的問題:Smack支持:https://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/bosh/XMPPBOSHConnection.html

相關問題