Home   |   Structure   |   Research   |   Resources   |   Members   |   Training   |   Activities   |   Contact

EN | PT

EuPTCEEn1646-98952012000100003

EuPTCEEn1646-98952012000100003

variedadeEu
Country of publicationPT
colégioEx-Tech-Multi Sciences
Great areaEngenharia
ISSN1646-9895
ano2012
Issue0001
Article number00003

O script do Java parece estar desligado, ou então houve um erro de comunicação. Ligue o script do Java para mais opções de representação.

Modelo de segurança para a composição dinâmica de workflows em arquiteturas de e-government

1. Introdução A Organização para a Cooperação e Desenvolvimento Económico (OCDE) define e- government como A utilização das Tecnologias da Informação e da Comunicação em atividades de governo (OECD, 2001). As arquiteturas de interoperabilidade constituem uma das mais importantes aplicações das Tecnologias da Informação e da Comunicação (TIC) no governo. Estas arquiteturas suportam a partilha de informação entre ramos da administração pública, promovendo a eficiência e permitindo a integração de serviços na ótica dos cidadãos e empresas.

Em (Marques, Dias & Zúquete, 2011) foi apresentada uma arquitetura de interoperabilidade para e-government que segue a composição de serviços como abordagem, é mutável, adaptável, versátil e segura. Esta arquitetura é intrinsecamente dinâmica, permite a criação e remoção de novos serviços e de prestadores de serviço em qualquer altura. Devido ao seu dinamismo, não se aplica o paradigma comum de todos os prestadores de serviços serem confiáveis e autorizados para interagir com todos os restantes prestadores de serviços: um sistema de segurança dinâmico é essencial. Neste artigo apresentamos um modelo que, baseando-se na Tecnologia de Infraestrutura de Chave Pública (PKI), permite a criação dinâmica de esquemas de verificação de segurança no e- government.

O artigo está organizado da seguinte forma: começamos por introduzir o problema na presente secção; o trabalho relacionado é abordado na secção 2; na secção 3 fazemos uma breve introdução à arquitetura de interoperabilidade baseada em agentes; na secção 4 apresentamos o modelo de segurança; seguindo-se na secção 5 a discussão; o artigo é concluído na secção 6.

2. Trabalho Relacionado A segurança tem sido uma das maiores preocupações no desenvolvimento de plataformas baseadas em agentes e em sistemas de workflow.

As características das plataformas de agentes e o seu cariz genérico conduziram ao desenvolvimento de vários modelos de segurança. Por exemplo, em (Stormer, Knorr & Eloff, 2000) os autores propuseram uma aproximação baseada em RBAC (Role Based Access Control) para autorização e em SoD (Separation of Duties) para a aplicação da integridade. Em (Savarimuthu, Purvis & Oliveira, 2004) os autores utilizaram uma PKI para suportar a autenticação de agentes e impuseram autorização RBAC através da utilização de hierarquias suportadas por PKI (cada Autoridade Certificadora pertence a uma sociedade diferente e cada sociedade representa uma função na plataforma). Em (Kannammal & Iyengar, 2008) é utilizado um Key Server que atua como um elemento de confiança comum para armazenar as chaves do Launcher Agent e dos agentes móveis. As chaves e o Key Server têm um papel central no modelo de segurança, permitindo autenticação aos agentes móveis, autenticação interdomínio e gestão da confiança do domínio.

Diversos modelos de segurança para workflows têm sido igualmente propostos ao longo dos anos e, como iremos ver, muitos deles são baseados em RBAC. No entanto isto não é o caso do modelo de autorização apresentado em (Hung & Karlapalem, 2003). Este modelo é suportado por um conjunto de funções de autorização que são executadas em diferentes camadas (workflow, controlo e dados) da máquina de estados multicamada que controla o modelo, disponibilizando ou negando o acesso aos diferentes recursos.

Em (Chou & Wu, 2004), Chou e Wu apresentaram um modelo de controlo de acesso baseado em RBAC ' WfRBAC (Role-based access control within workflows) ' que resolve algumas das limitações do modelo RBAC durante o tempo de execução do workflow (Chou & Wu, 2004): troca dinâmica de função, gestão de associação de função; e, prevenção indireta de fuga de informação. No modelo WfRBAC, para controlar o acesso à informação do workflow durante a sua execução, uma politica de controlo de acesso é embutida no workflow. Isto aborda as limitações identificadas do modelo RBAC.

