龙星DIMS • 新闻资讯学习行业知识,发布行业动态,播报公司发展,展示企业活力

物联网安全协议之XMPP浅析

发布时间:2020-11-10

XMPP:可扩展消息处理现场协议,是一种基于XML流的用于即时通讯(IM)的协议,其间有三种角色,客户端服务器网关,通信可以在三者之间任意两个发生,前面两个好理解,而网关是为了处理其他异构系统即不使用XMPP协议的系统,比如MSN,SMS等,网关可以转换不同的协议,来达到交流互通作用。客户端与服务器是基于TCP/IP协议来建立连接,在上面传输XML文档。


由图可知,客户端之间无法直接交流,同时服务器允许多个客户端同时连接。客户端通过端口5222连接服务器,服务器之间通过5269互相通信。
       XMPP可用于异步通信,这也就表明了在客户端和服务器之间存在两条XML流和一条TCP链路,服务器之间需要两条TCP链路来传输对端数据。
       XML流会以标记开始,标记结束,客户端服务器之间可能每次只发送一个XML片段或者完整的。stream标记的属性如下:
       to只能用于从客户端到服务器的XML流中。
       from只能用于从服务器到客户端的XML流中。
       id只能用于从接收实体到发送实体的XML流中,id必须唯一,用于标记会话。
       xml:lang只能用于发起方,用于约定语言。如发起方没有携带xml:lang属性,接收方应使用默认语言。
       version至少在“1.0”以上。


建立会话时,会先以TLS(安全传输层协议)建立一个安全链路,成功后再用SASL(简单认证和安全层协议)进行身份认证,之后绑定资源开始传输XML流。
      TLS原理:利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥,就用此密钥来加密传输信息。

关注官方微信
版权所有:常州市龙星工业自动化系统有限公司