190 likes | 471 Views
An Analysis of XMPP Security. Team “Vision” Chris Nelson Ashwin Kulkarni Nitin Khatri Taulant Haka Yong Chen. CMPE 209 Spring 2009. Agenda. HISTORY OF XMPP INTRODUCTION TO XMPP SECURITY IN XMPP Use of TLS ( Transport Layer Security)
E N D
An Analysis of XMPP Security Team “Vision” Chris Nelson Ashwin Kulkarni Nitin Khatri Taulant Haka Yong Chen CMPE 209 Spring 2009
Agenda • HISTORY OF XMPP • INTRODUCTION TO XMPP • SECURITY IN XMPP • Use of TLS (Transport Layer Security) • Use of SASL (Simple Authentication and Security Layer) • SECURITY CONCERNS IN XMPP • Conclusion
HISTORY OF XMPP • 1998-Core technology was invented by Jeremie Miller • 1999-Jabber open-source community initially started to developed the protocol • 2000-Instant Messaging and Presence Protocol (IMPP) Working Group published the result • 2002 and 2003-XMPP protocol was formalized by IETF • 2004-The XMPP RFCs were published. • 2007-Jabber Software Foundation was renamed XMPP Standards Foundation
Application using XMPP • Instant messaging • Presence • Media session management • Shared editing • Whiteboarding • Collaboration • Lightweight middleware • Content syndication • Generalized XML routing.
The core protocols of Extensible Messaging and Presence Protocol • Jabber Client • Jabber Server • Presence and IM Session Establishment • Resource Binding • Server Dialback • Simple Authentication and Security Layer • S/MIME Encryption • Stanza Errors • Stream Errors • Transport Layer Security • XML Streams
XMPP Communication • XMPP uses XML to communicate between two nodes • A client and a server • A server and a server • A client and another client via one or more servers
XMPP Communication (cont.) • simplistic view of one-way communication using XMPP. • <stream> -open connection </stream> close connection • <presence> and </presence> indicate the start and end of the stanza • <iq> and </iq> information/query (iq) requests and responses
SECURITY IN XMPP • XMPP is built on four layers • TCP as the reliable transport protocol • TLS for encryption of data sent over the TCP connection • SASL for authentication of nodes communicating over TLS and TCP • XMPP as an application communicating over the reliable, authenticated, and encrypted channel
SECURITY IN XMPP Use of TLS • The initiating entity opens a TCP connection including the 'version' attribute • The receiving entity responds by opening a TCP connection including the 'version' attribute • The receiving entity offers the STARTTLS extension including a <required/> element as a child of the <starttls/>
SECURITY IN XMPP Use of TLS (Cont) • The initiating entity issues the STARTTLS command • The receiving entity MUST reply with either a <proceed/> element or a <failure/> • The initiating entity and receiving entity attempt to complete a TLS negotiation • If the TLS negotiation is unsuccessful, the receiving entity MUST terminate the TCP connection
SECURITY IN XMPP Use of SASL • The initiating entity requests SASL authentication by including the 'version' • The receiving entity advertises a list of available SASL authentication mechanisms • The initiating entity selects a mechanism by sending an <auth/> • The receiving entity challenges the initiating entity by sending a <challenge/> • The initiating entity responds to the challenge by sending a <response/>
SECURITY IN XMPP Use of SASL (cont.) • If necessary, the receiving entity sends more challenges -- the initiating entity sends more responses until: • The initiating entity aborts the handshake by sending an <abort/> • The receiving entity reports failure of the handshake by sending a <failure/> • The receiving entity reports success of the handshake by sending a <success/>
XMPP Extensions • Instant Messaging and Presence -- base XMPP extensions for instant messaging, contact lists, presence, and privacy blocking. (RFC 3921) • End-to-End Signing and Object Encryption (RFC 3923) • XMPP extensions with additional features including XML-RPC and SOAP bindings, in-band registration, extended presence, geolocation, and reliable message delivery (XEP series )
XMPP Extensions (XEP series ) • Service Discovery -- a robust protocol for determining the features supported by other entities on an XMPP network (XEP-0030) • Data Forms -- a flexible protocol for forms-handling via XMPP, mainly used in workflow applications and for dynamic configuration (XEP-0004 ) • File Transfer -- a protocol for transferring files from one XMPP entity to another (XEP-0096) • HTTP Binding -- a binding of XMPP to HTTP rather than TCP, mainly used for devices that cannot maintain persistent TCP connections to a server (XEP-0124 )
SECURITY CONCERNS IN XMPP • Security depend on user • User trust a certificate from an unknown source • And/Or implementation • Performing SASL negotiations before securing the channel with TLS • sending message, presence, or iq data before completing the TLS or SASL negotiations
Conclusion • XMPP was designed with security in mind • Its architecture is solid • The implementation is secure • Susceptible to careless users
References • Summary of XMPP. (2007, January 16). Retrieved March 8, 2008, from http://www.xmpp.org/about/summary.shtml • Extensible Messaging and Presence Protocol. Retrieved March 8, 2008, from http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol • Extensible Messaging and Presence Protocol (XMPP): Core. (2004, October). Retrieved March 8, 2008, from http://tools.ietf.org/html/rfc3920 • Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence. (2004, October). Retrieved March 8, 2008, from http://tools.ietf.org/html/rfc3921 • 6 End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP). (2004, October). Retrieved March 8, 2008, from http://tools.ietf.org/html/rfc3923 • End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP). (2004, October). Retrieved March 8, 2008, from http://tools.ietf.org/html/rfc3923 • The XMPP Federation. Retrieved March 8, 2008 from https://www.xmpp.net • Simple Authentication and Security Layer (SASL). (2006, June). Retrieved March 8, 2008, from http://tools.ietf.org/html/rfc4422 • Extensible Messaging and Presence Protocol (XMPP): Core. (2004, October). Retrieved March 8, 2008, from http://tools.ietf.org/html/rfc3920
Questions and Answers Thank You!