XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014
Autenticação e Autorização em Federação de Nuvens
Ioram S. Sette1, Carlos A. G. Ferraz1,2
1
Centro de Informática – Universidade Federal de Pernambuco (UFPE)
2
Centro de Estudos e Sistemas Avançados do Recife (CESAR)
{iss,cagf}@cin.ufpe.br
Abstract. Clouds Federation, or inter-clouds, is a trend for small and medium
cloud service providers, enabling them to increase their potential capacity
and, as a result, improving the quality of the cloud services offered to their
customers. Nevertheless, in order to ensure privacy to user’s data and
services, it’s necessary that cloud providers identify users and their resources
in a unique way and apply the same authorisation policies and rules on them.
This work proposes an authentication and authorisation model for federated
clouds. This model must meet some requirements in order to grant a consistent
experience for cloud federation users.
Resumo. Federação de nuvens é uma tendência para pequenos e médios
provedores, possibilitando que estes aumentem o potencial de suas
capacidades e, por consequência, melhorem a qualidade dos serviços de
nuvem oferecidos a seus usuários. No entanto, para garantirem a privacidade
dos dados e serviços do usuário hospedados em diferentes provedores, é
necessário que estes provedores identifiquem da mesma forma os usuários
seus recursos, e apliquem as mesmas regras e políticas de autorização sobre
eles. Este trabalho propõe um modelo de autenticação e autorização para
federações de nuvens. Este modelo deve atender vários requisitos que
garantam uma experiência uniforme aos usuários da federação.
1. Introdução e Motivação
Desde a criação do paradigma “Computação em Nuvens”, o tema “Federações de
Nuvens” vem ganhando relevância. Segundo Celesti et al. (2010a e 2010c), existirão
três etapas na história da Computação em Nuvem: 1) a monolítica, onde ilhas isoladas
de serviços de nuvem são providos por grandes provedores; 2) a “cadeia de
fornecimento vertical”, onde provedores de nuvem subcontratam serviços de outros
provedores, por exemplo, em caso de transbordo; e 3) a “federação horizontal” ou
“federações de nuvens” ou “internuvem”, onde pequenos e médios provedores são
“federados” para obterem economias de escala, uso eficiente de seus recursos, e
aumentar suas capacidades.
Neste contexto, Celesti et al. (2010a e 2010c) definem os conceitos de “nuvem
lar”, provedor que provê interfaces para o usuário e contrato com o mesmo, e “nuvem
estrangeira”, provedor federado com a “nuvem lar” e também pode armazenar recursos
do usuário sem que o mesmo tenha relacionamento com as mesmas.
O projeto CICN (Centro de Inovação em Computação em Nuvem) coordenado
pelo Laboratório Nacional de Computação Científica (LNCC) propôs uma abordagem
519
c
2014
SBC — Soc. Bras. de Computação
XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014
um pouco diferente. Para obter vantagens similares às propostas pela “internuvem”, a
ideia foi criar o eGov, uma camada de middleware sobre nuvens privadas de órgãos e
empresas públicas, onde os usuários das mesmas não têm conhecimento de qual nuvem
utilizam. Esta camada gerencia e distribui os acessos dos usuários às federações de
nuvens [Gomes 2013].
Nos dois modelos, existe a necessidade das nuvens pertencentes à federação
identificarem unicamente seus usuários e recursos, bem como proverem mecanismos de
autorização que apliquem políticas e regras equivalentes. Caso contrário, usuários
podem experimentar comportamentos diferentes quando acessam uma ou outra nuvem.
Para garantir o acesso de uma mesma base de usuários às diversas nuvens
pertencentes à federação, propõe-se que estas nuvens formem uma Federação de
Identidade [Celesti et al. 2010a; Celesti et al. 2010b; Celesti et al. 2010c; Sanchez et al.
2012]. Neste modelo, os provedores de nuvem confiam nos provedores de identidade
(Identity Providers - IdPs) para autenticar os usuários e garantir suas identidades. Como
o gerenciamento de identidades é delegado aos IdPs, os usuários são identificados da
mesma forma nas nuvens membros da federação [Khan et al. 2011; Ghazizadeh et al.
2012; Chadwick et al. 2013]. No entanto, este modelo não resolve o problema da
autorização, isto é, não garante que as mesmas políticas e regras de autorização sejam
aplicadas nas nuvens da federação.
“Federação de Autorização” pode ser definido como um conjunto de sistemas
que possuem relação de confiança entre si e compartilham políticas e regras de
autorização. Quando a Federação de Autorização também compartilha de mesma base
de usuários, existe uma “Federação de Autenticação e Autorização”. Chadwick et al.
(2012) definem um serviço para autorização para provedores de nuvens baseado em
ABAC (Attribute-Based Access Control) capaz de mesclar resultados de vários “Pontos
de Decisão de Políticas” (PDP) diferentes. No entanto, este modelo não se aplica a
Federações de Nuvem.
O objetivo deste trabalho é propor um modelo para Federação de Autenticação e
Autorização no contexto de Federações de Nuvens.
Este artigo se divide em 4 seções. A seção 2 apresenta os requisitos necessários
para uma Federação de Autenticação e Autorização em Federações de Nuvens. A seção
3 apresenta um modelo que atende aos requisitos identificados. Por fim, a seção 4
apresenta conclusões e trabalhos futuros.
2. Requisitos para Autenticação e Autorização em Federações de Nuvens
No contexto de uma Federação de Nuvens, os requisitos necessários (marcados com um
asterisco) e desejáveis para uma “Federação de Autenticação e Autorização” são
listados a seguir:
1. *Receber de provedores de nuvem (Cloud Service Providers - CSPs) requisições
de autenticação delegada e de autorização com granularidade fina, de forma
segura;
2. Oferecer serviços de autenticação e autorização independentes;
3. *Ser capaz de identificar usuários e prover os mesmos atributos a todos os CSPs;
4. Ser capaz de combinar atributos de identidade de múltiplas autoridades de
atributos;
520
c
2014
SBC — Soc. Bras. de Computação
XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014
5. *Ser capaz de aplicar o mesmo conjunto de políticas em todos os CSPs;
6. *Garantir que o conteúdo dos dados e de serviços não serão informados a
sujeitos não autorizados;
7. Não ser ponto único de falha;
8. Permitir que proprietários de dados e serviços controlem a autorização;
9. *Suporte operações de migração e replicação (detalhadas a seguir);
10. Ser extensível a controle de uso (usage control model - UCON) e criptografia
baseada em atributos (Attribute-Based Encryption - ABE).
Em um contexto de Federação de Nuvens, recursos como arquivos de dados e/ou
máquinas virtuais (VMs) podem ser transferidos de uma nuvem para outra por motivo
de transbordo ou balanceamento de recursos. Desta forma, duas operações citadas no
requisito 9 são apresentadas: migração e replicação de recursos entre nuvens.
A “migração” de recursos é uma operação onde um recurso hospedado em uma nuvem
é transferido para outra nuvem. Esta operação pode ser explícita, caso o usuário ou
administrador tenha conhecimento sobre as nuvens pertencentes à federação, ou
implícita, realizada automaticamente pelo sistema, caso o mesmo identifique que não
possui mais infraestrutura disponível para hospedar o recurso. Por recurso, podemos
considerar qualquer entidade de usuário hospedada no provedor de nuvem, por
exemplo, arquivos num sistema de armazenamento, ou máquinas virtuais, num sistema
de computação elástica.
A “replicação” de recursos entre nuvens aumentam a garantia de disponibilidade e
desempenho em seus acessos. Por exemplo, cópias de arquivos podem ser mantidas em
diferentes provedores, ou instâncias de uma mesma máquina virtual podem ser
executadas em diferentes provedores. Neste caso, o usuário controla o acesso a partir da
nuvem “de origem” onde o recurso foi criado, e o sistema mantém o sincronismo das
réplicas nas nuvens “estrangeiras”.
3. Modelo para Autenticação e Autorização em Federações de Nuvens
Nesta seção, um modelo de “Federação de Autenticação e Autorização” para
Federações de Nuvens é proposto. Este modelo deve atender aos requisitos definidos na
seção 2.2.
O modelo, representado na Figura 1, combina uma Federação de Identidades (ou de
autenticação) com uma Federação de Autorização de arquitetura distribuída e
mecanismo de controle de acesso baseado em atributos (ABAC), que permite regras
com granularidade fina. As conexões devem usar protocolos como SSL para garantir o
sigilo dos dados trafegados. Os requisitos 1 e 2 são atendidos por estas características.
Os CSPs membros da Federação de Nuvens também participam de uma Federação de
Identidade (ou de Autenticação). Portanto, a autenticação dos usuários é delegada aos
IdPs federados. A integração com os IdPs são realizadas normalmente através de um
módulo ou serviço de identidade (Cloud Identity Service), interno à arquitetura dos
provedores [Sette et al. 2013; Sette et al. 2014]. Os trabalhos citados descrevem a
integração de um provedor Openstack a provedores de Identidade através dos
protocolos OpenID Connect e SAML. Neste modelo, o usuário deve se autenticar com
seu IdP antes de acessar o CSP. Desta forma, problemas típicos da centralização, como
ser um ponto único de compromisso ou de falha podem acontecer. Por exemplo, se o
521
c
2014
SBC — Soc. Bras. de Computação
XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014
IdP do usuário estiver indisponível, o serviço de nuvem não pode ser acessado. No
entanto, estas desvantagens são contrapostas e justificadas por vantagens como a
redução de credenciais para os usuários e a possibilidade de mecanismos de
autenticação mais sofisticados. A federação de identidade garante que os usuários sejam
apresentados de forma única aos provedores de nuvens federados, atendendo o requisito
3. O requisito 4 pode ser implementado pelo módulo de identidade do provedor, sendo
necessário que este componente tenha como saber que os atributos pertençam a um
mesmo usuário.
Figura 1. Modelo para Federação de Autenticação e Autorização em Federação de Nuvens
De forma análoga, os CSPs membros da Federação de Nuvens também formam uma
Federação de Autorização, de forma a garantir os requisitos 5 e 6. Porém, diferente da
Federação de Identidade, a arquitetura distribuída apresentada na Figura 1 permite o
sincronismo de regras e políticas de acesso. Esta arquitetura foi inspirada no modelo do
serviço de nomes da Internet (DNS), onde as regras de autorização são armazenadas no
provedor de origem dos recursos, de forma análoga ao DNS autoritativo, e, quando a
regra não está presente, ela é encontrada na rede e armazenada em cache no provedor
local, de maneira análoga ao DNS recursivo. Desta forma, a solução ganha em
desempenho, uma vez que as regras e políticas de autorização acabam, na maior parte
das vezes, estando armazenadas localmente, e também em não haver um ponto único de
falhas, uma vez que a solução é distribuída. O requisito 7 está, desta forma, atendido.
522
c
2014
SBC — Soc. Bras. de Computação
XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014
Cada provedor de nuvem possui um serviço de autorização, responsável pela decisão de
liberação da ação solicitada pelos demais serviços (ex.: serviço de computação ou de
armazenamento). O serviço de autorização utiliza um sistema ABAC composto pelos
módulos definidos na arquitetura XACML (eXtensible Access Control Markup
Language). Os serviços da nuvem que recebem requisições de acesso devem garantir
que, para cada requisição, o serviço de autorização seja consultado através de um
“Ponto de Aplicação de Políticas” (PEP, do inglês Policy Enforcement Point). O “Ponto
de Decisão de Políticas” (PDP) faz interface com o PEP, recebendo a requisição de
acesso e respondendo com uma permissão ou negação. Para tomar sua decisão, o PDP
verifica políticas e regras de acesso armazenadas nos “Pontos de Recuperação de
Políticas” (PRP). As regras e políticas sobre os recursos do usuário devem ser definidas
apenas pelos usuários proprietários destes recursos, conforme o requisito 8. No entanto,
regras globais podem ser definidos por administradores do projeto (tenant) ou do
provedor de nuvem. Neste caso, o conceito de “projeto” e as “regras” precisam ser
propagadas aos outros provedores federados. As regras e políticas de autorização são
definidas através do “Ponto de Administração de Políticas” (PAP). Elas recebem como
parâmetros atributos do sujeito (quem deseja o acesso), do objeto alvo, ou do ambiente,
que são informados ao PDP pelo “Ponto de Informação de Políticas” (PIP). Os atributos
do objeto são provenientes de seus metadados, enquanto os atributos do usuário são
adquiridos através do módulo de identidade do CSP, provenientes dos provedores de
identidade (IdPs).
Conforme previsto no requisito 9, operações de migração e replicação de dados devem
ser suportadas.
Durante operações de migração de dados ou VMs, os metadados e as regras e políticas
de autorização referentes ao objeto também são migrados para o novo CSP (Cloud
Service Provider). Funciona como se o provedor de origem daquele objeto fosse
alterado para o novo provedor de destino.
Já nas operações de replicação, apesar da réplica estar hospedada em um provedor
diferente do provedor de origem, as regras de acesso devem permanecer no provedor de
origem. Desta forma, quando um acesso é realizado a estes objetos, o PRP deve buscar
na federação qual provedor tem autoridade sobre estes objetos e recuperar as regras (de
acesso) referentes aos mesmos. As regras serão mantidas em um “cache” de políticas e
regras por tempo definido pelo dono dos objetos. Desta forma, garante-se que as regras
aplicadas às réplicas sejam as mesmas aplicadas aos objetos originais.
De acordo com o requisito 10, este modelo pode ser facilmente extensível. Para permitir
um controle de uso (UCON), a verificação de acesso deve ser realizada várias vezes
durante o acesso e obrigações podem ser efetuadas também durante a execução. A
extensão para um mecanismo de criptografia baseada em atributos (ABE) também é
possível, uma vez que utilizamos um controle de acesso baseado em atributos (ABAC).
No entanto, é necessária uma reflexão sobre como trafegar chaves criptográficas entre
provedores federados de forma segura, caso necessário.
4. Conclusões
Num modelo de Federação de Nuvens, usuários possuem apenas uma interface para
acessar e usar seus dados e serviços, que podem estar hospedados em mais de um
provedor de nuvem de forma transparente aos mesmos.
523
c
2014
SBC — Soc. Bras. de Computação
XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014
Este trabalho se propõe a definir um modelo para autenticação e autorização aplicável a
Federações de Nuvens, que permita que os provedores compartilhem de uma mesma
base de usuários, e que as mesmas regras e políticas de autorização sejam aplicadas por
estes provedores. Objetos dos usuários podem ser migrados de um provedor para outro
ou replicados entre provedores sem que o usuário perceba.
O modelo proposto é baseado em Federação de Autenticação e Autorização, com uma
arquitetura de autorização distribuída baseada em ABAC. Este modelo atendeu a
diversos requisitos necessários e desejáveis que foram elencados neste artigo.
Como trabalho futuro, este modelo será implementado, testado e validado em uma
Federação de Nuvens formada por provedores que utilizam a plataforma Openstack.
Referências
Celesti, A. et al. (2010a) “How to Enhance Cloud Architectures to Enable CrossFederation” In: 3rd International Conference on Cloud Computing, p. 337-345. IEEE.
Celesti A. et al. (2010b) “Security and Cloud Computing: InterCloud Identity Management
Infrastructure” In: Workshops on Enabling Technologies: Infrastructure for
Collaborative Enterprises, p. 263-265. IEEE.
Celesti A. et al. (2010c) “Three-Phase Cross-Cloud Federation Model: The Cloud SSO
Authentication” In: Second International Conference on Advances in Future Internet, p.
94-101. IEEE.
Chadwick, D. W., Casenove, M. and Siu, K. (2013) “My private cloud – granting federated
access to cloud resources” In: Journal of Cloud Computing, p.1-16. SpringerOpen.
Chadwick, D. W. and Fatema, K. (2012) “A privacy preserving authorisation system for the
cloud”, In: Journal of Computer and System Sciences, i.78, p.1359-1373. Elsevier.
Gazizadeh, E. et al. (2012) “A trusted based model for federated identity architecture to
mitigate identity theft”, In: 2012 International Conference for Internet Technology And
Secured Transactions, p.376-381. IEEE.
Gomes, A. T. A. (2013) “CICN - Centro de Inovação em Computação em Nuvem”,
FINEP/0615/11.
Khan, R. H., Ylitalo, J. and Ahmed, A. S. (2011) “OpenID authentication as a service in
OpenStack”, In: 7th International Conference on Information Assurance and Security,
p.372-377. IEEE.
Sánchez, R. et al. (2012) “Enhancing Privacy and Dynamic Federation in IdM for
Consumer Cloud Computing” In: IEEE Transactions on Consumer Electronics, vol. 58,
i.1, p.95-103. IEEE.
Sette, I. S. and Ferraz, C. A. G. (2013) “Integrando Openstack com Provedores de
Identidade OpenID Connect e SAML: Uma Análise Comparativa” In: XIII Simpósio
Brasileiro em Segurança da Informação e de Sistemas Computacionais, p.497-506,
SBC.
Sette, I. S. and Ferraz, C. A. G. (2014) “Integrando Plataformas de Nuvens a Federações de
Identidade” In: Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos,
p.617-630. SBC.
524
c
2014
SBC — Soc. Bras. de Computação
Download

Autenticação e Autorização em Federação de Nuvens