Access Control Mechanism for IoT Environments Based on Modelling Communication Procedures as Resources
Abstract
:1. Introduction
- We analyse the different protocol types used widely in these kinds of environments, and then the access control schemes proposed for them (Section 2).
- We propose to model the main elements of an IoT communications system such as MQTT as resources that can be protected along with other Internet-based services using a unified authorization system (Section 3).
- We propose the integration of an authorization layer, based on an OAuth 2.0 profile, into the chosen IoT communications protocol. This layer allows us to protect both Internet-based services and sensors/actuators through IoT devices. We describe the steps of each of the phases of the authorization system (Section 3.1 and Section 3.2).
- We define a series of experiments where we describe the entities of our proposal, the test set-up, and the effects, in time and electric consumption overhead of applying our proposal to the protocol (Section 4).
2. Communication Protocols and Access Control Systems in IoT Environments
- The MQTT protocol was designed by IBM and aimed to offer lightweight communications for M2M environments. It is based on a broker which manages the subscriptions, and is widely used in IoT environments, due to its low energy consumption and reliability [6].
- The AMQP is an alternative to the MQTT protocol which also offers a publish/subscribe scheme with optional high reliability. It is based on two main components: exchanges (used to route messages) and message queues. It is also based on the use of a broker to manage the queues [13].
- The DDS is another publish/subscribe alternative developed by the Object Management Group (OMG). The main difference between the DDS and MQTT or the AMQP is that the DDS does not require a broker for the management of communications, providing a multicasting architecture with no less reliability and Quality of Service (QoS) than their alternatives [14].
- The CoAP is being developed by the IETF Constrained RESTful Environments (CoRE) group, and defines a message transfer protocol based on REST (and therefore, on HTTP) [17]. One of its main advantages is the possibility of easy interoperation between CoAP and HTTP services. It allows communications using both a publish/subscribe model and a request/response model.
- The XMPP is an IETF standard designed for instant messaging, which can also be used in many IoT scenarios [18]. As with the CoAP, it can be used both with a message exchange or a request/response approach.
2.1. MQTT Protocol
- Brokers: Central servers in charge of routing and managing the MQTT messages.
- Publishers: Entities that issue messages to subscribing entities through the Broker.
- Subscribers: Entities that receive messages through the Broker. They are subscribed to a topic in the Broker, and receive the messages related to it. An entity can be both a publisher and subscriber.
- Topics: Identifiers of the subject of a series of messages. They can be seen as the channel used by the Publisher and Subscriber to exchange messages. They follow a hierarchical structure, where there are various levels of topics separated by a slash (e.g., /myhouse/kitchen/temperature).
2.2. User-Managed Access (UMA)
- Resource Owner (RO): The entity in charge of granting or denying access to a protected resource. Usually this role is represented by an end-user.
- Requesting Party (RP): The entity which requests access to the protected resource. As is the case of the RO, is usually represented by an end-user.
- Client: An application used by RPs to make requests in their name to access protected resources owned by any RO.
- Resource Set (RS): A group composed of one or more resources managed together by a Resource Server [45], that is, using the same access policies (which are defined in the Authorization Server) for each resource in the set.
- Resource Server: The entity which implements the management of RS protection by their ROs.
- Authorization Server (AS): The entity in charge of issuing authorization and permission tokens to clients, and which enforces the RS protection at the resource servers. It is composed of two OAuth-protected Application Programming Interfaces (APIs) (Authorization API, and Protection API) and an RS management interface used by ROs.
- Resource Protection: The RO of an RS registers it into the AS though the Protection API (using the Protection API Token, PAT). Additionally, the RO configures the access policies for the RS scopes in the RS management interface.
- Authorization Request: The RP, through a client, requests access to a resource through the Resource Server. It must obtain the authorization data and a Requesting Party Token (RPT) through the Authorization API of the AS (using the Authorization API Token, AAT).
- Resource Access: Using the RPT and the authorization data associated with it, the RP is able to access the resource through its client.
3. Proposed Solution: Modelling Components of a Communication Protocol as Resources
- User interaction (A): Interaction between a user and a component through an interface.
- UMA flow (B): Set of requests and responses between the components defined in the UMA protocol.
- MQTT flow (C): Set of requests and responses between the MQTT client and broker defined in the protocol.
- Secure communication (D): Communication channel for the configuration of an IoT device.
3.1. Functional Entities
- Resource: MQTT topics are modelled as UMA resources. A group of MQTT topics with the same authorization requirements can be seen as a Resource Set (RS). Given that MQTT topics form an RS, they will have a set of access policies associated. These policies must be defined by the topic owner in the AS, and will have to be evaluated to allow or deny the publishing and subscription actions, depending on who starts them.
- Resource Server Broker: This must include the MQTT Broker functionality and APIs, along with UMA-specific interfaces and APIs required by the UMA Resource Server flow.
- Authorization Server: In our proposal, this component is defined exactly as in the UMA specifications. Access control policies will be defined in this server and will need to be built considering the particularities of the resources proposed in this solution (MQTT topics).
- Client: An application that allows the IoT device owner to obtain a valid RPT through the UMA authorization flow. The IoT device owner must transmit the RPT to the device in a secure way. Typically, this application can be accessed via a Browser or using a Mobile App.
- IoT Device: Data generator or consumer that uses the MQTT protocol publish or subscribe actions to the Resource Server. All actions (to either publish or subscribe) must be accompanied by the RPT and will be defined by the IoT Device Owner.
3.2. Functional Flows
3.2.1. Phase 1—Protecting a Topic
- In MQTT, topics follow a hierarchical tree structure. A protected topic will be defined as a complete route from a root to a leaf.
- A previously protected topic cannot be protected again.
- A child topic cannot be protected if the user has not permissions over the parent topic.
- The protection applied to a topic is applied to it and all its descendants.
3.2.2. Phase 2—Getting Authorization
3.2.3. Phase 3—Performing MQTT Actions
- Initial Configuration: The IoT device must contain the information defined by the IoT Device Owner such as the Resource Server Broker location, topic name, actions to perform, etc. This information can be stored during the IoT device manufacturing process and can be modified later by the IoT Device Owner. In our proposal, it is mandatory that all devices contain:
- (a)
- MRF_id: Unique identifier of the device manufacturer.
- (b)
- Device_id: Unique identifier of the device.
- (c)
- SN: Unique Serial Number composed by a 8-bit Unicode Transformation Format (UTF-8) encoded alphanumeric string.
- CONNECT: The IoT device, following the MQTT protocol, starts the flow, defined by the actions configured by its owner. The IoT device will send a CONNECT message to the Resource Server Broker. This message must include the RPT.
- Check Permissions: Using the RPT in the request and the Protection API Token (PAT) associated to the service, the Resource Server Broker performs an OAuth Introspection [46] at request, including the list of scopes associated to the RPT.
- Return permissions: The AS evaluates the policies. To do this, it has to take into account the RS identity (identified by the PAT), the requester identity (identified by the RPT), and the specific list of scopes included in the request. The AS will then create a list of permissions that will be returned to the Resource Server Broker.
- CONNACK: The Resource Server Broker binds these permissions to the open session between the IoT device and itself. It will return a CONNACK message. If the RPT issued in the request has not been validated, the AS response (step 4) will be an empty list. In that case, the Resource Server Broker will answer with a code 5 in the header of the CONNACK message. This indicates that the IoT device that is not authorized and that it must start the RPT validation process. This process is explained in Section 3.2.4.
- PUBLISH/SUBSCRIBE: The IoT device will perform the actions described by its configuration.
- Check Permissions: As in step 3, the Resource Server Broker performs an OAuth Introspection request including the list of scopes associated to the publish/subscribe actions.
- Return Permissions: As in step 4, the AS will then create a list of permissions after evaluating them.
- Interaction: In this step, the IoT device can publish and subscribe to MQTT queues, and perform the required interaction with its sensors and actuators.
- Response: The sensors and actuators will answer according to the actions performed.
- DISCONNECT: Once all actions have been performed, the IoT device will close the MQTT session by sending a DISCONNECT message to the broker.
3.2.4. RPT Validation Process
- Start Process: Following the methodology defined in OAuth 2.0, the IoT Device Owner is the user that starts the process by connecting himself to the client which will perform requests in its name.
- CONNECT (from the RP Client): The client performs an MQTT connection with the Resource Server Broker using the IoT Device Owner credentials.
- CONNACK (to the RP Client): The Resource Server Broker checks the user credentials from the client and, if they are correct, answers with a CONNACK message using the 0 code in its header.
- SUBSCRIBE (from the RP Client): Once the client completes the connection with the Resource Server Broker, he/she subscribes him/herself to the specific topic of its manufacturer (“MRF_id/#”). The credentials used in the connection step will only allow this subscription, depending on the manufacturer identifier owned by the user.
- CONNECT (from the IoT device): After the IoT device has performed the first connection, or receives a CONNACK (with Code 5, meaning not being authorized), the device starts a connection process using an empty string as an RPT.
- Start RPT registration: When the Resource Server Broker receives a connection request with an empty RPT, it stores the client identifier and allows it to subscribe and publish in certain specific topics.
- CONNACK (to the IoT device): The Resource Server Broker responds to the connection with a CONNACK and Code 0 to the request issued in step 6.
- SUBSCRIBE (from the IoT device): The IoT device subscribes itself to the topic composed by the manufacturer identifier and its own identifier (“MRF_id/RPT/Device_id”), and waits for the RPT validation process to finish.
- PUBLISH (IoT device): By publishing its own identifier in the “MRF_id/RPT” topic, the IoT device advertises that it wants to start the new RPT validation process.
- Generate “nonce”: The authorization module of the Resource Server Broker, after receiving a message in the topic “MRF_id/RPT”, generates a random number to be used only once in each RPT generation (a “nonce”) and stores it temporally. This number is included in the payload of the MQTT message sent in the next step.
- MQTT Message (to the RP Client): The request for the RPT validation process beginning is sent to the RP client through the previous subscription to the “MRF_id/#” topic (step 4).
- Generate RPT (in the RP Client): Using the Device_id, the RP Client looks for the corresponding Serial Number (SN) in its database. Using the SN and the “nonce” received in the previous step, the client generates a RPT by applying a hash function. The specific function to use should be previously configured by the IoT Device Owner depending on the device restrictions and its own preferences.
- Manage Requests: RPTs generated in step 12 are stored in the RP Client until they are confirmed by the IoT Device Owner. The RPT verification process is the one specified in UMA. The RPT validation can be performed both individually or in batch mode. Also, the IoT Device Owner can previously define in the AS a set of policies to be applied to the RPTs, which would ease the configuration in this step.
- PUBLISH (from the RP Client): Once the RPT is provided with the defined permissions after its validation, the RP Client publishes each “nonce” in the corresponding topic (“MRF_id/RPT/Device_id”). This is the way the RP Client advertises the correct ending of the validation process.
- MQTT Message (to the IoT device): The IoT device receives a message from the topic to which it was subscribed in step 8.
- Generate RPT (in the IoT device): In this step, the IoT device already knows that the RPT candidate has been validated. Using the SN which is stored in it, and the “nonce” received in the previous step, the hash function is executed to obtain the RPT value. The hash function used must be the same used in step 12.
- DISCONNECT: When all actions have been performed, the IoT device closes the MQTT session by sending a DISCONNECT message to the broker. After this process, the IoT device will perform another connection with the Resource Server Broker using the validated RPT.
3.3. Energy Consumption Considerations
4. Experiments and Results
4.1. Implementation and Set-Up
- Resource Server Broker: Is composed of two internally connected servers. The MQTT functionalities are provided by a deployed Mosquitto broker. Mosquitto allows the creation and utilization of plug-ins for authorization customization. We have chosen the mosquitto_pyauth plug-in which allows the creation of Python scripts to modify the Mosquitto authorization scheme. The HTTP API used to connect the Resource Server with the client, the Protection module used to connect the Resource Server with the Authorization Server, and the topic management interface have been developed in a single server.
- Authorization Server: Is a Web Server written in Python. The implementation includes UMA APIs, a user interface for control and policy definition, and an OAuth API.
- Client: Is a web application that provides a user interface for the configuration of IoT devices and allows communication with the Resource Server HTTP API and the Authorization Server’s Authorization API.
- IoT devices: Are deployed in the NodeMCU v1.0 board using a MQTT library for Arduino. This development board is based on Wi-Fi MCU ESP8266.
- Measuring Device: Is composed of an Adafruit INA219 [53] High Side DC Current Sensor Breakout board to measure the energy consumption and an Arduino Uno R3 board with a Arduino Ethernet Shield to collect data.
- Resource Server Broker and Authorization Server: Both are deployed in a cloud environment. Specifically, we have chosen AWS as the cloud provider. We created two EC2 t2.micro (1 vCPUs, 2.5 GHz, Intel Xeon Family, 1 GiB memory) machines deployed in the EU-West 1 area and configured in the same subnet. The machines run Ubuntu Server 14.04 as the operative system.
- Client: Has been deployed in a local server with Internet access.
- IoT Device: Has an active Wi-Fi interface and has Internet access.
- Measuring Device: Collects and stores the energy consumption measurements and return this information in a local server.
4.1.1. Energy Consumption Measurement Configuration
- Validation of the communications system:
- Selection of two well-known Internet-based communication systems: REST API vs. message-based communications (MQTT).
- Configuration of an IoT device as a Web Server to use a REST API and another device as an MQTT client, both with the exact same characteristics.
- Definition of a common set of message exchange that allows the measurement of the energy consumption in each device.
- Measurements start when the first message is exchanged and stop when all the messages configured have been successfully delivered.
- Energy consumption overhead measurements:
- Configuration of two IoT devices as MQTT clients. Both devices have the exact same characteristics.
- Configuration of one Broker as a standard MQTT Mosquitto Broker (without authorization) and other as a Resource Server Broker using the access control proposed in this paper.
- Definition of a common set of message exchange that allows the measurement of the energy consumption in each device.
- Measurements start when the first message is exchanged and stop when all the messages configured have been successfully delivered.
4.2. Implementation Results
- All the involved devices are powered up and in a stable state.
- The IoT device MQTT client has a valid RPT (used for the action of subscribing and publishing).
- The IoT device MQTT client has performed a subscribing action to a specific test queue.
- The RS Broker has validated the subscription by verifying its permissions.
- In the IoT device the measurement starts when it performs the publishing action, and stops when it confirms the message reception.
- In the RS Broker the measurement is performed inside of the PyAuth authorization module. It starts when the permission validation request is sent to the AS (OAuth Introspection flow) and stops once the response is received.
4.2.1. Energy Consumption Results
- Idle state (Wi-Fi off): Development board with disabled Wi-Fi interface, in idle state during the average time it takes to send and receive 1000 messages in the other experiments.
- Idle state: Development board with enabled Wi-Fi interface, but still in an idle state during the average time it takes to send and receive 1000 messages in the other experiments.
- HTTP Client (with requests): Wi-Fi interface enabled and performing the transmission and reception task for 1000 messages with the HTTP following the REST architecture.
- MQTT Client (with requests): Wi-Fi interface enabled and performing the transmission and reception task for 1000 MQTT messages using the default protocol configuration, and disabling the authorization module both in the IoT device and the Broker.
- MQTT Client (with requests and authorization module): Wi-Fi interface enabled and performing the transmission and reception task for 1000 MQTT messages using the proposed configuration. That is, enabling the authorization module in both the IoT device and the Broker.
5. Discussion
- Validation of the communications system: With the same number of messages and the same conditions, using a message-based communication system, energy consumption is lower than for a REST-based system. This is due to the simplicity of the MQTT protocol and the lower amount of redundant information sent when compared with the HTTP.
- Energy consumption overhead measurements: From the MQTT client perspective, the actions performed to communicate with and without an access control system are the same (only needing to add the credentials to the headers of the message). As shown in lines 4 and 5 of Table 3, the current measurements for MQTT with and without authorization are very close. From these values and the results shown in Table 2, it is possible to obtain the difference in consumption between sending messages with and without authorization (as shown in Table 4). This consumption overhead is bound to the extra time needed for the Introspection request (). This consumption can be reduced if the device is put into an idle state when it is not preforming any activity (for instance, between sending and receiving messages, when there is no sensor monitoring, etc.).This is shown in the second and third line of Table 4, where the average of the values is almost the same.
Acknowledgments
Author Contributions
Conflicts of Interest
Abbreviations
6LoWPAN | IPv6 over Low power Wireless Personal Area Networks |
AAT | Authorization API Token |
ABAC | Attribute-Based Access Control |
ACLs | Access Control Lists |
ACM | Access Control Matrix |
AMQP | Advanced Message Queuing Protocol |
API | Application Programming Interface |
AS | Authorization Server |
AWS | Amazon Web Services |
CapBAC | Capability-Based Access Control |
CoAP | Constrained Application Protocol |
CoRE | Constrained RESTful Environments |
DDS | Data Distribution Service |
DNS-SD | Domain Name System Service Discovery |
HTTP | Hypertext Transfer Protocol |
IEEE | Institute of Electrical and Electronics Engineers |
IETF | The Internet Engineering Task Force |
IoT | Internet of Things |
IPv6 | Internet Protocol version 6 |
M2M | Machine to Machine |
mDNS | multicast Domain Name System |
MQTT | Message Queuing Telemetry Transport |
OAuth | Open Authorization |
OrBAC | Organizational-Based Access Control |
PAT | Protection API Token |
QoS | Quality of Service |
RBAC | Role-Based Access Control |
REST | REpresentational State Transfer |
RO | Resource Owner |
RP | Requesting Party |
RPL | IPv6 Routing Protocol for Low-Power and Lossy Networks |
RPT | Requesting Party Token |
RS | Resource Set |
SSL | Secure Sockets Layer |
TLS | Transportation Layer Security |
UCON | Usage Control |
UMA | User-Managed Access |
UTF-8 | 8-bit Unicode Transformation Format |
VPN | Virtual Private Network |
XACML | Extensible Access Control Markup Language |
XML | eXtensible Markup Language |
XMPP | Extensible Messaging and Presence Protocol |
References
- Gubbi, J.; Buyya, R.; Marusic, S.; Palaniswami, M. Internet of Things (IoT): A vision, architectural elements, and future directions. Future Gener. Comput. Syst. 2013, 29, 1645–1660. [Google Scholar] [CrossRef]
- Ashton, K. That “Internet of Things” thing. RFiD J. 2009, 22, 97–114. [Google Scholar]
- Roman, R.; Zhou, J.; Lopez, J. On the features and challenges of security and privacy in distributed internet of things. Comput. Netw. 2013, 57, 2266–2279. [Google Scholar] [CrossRef]
- Maler, E.; Catalano, D.; Machulak, M.; Hardjono, T. User-Managed Access (UMA) Profile of OAuth 2.0; Kantara Initiative: Wakefield, MA, USA, 2016. [Google Scholar]
- Hardt, D. The OAuth 2.0 Authorization Framework; RFC, Internet Engineering Task Force (IETF): Fremont, CA, USA, 2012. [Google Scholar]
- Gupta, R.; Banks, A. MQTT Version 3.1.1 Protocol Specification; Oasis Standard; OASIS: Burlington, MA, USA, 2014. [Google Scholar]
- Cruz-Piris, L.; Rivera, D.; Lopez-Civera, G.; Hoz, E.D.L.; Marsa-Maestre, I.; Velasco, J.R. Protecting Sensors in an IoT Environment by Modelling Communications as Resources. Proceedings 2017, 1, 801. [Google Scholar] [CrossRef]
- Al-Fuqaha, A.; Guizani, M.; Mohammadi, M.; Aledhari, M.; Ayyash, M. Internet of things: A survey on enabling technologies, protocols, and applications. IEEE Commun. Surv. Tutor. 2015, 17, 2347–2376. [Google Scholar] [CrossRef]
- Gutierrez, J.A.; Naeve, M.; Callaway, E.; Bourgeois, M.; Mitter, V.; Heile, B. IEEE 802.15. 4: A developing standard for low-power low-cost wireless personal area networks. IEEE Netw. 2001, 15, 12–19. [Google Scholar] [CrossRef]
- Culler, D.; Chakrabarti, S. 6LoWPAN: Incorporating IEEE 802.15. 4 into the IP Architecture; White Paper; IPSO Alliance: Berkeley, CA, USA, 2009. [Google Scholar]
- Winter, T. RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2012. [Google Scholar]
- Jara, A.J.; Martinez-Julia, P.; Skarmeta, A. Light-weight multicast DNS and DNS-SD (lmDNS-SD): IPv6-based resource and service discovery for the Web of Things. In Proceedings of the 2012 IEEE Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), Palermo, Italy, 4–6 July 2012; pp. 731–738. [Google Scholar]
- Vinoski, S. Advanced message queuing protocol. IEEE Internet Comput. 2006, 10. [Google Scholar] [CrossRef]
- Pardo-Castellote, G.; Chairman, D. Omg data distribution service: Real-time publish/subscribe becomes a standard. RTC Mag. 2005, 14, 41–45. [Google Scholar]
- Laine, M. Restful Web Services for the Internet of Things. Saatavilla. 2012. Available online: http://media.tkk.fi/webservices/personnel/markku_laine/restful_web_services_for_the_internet_of_things.pdf (accessed on 19 March 2018).
- Rodriguez, A. Restful Web Services: The Basics. IBM Developer Works. 2008. Available online: www.gregbulla.com/TechStuff/Docs/ws-restful-pdf.pdf (accessed on 19 March 2018).
- Shelby, Z.; Hartke, K.; Bormann, C. The Constrained Application Protocol (CoAP); Internet Engineering Task Force (IETF): Fremont, CA, USA, 2014. [Google Scholar]
- Kirsche, M.; Klauck, R. Unify to bridge gaps: Bringing XMPP into the Internet of Things. In Proceedings of the 2012 IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), Lugano, Switzerland, 19–23 March 2012; pp. 455–458. [Google Scholar]
- Ouaddah, A.; Mousannif, H.; Elkalam, A.A.; Ouahman, A.A. Access control in the Internet of Things: Big challenges and new opportunities. Comput. Netw. 2017, 112, 237–262. [Google Scholar] [CrossRef]
- Sandhu, R.S.; Coyne, E.J.; Feinstein, H.L.; Youman, C.E. Role-based access control models. Computer 1996, 29, 38–47. [Google Scholar] [CrossRef]
- Zhang, G.; Tian, J. An extended role based access control model for the Internet of Things. In Proceedings of the 2010 IEEE International Conference on Information Networking and Automation (ICINA), Kunming, China, 18–19 October 2010; Volume 1, p. V1-319. [Google Scholar]
- Barka, E.; Mathew, S.S.; Atif, Y. Securing the web of things with role-based access control. In International Conference on Codes, Cryptology, and Information Security; Springer: New York, NY, USA, 2015; pp. 14–26. [Google Scholar]
- Yuan, E.; Tong, J. Attributed based access control (ABAC) for web services. In Proceedings of the 2005 IEEE International Conference on Web Services, ICWS 2005, Orlando, FL, USA, 11–15 July 2005. [Google Scholar]
- Ye, N.; Zhu, Y.; Wang, R.C.; Malekian, R.; Qiao-Min, L. An efficient authentication and access control scheme for perception layer of internet of things. Appl. Math. Inf. Sci. 2014, 8, 1617–1624. [Google Scholar] [CrossRef]
- Hemdi, M.; Deters, R. Using REST based protocol to enable ABAC within IoT systems. In Proceedings of the 2016 IEEE 7th Annual Information Technology, Electronics and Mobile Communication Conference (IEMCON), Vancouver, BC, Canada, 13–15 October 2016; pp. 1–7. [Google Scholar]
- Zhang, X.; Parisi-Presicce, F.; Sandhu, R.; Park, J. Formal model and policy specification of usage control. ACM Trans. Inf. Syst. Secur. 2005, 8, 351–387. [Google Scholar] [CrossRef]
- Mahalle, P.N.; Anggorojati, B.; Prasad, N.R.; Prasad, R. Identity authentication and capability based access control (iacac) for the internet of things. J. Cyber Secur. Mobil. 2013, 1, 309–348. [Google Scholar]
- Gusmeroli, S.; Piccione, S.; Rotondi, D. A capability-based security approach to manage access control in the internet of things. Math. Comput. Model. 2013, 58, 1189–1205. [Google Scholar] [CrossRef]
- Kalam, A.A.E.; Baida, R.E.; Balbiani, P.; Benferhat, S.; Cuppens, F.; Deswarte, Y.; Miege, A.; Saurel, C.; Trouessin, G. Organization based access control. In Proceedings of the IEEE 4th International Workshop on Policies for Distributed Systems and Networks, POLICY 2003, Lake Como, Italy, 4–6 June 2003; pp. 120–131. [Google Scholar]
- Anderson, A.; Nadalin, A.; Parducci, B.; Engovatov, D.; Lockhart, H.; Kudo, M.; Humenn, P.; Godik, S.; Anderson, S.; Crocker, S.; et al. Extensible Access Control Markup Language (Xacml) Version 1.0; OASIS: Burlington, MA, USA, 2003. [Google Scholar]
- Hammer-Lahav, E. The OAuth 1.0 Protocol; IETF: Fremont, CA, USA, 2010. [Google Scholar]
- Seitz, L.; Selander, G.; Gehrmann, C. Authorization framework for the internet-of-things. In Proceedings of the 2013 IEEE 14th International Symposium and Workshops on a World of Wireless, Mobile and Multimedia Networks (WoWMoM), Madrid, Spain, 4–7 June 2013; pp. 1–6. [Google Scholar]
- Kim, J.E.; Boulos, G.; Yackovich, J.; Barth, T.; Beckel, C.; Mosse, D. Seamless integration of heterogeneous devices and access control in smart homes. In Proceedings of the 2012 8th International Conference on Intelligent Environments (IE), Guanajuato, Mexico, 26–29 June 2012; pp. 206–213. [Google Scholar]
- Emerson, S.; Choi, Y.K.; Hwang, D.Y.; Kim, K.S.; Kim, K.H. An oauth based authentication mechanism for iot networks. In Proceedings of the 2015 International Conference on Information and Communication Technology Convergence (ICTC), Jeju, Korea, 28–30 October 2015; pp. 1072–1074. [Google Scholar]
- Seitz, L.; Selander, G.; Wahlstroem, E.; Erdtman, S.; Tschofenig, H. Authorization for the Internet of Things Using OAuth 2.0; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2015. [Google Scholar]
- Fremantle, P.; Aziz, B.; Kopeckỳ, J.; Scott, P. Federated identity and access management for the internet of things. In Proceedings of the 2014 IEEE International Workshop on Secure Internet of Things (SIoT), Wroclaw, Poland, 10 September 2014; pp. 10–17. [Google Scholar]
- Cirani, S.; Picone, M.; Gonizzi, P.; Veltri, L.; Ferrari, G. Iot-oas: An oauth-based authorization service architecture for secure services in iot scenarios. IEEE Sens. J. 2015, 15, 1224–1234. [Google Scholar] [CrossRef]
- Rivera, D.; Cruz-Piris, L.; Lopez-Civera, G.; de la Hoz, E.; Marsa-Maestre, I. Applying an unified access control for IoT-based Intelligent Agent Systems. In Proceedings of the 2015 IEEE 8th International Conference on IEEE Service-Oriented Computing and Applications (SOCA), Rome, Italy, 19–21 October 2015; pp. 247–251. [Google Scholar]
- Garcia-Carrillo, D.; Marin-Lopez, R.; Kandasamy, A.; Pelov, A. A CoAP-Based Network Access Authentication Service for Low-Power Wide Area Networks: LO-CoAP-EAP. Sensors 2017, 17. [Google Scholar] [CrossRef] [PubMed]
- Celesti, A.; Fazio, M.; Villari, M. Enabling Secure XMPP Communications in Federated IoT Clouds through XEP 0027 and SAML/SASL SSO. Sensors 2017, 17. [Google Scholar] [CrossRef] [PubMed]
- Ouaddah, A.; Elkalam, A.A.; Ouahman, A.A. Towards a Novel Privacy-Preserving Access Control Model Based on Blockchain Technology in IoT. In Europe and MENA Cooperation Advances in Information and Communication Technologies; Rocha, Á., Serrhini, M., Felgueiras, C., Eds.; Springer International Publishing: Cham, Switzerland, 2017; pp. 523–533. [Google Scholar]
- MQTT Version 3.1.1 Becomes an OASIS Standard. 2014. Available online: https://www.oasis-open.org/news/announcements/mqtt-version-3-1-1-becomes-an-oasis-standard (accessed on 25 February 2018).
- Kantara Initiative. Available online: https://kantarainitiative.org (accessed on 25 February 2018).
- Hardjono, T.; Maler, E.; Machulak, M.; Catalano, D. User-Managed Access (Uma) Profile of Oauth 2.0; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2015. [Google Scholar]
- Hardjono, T.; Male, E.; Machulak, M.; Catalano, D. OAuth 2.0 Resource Set Registration; Recommendation; Kantara Initiative: Wakefield, MA, USA, 2015. [Google Scholar]
- Richer, J. OAuth 2.0 Token Introspection; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2015. [Google Scholar]
- Sheng, Z.; Yang, S.; Yu, Y.; Vasilakos, A.V.; Mccann, J.A.; Leung, K.K. A survey on the ietf protocol suite for the internet of things: Standards, challenges, and opportunities. IEEE Wirel. Commun. 2013, 20, 91–98. [Google Scholar] [CrossRef]
- AWS IoT Core. Available online: https://aws.amazon.com/iot-core/?nc1=h_ls (accessed on 12 March 2018).
- The Things Network. Available online: https://www.thethingsnetwork.org/ (accessed on 12 March 2018).
- HiveMQ 3.3—User Guide. Available online: https://www.hivemq.com/docs/hivemq/latest/ (accessed on 12 March 2018).
- Light, R.A. Mosquitto: Server and client implementation of the MQTT protocol. J. Open Source Soft. 2017, 2. [Google Scholar] [CrossRef]
- NodeMCU v1.0 Board. Available online: https://github.com/nodemcu/nodemcu-devkit-v1.0 (accessed on 25 February 2018).
- INA219 Zerø-Drift, Bidirectional Current/Power Monitor with I2C Interface. Available online: http://www.ti.com/lit/ds/symlink/ina219.pdf (accessed on 25 February 2018).
Token | Used by | To Access | Goal/s |
---|---|---|---|
Authorization API Token (AAT) | RP Client | AS Authorization API | Request an RPT |
Protection API Token (PAT) | Resource Server | AS Protection API | Register resources or check permissions |
Requesting Party Token (RPT) | RP Client | A resource in a Resource Server | Access a UMA-protected resource |
Value | Mean | Standard Deviation |
---|---|---|
43.83 | 5.99 | |
67.74 | 11.07 | |
11.84 | 1.28 | |
0.23 | - |
Developer Board | Wi-Fi | Mean | Standard Deviation |
---|---|---|---|
Idle state | Off | 33.47 | 1.67 |
Idle state | On | 81.08 | 4.21 |
HTTP Client (with requests) | On | 96.37 | 7.38 |
MQTT Client (with requests) | On | 88.48 | 2.40 |
MQTT Client (with requests and auth.) | On | 88.51 | 2.27 |
Experiment | Mean | Standard Deviation |
---|---|---|
REST request | 33.16 | 5.71 |
MQTT request | 19.70 | 1.01 |
MQTT request with auth. | 30.46 | 1.75 |
© 2018 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
Cruz-Piris, L.; Rivera, D.; Marsa-Maestre, I.; De la Hoz, E.; Velasco, J.R. Access Control Mechanism for IoT Environments Based on Modelling Communication Procedures as Resources. Sensors 2018, 18, 917. https://doi.org/10.3390/s18030917
Cruz-Piris L, Rivera D, Marsa-Maestre I, De la Hoz E, Velasco JR. Access Control Mechanism for IoT Environments Based on Modelling Communication Procedures as Resources. Sensors. 2018; 18(3):917. https://doi.org/10.3390/s18030917
Chicago/Turabian StyleCruz-Piris, Luis, Diego Rivera, Ivan Marsa-Maestre, Enrique De la Hoz, and Juan R. Velasco. 2018. "Access Control Mechanism for IoT Environments Based on Modelling Communication Procedures as Resources" Sensors 18, no. 3: 917. https://doi.org/10.3390/s18030917
APA StyleCruz-Piris, L., Rivera, D., Marsa-Maestre, I., De la Hoz, E., & Velasco, J. R. (2018). Access Control Mechanism for IoT Environments Based on Modelling Communication Procedures as Resources. Sensors, 18(3), 917. https://doi.org/10.3390/s18030917