龍星DIMS ? 新聞資訊學(xué)習(xí)行業(yè)知識,發(fā)布行業(yè)動態(tài),播報公司發(fā)展,展示企業(yè)活力

物聯(lián)網(wǎng)安全協(xié)議之XMPP淺析

發(fā)布時間:2020-11-10

XMPP:可擴展消息處理現(xiàn)場協(xié)議,是一種基于XML流的用于即時通訊(IM)的協(xié)議,其間有三種角色,客戶端,服務(wù)器網(wǎng)關(guān),通信可以在三者之間任意兩個發(fā)生,前面兩個好理解,而網(wǎng)關(guān)是為了處理其他異構(gòu)系統(tǒng)即不使用XMPP協(xié)議的系統(tǒng),比如MSN,SMS等,網(wǎng)關(guān)可以轉(zhuǎn)換不同的協(xié)議,來達到交流互通作用??蛻舳伺c服務(wù)器是基于TCP/IP協(xié)議來建立連接,在上面?zhèn)鬏擷ML文檔。


由圖可知,客戶端之間無法直接交流,同時服務(wù)器允許多個客戶端同時連接??蛻舳送ㄟ^端口5222連接服務(wù)器,服務(wù)器之間通過5269互相通信。
       XMPP可用于異步通信,這也就表明了在客戶端和服務(wù)器之間存在兩條XML流和一條TCP鏈路,服務(wù)器之間需要兩條TCP鏈路來傳輸對端數(shù)據(jù)。
       XML流會以標(biāo)記開始,標(biāo)記結(jié)束,客戶端服務(wù)器之間可能每次只發(fā)送一個XML片段或者完整的。stream標(biāo)記的屬性如下:
       to只能用于從客戶端到服務(wù)器的XML流中。
       from只能用于從服務(wù)器到客戶端的XML流中。
       id只能用于從接收實體到發(fā)送實體的XML流中,id必須唯一,用于標(biāo)記會話。
       xml:lang只能用于發(fā)起方,用于約定語言。如發(fā)起方?jīng)]有攜帶xml:lang屬性,接收方應(yīng)使用默認(rèn)語言。
       version至少在“1.0”以上。


建立會話時,會先以TLS(安全傳輸層協(xié)議)建立一個安全鏈路,成功后再用SASL(簡單認(rèn)證和安全層協(xié)議)進行身份認(rèn)證,之后綁定資源開始傳輸XML流。
      TLS原理:利用非對稱加密演算來對通信方做身份認(rèn)證,之后交換對稱密鑰作為會談密鑰,就用此密鑰來加密傳輸信息。

關(guān)注官方微信
版權(quán)所有:常州市龍星工業(yè)自動化系統(tǒng)有限公司