Dois modelos baseados em RBAC são apresentados em (Wainer, Barthelmess & Kumar, 2003), sendo ambos conhecidos por W-RBAC. O primeiro modelo, W0-RBAC junta um serviço de permissões baseado em RBAC e uma componente workflow. O serviço de permissões providencia uma linguagem baseada em lógica que permite a definição de utilizadores que podem ser autorizados para realizar tarefas. O segundo modelo ' W1-RBAC ' adiciona a capacidade de tratamento de exceções ao primeiro modelo.

Em (Atluri & Huang, 1996), o WAM (Workflow Authorization Model) é apresentado. Este modelo suporta a especificação de políticas de autorização de acesso que permitem o acesso durante a execução de uma tarefa. A sincronização necessária do fluxo de autorização com o workflow é atingida através da utilização de um modelo de autorização que é associado a cada tarefa que integra o workflow.

Um modelo TBAC (Task-Based Access Control) foi apresentado em (Thomas & Sandhu, 1997). Este modelo associa autorização com tarefas. Todas as funções que são aceites para uma tarefa são reunidas num conjunto de confiança. De cada vez que um passo de autorização é executado uma função é escolhida deste conjunto de confiança.

3. A Arquitetura de Interoperabilidade Baseada em Agentes Nesta secção apresentamos sucintamente a arquitetura baseada em agentes, de forma a contextualizar a nossa contribuição.

3.1. Visão Global O conceito base da arquitetura é bastante simples: ela é composta por agentes que trabalham em conjunto para prestar serviços. Estes serviços estão registados num repositório de serviços e são publicados pelos agentes que os oferecem. Aplicam-se os seguintes pressupostos:

* A interoperabilidade é conseguida através da composição de serviços simples, que são fornecidos por autoridades públicas, para produzir serviços complexos, que são consumidos por outras autoridades públicas; * Todos os serviços são prestados por agentes. Os serviços podem ser simples ou complexos. Serviços simples são prestados por agentes associados a um Sistema de Informação Local (SIL) das agências que efetivamente fornecem os serviços.

Serviços complexos são prestados por agentes que compõem estes serviços simples; * A gestão do workflow (i.e., o processo de prestação de um serviço) de um serviço complexo não está centralizada em nenhum agente. Os agentes têm a possibilidade de delegar a gestão de partes do workflow a outros agentes, invocando novos serviços. Isto implica que os workflows são estabelecidos dinamicamente, pelo que não existe um conhecimento prévio dos agentes que participam no workflow do serviço complexo; * O resultado produzido por um agente no decorrer do workflow é mantido no agente até ser explicitamente requisitado por outro agente que necessita de o consumir. Este comportamento é imposto por requisitos de confidencialidade.

Uma vez que os agentes que necessitam de consumir resultados podem não ser conhecidos na altura da sua produção, os resultados são mantidos pelos agentes que os produzem até que estes sejam requeridos por agentes autorizados para o fazer. De qualquer forma, os agentes têm conhecimento da localização dos resultados de que precisam, uma vez que a informação sobre a disponibilidade do resultado, mas não o seu valor, é transmitida através de todos os agentes que participam no workflow.

A Figura_1 fornece um exemplo da utilização da arquitetura: candidatura ao ensino superior em Portugal. Ocorrem as seguintes interações:

1. O candidato acede ao Ministério da Educação e Ciência (MEC) para fazer a sua candidatura ao ensino superior e seleciona os cursos e instituições para as quais se quer candidatar; 2. O Sistema de Informação Local do MEC solicita as notas do candidato ao agente que lhe está associado; 3. O agente encontra o serviço da Direção Geral da Administração Escolar (DGAE) que pode fornecer as notas dos alunos; 4. O agente obtém a informação de que necessita para solicitar o serviço; 5. O agente do MEC solicita o serviço ao agente da DGAE; 6. Por sua vez, o agente da DGAE, que não consegue responder diretamente ao serviço mas tem conhecimento do agente que lhe poderá responder, reencaminha o pedido (ou parte dele) para o agente da escola; 7. O agente da escola solicita as notas ao SIL a que está associado; 8. O agente da escola satisfaz o serviço enviando um URI que define a localização das notas do aluno para o agente da DGAE; 9. O agente da DGAE reencaminha a informação para o agente do MEC;

10. Uma vez que o MEC necessita do resultado para concluir o serviço inicialmente solicitado, envia um pedido para o agente da escola a pedir o resultado do serviço;

1. A satisfação deste último pedido conclui o serviço pedido originalmente.

De notar que o agente da escola, aquando da produção do resultado, não sabe quem será o destinatário final das notas do aluno. Esse destinatário fica a ser conhecido quando o agente do MEC solicita explicitamente o resultado produzido.

