An Interoperable Access Control Framework for Diverse IoT Platforms Based on OAuth and Role †
Abstract
:1. Introduction
- (1)
- We analyze requirements for an access control framework in an IoT environment based on the characteristics of IoT (e.g., heterogeneity and resource constraints) and existing IoT access control research.
- (2)
- Based on the analyzed requirements, we propose an interoperable access control framework using OAuth 2.0 that is straightforward and fast and Role, which simplifies permission management.
- (3)
- We propose a new extended authorization grant flow to issue an IAT that has a global access scope across heterogeneous IoT platforms. With the IAT, various resources (e.g., data and services) can be easily shared among heterogeneous IoT platforms, and token management (e.g., token issuance, refreshing, and revocation) becomes easier since it can represent multiple numbers of conventional access tokens which have local access scopes for a single IoT platform.
- (4)
- We demonstrate an interoperability scenario between the IoT platforms by implementing the proposed framework on Mobius and FIWARE, which are promising open-source IoT platforms.
2. Related Work
3. Target Environment for the Proposed Access Control Framework
4. Proposed Interoperable Access Control Framework Based on OAuth and Role
4.1. Requirements for an Access Control Framework in an IoT Environment
- Lightweight: Things are more resource-constrained than conventional devices such as desktop computers and smartphones. Therefore, the security technologies applied to an IoT environment also need to be lighter. To reduce a burden of the things for authentication and authorization process, the proposed access control framework minimizes the load of sensors and IoT devices by delegating the authentication and authorization processes to the access control framework.
- Flexibility: An IoT access control framework should be able to authorize resource requests with flexibility. The proposed access control framework provides straightforward access control with OAuth 2.0 (i.e., access token) for high-level resources and flexible authorization for low-level resources based on the roles of a user.
- Context-awareness: The IoT contains diverse context information such as time, location, temperature and humidity in contrast with the conventional PC environment. If we use context information as a factor in the access control decision, better fine-grained access control can be supported. In order to support context-awareness, a requester accessing a particular resource (e.g., a service for locals) can send its context information to an IoT server platform, or the IoT server platform can verify its own context information (e.g., time on the server) based on the security policies of the resource when an access request comes in. The proposed framework supports context-aware access control by using the latter method (i.e., a server checks the context information by itself) and the security policies of a resource.
- Scalability: As the IoT environment is growing, an IoT access control framework should be scalable to handle the growing number of sensors, devices, roles, permissions, etc. The proposed framework is lightweight since it is token-based and the proposed role assignment request function improves the scalability by mitigating the need for role management. In addition, our proposed framework is less affected by the role explosion problem since we focus on a static domain.
- Confidentiality: To keep the user/client credentials and token secure, the communication must be encrypted. TLS and DTLS can be generally used for this purpose. Moreover, lightweight TLS (e.g., wolfSSL [27]), which is suitable for resource-constrained environments, was recently developed.
- Integrity: To ensure integrity, resources in an IoT server platform should only be controlled by legitimate users/clients. In our approach, a resource’s access authority is validated by an access token and roles. The integrity of data can be ensured with TLS, and the integrity of the tokens can be ensured using Hash-based Message Authentication Code (HMAC) in JWT.
- Accountability: The critical credentials (e.g., user/client credentials and access tokens) used in an access control framework should be audited. The proposed framework logs all access records to a resource and uses access tokens (i.e., records of token issuance, usage, expiration and refreshing) for accountability. However, the logging level can differ depending on the user’s security configuration level or the security policies of a resource and domain.
- Privacy: To protect privacy, data is managed in different client-specific domains, and only authorized users/clients can access the data. Personal access records on a resource are also related to privacy; however, the logging level is policy-dependent for each domain and resource. In contrast, access to the IoT server platform’s critical resources (e.g., security configuration file and user/client credentials) must be logged although privacy could be compromised.
- Encryption/hashing for critical credentials: User/Client credentials can be used to generate tokens; therefore, the credentials must be encrypted or hashed in database. Our proposed access control framework stores the credentials and access tokens in a hashed form in a database to prevent leakage.
- Bypass prevention for access control framework: Requests to an IoT server platform should be properly authenticated and authorized by the access control framework. No requests should be able to bypass the access control framework. The proposed access control framework performs security functions as a reverse proxy. In other words, the proposed framework intercepts all resource requests to prevent bypasses and checks whether the requester has legitimate authority to request a resource. If the requester has valid authority, the requested resource is forwarded from the proposed access control framework to the requester. Using this approach means that the resource server does not communicate with requesters that could be attackers.
- Interoperability: The proposed access control framework supports REST APIs for token issuance and access control. Since many IoT platforms such as FIWARE, oneM2M and ARTIK support RESTful interfaces, the proposed access control framework provides interoperability with other IoT platforms as well as legacy RESTful systems [18]. Furthermore, the proposed framework supports a new extended authorization grant flow to issue an IAT for simple sharing of valuable resources between IoT platforms.
- Easy-to-use interfaces: To support OAuth 2.0, the proposed access control framework provides a simple web server for managing users, clients, roles, permissions, etc. When using the web-based interface, web security (e.g., prevention of SQL injection) must be implemented.
4.2. The Proposed Access Control Framework
- (1)
- This is the provisioning phase. A requester registers the user and client information required for a token request. An administrator manages the permissions, roles, and security policies in this step. If the provisioning was already done, this step can be skipped.
- (2)
- A requester initiates the OAuth 2.0 flow with the proposed access control framework using user and client credentials. If the requester has an access token, step two and three can be skipped.
- (3)
- The requester receives an access token from the framework. The token is only used in specific client-specific domain (e.g., the Barn Management AE). In other words, the access token is managed client-dependently by using the scope of the token. Note that the scope is different in accordance with each design since there is no strict definition for the scope option in the OAuth 2.0 standard [11]. With our approach, the scope is a URL (e.g., http://farm/barn_management/) that represents the path of the resource.
- (4)
- The requester accesses a protected resource (e.g., http://farm/barn_management/led/on) in the domain with the access token. Requests cannot bypass the framework. If the requester sends a resource request through other routes, the proposed access control framework should intercept the request.
- (5)
- The proposed access control framework validates the token scope to determine whether the requester can access the requested client-specific domain or not. If the validation fails, the framework sends an error message to the requester, and the access control process is ended.
- (6)
- If the requester is attempting to access a low-level resource corresponding to data in a specific domain (e.g., Container or ContentInstance in oneM2M), the framework validates the role assigned to the requester. If the requester wants to be assigned a specific role, the requester can request the role from an administrator as shown in Figure 3. If the validation fails, the framework sends an error message to the requester.
- (7)
- If the role validation is successful, the framework forwards the resource request to the IoT server platform. The IoT server platform that receives the resource request retrieves the resource. However, the access control process is ended if there is no the requested resource.
- (8)
- The IoT server platform also checks the security policies set on the requested resource. The security policies mainly describe the context-information. For example, a security policy can be set on a resource with an available time (e.g., time: 10:00–12:00 UTC).
- (9)
- If all conditions required to use the resource are fulfilled, the IoT server platform sends the resource to the proposed access control framework, which then forwards the resource to the requester as a reverse proxy.
- (1)
- A requester requests an IAT with a desired scope to the proposed access control framework using clients’ credentials. The client credentials consist of client_id and client_secret, so MCC generally needs several pairs of these. Client credentials can present the authority to access a client-specific domain; therefore, the requester can access as many client-specific domains as the pairs of credentials.
- (2)
- The proposed framework in IoT platform A validates client credentials registered in A. If the client credentials are invalid, the requested scope associated with the client credentials is modified to limit access to the specific client domain.
- (3)
- The proposed framework in A requests the validation of client credentials registered on IoT platform B since it cannot validate the client credentials stored in B by itself.
- (4)
- The proposed framework in IoT platform B validates the client credentials provided by A.
- (5)
- The proposed framework in B sends the validation result to A. The requested scope related to the client credentials could change according to the validation result.
- (6)
- The proposed framework in A issues an IAT and then forwards the original IAT to the requester and forwards a hashed IAT to the B. By sharing the IAT with the requester and IoT platform B, the requester can use the original IAT to access a resource, and platform B can validate the IAT with the hashed IAT without any support from IoT platform A. In addition, a refresh token can also be issued in this step.
- (7)
- Finally, the requester can request a resource related to the IAT’s scope from IoT platform B with the IAT issued from IoT platform A and it can request a resource from IoT platform A. Then, roles and security policies could check whether the requester can access the requested resource even though the figure does not describe this process in detail as Figure 5.
4.3. Implementation
- (1)
- The requester requests an IAT on the proposed framework (i.e., 192.168.245.128:5000) in FIWARE using MCC as described in Figure 8. As shown in the figure, two pairs of client credentials are used that are stored in FIWARE and Mobius. In this case, client 1 is registered in FIWARE, and client 2 is assigned in Mobius. The requester will be able to access the desired resources specified by the scope since the client credentials represent the access authority for the related resources. If the client credentials are correct, the requester can get the authority to access the resources.
- (2)
- The proposed frameworks in FIWARE and Mobius validate client credentials and modify the scope if the credentials are invalid.
- (3)
- The proposed framework forwards an IAT that has been created using the clients’ credentials to the requester and shares the hashed IAT with Mobius. If a refresh token is created, it should also be forwarded to simplify the token issuance process. Figure 9 shows the forwarded IAT from FIWARE to the requester. The response contains the access token, which is the IAT, the expiration time, and the token type.
- (4)
- The requester requests a FIWARE resource (i.e., TmpSensor) with the IAT. The proposed access control framework in FIWARE checks the Authorization header to validate whether the token’s scope is valid for the requested resources. If the scope in the IAT is related to the requested resource, FIWARE retrieves the resource and forwards it to the requester as shown in Figure 10. If the IAT or scope of the IAT is invalid, FIWARE just sends an error message stating “Unauthorized.”
- (5)
- The requester requests a Mobius resource (i.e., om2mApp/light_status) with the same IAT as is used to request an FIWARE resource. As in Step (4), if the scope of the IAT is related to the requested resource, Mobius retrieves the resource and forwards it to the requester as shown in Figure 11. If the IAT or scope of the IAT is invalid, Mobius sends an error message to the requester directly without any further validation of roles or security policies.
5. Evaluations and Further Consideration
- Virtualization of the proposed access control framework. The existing OAuth 2.0 framework does not consider interoperability. To provide interoperability between heterogeneous IoT platforms using the OAuth 2.0, we extended conventional authorization flows. However, common authorization capability and specification must be supported in heterogeneous IoT platforms. To this end, we could virtualize the proposed framework as an authorization layer. Once the authorization framework has been virtualized, IoT platforms can easily deploy the proposed access control framework and resources can then simply be shared by using the interoperable capability.
- Extension of other existing authorization grant flows in the OAuth 2.0 standard. We only used MCC in this paper to issue an IAT easily and focus on the proposed framework. However, other existing authorization grant flows should be extended since they have their own usage. Although this paper does not describe the other extended authorization grant flows, it will be specifically presented in future work.
- Security consideration for the MCC and IAT. The security of an original IAT and the multiple pairs of clients’ credentials used to issue an IAT are heavily dependent on TLS as the existing OAuth-based access control framework. In addition, if an attacker can intercept the hashed IAT while sharing the IAT step with other IoT platforms, it cannot be used since only the original IAT is required when the IAT has been validated. There could also be a security concern because of the IAT’s global scope, which means that a requester who has the IAT can access resources across multiple domains. However, critical low-level resources in client-specific domains are secured by role-based access control and additional security policies if an IAT is leaked. Any attacker who intercepts an IAT limitedly can access a resource that does not need any roles and security policies. For the security of existing parts of OAuth 2.0 framework, conventional security analysis documents could be referenced [11,28].
- Security consideration for impersonation attack. In MCC, a requester must send multiple pairs of credentials to get global access scope via heterogenous IoT platforms. However, one platform which received several pairs of credentials can impersonate the requester even though we assumed that IoT platforms are trustworthy. Therefore, the credentials should be encrypted or hashed so that only legitimate IoT platform can validate the credentials. For example, in order to obtain an IAT for global access across A and B, a requester sends its client credentials (i.e., pairs of client ID and secret of each IoT platforms A and B) to IoT platform A. And, client credentials for B would be encrypted with the public key of the IoT platform B to prevent the client credentials of IoT platform B from impersonation attack.
- Regarding the role assignment. A role is managed by an administrator of a client-specific domain. However, if there are administrators in a domain, there could be diverse criteria for managing a role. This could be a problem when the role is requested by a user. For example, let’s assume there are two administrators named Kim and Oh in domain A, and Kim knows a few users with malicious intent regarding a resource in the ‘my_client’ domain. In this context, if a user that Kim recognizes as an attacker requests a role and Oh grants the request, the user will compromise the resource. This is unlikely to happen if Kim sees the request earlier than Oh. Therefore, a role request should be granted when a certain number of administrators allow the request according to the security level of the resource. For a resource that requires a low security level, temporary roles can be assigned automatically when a user access the resource without the proper roles according to the security policies if the user has a valid access token for a client-specific domain.
- Limitation of role-based access control approach and possibility of combination with ABAC. Sensors and devices in an IoT environment have diverse attributes such as time, location, temperature, and humidity. As is well known, ABAC is used for fine-grained access control based on the attributes. We therefore can combine the benefits of the ABAC, which provides fine-grained control of access, with role-based access control, which can grant permissions by simply assigning/unassigning a role, to overcome the limitation of role-based access control approach.
- Limitation of quantitative analysis for access control framework. In this work, we did not conduct the quantitative comparison between the proposed framework and others. It is difficult to quantitatively evaluate the efficiency of the access control model because the model has different security policy each other. Furthermore, in many cases, most researches on access control framework do not deal with quantitative analysis and there are no common criteria for evaluation of the identified requirements (e.g., scalability and interoperability).
6. Conclusions
Author Contributions
Funding
Conflicts of Interest
References
- Oh, S.R.; Kim, Y.G. Interoperable Security Framework for Heterogeneous IoT Platforms. Trans. Comput. Commun. Syst. 2018, 7, 81–90. [Google Scholar]
- Bamiduro, W. Gartner Says Worldwide IoT Security Spending Will Reach $1.5 Billion in 2018. Available online: https: //www.gartner.com/newsroom/id/3869181 (accessed on 15 January 2019).
- Tim Stack. Internet of Things (IoT) Data Continues to Explode Exponentially. Who Is Using That Data and How? Available online: https://blogs.cisco.com/datacenter/internet-of-things-iot-data-continues-to-explode-exponentially-who-is-using-that-data-and-how (accessed on 14 February 2019).
- Sciancalepore, S.; Piro, G.; Tedeschi, P.; Boggia, G.; Bianchi, G. Multi-Domain Access Rights Composition in Federated IoT Platforms. In Proceedings of the 2018 European Conference on Wireless Sensor Networks, University Carlos III de Madrid, Getafe Campus, Getafe, Spain, 14–16 February 2018. [Google Scholar]
- Ganzha, M.; Paprzycki, M.; Pawłowski, W.; Szmeja, P.; Wasielewska, K. Semantic interoperability in the Internet of Things: An overview from the INTER-IoT perspective. J. Netw. Comput. Appl. 2017, 81, 111–124. [Google Scholar] [CrossRef]
- Soursos, S.; Žarko, I.P.; Zwickl, P.; Gojmerac, I.; Bianchi, G.; Carrozzo, G. Towards the cross-domain interoperability of IoT platforms. In Proceedings of the 2016 European conference on networks and communications (EuCNC), Athens, Greece, 27–30 June 2016; pp. 398–402. [Google Scholar]
- Oh, S.R.; Kim, Y.G. Design and Implementation of RBAC-Based Access Control Framework for IoT platforms. In Proceedings of the I3S 2018, Kenting, Taiwan, 6–8 August 2018. [Google Scholar]
- Kim, Y.G.; Cha, S. Dynamic access control policy based on RBAC for ubiquitous applications. Information (Japan) 2013, 16, 7175–7190. [Google Scholar]
- Oh, S.R.; Kim, Y.G. Security Requirements Analysis for the IoT. In Proceedings of the 2017 International Conference on Platform Technology and Service (PlatCon), Busan, Korea, 13–15 February 2017; pp. 1–6. [Google Scholar]
- Hwang, I.; Kim, Y.G. Analysis of Security Standardization for the Internet of Things. In Proceedings of the 2017 International Conference on Platform Technology and Service (PlatCon), Busan, Korea, 13–15 February 2017; pp. 1–6. [Google Scholar]
- Hardt, D. The OAuth 2.0 Authorization Framework; Technical Report; IETF: Fremont, CA, USA, 2012. [Google Scholar]
- Seitz, L.; Selander, G.; Wahlstroem, E.; Erdtman, S.; Tschofenig, H. Authentication and Authorization for Constrained Environments (ACE) Using the OAuth 2.0 Framework (ACE-OAuth); Internet-Draft draft-ietf-ace-oauth-authz-11. IETF: Fremont, CA, USA. Available online: https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-11 (accessed on 29 March 2019).
- Kim, K.H.; Lim, H.K.; Heo, J.S.; Han, Y.H. Design and Implementation of CoAP Authorization Framework Based on OAuth 2.0. Trans. Comput. Commun. Syst. 2017, 6, 329–342. [Google Scholar]
- Srikanth, V.; Latha, J.S.; Kumar, D.A.; Maheswari, K.U. A survey on OAUTH protocol for security. Int. J. Eng. Technol. 2017, 7, 692–695. [Google Scholar]
- Sciancalepore, S.; Piro, G.; Caldarola, D.; Boggia, G.; Bianchi, G. OAuth-IoT: An access control framework for the Internet of Things based on open standards. In Proceedings of the 2017 IEEE Symposium on Computers and Communications (ISCC), Heraklion, Greece, 3–6 July 2017; pp. 676–681. [Google Scholar]
- Jung, S.W.; Jung, S. Personal OAuth authorization server and push OAuth for Internet of Things. Int. J. Distrib. Sens. Netw. 2017, 13, 1–11. [Google Scholar] [CrossRef]
- Solapurkar, P. Building secure healthcare services using OAuth 2.0 and JSON web token in IOT cloud scenario. In Proceedings of the 2016 2nd International Conference on Contemporary Computing and Informatics (IC3I), Noida, India, 14–17 December 2016; pp. 99–104. [Google Scholar]
- Fernández, F.; Alonso, Á.; Marco, L.; Salvachúa, J. A model to enable application-scoped access control as a service for IoT using OAuth 2.0. In Proceedings of the 2017 20th Conference on Innovations in Clouds, Internet and Networks (ICIN), Paris, France, 7–9 March 2017; pp. 322–324. [Google Scholar]
- Alramadhan, M.; Sha, K. An overview of access control mechanisms for internet of things. In Proceedings of the 2017 26th International Conference on Computer Communication and Networks (ICCCN), Vancouver, BC, Canada, 31 July–3 August 2017; pp. 1–6. [Google Scholar]
- Ouaddah, A.; Mousannif, H.; Elkalam, A.A.; Ouahman, A.A. Access control in IoT: Survey & state of the art. In Proceedings of the 2016 5th International Conference on Multimedia Computing and Systems (ICMCS), Marrakech, Morocco, 29 September–1 October 2016; pp. 272–277. [Google Scholar] [CrossRef]
- Lee, Y.S.; Lim, J.D.; Jeon, Y.S.; Kim, J.N. Technology trends of access control in IoT and requirements analysis. In Proceedings of the 2015 International Conference on Information and Communication Technology Convergence (ICTC), Jeju, Korea, 8–30 October 2015; pp. 1031–1033. [Google Scholar]
- Pal, S.; Hitchens, M.; Varadharajan, V. Towards a Secure Access Control Architecture for the Internet of Things. In Proceedings of the 2017 IEEE 42nd Conference on Local Computer Networks (LCN), Singapore, 9–12 October 2017; pp. 219–222. [Google Scholar]
- Bate, K.O.; Kumar, N.; Khatri, S.K. Framework for authentication and access control in IoT. In Proceedings of the 2017 2nd International Conference on Telecommunication and Networks (TEL-NET), Noida, India, 10–11 August 2017; pp. 1–6. [Google Scholar]
- Andaloussi, Y.; El Ouadghiri, M.; Maurel, Y.; Bonnin, J.; Chaoui, H. Access control in IoT environments: Feasible scenarios. In Proceedings of the 9th International Conference on Ambient Systems, Networks and Technologies (ANT 2018), Porto, Portugal, 8–11 May 2018; pp. 1031–1036. [Google Scholar]
- Neto, A.L.M.; Souza, A.L.; Cunha, I.; Nogueira, M.; Nunes, I.O.; Cotta, L.; Gentille, N.; Loureiro, A.A.; Aranha, D.F.; Patil, H.K.; et al. AoT: Authentication and access control for the entire IoT device life-cycle. In Proceedings of the 14th ACM Conference on Embedded Network Sensor Systems CD-ROM, Stanford, CA, USA, 14–16 November 2016; pp. 1–15. [Google Scholar]
- Ouechtati, H.; Azzouna, N.B.; Said, L.B. Towards a self-adaptive access control middleware for the Internet of Things. In Proceedings of the 2018 International Conference on Information Networking (ICOIN), Chiang Mai, Thailand, 10–12 January 2018; pp. 545–550. [Google Scholar]
- WolfSSL. Available online: https://www.wolfssl.com/ (accessed on 15 January 2019).
- Lodderstedt, T. OAuth 2.0 Threat Model and Security Considerations; Technical Report; IETF: Fremont, CA, USA, 2013. [Google Scholar]
AC Approach | LI | FL | CA | SC | IN | Remakes | |
---|---|---|---|---|---|---|---|
Sciancalepore et al. [5] | ABAC | - | ✔ | ✔ | ✔ | ✔ | Consideration of the federation between heterogeneous IoT platforms |
Sciancalepore et al. [15] | OAuth 2.0 | ✔ | ✔ | - | ✔ | ✔ | Consideration of multiple token standards (i.e., Bearer, JWT, and PoP) |
Fernandez et al. [18] | OAuth 2.0 and Role-based | ✔ | ✔ | - | ✔ | ✔ | Access control service is completely delegated to the server |
Pal el al. [22] | Attribute-, Capability-, and Role-based | ✔ | ✔ | ✔ | ✔ | - | Access decision based on three features (i.e., attribute, capability, role) |
Neto et al. [25] | ABAC | ✔ | ✔ | ✔ | ✔ | ✔ | Authentication and access control considering the entire life-cycle of IoT device |
Ouechtati et al. [26] | ABAC | - | ✔ | ✔ | ✔ | - | Consideration of the subject behavior and the trust value |
Proposed framework | Extended OAuth 2.0 and Role-based | ✔ | ✔ | ✔ | ✔ | ✔ | All requirements and interoperability between heterogenous IoT platforms are fully considered in the proposed access control framework |
© 2019 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
Oh, S.-R.; Kim, Y.-G.; Cho, S. An Interoperable Access Control Framework for Diverse IoT Platforms Based on OAuth and Role. Sensors 2019, 19, 1884. https://doi.org/10.3390/s19081884
Oh S-R, Kim Y-G, Cho S. An Interoperable Access Control Framework for Diverse IoT Platforms Based on OAuth and Role. Sensors. 2019; 19(8):1884. https://doi.org/10.3390/s19081884
Chicago/Turabian StyleOh, Se-Ra, Young-Gab Kim, and Sanghyun Cho. 2019. "An Interoperable Access Control Framework for Diverse IoT Platforms Based on OAuth and Role" Sensors 19, no. 8: 1884. https://doi.org/10.3390/s19081884
APA StyleOh, S.-R., Kim, Y.-G., & Cho, S. (2019). An Interoperable Access Control Framework for Diverse IoT Platforms Based on OAuth and Role. Sensors, 19(8), 1884. https://doi.org/10.3390/s19081884