Access control mechanisms for an IoT platform

Detalhes bibliográficos
Autor(a) principal: Oliveira, Rui Filipe Dominguez de
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10773/29521
Resumo: Access control mechanisms are used to ensure that privileged information and resources are not accessed by, or disclosed to, unauthorized entities. The XACML specification, in addition to being one of the most important standards, is also widely used to define access control policies. XACML was proposed by the OASIS consortium and defines an attribute-based access control policy language expressed in an XML format. The standard also defines a reference architecture and a processing model in which are described how access requests should be evaluated according to the attributes defined in access control policies. The main drawback of XACML is the verbosity of its syntax, since it uses XML. To overcome this issue, we defined an access control language in YAML upon the key concepts of XACML. Unlike XACML, the YAML language is simple, which makes access control policies easy to define and interpret by humans. The main challenge of creating an IoT access control system is the performance of the policy evaluation engine, particularly in systems with a large number of clients. Sun Microsystems’ implementation of the XACML specification is the most widely used solution for defining and evaluating access control rules, but it is not the most efficient, since it performs a brute force search for evaluating the predicates defined in the access request against the access control policies defined in the authorization system. Our solution is based on two tree data structures, the Decision Tree and the Combining Tree. The attributes defined in the access control policies are extracted, combined and then later used to build up the Decision Tree. The Decision Tree is used to find the applicable rules for a given set of attributes defined in an access request. On the other hand, the Combining Tree is used to calculate the final authorization decision according to the combining algorithms defined in the access control policies applicable to a given access request. The results show that our solution is about two orders of magnitude more efficient than the Sun Microsystems’ implementation. Finally, we also introduced two caching strategies to improve the performance of our engine. For each access request the engine creates and stores the subset of the Decision Tree that was used to calculate the authorization decision for a given request. In the first strategy, the engine creates and stores a Decision Tree subset applicable to each access request that hits the authorization system. In the second strategy, the client can define when each subtree should be cached by the engine. The experimental results showed that our first caching solution does not improve the performance of the engine, whereas the second solution improves the overall processing time.
id RCAP_cdad3e3b66575c51572ce443ac55c240
oai_identifier_str oai:ria.ua.pt:10773/29521
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Access control mechanisms for an IoT platformAccess control mechanismsAuthorizationXACMLIoTAttribute-based access controlPolicy evaluationAccess control mechanisms are used to ensure that privileged information and resources are not accessed by, or disclosed to, unauthorized entities. The XACML specification, in addition to being one of the most important standards, is also widely used to define access control policies. XACML was proposed by the OASIS consortium and defines an attribute-based access control policy language expressed in an XML format. The standard also defines a reference architecture and a processing model in which are described how access requests should be evaluated according to the attributes defined in access control policies. The main drawback of XACML is the verbosity of its syntax, since it uses XML. To overcome this issue, we defined an access control language in YAML upon the key concepts of XACML. Unlike XACML, the YAML language is simple, which makes access control policies easy to define and interpret by humans. The main challenge of creating an IoT access control system is the performance of the policy evaluation engine, particularly in systems with a large number of clients. Sun Microsystems’ implementation of the XACML specification is the most widely used solution for defining and evaluating access control rules, but it is not the most efficient, since it performs a brute force search for evaluating the predicates defined in the access request against the access control policies defined in the authorization system. Our solution is based on two tree data structures, the Decision Tree and the Combining Tree. The attributes defined in the access control policies are extracted, combined and then later used to build up the Decision Tree. The Decision Tree is used to find the applicable rules for a given set of attributes defined in an access request. On the other hand, the Combining Tree is used to calculate the final authorization decision according to the combining algorithms defined in the access control policies applicable to a given access request. The results show that our solution is about two orders of magnitude more efficient than the Sun Microsystems’ implementation. Finally, we also introduced two caching strategies to improve the performance of our engine. For each access request the engine creates and stores the subset of the Decision Tree that was used to calculate the authorization decision for a given request. In the first strategy, the engine creates and stores a Decision Tree subset applicable to each access request that hits the authorization system. In the second strategy, the client can define when each subtree should be cached by the engine. The experimental results showed that our first caching solution does not improve the performance of the engine, whereas the second solution improves the overall processing time.Os mecanismos de controlo de acesso são utilizados para prevenir que entidades não autorizadas acedam a recursos protegidos. A especificação XACML, para além de ser um dos padrões mais importantes, é também o mais utilizado para definir políticas de controlo de acesso. O XACML foi criado pelo consórcio OASIS e distingue-se por definir uma linguagem de política de controlo de acesso num formato XML baseado em atributos. Ademais, a especificação também define uma arquitetura de referência e um modelo de avaliação dos pedidos de acesso de acordo com os atributos definidos nas políticas de controlo de acesso. A principal desvantagem do XACML surge através da utilização do XML para descrever políticas de controlo de acesso, uma vez que possui uma sintaxe bastante detalhada e redundante quando comparado com outras linguagens. Por este motivo, propusemos uma linguagem de descrição de políticas de controlo de acesso baseado em XACML usando a linguagem YAML. Ao contrário do XACML, a linguagem YAML evidencia-se como mais simples, tornando as políticas de controlo de acesso mais fáceis de definir e de interpretar por humanos. Um dos maiores desafios na construção de um mecanismo de controlo de acesso em IoT diz respeito à eficiência com que o sistema necessita de avaliar os pedidos de acesso, particularmente em sistemas com um grande número de clientes. A implementação da especificação XACML da Sun Microsystems é a solução mais utilizada para definir e avaliar regras de controlo de acesso; porém, não é a mais eficiente, uma vez que avalia as políticas de controlo de acesso através de uma pesquisa por força bruta. A solução apresentada neste trabalho, baseia-se em duas estruturas de dados em árvore, nomeadamente a Árvore de Decisão e a Árvore de Combinação. Os atributos definidos nas políticas de controlo de acesso são extraídos e combinados e, posteriormente, organizados na Árvore de Decisão, que é usada para descobrir as regras que se aplicam a um determinado conjunto de atributos definidos num pedido de acesso. Por outro lado, a Árvore de Combinação é utilizada para calcular a decisão de autorização final de acordo com os algoritmos de combinação definidos nas políticas de controlo de acesso aplicáveis aos atributos definidos no pedido de acesso. Os resultados mostram que a nossa solução é cerca de duas ordens de grandeza mais eficiente que a implementação da Sun Microsystems. Por último, de forma a melhorar o tempo de avaliação dos pedidos de controlo de acesso, apresentámos duas estratégias de cache que por cada pedido de acesso guardam a sub-árvore usada para calcular a decisão de autorização. Na primeira estratégia, a sub-árvore é criada e guardada por cada pedido que é avaliado pelo sistema de controlo de acesso. No que respeita à segunda estratégia, o cliente pode definir quando é que essa sub-árvore deve ser guardada para uso futuro. Os resultados experimentais mostraram que a primeira solução não apresenta melhorias na eficiência do sistema, enquanto que a segunda solução melhora o tempo de processamento geral dos pedidos.2020-10-21T10:32:08Z2019-12-01T00:00:00Z2019-12info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10773/29521engOliveira, Rui Filipe Dominguez deinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-02-22T11:57:08Zoai:ria.ua.pt:10773/29521Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:01:50.505561Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Access control mechanisms for an IoT platform
title Access control mechanisms for an IoT platform
spellingShingle Access control mechanisms for an IoT platform
Oliveira, Rui Filipe Dominguez de
Access control mechanisms
Authorization
XACML
IoT
Attribute-based access control
Policy evaluation
title_short Access control mechanisms for an IoT platform
title_full Access control mechanisms for an IoT platform
title_fullStr Access control mechanisms for an IoT platform
title_full_unstemmed Access control mechanisms for an IoT platform
title_sort Access control mechanisms for an IoT platform
author Oliveira, Rui Filipe Dominguez de
author_facet Oliveira, Rui Filipe Dominguez de
author_role author
dc.contributor.author.fl_str_mv Oliveira, Rui Filipe Dominguez de
dc.subject.por.fl_str_mv Access control mechanisms
Authorization
XACML
IoT
Attribute-based access control
Policy evaluation
topic Access control mechanisms
Authorization
XACML
IoT
Attribute-based access control
Policy evaluation
description Access control mechanisms are used to ensure that privileged information and resources are not accessed by, or disclosed to, unauthorized entities. The XACML specification, in addition to being one of the most important standards, is also widely used to define access control policies. XACML was proposed by the OASIS consortium and defines an attribute-based access control policy language expressed in an XML format. The standard also defines a reference architecture and a processing model in which are described how access requests should be evaluated according to the attributes defined in access control policies. The main drawback of XACML is the verbosity of its syntax, since it uses XML. To overcome this issue, we defined an access control language in YAML upon the key concepts of XACML. Unlike XACML, the YAML language is simple, which makes access control policies easy to define and interpret by humans. The main challenge of creating an IoT access control system is the performance of the policy evaluation engine, particularly in systems with a large number of clients. Sun Microsystems’ implementation of the XACML specification is the most widely used solution for defining and evaluating access control rules, but it is not the most efficient, since it performs a brute force search for evaluating the predicates defined in the access request against the access control policies defined in the authorization system. Our solution is based on two tree data structures, the Decision Tree and the Combining Tree. The attributes defined in the access control policies are extracted, combined and then later used to build up the Decision Tree. The Decision Tree is used to find the applicable rules for a given set of attributes defined in an access request. On the other hand, the Combining Tree is used to calculate the final authorization decision according to the combining algorithms defined in the access control policies applicable to a given access request. The results show that our solution is about two orders of magnitude more efficient than the Sun Microsystems’ implementation. Finally, we also introduced two caching strategies to improve the performance of our engine. For each access request the engine creates and stores the subset of the Decision Tree that was used to calculate the authorization decision for a given request. In the first strategy, the engine creates and stores a Decision Tree subset applicable to each access request that hits the authorization system. In the second strategy, the client can define when each subtree should be cached by the engine. The experimental results showed that our first caching solution does not improve the performance of the engine, whereas the second solution improves the overall processing time.
publishDate 2019
dc.date.none.fl_str_mv 2019-12-01T00:00:00Z
2019-12
2020-10-21T10:32:08Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10773/29521
url http://hdl.handle.net/10773/29521
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799137674051715072