3.2. Mensagens Durante a execução do workflow de um serviço, várias mensagens são trocadas entre os agentes que estão envolvidos no processo. Os tipos de mensagem são: Service Request; Notification; Result Request; Result Delivery.

Uma mensagem do tipo Service Request ((5) e (6) na Figura_1) é uma mensagem que suporta toda a informação necessária para solicitar um serviço. Consiste na descrição do serviço a ser pedido, na identificação do pedido, no timestamp correspondente à hora em que o serviço foi pedido, na assinatura do solicitador, da identificação do destinatário e da identificação do solicitador original. Em determinada altura no tempo, este tipo de mensagem pode conter blocos com o mesmo tipo dele próprio (correspondendo à composição do serviço), ou seja incluindo informação sobre todos os serviços mais simples que foram prestados (e dos agentes que os executaram) até àquele momento.

Toda e qualquer alteração no estado de uma prestação de serviço produz uma mensagem do tipo Notification ((8) e (9) na Figura_1). Deste modo, Notifications são enviadas dos agentes que executaram um serviço para os agentes que o tinham solicitado. A mensagem contém informação sobre o serviço que foi pedido, sobre o agente que está a prestar o serviço e sobre o novo estado da prestação do serviço (e.g. a conclusão da prestação do serviço com a produção de um resultado).

Uma mensagem do tipo Result Request ((10) na Figura_1) é utilizada quando um agente necessita de aceder a um resultado que foi previamente obtido por outro agente. O valor do resultado é identificado por um URI que foi gerado na altura pelo agente que produziu o resultado. O URI do valor do resultado e a Informação sobre o solicitador, nomeadamente os seus certificados, estão incluídos na mensagem.

Mensagens do tipo Result Delivery ((11) na Figura_1) são geradas como resposta ao Result Request. Para além do resultado, contém informação sobre o agente que entrega o resultado e os seus certificados.

3.3. Estruturas de Suporte De forma a obter-se uma prestação de serviços segura e localizar os serviços disponibilizados, a arquitetura contém algumas infraestruturas de suporte, nomeadamente Repositórios de Serviços e uma Infraestrutura de Chave Pública.

Os Repositórios de Serviços respeitam o padrão Universal Description, Discovery and Integration (UDDI) (Clement, Hately, Riegen & Rogers, 2004). Estes repositórios armazenam informação sobre todos os serviços disponibilizados, incluindo a identificação do agente que realiza o serviço e os resultados produzidos. Esta informação é armazenada na estrutura (Service Description) baseada na linguagem Web Services Description Language (Christensen, Curbera, Meredith & Weerawarana, 2001) (WSDL).

A Infraestrutura de Chave Pública é utilizada para suportar a autorização de agentes (que exige a identificação e autenticação dos agentes), a acreditação dos pares do tipo {agente, serviço} e a assinatura digital das mensagens e dos resultados produzidos.

4. O Modelo de Segurança Nesta secção identificamos as questões de segurança que resultam da arquitetura e apresentamos o modelo de segurança para os enfrentar.

4.1. Questões de Segurança na arquitetura A arquitetura baseada em agentes tem um conjunto de questões de segurança que deve ser resolvido.

Primeiro, um agente, como um recetor de pedidos, é abordado de uma de duas formas: através de um Service Request ou através de um Result Request (ver Figura_2). Ambos os tipos de pedidos podem ser realizados por qualquer agente dentro da arquitetura. Uma vez que não existem restrições no que diz respeito ao acesso à arquitetura, estes pedidos podem também estar acessíveis a qualquer peça de software que consiga encontrar os Web Services do agente. De forma a proteger o SIL associado ao agente que disponibiliza o serviço, o agente deve verificar a autorização do solicitador do serviço.

Segundo, o caminho do workflow pode forçar algumas limitações à prestação do serviço, por exemplo: conflitos de interesse entre duas entidades que estão envolvidas no mesmo processo de prestação do serviço. Os agentes devem estar preparados para atuar (verificar a autorização do workflow) de acordo com estes casos e responder de forma apropriada.

Terceiro, existem algumas preocupações que devem ser abordadas pelo solicitador do serviço ou resultado. Para pedir um serviço, é necessário verificar se o agente a quem o mesmo será solicitado está acreditado para o prestar (o que significa que uma terceira entidade de confiança confirma que um agente não é capaz de prestar um serviço mas também tem a jurisdição/qualificação necessária para o fazer). Neste caso (solicitar um serviço), o agente solicitador deve ser capaz de identificar qualquer restrição ao nível do workflow que possa impedir a participação de outro agente no workflow.

