Enabling Secure XMPP Communications in Federated IoT Clouds Through XEP 0027 and SAML/SASL SSO
Abstract
:1. Introduction
- End-to-End and multicast message signing/encryption for inter-module communication;
- Cloud-to-Cloud authentication for inter-domain authentication.
2. Related Work
3. An Architectural Model for Federated IoT Cloud Environments
- Modularity: The middleware can be quickly extended in terms of available utilities and it can be easily customized in order to suits a specific IoT Cloud scenario.
- Polymorphism: Each distributed entity in the system can play different roles according to the system requirements.
- Security: An indispensable requirement for large-scale IoT Clouds is security, especially in business scenarios. Security has to be natively addressed at any level of communication (intra-module, inter-module, and inter-domain), providing guarantees in terms of data confidentiality and data integrity
- Federation: It is a strategic approach to promote collaboration among cooperating IoT Cloud providers.
- IntraModule Communication: It allows information exchange inside each node of the architecture.
- InterModule Communication: It governs communications between CMs and TEs and vice-versa.
- InterDomain Communication: It enables the communication between CMs belonging to different administrative domains, hence enabling IoT federation scenarios.
4. Why Does XMPP Suit IoT?
4.1. XMPP Overview
- Support to End-to-end communication;
- Real-time capabilities such as heartbeat, alarms, and any kind of asynchronous communication;
- Efficient distribution of data with public/subscribe and end-to-end approaches;
- Advanced service discovery;
- Federation. Most firewalls allow users to fetch and post messages without hindrance. Thus, if the Transmission Control Protocol (TCP) port used by XMPP is blocked, a server can listen on the normal HTTP port and the traffic should pass without problems.
4.2. Management of Inter-Module Communications
- Communication between CM and TE for the exchanging of information related to the cluster status and for enforcing specific commands;
- Communication between the administrators and CM using the ad-hoc client interface.
4.3. Management of Inter-Domain Communications Enabling IoT Federation
5. Security Issues in XMPP-Based Communication Systems for Federated IoT Environments
- In the Governance and Enterprise Risk Management, there is the need to “divulge policies, procedures and processes comprising the IoT Cloud providers’ Information Security Management System (ISMS)”, knowing who makes what.
- Whereas in the Information Management and Data Security, it is necessary to “assure that IoT Cloud provider personnel controls are in place to provide a logical segregation of duties.”
- In the Traditional Security, Business Continuity and Disaster Recovery, “Customers should perform onsite inspections of IoT Cloud provider facilities whenever possible.”
- Data Center Operation, “IoT Cloud providers must all be able to demonstrate comprehensive compartmentalization of systems, networks, management, provisioning and personnel.”
- In the Incident Response, Notification and Remediation, “IoT Cloud providers should construct a registry of application owners by application interface (Uniform Resource Locator (URL), Service Oriented Architecture (SOA) service, etc.)”.
- Encryption and Key Management, where “segregate the key management from the ioT Cloud provider hosting the data, creating a chain of separation”.
- Data Confidentiality, Integrity, and Non Repudiation for Message Exchange. As previously discussed, the different software modules can communicate over one or more MUCs that allow to isolate the communication of the involved software modules also providing a way to control which module can join a chat-room by means of a username/password authentication. This level of security is particularly weak considering emerging IoT Cloud architectures. Considering software modules A and B of an IoT Cloud system (i) modules A and B have to perform a mutual authentication before communicating through X.509 certificates in order to avoid identity-thief attacks; (ii) message exchanged between software modules A and B has to be confidential and not corrupted in order to avoid man-in-the-middle attacks; (iii) if software module A sends a message to B, module A cannot deny of having done it.
- SSO Authentication for IoT Cloud federation. Federation between IoT Cloud providers implies the establishment of a secure inter-domain communication between the XMPP servers of the involved IoT environments. This raises several issues regarding the management of authentication between the XMPP servers of different IoT Cloud domains. In fact, considering a scalable scenario including n IoT Clouds in order to perform an inter-domain federation the XMPP server of each IoT Cloud should perform authentication on the other , hence managing different credentials for accessing the federated IoT Clouds. Considering the whole IoT Cloud federation ecosystem it is required to manage different credentials. The Identity Provider/Service Provider (IdP/SP) scheme allows to address such a problem introducing a trusted third-party, i.e., the IdP, so that an IoT Cloud provider that wants to perform a federation with the other IoT Clouds has to perform the authentication once, gaining the access on the other IoT Clouds which will be trusted with the IdP. Unfortunately, at the moment of the writing of this paper, the SASL/TLS on which the XMPP is based does not support any standard form of SSO authentication for server-to-server federation.
5.1. Concerns Regarding Data Confidentiality, Integrity, and Non Repudiation
- Digital identity management. Each IoT device, acting as CM and/or TE node, during the in-band registration (i.e., an automatic enrolment of the IoT device on the XMPP server) with the XMPP server requires a digital certificate to a trusted Certification Authority (CA) through the Simple Certificate Enrollment Protocol (SCEP).
- Signed message exchange. Each IoT device, acting as CM and/or TE node, should be able to sign a message sent to another one.
- Encrypted message exchange. Each IoT device, acting as CM and/or TE node, should be able to perform a total or partial encryption of the message body.
- Private chat rooms. The communication system should allow the management of private MUCs with restricted access to authorized software modules.
- Encrypted chat rooms. The communication system should allow the management of private and encrypted MUCs. The key exchange between communicating modules should take place according to a PKI schema. The component that play the role of “moderator” instantiate a new MUC associating a session key. When a new component wants to join the communication, the “moderator” component sends the session key encrypted with the public key of the new component itself.
5.2. Concerns about XMPP Server-to-Server IoT Federation
- The originating server generates a Dialback key and sends that value over its XML stream to the receiving server. (If the originating server does not have yet an XML stream with the receiving server, it will first need to perform a Domain Name System (DNS) lookup on the target domain and after that it has discovered the receiving server, it opens a TCP connection using the discovered IP address and port, and finally establishes an XML stream with the receiving server.)
- Instead of immediately establish a MUC using the connection established by the originating server, the receiving server sends the same Dialback key over its XML stream with an authoritative server for verification.
- The authoritative server informs the receiving server whether the key is valid or invalid.
- The receiving server informs the originating server whether its identity has been verified or not.
- PLAIN, a simple clear text password mechanism. PLAIN obsoleted the LOGIN mechanism.
- SKEY, an S/KEY mechanism.
- CRAM-MD5, a Challenge-Response Authentication Mechanism based on the keyed-Hash message Authentication Code (HMAC) MD5 algorithm, a simple challenge-response scheme based on TEAC-MD5.
- DIGEST-MD5, an HTTP Digest compatible challenge-response scheme based upon MD5 that offers a data security layer.
- GSSAPI, a Kerberos V5 authentication via the GSSAPI that offers a data-security layer.
- GateKeeper, a challenge-response mechanism developed by Microsoft for MSN Chat.
6. Securing the XMPP-Based Communication System for Federation-Enabled IoT Clouds
6.1. Message Signing/Encryption for Inter-Module Communication
- Signed. It allows to attach to the message body a digest signed with the private key of the sender component. The signed extension is identified by the XML name space jabber:x:signed (<x xmlns=‘jabber:x:signed’>) known by all the components. When the message arrives to the receiver software module, it detects the signed extension and it queries the LDAP publisher server if an X509 certificate exists for the sender. If it exists, the receiver validates the sign and verifies the message digest according to a shared algorithm.
- Encrypted. It allows to attach to the message body a content encrypted with the public key of the receiver module. When a component wants to send an encrypted message, it requests to the LDAP publisher server the X509 certificate of the receiver component. Thus using the public key of the receiver, the sender module encrypts the message and it includes the encryption extension identified by the “jabber:x:encrypted” name space (<x xmlns=‘jabber:x:encrypted’>). When the message arrives to destination, the receiver component decrypts it with its private key. This process is summarized in Figure 7.
- Session Key. It allows to attach to the message a session key. It is used to support a hybrid encryption scheme: the unique shared key or the session key is used to encrypt/decrypt the messages sent by sender and receiver modules according to a symmetric encryption scheme (already used in the SSL/TLS protocol), but the session key is exchanged between the two parties according to a public key or asymmetric schema. The advantages of such a hybrid cryptographic scheme is twofold: session key secrecy and faster processing during the encryption/decryption of the message body.
- Timestamp. It allows to attach to the message a signed timestamp in order to enable an investigative support.
6.2. SASL/SAML SSO Authentication for Inter-Domain Communications
- The server may advertise the SAML20 capability;
- The client initiates a SASL authentication with SAML20;
- The server sends the client one of two responses:
- (a)
- a redirect to an IdP discovery service; or
- (b)
- a redirect to the IdP with a complete authentication request;
- In both case, the client must send an empty response;
- The SASL client hands the redirect to either a browser or an appropriate handler (either external or internal to the client), and the SAML authentication proceeds externally and opaquely from the SASL process;
- The SASL Server indicates success or failure, along with an optional list of attributes.
- Permissive Federation, a server accepts a connection from any other peer on the network, even without verifying the identity of the peer based on DNS lookups.
- Verified Federation, a server accepts a connection from a peer only after that its identity has been weakly verified via Server Dialback, based on information obtained via the DNS and verification of the keys exchanged in-band over XMPP.
- Encrypted Federation, a server accepts a connection from a peer only if the peer supports TLS and the client authenticates itself using a SASL mechanisms.
- Step 1: S2S Manager of Source eJabberd Server initiates stream to the S2S Manager of the Destination eJabberd Server.
- Step 2: S2S Manager of the Destination eJabberd Server responds with a stream tag sent to the S2S Manager of the Source eJabber Server.
- Step 3: S2S Manager of the Destination eJabber Server informs the S2S Manager of the Source eJabberd Server of available authentication mechanisms.
- Step 4: S2S Manager of the Source eJabberd Server selects SAML as an authentication mechanism.
- Step 5: S2S Manager of Destination eJabberd Server sends a BASE64 encoded challenge to the S2S Manager of the Source eJabberd Server in the form of an HTTP Redirect to the Destination AA (acting as relying party).
- Step 6: (a) S2S Manager of Source eJabberd Server sends a BASE64 encoded empty response to the challenge; and (b) forward to the Source AA the URL of the relying party.
- Step 7: The Source AA (acting as user) engages the SAML authentication flow (external to SASL) contacting the Destination AA (acting as relying party).
- Step 8: Destination AA redirect Source AA to the IdP.
- Step 9: Source AA contacts IdP and performs Authentication.
- Step 10: IdP responds with Authentication Assertion.
- Step 11: Source AA contacts Destination AA for gaining access to the resource.
- Step 12: Destination AA contacts the S2S Manager of the Destination eJabberd Server informing it about the authentication result.
- Step 13: if the authentication is successful the S2S Manager of the Source eJabberd Server initiates a new stream to the S2S Manager of Destination eJabberd Server.
7. Experimental Results
8. Conclusions and Future Work
Acknowledgments
Author Contributions
Conflicts of Interest
References
- Celesti, A.; Fazio, M.; Giacobbe, M.; Puliafito, A.; Villari, M. Characterizing Cloud Federation in IoT. In Proceedings of the 30th International Conference on Advanced Information Networking and Applications Workshops (WAINA), Crans-Montana, Switzerland, 23–25 March 2016; pp. 93–98.
- RFC 7252 Constrained Application Protocol (COaP). Available online: http://coap.technology (accessed on 20 July 2016).
- AllJoyn Framework. Available online: https://allseenalliance.org/framework (accessed on 20 July 2016).
- Open Interconnect Consortium (OIC) SPECIFICATION 1.1. Available online: https://openconnectivity.org/resources/specifications (accessed on 15 January 2017).
- Message Queue Telemetry Transport (MQTT). Available online: http://mqtt.org/ (accessed on 20 July 2016).
- Advanced Messaging Quieing Protocol (AMQP). Available online: https://www.amqp.org/ (accessed on 20 July 2016).
- Data Distribution Service (DDS). Available online: http://portals.omg.org/dds/ (accessed on 20 July 2016).
- Extensible Messaging and Presence Protocol (XMPP). Available online: http://xmpp.org/ (accessed on 15 January 2017).
- Babovic, Z.B.; Protic, J.; Milutinovic, V. Web Performance Evaluation for Internet of Things Applications. IEEE Access 2016, 4, 6974–6992. [Google Scholar] [CrossRef]
- RFC 4422, Simple Authentication and Security Layer (SASL). Available online: http://www.ietf.org/rfc/rfc4422 (accessed on 15 January 2017).
- RFC 6120, Extensible Messaging and Presence Protocol (XMPP): Core. Available online: http://tools.ietf.org/rfc/rfc6120 (accessed on 15 January 2017).
- Giacobbe, M.; Celesti, A.; Fazio, M.; Villari, M.; Puliafito, A. Towards energy management in Cloud federation: A survey in the perspective of future sustainable and cost-saving strategies. Comput. Netw. 2015, 91, 438–452. [Google Scholar] [CrossRef]
- Shojafar, M.; Cordeschi, N.; Baccarelli, E. Energy-efficient Adaptive Resource Management for Real-time Vehicular Cloud Services. IEEE Trans. Cloud Comput. 2016, PP. [Google Scholar] [CrossRef]
- Celesti, A.; Peditto, N.; Verboso, F.; Villari, M.; Puliafito, A. DRACO PaaS: A Distributed Resilient Adaptable Cloud Oriented Platform. In Proceedings of the 2013 IEEE 27th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), Boston, MA, USA, 20–24 May 2013; pp. 1490–1497.
- Villari, M.; Celesti, A.; Tusa, F.; Puliafito, A. Data Reliability in Multi-provider Cloud Storage Service with RRNS. In Advances in Service-Oriented and Cloud Computing: Workshops of ESOCC 2013, Málaga, Spain, September 11–13, 2013, Revised Selected Papers; Canal, C., Villari, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 83–93. [Google Scholar]
- Villari, M.; Celesti, A.; Fazio, M.; Puliafito, A. AllJoyn Lambda: An architecture for the management of smart environments in IoT. In Proceedings of the 2014 International Conference on Smart Computing Workshops, Hong Kong, China, 5 November 2014; pp. 9–14.
- Fazio, M.; Celesti, A.; Villari, M.; Puliafito, A. The Need of a Hybrid Storage Approach for IoT in PaaS Cloud Federation. In Proceedings of the 2014 28th International Conference on Advanced Information Networking and Applications Workshops, Victoria, BC, Canada, 13–16 May 2014; pp. 779–784.
- Fazio, M.; Celesti, A.; Puliafito, A.; Villari, M. Big Data Storage in the Cloud for Smart Environment Monitoring. Procedia Comput. Sci. 2015, 52, 500–506. [Google Scholar] [CrossRef]
- Park, S.; Kim, Y.; Chang, H. An empirical study on security expert ecosystem in the future IoT service environment. Comput. Electr. Eng. 2016, 52, 199–207. [Google Scholar] [CrossRef]
- Nguyen, H.; Iacono, L.L. Chapter 10—RESTful IoT Authentication Protocols. In Mobile Security and Privacy; Au, M.H., Choo, K.K.R., Eds.; Syngress: Boston, MA, USA, 2017; pp. 217–234. [Google Scholar]
- Macaulay, T. Chapter 9—Identity and Access Control Requirements in the IoT. In RIoT Control; Macaulay, T., Ed.; Morgan Kaufmann: Boston, MA, USA, 2017; pp. 157–176. [Google Scholar]
- Lian-chi, Z.; Chun-di, X. Cloud Security Service Providing Schemes Based on Mobile Internet Framework. In Proceedings of the 2012 International Conference on Computer Science and Electronics Engineering (ICCSEE), Hangzhou, China, 23–25 March 2012; Volume 3, pp. 307–311.
- Zhang, G.; Sun, H. Secure Distributed Detection under Energy Constraint in IoT-Oriented Sensor Networks. Sensors 2016, 16, 2152. [Google Scholar] [CrossRef] [PubMed]
- Costa Gondim, J.J.; de Oliveira Albuquerque, R.; Clayton Alves Nascimento, A.; Garciía Villalba, L.J.; Kim, T.H. A Methodological Approach for Assessing Amplified Reflection Distributed Denial of Service on the Internet of Things. Sensors 2016, 16, 1855. [Google Scholar] [CrossRef] [PubMed]
- Steri, G.; Baldini, G.; Fovino, I.N.; Neisse, R.; Goratti, L. A novel multi-hop secure LTE-D2D communication protocol for IoT scenarios. In Proceedings of the 2016 23rd International Conference on Telecommunications (ICT), Thessaloniki, Greece, 16–18 May 2016; pp. 1–6.
- Zhang, Y.; Shen, Y.; Wang, H.; Yong, J.; Jiang, X. On Secure Wireless Communications for IoT Under Eavesdropper Collusion. IEEE Trans. Autom. Sci. Eng. 2016, 13, 1281–1293. [Google Scholar] [CrossRef]
- Porambage, P.; Braeken, A.; Gurtov, A.; Ylianttila, M.; Spinsante, S. Secure end-to-end communication for constrained devices in IoT-enabled Ambient Assisted Living systems. In Proceedings of the 2015 IEEE 2nd World Forum on Internet of Things (WF-IoT), Reston, VA, USA, 14–16 December 2015; pp. 711–714.
- Guo, L.; Wu, J.; Xia, Z.; Li, J. Proposed Security Mechanism for XMPP-Based Communications of ISO/IEC/ IEEE 21451 Sensor Networks. IEEE Sens. J. 2015, 15, 2577–2586. [Google Scholar] [CrossRef]
- Conzon, D.; Bolognesi, T.; Brizzi, P.; Lotito, A.; Tomasi, R.; Spirito, M.A. The VIRTUS Middleware: An XMPP Based Architecture for Secure IoT Communications. In Proceedings of the 2012 21st International Conference on Computer Communications and Networks (ICCCN), Munchen, Germany, 30 July–2 August 2012; pp. 1–6.
- Fazio, M.; Celesti, A.; Villari, M. Design of a Message-Oriented Middleware for Cooperating Clouds. In Advances in Service-Oriented and Cloud Computing: Workshops of ESOCC 2013, Málaga, Spain, September 11–13, 2013, Revised Selected Papers; Canal, C., Villari, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 25–36. [Google Scholar]
- Celesti, A.; Mulfari, D.; Fazio, M.; Villari, M.; Puliafito, A. Exploring Container Virtualization in IoT Clouds. In Proceedings of the 2016 IEEE International Conference on Smart Computing (SMARTCOMP), St. Louis, MO, USA, 18–20 May 2016; pp. 1–6.
- Ejabberd, the Erlang Jabber/XMPP daemon. Available online: http://www.ejabberd.im/ (accessed on 15 January 2017).
- XEP-0220: Server Dialback. Available online: http://xmpp.org/extensions/xep-0220.html (accessed on 15 January 2017).
- XEP-0027: Current Jabber OpenPGP Usage. Available online: http://xmpp.org/extensions/xep-0027.html (accessed on 15 January 2017).
- RFC 4880 OpenPGP Message Format. Available online: http://www.rfc-editor.org/info/rfc4880 (accessed on 15 January 2017).
- SAML V2.0 Technical Overview. Available online: http://www.oasis-open.org/specs/index.php#saml (accessed on 15 January 2017).
- Tusa, F.; Celesti, A.; Paone, M.; Villari, M.; Puliafito, A. How CLEVER-based clouds conceive horizontal and vertical federations. In Proceedings of the 2011 16th IEEE Symposium on Computers and Communications (ISCC), Kerkyra, Greece, 28 June–1 July 2011; pp. 167–172.
© 2017 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license ( http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Celesti, A.; Fazio, M.; Villari, M. Enabling Secure XMPP Communications in Federated IoT Clouds Through XEP 0027 and SAML/SASL SSO. Sensors 2017, 17, 301. https://doi.org/10.3390/s17020301
Celesti A, Fazio M, Villari M. Enabling Secure XMPP Communications in Federated IoT Clouds Through XEP 0027 and SAML/SASL SSO. Sensors. 2017; 17(2):301. https://doi.org/10.3390/s17020301
Chicago/Turabian StyleCelesti, Antonio, Maria Fazio, and Massimo Villari. 2017. "Enabling Secure XMPP Communications in Federated IoT Clouds Through XEP 0027 and SAML/SASL SSO" Sensors 17, no. 2: 301. https://doi.org/10.3390/s17020301
APA StyleCelesti, A., Fazio, M., & Villari, M. (2017). Enabling Secure XMPP Communications in Federated IoT Clouds Through XEP 0027 and SAML/SASL SSO. Sensors, 17(2), 301. https://doi.org/10.3390/s17020301