Finalmente, devem ser tidas igualmente algumas precauções aquando da solicitação de um resultado. Uma vez que um agente não sabe para quem está a produzir um resultado no momento em que o produz, então ele é incapaz de explorar as transformações de cifragem/decifragem de forma a assegurar a confidencialidade e a privacidade do mesmo quando em trânsito por outros agentes. Uma vez que este é o caso por omissão na arquitetura, então o agente mantém o resultado produzido até este ser explicitamente requisitado pelo agente que necessita dele. Esta necessidade para solicitar o resultado adiciona algumas preocupações ao agente que dele necessita: primeiro, o resultado é válido? (que quer dizer: o autor do resultado tem jurisdição sobre aquele resultado? Está este agente acreditado para prestar o serviço que deu origem ao resultado?); segundo, se o agente que requer o resultado tem de produzir um novo resultado com base neste resultado anterior, então tem de identificar o agente que originalmente providencia o resultado (é importante para responsabilização).

Resumindo, deve-se assegurar que (ver Figura_2):

1. Um agente que solicita um serviço está autorizado para o fazer.

2. Um agente que disponibiliza um serviço está acreditado para o fazer.

3. Um agente que requer um resultado está autorizado para o obter.

4. Um agente que produz um resultado está acreditado para o oferecer.

5. Um agente que participa no workflow está autorizado para participar nesse mesmo workflow.

6. Um agente que disponibiliza um resultado é o mesmo agente que o produziu.

4.2. Estruturas de Suporte A arquitetura deve conter estruturas de dados adequadas para suportar o modelo de segurança. As estruturas de dados seguintes são utilizadas para o efeito: Certificate e Service Description.

A estrutura Certificate baseia-se no RFC 5280. É utilizada com dois propósitos: identificar e autenticar agentes e determinar o nível de autorização para aceder aos serviços disponibilizados. O último é realizado através da utilização das extensões da versão 3 dos certificados X.509.

A estrutura dos certificados (ver Figura_3) contém informação sobre a entidade que certifica, sobre o próprio certificado e sobre todas as classificações de segurança, dado o agente e o tipo de certificado (autorização ou acreditação de serviço). Quando a acreditação do serviço está em causa, o certificado também contém a identificação do serviço.

A classificação do serviço tem dois significados diferentes, dependendo do tipo de certificado. Nos certificados de autorização, que são utilizados para verificar a classificação de segurança possuída pelos agentes quando atuam como clientes, a classificação deve ser lida como o máximo de autorização que o agente detém. Nos certificados de acreditação de serviços, que são utilizados para acreditar pares {agente, serviço}, define o mínimo de classificação requerido para que um agente possa aceder ao serviço.

A estrutura Service Description baseia-se na especificação WSDL. O seu objetivo principal é disseminar informação sobre os serviços disponíveis na arquitetura.

Inclui a descrição do serviço (ver Figura_4), informação sobre quem fornece o serviço (nomeadamente a localização e os seus certificados) e sobre um conjunto de características que são utilizadas pelos agentes para comparar os diferentes fornecedores do mesmo serviço (e.g.: custo; tempo de execução; necessidade de intervenção humana).

Na próxima subsecção expomos de que forma a combinação destas duas estruturas permitem abordar as questões de segurança identificadas.

4.3. A Mecânica do Modelo Para abordar as questões de segurança identificadas na subsecção 4.1 os agentes utilizam o seguinte processo.

Após a receção de um Service Request, o agente que disponibiliza o serviço verifica se o agente que solicitou o serviço tem autorização suficiente para aceder ao serviço. Esta verificação é realizada através da comparação das classificações registadas no certificado de autorização do agente que solicita o serviço, que está disponível na mensagem recebida, com a classificação que é necessária para aceder ao serviço, que está disponível no certificado de acreditação do agente que fornece o serviço. Se o agente que solicita o serviço está autorizado a realizar o pedido, então o agente que fornece o serviço deve ser capaz de verificar se todos os agentes que participaram na prestação do serviço até àquele momento estão autorizados para o fazer de acordo com as políticas do agente que fornece o serviço. Isto é importante uma vez que podem existir políticas de autorização que impeçam que outros agentes participem no workflow (e.g.: conflitos de interesse; autorização baseadas no pedido original). Esta verificação também é realizada através da utilização da informação contida na mensagem do pedido do serviço, particularmente nos certificados de autorização e nos seus caminhos de certificação. Com este passo, os itens 1 e 5 estão verificados.

A receção do Result Request inicia ações que são similares àquelas que são iniciadas pela receção de um Service Request. Neste caso o agente deve verificar a autorização do agente que solicita o resultado para aceder ao resultado pedido. Isto é feito através da utilização das classificações que estão presentes nos certificados de autorização do solicitador, permitindo que o fornecedor do resultado possa verificar se o agente solicitador está autorizado a aceder ao resultado e se pode participar no workflow, abordando os itens 3 e 5.

Para solicitar um serviço um agente deve escolher outro agente que possa fornecer os resultados necessários. Depois de o escolher, determina se este está acreditado para realizar o serviço, baseando-se, para isso, nos certificados e nos respetivos caminhos de certificação associados ao serviço, o que aborda os itens 2 e 5.

O último passo está relacionado com a solicitação de um resultado. Neste ponto, o agente tem um apontador em formato URI que indica a localização do resultado.

Para além deste facto, tem também informação sobre o agente que produziu o resultado, nomeadamente os seus certificados. Com esta informação, o agente é capaz de verificar se o agente que fornece o resultado é o mesmo que o produziu, através da verificação da assinatura digital no URI, e de verificar se este está acreditado para produzir aquele resultado. Este passo aborda os itens 4 e 6.

5. Discussão Como observámos na subsecção 4.1, a possibilidade de um agente delegar partes do workflow a outros agentes levanta um conjunto de preocupações de segurança.

A nossa abordagem a estas preocupações baseia-se num conjunto de procedimentos, numa PKI e num conjunto de estruturas de dados de suporte.

A arquitetura de interoperabilidade que foi brevemente descrita na secção 3 levanta algumas preocupações de segurança, como mencionado previamente. Devido ao dinamismo da arquitetura, à capacidade que qualquer agente tem de realizar vários papéis simultaneamente e à gestão descentralizada do workflow, todos os modelos de segurança existentes se revelam inadequados. Para além disto, o modelo deve ter em consideração o facto de que a verificação da autorização deve ser realizada em diferentes contextos: Service Request; Service Deliver; e, Result Request.

O nosso modelo utiliza uma PKI de forma providenciar autenticação de agentes e acreditação de serviços e autorização.

Em termos de verificação de autorização, o objetivo do nosso modelo de segurança não é lidar com restrições de acesso específicas (que, argumentamos, são deveres do SIL) mas definir restrições de acesso gerais ao SIL. Com isto em mente, a nossa abordagem apenas requer a utilização das extensões de certificados apresentadas anteriormente. Mais, estas extensões e o conjunto de procedimentos que foram definidos permitem abordar todas as preocupações identificadas ao nível da autorização.

Mais, os modelos de segurança previamente referenciados definem uma função específica para cada agente, o que não se verifica na nossa arquitetura. Um agente pode prestar ou solicitar diversos serviços dentro do workflow, podendo, portanto, atuar com diferentes funções.

Então, para utilizar o RBAC seria necessário um grande número de funções e o necessário dinamismo para suportar a sua criação, manutenção e remoção em qualquer momento.

Finalmente, ao contrário de todos os outros trabalhos referenciados, a nossa proposta também aumenta a confidencialidade dos dados e a privacidade através da execução de workflows, impondo a solicitação obrigatória de resultados (que são mantidos pelos agentes que os produziram até serem explicitamente solicitados pelos seus destinatários finais).

6. Conclusões e trabalho futuro Neste artigo apresentamos um modelo de segurança baseado em PKI para adicionar segurança a uma arquitetura de interoperabilidade baseada em agentes. Esta arquitetura foi igualmente sucintamente descrita, para apresentar as questões de segurança que levanta e que se devem essencialmente ao seu inerente dinamismo.

O modelo permite que agentes verifiquem as permissões de outros agentes para participar no workflow associado à prestação de um serviço, para verificar a autorização de outros agentes, para prestar e solicitar serviços e resultados e para verificar se os agentes que entregam resultados são os mesmos que originalmente os produzem. Mais, assegura a privacidade do conteúdo através da garantia de que os agentes solicitam explicitamente os resultados que lhes são destinados. A definição de políticas que possam lidar com restrições de acesso específicas ao SIL está fora do âmbito deste modelo.

No futuro é nossa intenção validar o modelo proposto através da exploração de um protótipo entretanto desenvolvido recorrendo a casos de utilização, os quais irão envolver o desenvolvimento de diversos tipos de agentes.


transferir texto