SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




                 Controle de Acesso Baseado em Pap´ is
                                                  e
                 para o Modelo CORBA de Seguranca ¸
            Rafael Rodrigues Obelheiro† , Joni da Silva Fraga e Carla Merkle Westphall
                        Email: {obelix, fraga, merkle}@lcmi.ufsc.br
                              Laborat´ rio de Controle e Microinform´ tica
                                      o                               a
                                                          ¸˜
                                Departamento de Automacao e Sistemas
                                Universidade Federal de Santa Catarina
                       Caixa Postal 476 – 88040-900 – Florian´ polis – SC – Brasil
                                                             o

                                                 Resumo
             Este artigo mostra como modelos de controle de acesso baseado em pap´ is (role-based
                                                                                     e
         access control—RBAC) podem ser implementados em sistemas de objetos distribu´dos que
                                                                                            ı
         seguem os padr˜ es OMG/CORBA. N´ s apresentamos uma nova abordagem que permite a
                         o                      o
              ¸˜
         ativacao autom´ tica de pap´ is pelos componentes de seguranca do middleware, o que traz
                         a          e                                  ¸
                                               e            ¸˜
         o controle de acesso baseado em pap´ is para aplicacoes n˜ o cientes da seguranca.
                                                                  a                     ¸
         Palavras-chave: seguranca, controle de acesso, RBAC, CORBA
                                  ¸

                                                Abstract
             This paper shows how role-based access control (RBAC) models can be implemented
         in distributed object-based systems that follow OMG/CORBA standards. We introduce
         a novel approach that allows automatic role activation by the security components of the
         middleware, which brings role-based access control to security-unaware applications.
         Key words: security, access control, RBAC, CORBA


1               ¸˜
         Introducao
                                ¸˜
    Hoje em dia, as organizacoes dependem cada vez mais de seus sistemas de informacao.     ¸˜
Essa dependˆ ncia faz aumentar tamb´ m a importˆ ncia de manter a seguranca da informacao
              e                        e            a                           ¸             ¸˜
                                                                    ¸˜
armazenada e gerenciada por estes sistemas. A crescente utilizacao de sistemas distribu´dos ı
                                                                                       `
de larga escala, notadamente aqueles baseados na Internet, introduz novos desafios a tarefa de
garantir propriedades como confidencialidade, integridade e disponibilidade dos dados. Isto se
deve a v´ rios fatores, como a impossibilidade de prover seguranca f´sica a todos os componentes
        a                                                       ¸ ı
do sistema e a facilidade de acesso remoto, que tornam irrelevantes as fronteiras geogr´ ficas e
                                                                                         a
                                               ¸˜                ¸˜
tamb´ m as leis que regulam o acesso e utilizacao destas informacoes.
     e
                                                         ¸˜
    Paralelamente, observa-se tamb´ m uma disseminacao de sistemas baseados na tecnologia
                                     e
OMG/CORBA (Object Management Group/Common Object Request Broker Architecture),1
um padr˜ o para sistemas abertos e distribu´dos baseados em objetos que vem sendo adotado
         a                                   ı
    † BolsistaCNPq.
    1O             ´         o                                   ´                    a                 ¸˜
      OMG, que e um cons´ rcio formado por mais de 800 empresas, e o organismo respons´ vel pela formulacao
dos padr˜ es da arquitetura CORBA.
        o




                                                   869
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                               Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




mundialmente pela ind´ stria de software [BD99]. O modelo de sistemas abertos no qual o
                            u
                          ´
CORBA est´ inserido e denominado OMA (Object Management Architecture).
                a
     Dentre os diversos servicos especificados pelo OMG para o ambiente CORBA destaca-se
                                 ¸
o servico de seguranca CORBA, tamb´ m conhecido como CORBAsec. O modelo CORBA de
         ¸             ¸                  e
seguranca foi desenvolvido com o prop´ sito de incorporar caracter´sticas e funcionalidades de
           ¸                                o                          ı
seguranca a sistemas de objetos distribu´dos de pequena e larga escala, sem deixar de lado ca-
           ¸                                 ı
racter´sticas-chave do padr˜ o CORBA como transparˆ ncia, interoperabilidade e portabilidade.
       ı                       a                          e
     O controle de acesso baseado em pap´ is vem sendo reconhecido como uma alternativa aos
                                               e
tradicionais modelos de controle de acesso discricion´ rio (baseado em matriz de acesso) e obri-
                                                          a
gat´ rio (baseado em r´ tulos de seguranca). Estudos conduzidos nos Estados Unidos pelo NIST
   o                     o                 ¸
(National Institute of Standards and Technology) no in´cio da d´ cada de 90 [FGL92] mostram
                                                            ı      e
                               ¸˜                                 `           ¸˜
que boa parte das organizacoes deseja que o controle de acesso a informacao seja feito segundo
            ı                                   ı                 a             ¸˜
uma pol´tica centralizada e de forma flex´vel, possibilitando f´ cil adaptacao a novos requisi-
                                                 ¸˜
tos que surgem naturalmente com a evolucao organizacional. Claramente, estes objetivos s˜ o          a
dif´ceis de serem atingidos simultaneamente usando controle de acesso discricion´ rio (flex´vel
   ı                                                                                  a            ı
mas descentralizado) ou obrigat´ rio baseado em r´ tulos (centralizado por´ m inflex´vel). O con-
                                     o                 o                      e       ı
                                                     ´
trole de acesso baseado em pap´ is, por sua vez, e capaz de satisfazer estes requisitos de maneira
                                    e
efetiva [SCFY96].
     O presente trabalho mostra como integrar o controle de acesso baseado em pap´ is em siste-
                                                                                       e
mas distribu´dos abertos que seguem os padr˜ es OMG/CORBA. Para isso, foi desenvolvida uma
                ı                                 o
      e                                    ´ e                             ¸˜
estrat´ gia que, a nosso conhecimento, e in´ dita na literatura: a ativacao autom´ tica de pap´ is
                                                                                   a                 e
pelos componentes de seguranca do middleware. As propostas conhecidas de implementacao de
                                   ¸                                                            ¸˜
                              a                   ¸˜
RBAC exigem que os usu´ rios ou as aplicacoes interajam com o subsistema de seguranca para    ¸
selecionar quais os pap´ is que dever˜ o ser ativados no sistema. A nossa abordagem, por´ m, per-
                          e            a                                                    e
                  a              ¸˜
mite isolar usu´ rios e aplicacoes destes pormenores, possibilitando que pol´ticas de seguranca
                                                                                 ı                    ¸
                                                       ¸˜           ¸˜
sejam implantadas sem a necessidade de modificacoes nas aplicacoes existentes ou na interacao        ¸˜
                          ¸˜
entre usu´ rios e aplicacoes.
              a
                                                              ¸˜
     Este artigo est´ organizado da seguinte maneira. A secao 2 descreve o modelo RBAC uti-
                    a
                                   ¸˜
lizado como referˆ ncia. A secao 3 apresenta o modelo de seguranca do CORBA. A secao 4
                    e                                                    ¸                       ¸˜
discute como o RBAC pode ser implementado dentro do modelo CORBAsec, e a secao 5 apre-   ¸˜
                                                  ¸˜                                  ¸˜
senta resultados obtidos com a implementacao de um prot´ tipo. Finalmente, a secao 6 mostra
                                                              o
                                       ¸˜
alguns trabalhos relacionados e a secao 7 apresenta nossas conclus˜ es.o


2    Controle de Acesso Baseado em Pap´ is—RBAC
                                      e
    O conceito de controle de acesso baseado em pap´ is (role-based access control—RBAC)
                                                           e
surgiu com os primeiros sistemas computacionais multiusu´ rios interativos, no in´cio da d´ cada
                                                              a                   ı        e
                                     ´
de 70. A id´ ia central do RBAC e que permiss˜ es de acesso s˜ o associadas a pap´ is, e es-
              e                                      o              a                  e
tes pap´ is s˜ o associados a usu´ rios. Pap´ is s˜ o criados de acordo com os diferentes cargos
       e a                        a         e a
       ¸˜                      ¸˜
ou funcoes em uma organizacao, e os usu´ rios s˜ o associados a pap´ is de acordo com as su-
                                            a        a                  e
                                  ¸˜
as responsabilidades e qualificacoes. Os usu´ rios podem ser facilmente remanejados de um
                                                 a
                                                                          ¸˜
papel para outro. Mudancas no ambiente computacional, como instalacao de novos sistemas
                           ¸




                                                 870
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                       Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




       ¸˜             ¸˜
e remocao de aplicacoes antigas, modificam apenas o conjunto de permiss˜ es atribu´das aos
                                                                             o        ı
diferentes pap´ is, sem envolver diretamente o conjunto de usu´ rios.
              e                                                a
                                                     ´
    O modelo de referˆ ncia utilizado neste trabalho e mostrado na figura 1. Este modelo corres-
                       e
ponde ao RBAC Sim´ trico da fam´lia de modelos RBAC-NIST [SFK00].
                      e            ı

                       Restrições de ST
                                                                 RH
                                                           Hierarquia
                                                           de Papéis

                                              UA                            PA
                                           Associação                    Associação
                             U             de Usuário            R      de Permissão       P
                          Usuários             S            Papéis                     Permissões

                                            Sessões


                                 usuário                papéis




                          Figura 1: Modelo de Referˆ ncia RBAC Sim´ trico
                                                   e              e

    O modelo de referˆ ncia mostrado na figura 1 possui quatro conjuntos de entidades: usu´ rios
                           e                                                                     a
                                     o               o                   a                 ´
(U ), pap´ is (R , de roles), permiss˜ es (P ) e sess˜ es (S ). Um usu´ rio neste modelo e uma pessoa
          e
                                                         ´          ¸˜
ou um processo agindo em nome dela. Um papel e uma funcao ou cargo dentro da organizacao           ¸˜
e que possui uma semˆ ntica que representa a autoridade e a responsabilidade conferidas aos
                             a
                                         a ´
membros desse papel. Uma permiss˜ o e um direito espec´fico de acesso a um ou mais objetos
                                                                  ı
no sistema. O modelo RBAC-NIST n˜ o define permiss˜ es espec´ficas; isso fica a crit´ rio dos
                                            a                   o          ı                   e
implementadores [SFK00]. Uma sess˜ o corresponde a um usu´ rio acessando o sistema com um
                                           a                           a
determinado conjunto de pap´ is ativos.
                                 e
                ¸˜                                                                ¸˜
    A associacao usu´ rio-papel (UA, de user-role assignment) e a associacao permiss˜ o-papel
                          a                                                                    a
                                                    ¸˜
(PA, de permission-role assignment) s˜ o relacoes do tipo muitos-para-muitos. O conjunto U
                                             a
de usu´ rios tem um relacionamento um-para-muitos com o conjunto S de sess˜ es (um usu´ rio
        a                                                                              o          a
pode ter v´ rias sess˜ es), e o conjunto S tem um relacionamento muitos-para-muitos com o
             a           o
conjunto P de pap´ is (uma sess˜ o tem v´ rios pap´ is, e um papel pode estar ativo em v´ rias
                       e            a           a          e                                     a
sess˜ es).
     o     2

                                                                      ¸˜
    Hierarquias de pap´ is, representadas na figura 1 pela relacao RH (de role hierarchy), cons-
                            e
tituem uma forma natural de estruturar os pap´ is de forma a refletir as linhas de autoridade e
                                                     e
                                        ¸˜
responsabilidade em uma organizacao. Estas hierarquias s˜ o representadas matematicamente
                                                                    a
          ¸˜
por relacoes de ordem parcial [SCFY96]. Um exemplo de hierarquias de pap´ is est´ mostrado
                                                                                     e       a
na figura 2, onde os pap´ is superiores (senior roles) herdam as permiss˜ es dos pap´ is inferiores
                              e                                               o            e
(junior roles).
    Um conceito tamb´ m suportado pelo modelo RBAC mostrado na figura 1 e a separacao
                            e                                                            ´         ¸˜
   2 Relacionamentosmuitos-para-muitos s˜ o representados na figura 1 por setas cheias, enquanto que relaciona-
                                          a
mentos um-para-muitos s˜ o representados por setas vazadas.
                       a




                                                            871
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                   Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




                                                    Gerente
                                                   de Agência


                                     Gerente                    Gerente
                                   Pessoa Física             Pessoa Jurídica


                                Contas       Poupança     Contas        Poupança
                               P. Física     P. Física   P. Jurídica    P. Jurídica


                                   Atendimento                   Atendimento
                                     P. Física                    P. Jurídica


                                                   Atendimento
                                                    a Clientes


                           Figura 2: Exemplo de hierarquia de pap´ is
                                                                 e

                                       ´
de tarefas (separation of duty), que e um princ´pio importante para minimizar a ocorrˆ ncia de
                                                   ı                                    e
                               ¸˜              ¸˜
erros e fraudes na manipulacao da informacao. Este conceito consiste em dividir operacoes   ¸˜
individuais em v´ rias subtarefas menores que devem ser executadas por pessoas diferentes,
                  a
                                                                       ¸˜
reduzindo, desta maneira, o poder individual de cada usu´ rio. A separacao de tarefas teve a sua
                                                         a
       a                     ¸              ¸˜
importˆ ncia para a seguranca da informacao reconhecida e discutida em detalhes por Clark e
                                                  ¸˜          ¸˜
Wilson [CW87]. O RBAC facilita a implantacao de separacao de tarefas, utilizando-se, para
             ¸˜
isso, de relacoes de exclus˜ o m´ tua entre pap´ is.
                           a      u             e
                                     ¸˜               a          a                 ¸˜
    Existem duas formas de separacao de tarefas, est´ tica e dinˆ mica. Na separacao est´ tica
                                                                                           a
de tarefas, dois pap´ is R1 e R2 que s˜ o mutuamente exclusivos n˜ o podem ter usu´ rios em
                      e                  a                           a                 a
comum; em outras palavras, um mesmo usu´ rio n˜ o pode ser associado a R1 e a R2. Por
                                                 a   a
                       ¸˜
outro lado, na separacao dinˆ mica de tarefas uma exclus˜ o m´ tua entre dois pap´ is R1 e R2
                                a                           a    u                  e
significa que um usu´ rio pode ser associado a ambos, desde que apenas um deles (R1 ou R2)
                      a
esteja ativo em um dado momento [SFK00].


3    Modelo CORBA de Seguranca
                            ¸
     O OMG elaborou um modelo de referˆ ncia para seguranca em sistemas de objetos distri-
                                                e                  ¸
   ı                                                                       ¸˜
bu´dos que seguem a arquitetura CORBA [OMG99]. A especificacao de seguranca CORBA         ¸
define um conjunto de objetos e os relacionamentos entre esses objetos em um modelo capaz de
                                               ¸˜             ¸˜
fornecer funcionalidades como identificacao e autenticacao de principais, controle de acesso,
comunicaca  ¸ ˜ o segura entre objetos, n˜ o-repudiacao, auditoria e administracao de seguranca.
                                         a            ¸ ˜                      ¸˜              ¸
                             ¸˜
     Segundo a especificacao CORBAsec, o sistema seguro de objetos distribu´dos compreende
                                                                                   ı
          ı                                       ı             ¸˜
quatro n´veis, mostrados na figura 3. O n´vel de aplicacao cont´ m os objetos de aplicacao
                                                                         e                        ¸˜
                             ı                      ´
(cliente e servidor). O n´vel de middleware e composto pelos servicos ORB, pelos objetos de
                                                                           ¸
servico COSS (Common Object Service Specification) e pelo n´ cleo do ORB. Os servicos ORB
      ¸                                                             u                      ¸
e os objetos de servico COSS s˜ o constru´dos sobre o n´ cleo do ORB e estendem as funcoes
                         ¸          a           ı             u                                  ¸˜
b´ sicas com caracter´sticas adicionais, implementando a seguranca de objetos distribu´dos no
 a                       ı                                             ¸                     ı
n´vel de middleware. O n´vel de tecnologia de seguranca corresponde aos servicos subjacentes
 ı                             ı                            ¸                        ¸




                                                      872
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                                   Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




                                                                ¸˜
de seguranca, que definem os protocolos utilizados na implementacao de funcionalidades como
          ¸
                                            ¸˜                                   ´
confidencialidade e integridade na comunicacao cliente-servidor. O n´vel inferior e o n´vel de
                                                                    ı                 ı
     ¸˜ a
protecao b´ sica, que compreende o sistema operacional e o hardware subjacentes.

            DomainManager                                  Objeto                     Objeto                             DomainManager
            objetos Policy                                 Cliente                   Servidor                            objetos Policy


                        objetos de sessão                                                                       objetos de sessão

             Security                       Policy                                                    Policy                    Security
                            Current                                                                                 Current
             Manager                        Current                                                   Current                   Manager



                             Serviços COSS                   Serviços ORB    Serviços ORB                Serviços COSS

                 AccessDecision                                                                                     AccessDecision
                                                       Interceptador de           Interceptador de
                Access       Required                                                                            Required      Access
                Policy        Rights                  Controle de Acesso         Controle de Acesso                Rights      Policy




                Vault                                                                                                           Security
                                                                                                                                Context
                          no binding para                                                                                       Servidor
                 cria
                          definir a
                                                       Interceptador de           Interceptador de
                          associação segura                                                                 no binding para
                                                                                 Invocação Segura                  definir a         cria
              Security
                                                      Invocação Segura
                                                                                                          associação segura
              Context
               Cliente                                                                                                              Vault



                                                                     Núcleo do ORB
                                                                                                      Object Request Broker (ORB)

                                                               Tecnologia de Segurança

                                                           Proteção Básica e Comunicações


                                        Figura 3: Modelo de Seguranca CORBA
                                                                   ¸

                  ¸˜
     A especificacao CORBAsec define um conjunto de objetos de servico que implementam
                                                                          ¸
os controles de seguranca em um sistema CORBA seguro: PrincipalAuthenticator, Credentials,
                         ¸
AccessPolicy, RequiredRights, AccessDecision, SecurityManager, Current, PolicyCurrent, Vault
e SecurityContext.
     O modelo CORBA de seguranca utiliza o conceito de principal para mediar as invocacoes
                                     ¸                                                       ¸˜
           ¸˜                                ´                                     ´
de operacoes dos objetos. Um principal e o usu´ rio ou entidade do sistema que e registrado e
                                                   a
autˆ ntico para o sistema de objetos distribu´dos [OMG99]. O objeto PrincipalAuthenticator e o
    e                                          ı                                              ´
respons´ vel pela autenticaca
         a                 ¸ ˜ o dos principais na arquitetura CORBAsec. Esta autenticacao tem
                                                                                         ¸ ˜
                                       ¸˜
como finalidade possibilitar a obtencao das credenciais do principal.
     A credencial de um principal cont´ m os seus atributos de identidade e de privil´ gio; estes
                                          e                                          e
atributos s˜ o usados para que o principal possa invocar objetos servidores no sistema. Em um
             a
                                            ´
sistema CORBA seguro, uma credencial e representada por um objeto Credentials. Normalmen-
    ´
te, e utilizada uma credencial para cada mecanismo de seguranca empregado por um sistema
                                                                  ¸
                                      ´
CORBA seguro. Esta abordagem e usada, por exemplo, no ORBAsec SL2, um ORB seguro
                        ¸˜
que segue a especificacao CORBAsec [Adi00]. O ORBAsec SL2 emprega, como mecanismos




                                                                           873
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




de seguranca, o Kerberos e o SSL, usando credenciais distintas para cada mecanismo.
            ¸
    Pol´ticas de seguranca s˜ o expressas em termos dos atributos de seguranca de recursos
       ı                 ¸ a                                                      ¸
do sistema (atributos de controle) e de principais (atributos de privil´ gio). As pol´ticas de
                                                                          e            ı
         ¸˜ a                                 ¸˜
autorizacao s˜ o representadas na especificacao CORBAsec pelo objeto AccessPolicy [OMG99];
um exemplo est´ mostrado na figura 4. Este objeto cont´ m os direitos3 concedidos aos prin-
                 a                                          e
                     ¸˜            ¸˜
cipais para a invocacao de operacoes no sistema CORBA seguro, com base nos seus atributos
         e                                                                             `
de privil´ gio.Apenas os direitos g (get), s (set), m (manage) e u (use)—que pertencem a fam´lia
                                                                                            ı
                       a                             ¸˜
predefinida corba—s˜ o previstos na especificacao CORBAsec, embora seja poss´vel definirı
livremente outras fam´lias e tipos de direitos.
                       ı
                               Atributo de Privil´ gio
                                                 e        Direitos Concedidos
                               role: cliente              corba: gs--
                               role: cliente              corba: g---
                               role: gerente              corba: g-mu
                               role: gerente              corba: g--u

                                  Figura 4: Exemplo de AccessPolicy

                                                                ¸˜           ¸˜
    Os direitos requeridos (atributos de controle) para a execucao de operacoes em objetos ser-
vidores s˜ o armazenados no objeto RequiredRights. Conforme pode ser visto no exemplo da
          a
figura 5, os direitos requeridos s˜ o especificados por interface (uma classe no modelo CORBA),
                                 a
e n˜ o por instˆ ncia (um objeto). Al´ m disso, existe tamb´ m um combinador, que indica se um
   a           a                      e                    e
                                                                                      ¸˜
principal precisa possuir todos os direitos requeridos (All) para executar uma operacao ou se
                   ´
apenas um deles e suficiente (Any).
                      Direitos Requeridos    Combinador             ¸˜
                                                              Operacao      Interface
                      corba: g---               All           ver saldo    ContaPFis
                      corba: g---               All           ver saldo    ContaPJur
                      corba: -sm-               Any           abrir        ContaPFis
                      corba: g-m-               All           abrir        ContaPJur

                                Figura 5: Exemplo de RequiredRights

                                         ´                                   ¸˜
    O objeto AccessDecision (figura 3) e respons´ vel por decidir se a invocacao de uma operacao
                                                  a                                            ¸˜
de um determinado servidor deve ser permitida ou n˜ o. Esta decis˜ o de acesso depende dos
                                                        a              a
atributos de privil´ gio (representados pelo objeto AccessPolicy) e dos atributos de controle (re-
                    e
                                               o               a             ´
presentados pelo objeto RequiredRights). A l´ gica dessa decis˜ o de acesso e deixada em aberto
                 ¸˜                 ´
pela especificacao CORBAsec, e e dependente do contexto do sistema CORBA seguro utiliza-
do [BD99].
    Os objetos de sess˜ o—SecurityManager, PolicyCurrent e Current—armazenam informacoes
                        a                                                                    ¸˜
sobre o contexto corrente de seguranca, como referˆ ncias aos objetos RequiredRights e Access-
                                       ¸             e
Decision (SecurityManager), referˆ ncias aos objetos de pol´tica usados no estabelecimento de
                                     e                       ı
associaco
        ¸ ˜ es seguras (PolicyCurrent) e as credenciais do principal obtidas pelo servidor (Cur-
rent). Ainda na figura 3, os objetos Vault e SecurityContext, por sua vez, s˜ o participantes no
                                                                              a
   3O                                                             ¸ ´
      conceito de direitos utilizado no modelo CORBA de seguranca e equivalente ao conceito de permiss˜ es no
                                                                                                      o
modelo RBAC. Os dois termos s˜ o utilizados indistintamente neste trabalho.
                                 a




                                                    874
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                  Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




                            ¸˜
estabelecimento de associacoes seguras, que garantem confidencialidade e/ou integridade as     `
mensagens trocadas entre cliente e servidor.
    A especificacao CORBAsec define dois tipos de interceptadores4 que atuam durante uma
                 ¸˜
       ¸˜                           ´
invocacao de m´ todo. O primeiro e o interceptador de controle de acesso, que atua em n´vel
                e                                                                           ı
                              ¸˜                                               ´
mais alto, desviando a invocacao para fazer o controle de acesso, e o segundo e o interceptador
           ¸˜
de invocacao segura, que atua em n´vel mais baixo, fornecendo integridade e confidencialida-
                                       ı
   `
de as mensagens trocadas entre cliente e servidor. Estes interceptadores s˜ o criados durante o
                                                                             a
binding entre cliente e servidor, e atuam de maneira diferente em momentos distintos de uma
       ¸˜                                                                      ´
invocacao de m´ todo. No binding, o interceptador de controle de acesso e respons´ vel por
                 e                                                                      a
instanciar o objeto AccessDecision e atualizar a sua referˆ ncia no objeto SecurityManager. O
                                                           e
objeto AccessDecision, por sua vez, deve disponibilizar o objeto de pol´tica AccessPolicy do
                                                                           ı
dom´nio, inserindo sua referˆ ncia no objeto PolicyCurrent, e tamb´ m localizar o objeto Re-
     ı                        e                                       e
quiredRights, atualizando sua referˆ ncia no objeto SecurityManager. Em tempo de decis˜ o de
                                     e                                                    a
                                                               ¸˜
acesso, o interceptador de controle de acesso invoca a operacao access allowed do objeto
                      ´                                            ¸˜            ¸˜
AccessDecision, que e respons´ vel por autorizar ou n˜ o a execucao da operacao, obtendo os
                                 a                      a
direitos concedidos (contidos em AccessPolicy) e comparando-os com os direitos requeridos
(contidos em RequiredRights).


4     A Proposta RBAC-JAC OW EB
    O projeto JAC OW EB, desenvolvido no LCMI–DAS–UFSC, visa investigar a problem´ tica     a
             ¸˜                                                                   ´
da autorizacao em sistemas distribu´dos de larga escala. O foco do projeto e a definicao e
                                       ı                                                   ¸˜
             ¸˜                            ¸˜             ¸˜
implementacao de esquemas de autorizacao para aplicacoes distribu´das, utilizando como su-
                                                                       ı
porte o modelo CORBA de seguranca integrado aos modelos de seguranca Java e Web [WF99].
                                     ¸                                    ¸
                                                  ´
Na arquitetura JAC OW EB, o controle de acesso e realizado pelo middleware, de maneira trans-
parente, tanto no lado do cliente quanto no lado do servidor. Objetos de servico localizados
                                                                                    ¸
do lado do cliente verificam se o acesso solicitado est´ em conformidade com a pol´tica de
                                                         a                               ı
         ¸                    a                                                 ´
seguranca, e se ele deve ou n˜ o ser autorizado. Caso o acesso seja autorizado, e gerada uma ca-
              ´          `        ¸˜
pability que e agregada a requisicao (request) CORBA e enviada ao servidor; objetos de servico¸
no lado do servidor extraem e validam a capability antes de liberar o acesso.
                                                                     ´
    Este artigo introduz a proposta RBAC-JAC OW EB, cujo objetivo e incorporar um controle de
                                                    ¸˜
acesso baseado em pap´ is ao esquema de autorizacao JAC OW EB. O modelo RBAC utilizado e
                        e                                                                       ´
               e            a                                 ¸˜          e ´
o RBAC Sim´ trico do padr˜ o RBAC-NIST, apresentado na secao 2. A id´ ia e estender o servico ¸
de pol´ticas PoliCap definido em [WFW00] de modo que este gerencie a configuracao RBAC
       ı                                                                              ¸˜
em um contexto CORBAsec.
    4 Nomodelo CORBA de seguranca, os servicos ORB s˜ o implementados por interceptadores, que s˜ o objetos
                                   ¸           ¸         a                                            a
                                        uˆ               ¸˜
que s˜ o logicamente interpostos na seq¨ encia de invocacao de um cliente a um servidor. Cada servico COSS
      a                                                                                                ¸
                           ¸ ´
relacionado com a seguranca e associado a um interceptador, que tem a finalidade de desviar a chamada de maneira
transparente, ativando assim um objeto de servico associado.
                                               ¸




                                                     875
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                              Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




4.1    O Servico de Pol´ticas PoliCap
              ¸        ı
               ´           ¸        ı                         ı                  ¸˜
    O PoliCap e um servico de pol´ticas para objetos distribu´dos cujas invocacoes s˜ o reguladas
                                                                                    a
segundo o modelo CORBAsec [WFW00, Wes00]. O PoliCap foi desenvolvido no contexto do
                                                                    ¸˜
projeto JAC OW EB e corresponde a um primeiro n´vel de verificacao do controle de acesso no
                                                    ı
esquema de autorizacao.¸˜
    O PoliCap possibilita o gerenciamento centralizado de objetos de pol´tica em um dom´nio
                                                                             ı                 ı
            ¸                     ı                   e                   ¸˜
de seguranca de objetos distribu´dos, suprindo a carˆ ncia na especificacao CORBAsec quanto
                                       ı                         ¸˜
ao gerenciamento de objetos de pol´tica. Segundo a especificacao, as pol´ticas de seguranca s˜ o
                                                                           ı                 ¸ a
                                                                               ¸˜
disponibilizadas atrav´ s dos objetos AccessPolicy e RequiredRights. Aplicacoes administrativas
                        e
                                                                              ¸˜
interagem com o PoliCap para gerenciar estes objetos. Por sua vez, aplicacoes operacionais ou
objetos COSS interagem com o servico de pol´tica PoliCap para obter, no binding, as pol´ticas e
                                         ¸     ı                                           ı
                                                          ¸˜                   ¸˜
os direitos necess´ rios aos controles em tempo de execucao sobre as invocacoes de um m´ todo.
                  a                                                                          e
     e ´
A id´ ia e que, no binding, o servico de pol´tica forneca vers˜ es locais dos objetos AccessPol-
                                     ¸       ı          ¸       o
icy e RequiredRights que contenham os atributos de privil´ gio e de controle que se aplicam a
                                                             e                                   `
       ¸˜                                a ´
invocacao. A decis˜ o de acesso, ent˜ o, e efetuada com base nestas instˆ ncias locais dos obje-
                     a                                                    a
tos AccessPolicy e RequiredRights. Maiores detalhes sobre o PoliCap podem ser encontrados
em [WFW00, Wes00].

4.2    Integrando Modelos RBAC ao CORBAsec
    Na proposta RBAC-JAC OW EB, cada principal tem apenas uma credencial (uma vez que o
JAC OW EB suporta apenas o SSL como tecnologia de seguranca). Os pap´ is associados a um
                                                                  ¸             e
principal s˜ o representados, na sua credencial, por atributos de privil´ gio do tipo Role. Ap´ s
            a                                                              e                        o
             ¸˜                                                                   ´
a autenticacao do principal, a credencial cont´ m apenas o seu AccessId, que e um atributo de
                                                  e
privil´ gio que representa a identidade do principal para fins de controle de acesso, e que pode
      e
                                                                                         ¸˜
ser extra´do do certificado X.509 do cliente (usado no estabelecimento da associacao segura
          ı
                                    `            `
SSL). Os pap´ is s˜ o agregados a credencial a medida em que forem ativados dentro do siste-
                e a
ma. Portanto, a credencial de um principal representa, na proposta RBAC-JAC OW EB, a sua
           ¸˜
identificacao de acesso e os pap´ is ativos que ele possui no sistema.
                                   e
                                                                         ¸˜
    A funcionalidade dos interceptadores de seguranca descrita na secao 3 permanece a mesma.
                                                       ¸
              ¸˜
As modificacoes para incorporar o controle de acesso baseado em pap´ is s˜ o feitas no objeto
                                                                             e a
                                                                                          `
AccessDecision, que verifica se os direitos concedidos ao principal permitem acesso a operacao     ¸˜
                             ¸˜
solicitada. Com a autorizacao do acesso, o interceptador de controle de acesso do cliente monta
                                      `       ¸˜
uma capability que ser´ agregada a requisicao CORBA.
                         a
                                                    `
    O PoliCap cont´ m todos os dados relativos as pol´ticas de seguranca do dom´nio, que in-
                     e                                   ı                   ¸         ı
            a         e            ¸˜     a                            a       ¸˜
cluem usu´ rios, pap´ is, associacoes usu´ rio-papel e papel-permiss˜ o, relacoes de hierarquia de
                ¸˜              ¸˜
pap´ is e restricoes de separacao de tarefas. O PoliCap realiza o controle de acesso baseado em
    e
    e         e           ¸˜
pap´ is atrav´ s da operacao role access, cuja interface IDL est´ mostrada na figura 6.
                                                                    a
                                                      ¸˜                                   ´
    Com base nas credenciais do cliente e na operacao invocada, o PoliCap decide se e poss´vel   ı
autorizar o acesso ou n˜ o. Se o usu´ rio possui um ou mais pap´ is que lhe conferem as per-
                          a             a                             e
                      `         ¸˜         ¸˜                                                      ¸˜
miss˜ es necess´ rias a invocacao da operacao e estes pap´ is podem ser ativados (i.e., esta ativacao
     o           a                                        e
                            ¸˜            ´                    ´
n˜ o viola nenhuma restricao), o acesso e autorizado, o que e indicado por um valor de retorno
 a




                                                876
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                             Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




           boolean role_access(inout SecurityLevel2::CredentialsList cred_list,
                               in CORBA::Identifier operation_name,
                               in CORBA::Identifier target_interface_name,
                               inout SecurityAdmin::AccessPolicy local_ap);


                                                ¸˜
                Figura 6: Interface IDL da operacao role access do PoliCap

                             ı               e                         o         a           ¸˜
true. Caso n˜ o seja poss´vel ativar pap´ is que confiram as permiss˜ es necess´ rias, a operacao
                a
retorna false.
                         ´
    Quando o acesso e autorizado, as credenciais do principal s˜ o modificadas de forma a incor-
                                                                 a
porar os novos pap´ is ativados, e o argumento local ap (que representa o objeto AccessPolicy
                     e
       ´                                                                            ¸˜
local) e modificado de forma a incorporar os novos direitos concedidos pela ativacao dos pap´ is
                                                                                              e
ao principal.
               ¸˜                ¸˜                                                ¸˜
    As restricoes de separacao est´ tica de tarefas s˜ o verificadas pela operacao do PoliCap
                                       a                a
que associa usu´ rios a pap´ is: um usu´ rio n˜ o pode ser associado a um papel que tenha uma
                  a             e           a      a
      ¸˜              ¸˜                    ¸˜
restricao de separacao est´ tica em relacao a outro com o qual ele j´ esteja associado. Por sua
                             a                                         a
               ¸˜                ¸˜                                 ¸˜
vez, as restricoes de separacao dinˆ mica s˜ o tratadas pela operacao role access. Um papel
                                       a         a
                                         ¸˜           ¸˜                   ¸˜
s´ pode ser ativado se n˜ o tiver restricoes de separacao dinˆ mica em relacao a qualquer um dos
 o                         a                                 a
    e                                                                           ¸˜
pap´ is ativos (contidos na credencial). Dessa forma, garante-se que uma ativacao autom´ tica de
                                                                                         a
pap´ is n˜ o ir´ violar a pol´tica de seguranca definida.
    e a a                     ı                ¸

4.3   Dinˆ mica do Controle de Acesso usando Pap´ is
         a                                      e
4.3.1 Binding
                                            ¸˜
    O binding ocorre na primeira invocacao que o cliente faz para o servidor. Em primeiro
                                                               ¸˜
lugar, o interceptador de controle de acesso utiliza a operacao role access do PoliCap para
                   ¸˜                           ´
fazer uma verificacao global da pol´tica, isto e, o PoliCap verifica se o principal possui direitos
                                      ı
                                     ¸˜
suficientes para executar a operacao solicitada. Se os direitos forem suficientes, atualizam-
se as credenciais do cliente e o seu objeto AccessPolicy local, e o binding prossegue com a
      ¸˜                                                                           ¸˜
obtencao dos direitos requeridos para a interface alvo e a subseq¨ ente atualizacao do objeto
                                                                    u
                                                                ¸˜
RequiredRights local. Al´ m disso, conforme mostrado na secao 3, o objeto AccessDecision e
                           e                                                                    ´
                         e      ´
instanciado e a sua referˆ ncia e atualizada no objeto SecurityManager. Em caso de insuficiˆ ncia
                                                                                           e
                       ´                  ¸˜ ´                                          ¸˜
de direitos, o acesso e negado, a invocacao e interrompida com o retorno de uma excecao para
                     ´
o cliente e o evento e registrado pelo servico de auditoria do CORBAsec.
                                             ¸

4.3.2 Decis˜ o de Acesso
           a
    Em tempo de decis˜ o de acesso, o interceptador de controle de acesso do lado do cliente
                       a
                ¸˜
invoca a operacao AccessDecision::access allowed, que verifica se os direitos concedi-
                                              ¸˜
dos ao principal lhe permitem executar a operacao desejada. Caso o acesso seja autorizado, a
   uˆ               ¸˜                                    ¸˜
seq¨ encia de invocacao prossegue normalmente, com a geracao e envio da capability.




                                              877
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                   Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




    Por outro lado, em caso de insuficiˆ ncia dos direitos concedidos, o objeto AccessDecision
                                        e
               ¸˜                                                                         ¸˜
invoca a operacao role access do PoliCap para que esta verifique a possibilidade de ativacao
                                                       `        ¸˜         ¸˜
de novos pap´ is que confiram os direitos necess´ rios a execucao da operacao solicitada. Caso
             e                                   a
                                       ¸˜
o acesso seja autorizado com a ativacao de um ou mais pap´ is, o interceptador de controle
                                                                 e
                                                     uˆ      `       ¸˜                ¸˜
de acesso deve, ent˜ o, gerar a capability, dando seq¨ encia a invocacao. Se a configuracao do
                    a
                                              uˆ               ¸˜ ´                       ¸˜
esquema RBAC n˜ o autoriza o acesso, a seq¨ encia de invocacao e interrompida com a negacao
                  a
                      ´
do acesso e o evento e registrado pelo servico de auditoria.
                                             ¸

4.4     Exemplo
    Consideremos um exemplo de funcionamento do controle de acesso baseado em pap´ is em      e
uma aplicacao banc´ ria. O conjunto de pap´ is do sistema e R = {cli, cxpf, cxpj, ger}, repre-
            ¸˜        a                          e                ´
sentando, respectivamente, clientes, caixas para pessoas f´sicas, caixas para pessoas jur´dicas e
                                                             ı                              ı
                        ¸˜                                              ´
gerentes. A configuracao do esquema RBAC, mantida pelo PoliCap, e mostrada na figura 7. N˜ o        a
 a       ¸˜              ¸˜    a
                               √           e              ¸˜            ¸˜
h´ restricoes de separacao est´ tica de pap´ is. As restricoes de separacao dinˆ mica de pap´ is s˜ o
                                                                               a              e a
dadas pela figura 7(a), onde ( ) indica que a linha e a coluna representam pap´ is mutuamente
                                                                                   e
exclusivos. A figura 7(b) representa o AccessPolicy. A figura 7(c) mostra a associacao entre¸˜
                                                          ´
principais e pap´ is (conjunto UA). O RequiredRights e representado pela figura 7(d).
                 e

                                             Atributo         Direitos
             cli   cxpf    cxpj   ger
                   √       √      √        de Privil´ gio
                                                    e       Concedidos          Principal    Pap´ is
                                                                                                   e
      cli    —
             √                    √        role: cli        corba: g---         ana          cli, cxpj, ger
      cxpf
             √     —              √        role: cxpf       corba: gs--         bia          cli, cxpf, cxpj
      cxpj
             √     √       —
                           √               role: cxpj       corba: g--u         cris         cli, cxpf
      ger                         —
                                           role: ger        corba: g-m-
                                                                                      (c) Conjunto UA
             (a) ST dinˆ mica
                       a
                                                  (b) AccessPolicy


                               Direitos
                                           Combinador            ¸˜
                                                            Operacao      Interface
                             Requeridos
                             corba: g---       All          ver saldo     ContaPFis
                             corba: g---       All          ver saldo     ContaPJur
                             corba: -s--       All          depositar     ContaPFis
                             corba: ---u       All          depositar     ContaPJur
                             corba: -sm-       Any            abrir       ContaPFis
                             corba: g-m-       All            abrir       ContaPJur

                                              (d) RequiredRights


                                            ¸˜
                          Figura 7: Configuracao RBAC gerenciada pelo PoliCap

   A figura 8 mostra um cen´ rio de funcionamento do controle baseado em pap´ is proposto,
                             a                                                  e
                         ¸˜           ¸˜
concentrando-se na evolucao das ativacoes de pap´ is no sistema. No exemplo, o principal bia
                                                  e
                ¸˜                            uˆ
executa as operacoes da primeira coluna na seq¨ encia mostrada na figura. As colunas AR Antes




                                                      878
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                                  Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




e AR Depois representam o conjunto de pap´ is ativos (active roles)—armazenado na credencial
                                           e
                                                             ¸˜
do cliente—antes e depois da decis˜ o de acesso para a operacao correspondente.
                                  a

       ¸˜
  Operacao                 AR Antes        AR Depois        Coment´ rios
                                                                  a
  ContaPFis::abrir         ∅               {cxpf}                   ¸˜
                                                            A operacao requer um dos direitos -sm-, sendo
                                                            que o papel cxpf confere os direitos gs--. Acesso
                                                                                  ¸˜
                                                            permitido, com a ativacao do papel cxpf.
  ContaPFis::depositar     {cxpf}          {cxpf}                   ¸˜
                                                            A operacao requer o direito -s--, j´ conferido pe-
                                                                                               a
                                                            lo papel cxpf. Acesso permitido.
  ContaPJur::depositar     {cxpf}          {cxpf, cxpj}             ¸˜
                                                            A operacao requer o direito ---u, conferido pelo
                                                                                                      ¸˜
                                                            papel cxpj. Acesso permitido, com a ativacao do
                                                            papel cxpj.
  ContaPJur::abrir         {cxpf, cxpj}    {cxpf, cxpj}            ¸˜
                                                            A operacao requer os direitos g-m-, n˜ o conferido
                                                                                                 a
                                                            por nenhum papel do principal bia. Acesso nega-
                                                            do.

                   Figura 8: Cen´ rio de funcionamento para o principal bia
                                a

              ´
    A seguir, e mostrado em detalhes como os objetos do modelo CORBA de seguranca e o  ¸
PoliCap interagem para realizar o controle de acesso, baseando-se no cen´ rio apresentado na
                                                                        a
figura 8.

           ¸˜
4.4.1 Execucao do cen´ rio da figura 8
                     a
                                     ´                         ´
    Quando o sistema CORBA seguro e inicializado, o principal e autenticado atrav´ s do objeto
                                                                                 e
PrincipalAuthenticator. A sua credencial (objeto Credentials) cont´ m apenas o seu AccessId,
                                                                  e
extra´do de seu certificado SSL:
     ı
                                Tipo de Atributo          Valor do Atributo
                                AccessId                  bia


        ¸˜          ¸˜
  Invocacao da operacao ContaPFis::abrir:
                        ¸˜                  ´
    Para que esta operacao seja invocada, e necess´ rio fazer o binding entre o cliente e o objeto
                                                   a
                                          ¸˜
servidor ContaPFis. De acordo com a secao 4.3.1, neste momento s˜ o obtidos, atrav´ s do Poli-
                                                                      a                e
Cap, os direitos requeridos para a interface ContaPFis e os direitos concedidos para o principal
                         ¸˜           ¸˜                               e ´
que autorizam a invocacao da operacao abrir. Neste instante, tamb´ m e instanciado o objeto
AccessDecision, atualizando-se sua referˆ ncia no SecurityManager.
                                          e
               o            a                  ¸˜
    As permiss˜ es necess´ rias para a invocacao de ContaPFis::abrir s˜ o corba: -s-- ou
                                                                             a
                a                    ´
corba: --m-, j´ que o combinador e Any. Neste caso, o papel cxpf, por conceder as permiss˜ es  o
               ´                                               ´
corba: gs--, e ent˜ o ativado no pr´ prio binding, e o acesso e autorizado. O objeto Credentials
                    a                o
do principal passa a ter o seguinte conte´ do:
                                         u
                                Tipo de Atributo          Valor do Atributo
                                AccessId                  bia
                                Role                      cxpf




                                                    879
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                             Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




   O objeto AccessPolicy local passa a ter o conte´ do abaixo:
                                                  u
                           Atributo de Privil´ gio
                                             e        Direitos Concedidos
                           role: cxpf                 corba: gs--

                                    o              ´
   O objeto RequiredRights local, ap´ s o binding, e constitu´do por:
                                                             ı
                   Direitos Requeridos   Combinador               ¸˜
                                                            Operacao      Interface
                   corba: g---              All             ver saldo    ContaPFis
                   corba: -s--              All             depositar    ContaPFis
                   corba: -sm-              Any             abrir        ContaPFis


        ¸˜          ¸˜
  Invocacao da operacao ContaPFis::depositar:
    Como o binding entre o cliente e o objeto servidor ContaPFis j´ est´ estabelecido, as
                                                                      a    a
        ¸˜          ¸˜ `       ¸˜
verificacoes em relacao a operacao ContaPFis::depositar se resumem a efetuar o proce-
                                            ¸˜
dimento de decis˜ o de acesso mostrado na secao 4.3.2. Para isso, o interceptador de controle
                 a
                        ¸˜
de acesso invoca a operacao AccessDecision::access allowed. O direito requerido para a
      ¸˜ ´                                                                           ´
operacao e corba: -s--, contido no objeto AccessPolicy local; desta forma, o acesso e autori-
                   ¸˜
zado, sem modificacoes nos objetos Credentials e AccessPolicy local.
        ¸˜          ¸˜
  Invocacao da operacao ContaPJur::depositar:
                  ¸˜              ¸˜ ´
    Para a invocacao desta operacao e necess´ rio estabelecer outro binding, desta vez entre o
                                             a
cliente e o objeto servidor ContaPJur. Novamente s˜ o obtidos os direitos requeridos (desta vez
                                                   a
                                                                              ¸˜
para a interface ContaPJur) e os direitos concedidos que autorizam a invocacao da operacao  ¸˜
depositar.
                          `        ¸˜                               ´
    O direito necess´ rio a invocacao de ContaPJur::depositar e corba: ---u, conferido
                      a
                        ´                  ´                                     ´
pelo papel cxpj, que e ativado. O acesso e autorizado, e o objeto Credentials e modificado,
passando a ter o seguinte conte´ do:
                                u
                              Tipo de Atributo       Valor do Atributo
                              AccessId               bia
                              Role                   cxpf
                              Role                   cxpj

                                   e ´
   O objeto AccessPolicy local tamb´ m e atualizado:
                           Atributo de Privil´ gio
                                             e        Direitos Concedidos
                           role: cxpf                 corba: gs--
                           role: cxpj                 corba: ---u

   O objeto RequiredRights local passa a ser constitu´do por:
                                                     ı
                   Direitos Requeridos   Combinador               ¸˜
                                                            Operacao      Interface
                   corba: g---              All             ver saldo    ContaPFis
                   corba: -s--              All             depositar    ContaPFis
                   corba: -sm-              Any             abrir        ContaPFis
                   corba: g---              All             ver saldo    ContaPJur
                   corba: ---u              All             depositar    ContaPJur
                   corba: g-m-              All             abrir        ContaPJur




                                                880
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                            Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




          ¸˜          ¸˜
    Invocacao da operacao ContaPJur::abrir:
    O binding entre o cliente e o objeto servidor ContaPJur j´ est´ estabelecido, passando-
                                                               a    a
                                                              ¸˜
se direto para o procedimento de decis˜ o de acesso. A operacao ContaPJur::abrir requer
                                        a
os direitos corba: g-m-, que n˜ o est˜ o presentes no objeto AccessPolicy local. Desta for-
                                 a     a
             ¸˜
ma, a operacao de decis˜ o de acesso AccessDecision::access allowed invoca a operacao
                         a                                                                  ¸˜
                                                                                            ¸˜
role access para verificar se os direitos requeridos podem ser conferidos atrav´ s da ativacao
                                                                                 e
de um papel. Todavia, o principal bia n˜ o possui nenhum papel que confira os direitos ne-
                                           a
                                 ´                      ¸˜
cess´ rios, de modo que o acesso e negado, sem modificacao das credenciais do cliente nem do
    a
objeto AccessPolicy local.
    Cabe notar que os objetos AccessPolicy e RequiredRights locais s˜ o acessados a partir de
                                                                      a
referˆ ncias armazenadas no objeto de sess˜ o SecurityManager; estas referˆ ncias s˜ o v´ lidas
     e                                       a                              e        a a
                   ¸˜
para todas as ligacoes estabelecidas entre o cliente e os servidores durante a sess˜ o, o que
                                                                                      a
explica o fato dos objetos AccessPolicy e RequiredRights serem atualizados (e n˜ o instanciados
                                                                               a
                            ¸˜
novamente) durante a evolucao do sistema.


5                             ¸˜
      Resultados de Implementacao
                                    ¸˜
     Um prot´ tipo de implementacao da proposta RBAC-JAC OW EB foi desenvolvido em nos-
               o
sos laborat´ rios. Para fins de teste e refinamento deste prot´ tipo, usamos como exemplo um
             o                                                 o
                    ¸˜
contexto de aplicacoes banc´ rias, constitu´da por dois objetos servidores CORBA e um applet
                              a              ı
cliente Java. Os servidores CORBA utilizam o JacORB [Bro97], um ORB Java livre, e o ap-
plet foi desenvolvido com o Java 2 SDK, vers˜ o 1.2.1. Os testes s˜ o realizados usando como
                                                  a                    a
                                                                ¸˜
navegador o Netscape Communicator 4.76. Essa implementacao teve por objetivo investigar a
efic´ cia do controle de acesso baseado em pap´ is proposto. A mesma arquitetura de sistema
     a                                              e
                                                                                    ¸˜
foi previamente utilizada para implementar, com sucesso, um esquema de autorizacao discrici-
on´ rio [WFW00]. As estruturas j´ desenvolvidas foram revisadas e adaptadas para servirem de
   a                               a
                     ¸˜
base para a construcao do controle de acesso baseado em pap´ is.
                                                               e
     Os elementos-chave do prot´ tipo s˜ o os interceptadores de controle de acesso apresenta-
                                  o       a
            ¸˜
dos na secao 3 e o servico de pol´ticas PoliCap aumentado com o suporte ao RBAC descrito
                           ¸         ı
       ¸˜
na secao 4.2. Uma vers˜ o do objeto AccessDecision que interage com o PoliCap, crucial na
                          a
proposta RBAC-JAC OW EB, foi desenvolvida. As credenciais do cliente—contendo apenas o
                       e                 a                       ¸˜
seu atributo de privil´ gio AccessId—s˜ o geradas na inicializacao do sistema seguro com base
                                                                    ¸˜            ¸˜
no seu certificado SSL. Uma interface gr´ fica para a administracao da configuracao (figura 9)
                                            a
foi tamb´ m implementada. Ela permite a gerˆ ncia de usu´ rios, pap´ is e permiss˜ es, al´ m de
          e                                       e          a           e         o     e
                               ¸˜              ¸˜
hierarquias de pap´ is e restricoes de separacao de tarefas.
                    e
     O cen´ rio descrito na figura 8 foi usado como caso de teste. Foram implementados os
            a
                                                                                         uˆ
objetos servidores ContaPFis e ContaPJur, assim como um applet que implementa a seq¨ encia
          ¸˜                                                               ¸˜
de operacoes mostrada na figura. O resultado do esquema de autorizacao baseado em pap´ is      e
                                                                                         ¸˜
implementado concretizou o cen´ rio da figura 8, demonstrando a viabilidade e a adequacao da
                                   a
proposta RBAC-JAC OW EB.
                             o       a                               ¸˜
     A vers˜ o atual do prot´ tipo n˜ o conta, ainda, com autenticacao de principais atrav´ s do
             a                                                                            e




                                              881
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                            Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




                                                            ¸˜
                   Figura 9: Interface gr´ fica de administracao do PoliCap
                                         a

                                                       ´
objeto PrincipalAuthenticator. A credencial do cliente e inicializada com o AccessId extra´do do
                                                                                          ı
                                                                               ¸˜
seu certificado SSL, sem que este cliente passe por um processo de autenticacao. A interface
de gerˆ ncia das pol´ticas de seguranca pode ser melhorada, incorporando elementos como um
       e              ı               ¸
  o                     ¸˜     a                       e                            ´
m´ dulo de visualizacao gr´ fica da hierarquia de pap´ is do sistema (atualmente, e necess´ rio
                                                                                             a
manipular a lista de pap´ is inferiores a um determinado papel para modificar a hierarquia). O
                             e
                     ¸˜                              ¸˜                              a ´
mecanismo de selecao de pap´ is embutido na operacao role access do PoliCap n˜ o e, ainda,
                                 e
o mais sofisticado poss´vel; o algoritmo est´ sendo refinado para escolher melhor os pap´ is a
                           ı                 a                                              e
                                      ¸˜
serem ativados para uma dada operacao, com vistas a minimizar as permiss˜ es adquiridas pelo
                                                                             o
    a         e            ¸˜
usu´ rio atrav´ s da ativacao.


6    Trabalhos Relacionados
    Embora o conceito b´ sico de papel venha sendo utilizado h´ d´ cadas como um mecanismo
                         a                                    a e
para a gerˆ ncia de permiss˜ es, modelos RBAC formais comecaram a surgir h´ pouco tempo. O
           e               o                                ¸               a
primeiro modelo RBAC formalizado na literatura foi o de Ferraiolo e Kuhn [FK92], do NIST. O
trabalho de Sandhu et. al. [SCFY96] foi o primeiro a reconhecer a impossibilidade de capturar
                                   ´                        `       ¸˜
todas as nuances do RBAC em um unico modelo, o que levou a definicao da fam´lia RBAC96 de
                                                                               ı
modelos. O modelo original do NIST tamb´ m passou por revis˜ es, e alguns de seus conceitos
                                           e                    o
foram atualizados ao longo do tempo [FCK95, FBK99]. Todos estes modelos compartilham um
n´ cleo comum de conceitos, mas cada um deles possui particularidades que os diferenciam. En-
  u
tretanto, h´ visivelmente bem mais semelhancas do que diferencas. Isto levou o NIST e o grupo
           a                                 ¸                ¸
liderado por Sandhu a propor um modelo unificado que padronizasse os conceitos do RBAC,
numa tentativa de estabelecer um consenso e um ponto de partida para novos desenvolvimen-
tos. Este modelo, baseado largamente na fam´lia RBAC96 e no modelo NIST, ficou conhecido
                                              ı
como modelo unificado RBAC-NIST [SFK00]. Embora alguns aspectos do modelo unificado
tenham sido contestados [Jae00], a proposta foi bem recebida pela comunidade, e uma revis˜ o
                                                                                           a




                                              882
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                              Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




do modelo est´ atualmente sendo elaborada [Fer00].
                  a
                                      ´              ¸˜                      ´
    O RBAC/Web [FBK99] e uma aplicacao intranet em que o RBAC e utilizado como esque-
                    ¸˜
ma de autorizacao para controlar o acesso a p´ ginas de um servidor Web. O modelo RBAC
                                                           a
                                    ´                                             ¸˜
utilizado como referˆ ncia e o modelo NIST. O SSL n˜ o faz parte da aplicacao em si, mas e
                            e                                     a                                ´
considerado parte do seu contexto operacional. Os usu´ rios no RBAC/Web correspondem a lo-
                                                                 a
                                           ¸˜
gins no servidor Web, e as transacoes HTTP que podem ser executadas pelos usu´ rios (atrav´ s
                                                                                       a         e
                              a                                              o       o        a ´
dos seus pap´ is) nas p´ ginas sujeitas ao RBAC representam as permiss˜ es. O pr´ prio usu´ rio e
                e
quem escolhe quais os pap´ is que ser˜ o ativados dentre aqueles aos quais ele est´ associado.
                                   e            a                                    a
    A proposta JRBAC-Web [Giu99] tamb´ m tem por objetivo a seguranca de servidores Web,
                                                      e                         ¸
mas difere do RBAC/Web por centrar-se no modelo de seguranca Java. O RBAC e implemen-
                                                                         ¸              ´
tado como uma extens˜ o do JAAS (Java Authorization and Authentication Service), e baseia-se
                              a
em um modelo de referˆ ncia pr´ prio. Assim como no RBAC/Web, as permiss˜ es s˜ o represen-
                                e        o                                        o a
                         ¸˜                                       ¸˜
tadas pelas transacoes HTTP, mas n˜ o h´ uma vinculacao direta entre os usu´ rios do modelo
                                               a a                                 a
RBAC e entidades externas (como um login, por exemplo). Nesta proposta, as aplicacoes (que ¸˜
 a                        ´       a           a               ¸˜
s˜ o servlets Java) e que s˜ o respons´ veis pela ativacao de pap´ is. As principais vantagens da
                                                                        e
                                              ¸˜
proposta RBAC-JAC OW EB em relacao a estas experiˆ ncias s˜ o a flexibilidade (´ utiliz´ vel em
                                                                e     a              e      a
                    ¸˜
qualquer aplicacao CORBA), a transparˆ ncia (os pap´ is s˜ o ativados automaticamente pelo sis-
                                                   e           e a
tema) e a conformidade com padr˜ es (modelo RBAC-NIST e modelo de seguranca CORBA).
                                           o                                          ¸
    Beznosov e Deng [BD99] definem um framework para implementar RBAC usando o servico            ¸
de seguranca CORBA. As principais diferencas entre a nossa proposta e este framework s˜ o a
              ¸                                         ¸                                      a
         e                            ¸˜
transparˆ ncia para as aplicacoes e usu´ rios e o modelo RBAC utilizado como referˆ ncia. Na
                                                  a                                       e
proposta de Beznosov e Deng, o usu´ rio interage, atrav´ s de um UserSponsor, com o objeto
                                                a                   e
PrincipalAuthenticator para selecionar os pap´ is ativados em uma sess˜ o, e o modelo RBAC
                                                         e                    a
            ´
utilizado e a fam´lia RBAC96 [SCFY96]. Na proposta RBAC-JAC OW EB, por outro lado, os
                       ı
pap´ is s˜ o ativados automaticamente pelo PoliCap quando necess´ rios, de maneira transparente
    e a                                                                    a
             a                                        e     ´
para o usu´ rio, e o modelo RBAC de referˆ ncia e o modelo RBAC-NIST [SFK00].


7    Conclus˜ es
            o
    Este trabalho apresentou a proposta RBAC-JAC OW EB, que mostra como o controle de aces-
so basedo em pap´ is pode ser incorporado a sistemas de objetos distribu´dos que utilizam a
                   e                                                      ı
tecnologia CORBA, valendo-se de padr˜ es como o modelo de seguranca CORBA e o modelo
                                         o                             ¸
                                                       ¸˜            ´         ¸˜           ¸˜
de referˆ ncia RBAC-NIST. A nossa principal contribuicao, contudo, e a introducao da ativacao
        e
autom´ tica de pap´ is pelo subsistema de seguranca, uma abordagem inovadora na literatura
      a            e                              ¸
conhecida sobre RBAC.
    O prot´ tipo implementado, desenvolvido no contexto do projeto JAC OW EB, enfatiza a via-
           o
                                ¸˜
bilidade da proposta e a adequacao do RBAC como um modelo de controle de acesso ao mesmo
           ı              ¸˜       ı             ¸                          ¸˜
tempo flex´vel (na definicao da pol´tica de seguranca) e rigoroso (na implantacao da pol´tica de-
                                                                                      ı
finida).
                                                                                    ´
    Um aspecto que ser´ futuramente abordado dentro da proposta RBAC-JAC OW EB e o uso do
                        a
                          ¸˜                               ¸˜
RBAC para a administracao de seguranca atrav´ s da utilizacao de modelos RBAC administrati-
                                        ¸     e
vos como o descrito em [SM99]. Outras perspectivas incluem o acompanhamento da evolucao     ¸˜




                                                883
19° Simpósio Brasileiro de Redes de Computadores
 SBRC
   20 01                             Florianópolis, Santa Catarina, 21 a 25 de maio de 2001




                                              ¸˜                               `
do modelo unificado RBAC-NIST e a adequacao da proposta RBAC-JAC OW EB as suas futuras
                       ¸˜               `                         ¸˜             ¸˜
revis˜ es e a incorporacao de melhorias a ferramenta de administracao da configuracao RBAC.
     o


Referˆ ncias
     e
[Adi00]  Adiron. ORBAsec SL2 User Guide, version 2.1.4. Syracuse, NY, July 2000.
[BD99]   K. Beznosov and Y. Deng. A Framework for Implementing Role-Based Access Control
         Using CORBA Security Service. In Proc. 4th ACM Workshop on RBAC, pages 19–30, 1999.
[Bro97] G. Brose. JacORB—Design and Implementation of a Java ORB. In Proc. DAIS’97, pages
         143–154, Sep. 1997.
[CW87] D. Clark and D. Wilson. A Comparison of Commercial and Military Computer Security
         Policies. In Proc. IEEE Symp. Security and Privacy, pages 184–194, 1987.
[FBK99] D. F. Ferraiolo, J. F. Barkley, and D. R. Kuhn. A Role-Based Access Control Model and
         Reference Implementation Within a Corporate Intranet. ACM Trans. Information and Systems
         Security, 2(1):34–64, Feb. 1999.
[FCK95] D. F. Ferraiolo, J. A. Cugini, and D. R. Kuhn. Role-Based Access Control (RBAC): Features
         and Motivations. In Proc. 11th Annual Computer Security Conf., pages 241–248, Dec. 1995.
[Fer00]                                                                  ¸˜
         D. F. Ferraiolo. Re: Status of the NIST RBAC model. Comunicacao privada, agosto de 2000.
[FGL92] D. F. Ferraiolo, D. M. Gilbert, and N. Lynch. Assessing Federal and Commercial Information
         Security Needs. NISTIR 4976, NIST, Nov. 1992.
[FK92]   D. F. Ferraiolo and D. R. Kuhn. Role-Based Access Controls. In Proc. 15th NIST-NCSC
         National Computer Security Conference, pages 554–563, 1992.
[Giu99] L. Giuri. Role-Based Access Control on the Web Using Java. In Proc. 4th ACM Workshop
         on RBAC, pages 11–18, 1999.
[Jae00]  T. Jaeger. Rebuttal to the NIST RBAC Model Proposal. In Proc. 5th ACM Workshop on
         RBAC, pages 65–66, 2000.
[OMG99] OMG. Security Service Specification, v1.7. OMG Doc. 99-12-02, Dec. 1999.
[SCFY96] R. S. Sandhu, E. J. Coyne, H. L. Feinstein, and C. E. Youman. Role-Based Access Control
         Models. IEEE Computer, 29(2):38–47, Feb. 1996.
[SFK00] R. S. Sandhu, D. F. Ferraiolo, and D. R. Kuhn. The NIST Model for Role-Based Access
         Control: Towards a Unified Standard. In Proc. 5th ACM Workshop on RBAC, pages 47–63,
         2000.
[SM99]   R. S. Sandhu and Q. Munawer. The ARBAC99 Model for Administration of Roles. In Proc.
         15th Annual Computer Security Application Conf., Dec. 1999.
[Wes00] C. M. Westphall. Um Esquema de Autorizacao para a Seguranca em Sistemas Distribu´dos
                                                     ¸˜                 ¸                     ı
         de Larga Escala. Tese de doutorado, PGEEL–UFSC, dezembro de 2000.
[WF99] C. M. Westphall and J. S. Fraga. A Large-Scale System Authorization Scheme Proposal
         Integrating Java, CORBA and Web Security Models and a Discretionary Prototype. In Proc.
         IEEE LANOMS’99, pages 14–25, dezembro de 1999.
[WFW00] C. M. Westphall, J. S. Fraga, and M. S. Wangham. PoliCap—Um Servico de Pol´tica para o
                                                                               ¸        ı
         Modelo CORBA de Seguranca. In Anais do 18o SBRC, pages 355–370, maio de 2000.
                                       ¸




                                               884

Mais conteúdo relacionado

Semelhante a Corba

Arquitetando sistemas PHP
Arquitetando sistemas PHPArquitetando sistemas PHP
Arquitetando sistemas PHPEduardo Cesar
 
Sociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud ForensicsSociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud Forensicsederruschel
 
Sociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud ForensicsSociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud Forensicsederruschel
 
Sociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud ForensicsSociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud Forensicsederruschel
 
O processo de implantação do novo serviço corporat
O processo de implantação do novo serviço corporatO processo de implantação do novo serviço corporat
O processo de implantação do novo serviço corporatfapaulas
 
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...Mauricio Cesar Santos da Purificação
 
2 sis cai sistema de controle de acesso a internet
2 sis cai sistema de controle de acesso a internet2 sis cai sistema de controle de acesso a internet
2 sis cai sistema de controle de acesso a internetricardo17754
 
Tech segurança na nuvem
Tech   segurança na nuvemTech   segurança na nuvem
Tech segurança na nuvemCarlos Goldani
 
Padrões para cloude computing
Padrões para cloude computingPadrões para cloude computing
Padrões para cloude computingmarcelofrate
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetroRodrigo Campos
 
[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio RochaTI Safe
 
Artigo Atividade 1 Gredes
Artigo Atividade 1 GredesArtigo Atividade 1 Gredes
Artigo Atividade 1 GredesAlbarado Junior
 
Aplicação de sistemas de gestão da segurança da informação para startups no b...
Aplicação de sistemas de gestão da segurança da informação para startups no b...Aplicação de sistemas de gestão da segurança da informação para startups no b...
Aplicação de sistemas de gestão da segurança da informação para startups no b...Thiago Rosa
 
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...Eduardo Hahn
 
10 atributos que o seu firewall precisa ter
10 atributos que o seu firewall precisa ter10 atributos que o seu firewall precisa ter
10 atributos que o seu firewall precisa terTechBiz Forense Digital
 
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxAuditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxSQLServerRS
 
Análise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkAnálise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkIgor Bruno
 
Artigo Analise De Redes Pelo Wireshark Igor
Artigo   Analise De Redes Pelo Wireshark   IgorArtigo   Analise De Redes Pelo Wireshark   Igor
Artigo Analise De Redes Pelo Wireshark IgorIgor Bruno
 

Semelhante a Corba (20)

Arquitetando sistemas PHP
Arquitetando sistemas PHPArquitetando sistemas PHP
Arquitetando sistemas PHP
 
Protocolos de Segurança
Protocolos de SegurançaProtocolos de Segurança
Protocolos de Segurança
 
Sociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud ForensicsSociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud Forensics
 
Sociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud ForensicsSociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud Forensics
 
Sociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud ForensicsSociedade da Informação e Cloud Forensics
Sociedade da Informação e Cloud Forensics
 
O processo de implantação do novo serviço corporat
O processo de implantação do novo serviço corporatO processo de implantação do novo serviço corporat
O processo de implantação do novo serviço corporat
 
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...
Projeto SIAC 2.0 Uma aplicação do framework Demoiselle para o desenvolvimento...
 
2 sis cai sistema de controle de acesso a internet
2 sis cai sistema de controle de acesso a internet2 sis cai sistema de controle de acesso a internet
2 sis cai sistema de controle de acesso a internet
 
Tech segurança na nuvem
Tech   segurança na nuvemTech   segurança na nuvem
Tech segurança na nuvem
 
Padrões para cloude computing
Padrões para cloude computingPadrões para cloude computing
Padrões para cloude computing
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha[CLASS 2014] Palestra Técnica - Silvio Rocha
[CLASS 2014] Palestra Técnica - Silvio Rocha
 
Artigo Atividade 1 Gredes
Artigo Atividade 1 GredesArtigo Atividade 1 Gredes
Artigo Atividade 1 Gredes
 
Aplicação de sistemas de gestão da segurança da informação para startups no b...
Aplicação de sistemas de gestão da segurança da informação para startups no b...Aplicação de sistemas de gestão da segurança da informação para startups no b...
Aplicação de sistemas de gestão da segurança da informação para startups no b...
 
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
 
TRABALHO DE TI
TRABALHO DE TITRABALHO DE TI
TRABALHO DE TI
 
10 atributos que o seu firewall precisa ter
10 atributos que o seu firewall precisa ter10 atributos que o seu firewall precisa ter
10 atributos que o seu firewall precisa ter
 
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_soxAuditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
Auditoria de banco_de_dados_sql_server_em_conformidade_com_a_sox
 
Análise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o WiresharkAnálise de Tráfego da Rede Utilizando o Wireshark
Análise de Tráfego da Rede Utilizando o Wireshark
 
Artigo Analise De Redes Pelo Wireshark Igor
Artigo   Analise De Redes Pelo Wireshark   IgorArtigo   Analise De Redes Pelo Wireshark   Igor
Artigo Analise De Redes Pelo Wireshark Igor
 

Corba

  • 1. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 Controle de Acesso Baseado em Pap´ is e para o Modelo CORBA de Seguranca ¸ Rafael Rodrigues Obelheiro† , Joni da Silva Fraga e Carla Merkle Westphall Email: {obelix, fraga, merkle}@lcmi.ufsc.br Laborat´ rio de Controle e Microinform´ tica o a ¸˜ Departamento de Automacao e Sistemas Universidade Federal de Santa Catarina Caixa Postal 476 – 88040-900 – Florian´ polis – SC – Brasil o Resumo Este artigo mostra como modelos de controle de acesso baseado em pap´ is (role-based e access control—RBAC) podem ser implementados em sistemas de objetos distribu´dos que ı seguem os padr˜ es OMG/CORBA. N´ s apresentamos uma nova abordagem que permite a o o ¸˜ ativacao autom´ tica de pap´ is pelos componentes de seguranca do middleware, o que traz a e ¸ e ¸˜ o controle de acesso baseado em pap´ is para aplicacoes n˜ o cientes da seguranca. a ¸ Palavras-chave: seguranca, controle de acesso, RBAC, CORBA ¸ Abstract This paper shows how role-based access control (RBAC) models can be implemented in distributed object-based systems that follow OMG/CORBA standards. We introduce a novel approach that allows automatic role activation by the security components of the middleware, which brings role-based access control to security-unaware applications. Key words: security, access control, RBAC, CORBA 1 ¸˜ Introducao ¸˜ Hoje em dia, as organizacoes dependem cada vez mais de seus sistemas de informacao. ¸˜ Essa dependˆ ncia faz aumentar tamb´ m a importˆ ncia de manter a seguranca da informacao e e a ¸ ¸˜ ¸˜ armazenada e gerenciada por estes sistemas. A crescente utilizacao de sistemas distribu´dos ı ` de larga escala, notadamente aqueles baseados na Internet, introduz novos desafios a tarefa de garantir propriedades como confidencialidade, integridade e disponibilidade dos dados. Isto se deve a v´ rios fatores, como a impossibilidade de prover seguranca f´sica a todos os componentes a ¸ ı do sistema e a facilidade de acesso remoto, que tornam irrelevantes as fronteiras geogr´ ficas e a ¸˜ ¸˜ tamb´ m as leis que regulam o acesso e utilizacao destas informacoes. e ¸˜ Paralelamente, observa-se tamb´ m uma disseminacao de sistemas baseados na tecnologia e OMG/CORBA (Object Management Group/Common Object Request Broker Architecture),1 um padr˜ o para sistemas abertos e distribu´dos baseados em objetos que vem sendo adotado a ı † BolsistaCNPq. 1O ´ o ´ a ¸˜ OMG, que e um cons´ rcio formado por mais de 800 empresas, e o organismo respons´ vel pela formulacao dos padr˜ es da arquitetura CORBA. o 869
  • 2. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 mundialmente pela ind´ stria de software [BD99]. O modelo de sistemas abertos no qual o u ´ CORBA est´ inserido e denominado OMA (Object Management Architecture). a Dentre os diversos servicos especificados pelo OMG para o ambiente CORBA destaca-se ¸ o servico de seguranca CORBA, tamb´ m conhecido como CORBAsec. O modelo CORBA de ¸ ¸ e seguranca foi desenvolvido com o prop´ sito de incorporar caracter´sticas e funcionalidades de ¸ o ı seguranca a sistemas de objetos distribu´dos de pequena e larga escala, sem deixar de lado ca- ¸ ı racter´sticas-chave do padr˜ o CORBA como transparˆ ncia, interoperabilidade e portabilidade. ı a e O controle de acesso baseado em pap´ is vem sendo reconhecido como uma alternativa aos e tradicionais modelos de controle de acesso discricion´ rio (baseado em matriz de acesso) e obri- a gat´ rio (baseado em r´ tulos de seguranca). Estudos conduzidos nos Estados Unidos pelo NIST o o ¸ (National Institute of Standards and Technology) no in´cio da d´ cada de 90 [FGL92] mostram ı e ¸˜ ` ¸˜ que boa parte das organizacoes deseja que o controle de acesso a informacao seja feito segundo ı ı a ¸˜ uma pol´tica centralizada e de forma flex´vel, possibilitando f´ cil adaptacao a novos requisi- ¸˜ tos que surgem naturalmente com a evolucao organizacional. Claramente, estes objetivos s˜ o a dif´ceis de serem atingidos simultaneamente usando controle de acesso discricion´ rio (flex´vel ı a ı mas descentralizado) ou obrigat´ rio baseado em r´ tulos (centralizado por´ m inflex´vel). O con- o o e ı ´ trole de acesso baseado em pap´ is, por sua vez, e capaz de satisfazer estes requisitos de maneira e efetiva [SCFY96]. O presente trabalho mostra como integrar o controle de acesso baseado em pap´ is em siste- e mas distribu´dos abertos que seguem os padr˜ es OMG/CORBA. Para isso, foi desenvolvida uma ı o e ´ e ¸˜ estrat´ gia que, a nosso conhecimento, e in´ dita na literatura: a ativacao autom´ tica de pap´ is a e pelos componentes de seguranca do middleware. As propostas conhecidas de implementacao de ¸ ¸˜ a ¸˜ RBAC exigem que os usu´ rios ou as aplicacoes interajam com o subsistema de seguranca para ¸ selecionar quais os pap´ is que dever˜ o ser ativados no sistema. A nossa abordagem, por´ m, per- e a e a ¸˜ mite isolar usu´ rios e aplicacoes destes pormenores, possibilitando que pol´ticas de seguranca ı ¸ ¸˜ ¸˜ sejam implantadas sem a necessidade de modificacoes nas aplicacoes existentes ou na interacao ¸˜ ¸˜ entre usu´ rios e aplicacoes. a ¸˜ Este artigo est´ organizado da seguinte maneira. A secao 2 descreve o modelo RBAC uti- a ¸˜ lizado como referˆ ncia. A secao 3 apresenta o modelo de seguranca do CORBA. A secao 4 e ¸ ¸˜ discute como o RBAC pode ser implementado dentro do modelo CORBAsec, e a secao 5 apre- ¸˜ ¸˜ ¸˜ senta resultados obtidos com a implementacao de um prot´ tipo. Finalmente, a secao 6 mostra o ¸˜ alguns trabalhos relacionados e a secao 7 apresenta nossas conclus˜ es.o 2 Controle de Acesso Baseado em Pap´ is—RBAC e O conceito de controle de acesso baseado em pap´ is (role-based access control—RBAC) e surgiu com os primeiros sistemas computacionais multiusu´ rios interativos, no in´cio da d´ cada a ı e ´ de 70. A id´ ia central do RBAC e que permiss˜ es de acesso s˜ o associadas a pap´ is, e es- e o a e tes pap´ is s˜ o associados a usu´ rios. Pap´ is s˜ o criados de acordo com os diferentes cargos e a a e a ¸˜ ¸˜ ou funcoes em uma organizacao, e os usu´ rios s˜ o associados a pap´ is de acordo com as su- a a e ¸˜ as responsabilidades e qualificacoes. Os usu´ rios podem ser facilmente remanejados de um a ¸˜ papel para outro. Mudancas no ambiente computacional, como instalacao de novos sistemas ¸ 870
  • 3. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 ¸˜ ¸˜ e remocao de aplicacoes antigas, modificam apenas o conjunto de permiss˜ es atribu´das aos o ı diferentes pap´ is, sem envolver diretamente o conjunto de usu´ rios. e a ´ O modelo de referˆ ncia utilizado neste trabalho e mostrado na figura 1. Este modelo corres- e ponde ao RBAC Sim´ trico da fam´lia de modelos RBAC-NIST [SFK00]. e ı Restrições de ST RH Hierarquia de Papéis UA PA Associação Associação U de Usuário R de Permissão P Usuários S Papéis Permissões Sessões usuário papéis Figura 1: Modelo de Referˆ ncia RBAC Sim´ trico e e O modelo de referˆ ncia mostrado na figura 1 possui quatro conjuntos de entidades: usu´ rios e a o o a ´ (U ), pap´ is (R , de roles), permiss˜ es (P ) e sess˜ es (S ). Um usu´ rio neste modelo e uma pessoa e ´ ¸˜ ou um processo agindo em nome dela. Um papel e uma funcao ou cargo dentro da organizacao ¸˜ e que possui uma semˆ ntica que representa a autoridade e a responsabilidade conferidas aos a a ´ membros desse papel. Uma permiss˜ o e um direito espec´fico de acesso a um ou mais objetos ı no sistema. O modelo RBAC-NIST n˜ o define permiss˜ es espec´ficas; isso fica a crit´ rio dos a o ı e implementadores [SFK00]. Uma sess˜ o corresponde a um usu´ rio acessando o sistema com um a a determinado conjunto de pap´ is ativos. e ¸˜ ¸˜ A associacao usu´ rio-papel (UA, de user-role assignment) e a associacao permiss˜ o-papel a a ¸˜ (PA, de permission-role assignment) s˜ o relacoes do tipo muitos-para-muitos. O conjunto U a de usu´ rios tem um relacionamento um-para-muitos com o conjunto S de sess˜ es (um usu´ rio a o a pode ter v´ rias sess˜ es), e o conjunto S tem um relacionamento muitos-para-muitos com o a o conjunto P de pap´ is (uma sess˜ o tem v´ rios pap´ is, e um papel pode estar ativo em v´ rias e a a e a sess˜ es). o 2 ¸˜ Hierarquias de pap´ is, representadas na figura 1 pela relacao RH (de role hierarchy), cons- e tituem uma forma natural de estruturar os pap´ is de forma a refletir as linhas de autoridade e e ¸˜ responsabilidade em uma organizacao. Estas hierarquias s˜ o representadas matematicamente a ¸˜ por relacoes de ordem parcial [SCFY96]. Um exemplo de hierarquias de pap´ is est´ mostrado e a na figura 2, onde os pap´ is superiores (senior roles) herdam as permiss˜ es dos pap´ is inferiores e o e (junior roles). Um conceito tamb´ m suportado pelo modelo RBAC mostrado na figura 1 e a separacao e ´ ¸˜ 2 Relacionamentosmuitos-para-muitos s˜ o representados na figura 1 por setas cheias, enquanto que relaciona- a mentos um-para-muitos s˜ o representados por setas vazadas. a 871
  • 4. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 Gerente de Agência Gerente Gerente Pessoa Física Pessoa Jurídica Contas Poupança Contas Poupança P. Física P. Física P. Jurídica P. Jurídica Atendimento Atendimento P. Física P. Jurídica Atendimento a Clientes Figura 2: Exemplo de hierarquia de pap´ is e ´ de tarefas (separation of duty), que e um princ´pio importante para minimizar a ocorrˆ ncia de ı e ¸˜ ¸˜ erros e fraudes na manipulacao da informacao. Este conceito consiste em dividir operacoes ¸˜ individuais em v´ rias subtarefas menores que devem ser executadas por pessoas diferentes, a ¸˜ reduzindo, desta maneira, o poder individual de cada usu´ rio. A separacao de tarefas teve a sua a a ¸ ¸˜ importˆ ncia para a seguranca da informacao reconhecida e discutida em detalhes por Clark e ¸˜ ¸˜ Wilson [CW87]. O RBAC facilita a implantacao de separacao de tarefas, utilizando-se, para ¸˜ isso, de relacoes de exclus˜ o m´ tua entre pap´ is. a u e ¸˜ a a ¸˜ Existem duas formas de separacao de tarefas, est´ tica e dinˆ mica. Na separacao est´ tica a de tarefas, dois pap´ is R1 e R2 que s˜ o mutuamente exclusivos n˜ o podem ter usu´ rios em e a a a comum; em outras palavras, um mesmo usu´ rio n˜ o pode ser associado a R1 e a R2. Por a a ¸˜ outro lado, na separacao dinˆ mica de tarefas uma exclus˜ o m´ tua entre dois pap´ is R1 e R2 a a u e significa que um usu´ rio pode ser associado a ambos, desde que apenas um deles (R1 ou R2) a esteja ativo em um dado momento [SFK00]. 3 Modelo CORBA de Seguranca ¸ O OMG elaborou um modelo de referˆ ncia para seguranca em sistemas de objetos distri- e ¸ ı ¸˜ bu´dos que seguem a arquitetura CORBA [OMG99]. A especificacao de seguranca CORBA ¸ define um conjunto de objetos e os relacionamentos entre esses objetos em um modelo capaz de ¸˜ ¸˜ fornecer funcionalidades como identificacao e autenticacao de principais, controle de acesso, comunicaca ¸ ˜ o segura entre objetos, n˜ o-repudiacao, auditoria e administracao de seguranca. a ¸ ˜ ¸˜ ¸ ¸˜ Segundo a especificacao CORBAsec, o sistema seguro de objetos distribu´dos compreende ı ı ı ¸˜ quatro n´veis, mostrados na figura 3. O n´vel de aplicacao cont´ m os objetos de aplicacao e ¸˜ ı ´ (cliente e servidor). O n´vel de middleware e composto pelos servicos ORB, pelos objetos de ¸ servico COSS (Common Object Service Specification) e pelo n´ cleo do ORB. Os servicos ORB ¸ u ¸ e os objetos de servico COSS s˜ o constru´dos sobre o n´ cleo do ORB e estendem as funcoes ¸ a ı u ¸˜ b´ sicas com caracter´sticas adicionais, implementando a seguranca de objetos distribu´dos no a ı ¸ ı n´vel de middleware. O n´vel de tecnologia de seguranca corresponde aos servicos subjacentes ı ı ¸ ¸ 872
  • 5. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 ¸˜ de seguranca, que definem os protocolos utilizados na implementacao de funcionalidades como ¸ ¸˜ ´ confidencialidade e integridade na comunicacao cliente-servidor. O n´vel inferior e o n´vel de ı ı ¸˜ a protecao b´ sica, que compreende o sistema operacional e o hardware subjacentes. DomainManager Objeto Objeto DomainManager objetos Policy Cliente Servidor objetos Policy objetos de sessão objetos de sessão Security Policy Policy Security Current Current Manager Current Current Manager Serviços COSS Serviços ORB Serviços ORB Serviços COSS AccessDecision AccessDecision Interceptador de Interceptador de Access Required Required Access Policy Rights Controle de Acesso Controle de Acesso Rights Policy Vault Security Context no binding para Servidor cria definir a Interceptador de Interceptador de associação segura no binding para Invocação Segura definir a cria Security Invocação Segura associação segura Context Cliente Vault Núcleo do ORB Object Request Broker (ORB) Tecnologia de Segurança Proteção Básica e Comunicações Figura 3: Modelo de Seguranca CORBA ¸ ¸˜ A especificacao CORBAsec define um conjunto de objetos de servico que implementam ¸ os controles de seguranca em um sistema CORBA seguro: PrincipalAuthenticator, Credentials, ¸ AccessPolicy, RequiredRights, AccessDecision, SecurityManager, Current, PolicyCurrent, Vault e SecurityContext. O modelo CORBA de seguranca utiliza o conceito de principal para mediar as invocacoes ¸ ¸˜ ¸˜ ´ ´ de operacoes dos objetos. Um principal e o usu´ rio ou entidade do sistema que e registrado e a autˆ ntico para o sistema de objetos distribu´dos [OMG99]. O objeto PrincipalAuthenticator e o e ı ´ respons´ vel pela autenticaca a ¸ ˜ o dos principais na arquitetura CORBAsec. Esta autenticacao tem ¸ ˜ ¸˜ como finalidade possibilitar a obtencao das credenciais do principal. A credencial de um principal cont´ m os seus atributos de identidade e de privil´ gio; estes e e atributos s˜ o usados para que o principal possa invocar objetos servidores no sistema. Em um a ´ sistema CORBA seguro, uma credencial e representada por um objeto Credentials. Normalmen- ´ te, e utilizada uma credencial para cada mecanismo de seguranca empregado por um sistema ¸ ´ CORBA seguro. Esta abordagem e usada, por exemplo, no ORBAsec SL2, um ORB seguro ¸˜ que segue a especificacao CORBAsec [Adi00]. O ORBAsec SL2 emprega, como mecanismos 873
  • 6. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 de seguranca, o Kerberos e o SSL, usando credenciais distintas para cada mecanismo. ¸ Pol´ticas de seguranca s˜ o expressas em termos dos atributos de seguranca de recursos ı ¸ a ¸ do sistema (atributos de controle) e de principais (atributos de privil´ gio). As pol´ticas de e ı ¸˜ a ¸˜ autorizacao s˜ o representadas na especificacao CORBAsec pelo objeto AccessPolicy [OMG99]; um exemplo est´ mostrado na figura 4. Este objeto cont´ m os direitos3 concedidos aos prin- a e ¸˜ ¸˜ cipais para a invocacao de operacoes no sistema CORBA seguro, com base nos seus atributos e ` de privil´ gio.Apenas os direitos g (get), s (set), m (manage) e u (use)—que pertencem a fam´lia ı a ¸˜ predefinida corba—s˜ o previstos na especificacao CORBAsec, embora seja poss´vel definirı livremente outras fam´lias e tipos de direitos. ı Atributo de Privil´ gio e Direitos Concedidos role: cliente corba: gs-- role: cliente corba: g--- role: gerente corba: g-mu role: gerente corba: g--u Figura 4: Exemplo de AccessPolicy ¸˜ ¸˜ Os direitos requeridos (atributos de controle) para a execucao de operacoes em objetos ser- vidores s˜ o armazenados no objeto RequiredRights. Conforme pode ser visto no exemplo da a figura 5, os direitos requeridos s˜ o especificados por interface (uma classe no modelo CORBA), a e n˜ o por instˆ ncia (um objeto). Al´ m disso, existe tamb´ m um combinador, que indica se um a a e e ¸˜ principal precisa possuir todos os direitos requeridos (All) para executar uma operacao ou se ´ apenas um deles e suficiente (Any). Direitos Requeridos Combinador ¸˜ Operacao Interface corba: g--- All ver saldo ContaPFis corba: g--- All ver saldo ContaPJur corba: -sm- Any abrir ContaPFis corba: g-m- All abrir ContaPJur Figura 5: Exemplo de RequiredRights ´ ¸˜ O objeto AccessDecision (figura 3) e respons´ vel por decidir se a invocacao de uma operacao a ¸˜ de um determinado servidor deve ser permitida ou n˜ o. Esta decis˜ o de acesso depende dos a a atributos de privil´ gio (representados pelo objeto AccessPolicy) e dos atributos de controle (re- e o a ´ presentados pelo objeto RequiredRights). A l´ gica dessa decis˜ o de acesso e deixada em aberto ¸˜ ´ pela especificacao CORBAsec, e e dependente do contexto do sistema CORBA seguro utiliza- do [BD99]. Os objetos de sess˜ o—SecurityManager, PolicyCurrent e Current—armazenam informacoes a ¸˜ sobre o contexto corrente de seguranca, como referˆ ncias aos objetos RequiredRights e Access- ¸ e Decision (SecurityManager), referˆ ncias aos objetos de pol´tica usados no estabelecimento de e ı associaco ¸ ˜ es seguras (PolicyCurrent) e as credenciais do principal obtidas pelo servidor (Cur- rent). Ainda na figura 3, os objetos Vault e SecurityContext, por sua vez, s˜ o participantes no a 3O ¸ ´ conceito de direitos utilizado no modelo CORBA de seguranca e equivalente ao conceito de permiss˜ es no o modelo RBAC. Os dois termos s˜ o utilizados indistintamente neste trabalho. a 874
  • 7. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 ¸˜ estabelecimento de associacoes seguras, que garantem confidencialidade e/ou integridade as ` mensagens trocadas entre cliente e servidor. A especificacao CORBAsec define dois tipos de interceptadores4 que atuam durante uma ¸˜ ¸˜ ´ invocacao de m´ todo. O primeiro e o interceptador de controle de acesso, que atua em n´vel e ı ¸˜ ´ mais alto, desviando a invocacao para fazer o controle de acesso, e o segundo e o interceptador ¸˜ de invocacao segura, que atua em n´vel mais baixo, fornecendo integridade e confidencialida- ı ` de as mensagens trocadas entre cliente e servidor. Estes interceptadores s˜ o criados durante o a binding entre cliente e servidor, e atuam de maneira diferente em momentos distintos de uma ¸˜ ´ invocacao de m´ todo. No binding, o interceptador de controle de acesso e respons´ vel por e a instanciar o objeto AccessDecision e atualizar a sua referˆ ncia no objeto SecurityManager. O e objeto AccessDecision, por sua vez, deve disponibilizar o objeto de pol´tica AccessPolicy do ı dom´nio, inserindo sua referˆ ncia no objeto PolicyCurrent, e tamb´ m localizar o objeto Re- ı e e quiredRights, atualizando sua referˆ ncia no objeto SecurityManager. Em tempo de decis˜ o de e a ¸˜ acesso, o interceptador de controle de acesso invoca a operacao access allowed do objeto ´ ¸˜ ¸˜ AccessDecision, que e respons´ vel por autorizar ou n˜ o a execucao da operacao, obtendo os a a direitos concedidos (contidos em AccessPolicy) e comparando-os com os direitos requeridos (contidos em RequiredRights). 4 A Proposta RBAC-JAC OW EB O projeto JAC OW EB, desenvolvido no LCMI–DAS–UFSC, visa investigar a problem´ tica a ¸˜ ´ da autorizacao em sistemas distribu´dos de larga escala. O foco do projeto e a definicao e ı ¸˜ ¸˜ ¸˜ ¸˜ implementacao de esquemas de autorizacao para aplicacoes distribu´das, utilizando como su- ı porte o modelo CORBA de seguranca integrado aos modelos de seguranca Java e Web [WF99]. ¸ ¸ ´ Na arquitetura JAC OW EB, o controle de acesso e realizado pelo middleware, de maneira trans- parente, tanto no lado do cliente quanto no lado do servidor. Objetos de servico localizados ¸ do lado do cliente verificam se o acesso solicitado est´ em conformidade com a pol´tica de a ı ¸ a ´ seguranca, e se ele deve ou n˜ o ser autorizado. Caso o acesso seja autorizado, e gerada uma ca- ´ ` ¸˜ pability que e agregada a requisicao (request) CORBA e enviada ao servidor; objetos de servico¸ no lado do servidor extraem e validam a capability antes de liberar o acesso. ´ Este artigo introduz a proposta RBAC-JAC OW EB, cujo objetivo e incorporar um controle de ¸˜ acesso baseado em pap´ is ao esquema de autorizacao JAC OW EB. O modelo RBAC utilizado e e ´ e a ¸˜ e ´ o RBAC Sim´ trico do padr˜ o RBAC-NIST, apresentado na secao 2. A id´ ia e estender o servico ¸ de pol´ticas PoliCap definido em [WFW00] de modo que este gerencie a configuracao RBAC ı ¸˜ em um contexto CORBAsec. 4 Nomodelo CORBA de seguranca, os servicos ORB s˜ o implementados por interceptadores, que s˜ o objetos ¸ ¸ a a uˆ ¸˜ que s˜ o logicamente interpostos na seq¨ encia de invocacao de um cliente a um servidor. Cada servico COSS a ¸ ¸ ´ relacionado com a seguranca e associado a um interceptador, que tem a finalidade de desviar a chamada de maneira transparente, ativando assim um objeto de servico associado. ¸ 875
  • 8. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 4.1 O Servico de Pol´ticas PoliCap ¸ ı ´ ¸ ı ı ¸˜ O PoliCap e um servico de pol´ticas para objetos distribu´dos cujas invocacoes s˜ o reguladas a segundo o modelo CORBAsec [WFW00, Wes00]. O PoliCap foi desenvolvido no contexto do ¸˜ projeto JAC OW EB e corresponde a um primeiro n´vel de verificacao do controle de acesso no ı esquema de autorizacao.¸˜ O PoliCap possibilita o gerenciamento centralizado de objetos de pol´tica em um dom´nio ı ı ¸ ı e ¸˜ de seguranca de objetos distribu´dos, suprindo a carˆ ncia na especificacao CORBAsec quanto ı ¸˜ ao gerenciamento de objetos de pol´tica. Segundo a especificacao, as pol´ticas de seguranca s˜ o ı ¸ a ¸˜ disponibilizadas atrav´ s dos objetos AccessPolicy e RequiredRights. Aplicacoes administrativas e ¸˜ interagem com o PoliCap para gerenciar estes objetos. Por sua vez, aplicacoes operacionais ou objetos COSS interagem com o servico de pol´tica PoliCap para obter, no binding, as pol´ticas e ¸ ı ı ¸˜ ¸˜ os direitos necess´ rios aos controles em tempo de execucao sobre as invocacoes de um m´ todo. a e e ´ A id´ ia e que, no binding, o servico de pol´tica forneca vers˜ es locais dos objetos AccessPol- ¸ ı ¸ o icy e RequiredRights que contenham os atributos de privil´ gio e de controle que se aplicam a e ` ¸˜ a ´ invocacao. A decis˜ o de acesso, ent˜ o, e efetuada com base nestas instˆ ncias locais dos obje- a a tos AccessPolicy e RequiredRights. Maiores detalhes sobre o PoliCap podem ser encontrados em [WFW00, Wes00]. 4.2 Integrando Modelos RBAC ao CORBAsec Na proposta RBAC-JAC OW EB, cada principal tem apenas uma credencial (uma vez que o JAC OW EB suporta apenas o SSL como tecnologia de seguranca). Os pap´ is associados a um ¸ e principal s˜ o representados, na sua credencial, por atributos de privil´ gio do tipo Role. Ap´ s a e o ¸˜ ´ a autenticacao do principal, a credencial cont´ m apenas o seu AccessId, que e um atributo de e privil´ gio que representa a identidade do principal para fins de controle de acesso, e que pode e ¸˜ ser extra´do do certificado X.509 do cliente (usado no estabelecimento da associacao segura ı ` ` SSL). Os pap´ is s˜ o agregados a credencial a medida em que forem ativados dentro do siste- e a ma. Portanto, a credencial de um principal representa, na proposta RBAC-JAC OW EB, a sua ¸˜ identificacao de acesso e os pap´ is ativos que ele possui no sistema. e ¸˜ A funcionalidade dos interceptadores de seguranca descrita na secao 3 permanece a mesma. ¸ ¸˜ As modificacoes para incorporar o controle de acesso baseado em pap´ is s˜ o feitas no objeto e a ` AccessDecision, que verifica se os direitos concedidos ao principal permitem acesso a operacao ¸˜ ¸˜ solicitada. Com a autorizacao do acesso, o interceptador de controle de acesso do cliente monta ` ¸˜ uma capability que ser´ agregada a requisicao CORBA. a ` O PoliCap cont´ m todos os dados relativos as pol´ticas de seguranca do dom´nio, que in- e ı ¸ ı a e ¸˜ a a ¸˜ cluem usu´ rios, pap´ is, associacoes usu´ rio-papel e papel-permiss˜ o, relacoes de hierarquia de ¸˜ ¸˜ pap´ is e restricoes de separacao de tarefas. O PoliCap realiza o controle de acesso baseado em e e e ¸˜ pap´ is atrav´ s da operacao role access, cuja interface IDL est´ mostrada na figura 6. a ¸˜ ´ Com base nas credenciais do cliente e na operacao invocada, o PoliCap decide se e poss´vel ı autorizar o acesso ou n˜ o. Se o usu´ rio possui um ou mais pap´ is que lhe conferem as per- a a e ` ¸˜ ¸˜ ¸˜ miss˜ es necess´ rias a invocacao da operacao e estes pap´ is podem ser ativados (i.e., esta ativacao o a e ¸˜ ´ ´ n˜ o viola nenhuma restricao), o acesso e autorizado, o que e indicado por um valor de retorno a 876
  • 9. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 boolean role_access(inout SecurityLevel2::CredentialsList cred_list, in CORBA::Identifier operation_name, in CORBA::Identifier target_interface_name, inout SecurityAdmin::AccessPolicy local_ap); ¸˜ Figura 6: Interface IDL da operacao role access do PoliCap ı e o a ¸˜ true. Caso n˜ o seja poss´vel ativar pap´ is que confiram as permiss˜ es necess´ rias, a operacao a retorna false. ´ Quando o acesso e autorizado, as credenciais do principal s˜ o modificadas de forma a incor- a porar os novos pap´ is ativados, e o argumento local ap (que representa o objeto AccessPolicy e ´ ¸˜ local) e modificado de forma a incorporar os novos direitos concedidos pela ativacao dos pap´ is e ao principal. ¸˜ ¸˜ ¸˜ As restricoes de separacao est´ tica de tarefas s˜ o verificadas pela operacao do PoliCap a a que associa usu´ rios a pap´ is: um usu´ rio n˜ o pode ser associado a um papel que tenha uma a e a a ¸˜ ¸˜ ¸˜ restricao de separacao est´ tica em relacao a outro com o qual ele j´ esteja associado. Por sua a a ¸˜ ¸˜ ¸˜ vez, as restricoes de separacao dinˆ mica s˜ o tratadas pela operacao role access. Um papel a a ¸˜ ¸˜ ¸˜ s´ pode ser ativado se n˜ o tiver restricoes de separacao dinˆ mica em relacao a qualquer um dos o a a e ¸˜ pap´ is ativos (contidos na credencial). Dessa forma, garante-se que uma ativacao autom´ tica de a pap´ is n˜ o ir´ violar a pol´tica de seguranca definida. e a a ı ¸ 4.3 Dinˆ mica do Controle de Acesso usando Pap´ is a e 4.3.1 Binding ¸˜ O binding ocorre na primeira invocacao que o cliente faz para o servidor. Em primeiro ¸˜ lugar, o interceptador de controle de acesso utiliza a operacao role access do PoliCap para ¸˜ ´ fazer uma verificacao global da pol´tica, isto e, o PoliCap verifica se o principal possui direitos ı ¸˜ suficientes para executar a operacao solicitada. Se os direitos forem suficientes, atualizam- se as credenciais do cliente e o seu objeto AccessPolicy local, e o binding prossegue com a ¸˜ ¸˜ obtencao dos direitos requeridos para a interface alvo e a subseq¨ ente atualizacao do objeto u ¸˜ RequiredRights local. Al´ m disso, conforme mostrado na secao 3, o objeto AccessDecision e e ´ e ´ instanciado e a sua referˆ ncia e atualizada no objeto SecurityManager. Em caso de insuficiˆ ncia e ´ ¸˜ ´ ¸˜ de direitos, o acesso e negado, a invocacao e interrompida com o retorno de uma excecao para ´ o cliente e o evento e registrado pelo servico de auditoria do CORBAsec. ¸ 4.3.2 Decis˜ o de Acesso a Em tempo de decis˜ o de acesso, o interceptador de controle de acesso do lado do cliente a ¸˜ invoca a operacao AccessDecision::access allowed, que verifica se os direitos concedi- ¸˜ dos ao principal lhe permitem executar a operacao desejada. Caso o acesso seja autorizado, a uˆ ¸˜ ¸˜ seq¨ encia de invocacao prossegue normalmente, com a geracao e envio da capability. 877
  • 10. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 Por outro lado, em caso de insuficiˆ ncia dos direitos concedidos, o objeto AccessDecision e ¸˜ ¸˜ invoca a operacao role access do PoliCap para que esta verifique a possibilidade de ativacao ` ¸˜ ¸˜ de novos pap´ is que confiram os direitos necess´ rios a execucao da operacao solicitada. Caso e a ¸˜ o acesso seja autorizado com a ativacao de um ou mais pap´ is, o interceptador de controle e uˆ ` ¸˜ ¸˜ de acesso deve, ent˜ o, gerar a capability, dando seq¨ encia a invocacao. Se a configuracao do a uˆ ¸˜ ´ ¸˜ esquema RBAC n˜ o autoriza o acesso, a seq¨ encia de invocacao e interrompida com a negacao a ´ do acesso e o evento e registrado pelo servico de auditoria. ¸ 4.4 Exemplo Consideremos um exemplo de funcionamento do controle de acesso baseado em pap´ is em e uma aplicacao banc´ ria. O conjunto de pap´ is do sistema e R = {cli, cxpf, cxpj, ger}, repre- ¸˜ a e ´ sentando, respectivamente, clientes, caixas para pessoas f´sicas, caixas para pessoas jur´dicas e ı ı ¸˜ ´ gerentes. A configuracao do esquema RBAC, mantida pelo PoliCap, e mostrada na figura 7. N˜ o a a ¸˜ ¸˜ a √ e ¸˜ ¸˜ h´ restricoes de separacao est´ tica de pap´ is. As restricoes de separacao dinˆ mica de pap´ is s˜ o a e a dadas pela figura 7(a), onde ( ) indica que a linha e a coluna representam pap´ is mutuamente e exclusivos. A figura 7(b) representa o AccessPolicy. A figura 7(c) mostra a associacao entre¸˜ ´ principais e pap´ is (conjunto UA). O RequiredRights e representado pela figura 7(d). e Atributo Direitos cli cxpf cxpj ger √ √ √ de Privil´ gio e Concedidos Principal Pap´ is e cli — √ √ role: cli corba: g--- ana cli, cxpj, ger cxpf √ — √ role: cxpf corba: gs-- bia cli, cxpf, cxpj cxpj √ √ — √ role: cxpj corba: g--u cris cli, cxpf ger — role: ger corba: g-m- (c) Conjunto UA (a) ST dinˆ mica a (b) AccessPolicy Direitos Combinador ¸˜ Operacao Interface Requeridos corba: g--- All ver saldo ContaPFis corba: g--- All ver saldo ContaPJur corba: -s-- All depositar ContaPFis corba: ---u All depositar ContaPJur corba: -sm- Any abrir ContaPFis corba: g-m- All abrir ContaPJur (d) RequiredRights ¸˜ Figura 7: Configuracao RBAC gerenciada pelo PoliCap A figura 8 mostra um cen´ rio de funcionamento do controle baseado em pap´ is proposto, a e ¸˜ ¸˜ concentrando-se na evolucao das ativacoes de pap´ is no sistema. No exemplo, o principal bia e ¸˜ uˆ executa as operacoes da primeira coluna na seq¨ encia mostrada na figura. As colunas AR Antes 878
  • 11. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 e AR Depois representam o conjunto de pap´ is ativos (active roles)—armazenado na credencial e ¸˜ do cliente—antes e depois da decis˜ o de acesso para a operacao correspondente. a ¸˜ Operacao AR Antes AR Depois Coment´ rios a ContaPFis::abrir ∅ {cxpf} ¸˜ A operacao requer um dos direitos -sm-, sendo que o papel cxpf confere os direitos gs--. Acesso ¸˜ permitido, com a ativacao do papel cxpf. ContaPFis::depositar {cxpf} {cxpf} ¸˜ A operacao requer o direito -s--, j´ conferido pe- a lo papel cxpf. Acesso permitido. ContaPJur::depositar {cxpf} {cxpf, cxpj} ¸˜ A operacao requer o direito ---u, conferido pelo ¸˜ papel cxpj. Acesso permitido, com a ativacao do papel cxpj. ContaPJur::abrir {cxpf, cxpj} {cxpf, cxpj} ¸˜ A operacao requer os direitos g-m-, n˜ o conferido a por nenhum papel do principal bia. Acesso nega- do. Figura 8: Cen´ rio de funcionamento para o principal bia a ´ A seguir, e mostrado em detalhes como os objetos do modelo CORBA de seguranca e o ¸ PoliCap interagem para realizar o controle de acesso, baseando-se no cen´ rio apresentado na a figura 8. ¸˜ 4.4.1 Execucao do cen´ rio da figura 8 a ´ ´ Quando o sistema CORBA seguro e inicializado, o principal e autenticado atrav´ s do objeto e PrincipalAuthenticator. A sua credencial (objeto Credentials) cont´ m apenas o seu AccessId, e extra´do de seu certificado SSL: ı Tipo de Atributo Valor do Atributo AccessId bia ¸˜ ¸˜ Invocacao da operacao ContaPFis::abrir: ¸˜ ´ Para que esta operacao seja invocada, e necess´ rio fazer o binding entre o cliente e o objeto a ¸˜ servidor ContaPFis. De acordo com a secao 4.3.1, neste momento s˜ o obtidos, atrav´ s do Poli- a e Cap, os direitos requeridos para a interface ContaPFis e os direitos concedidos para o principal ¸˜ ¸˜ e ´ que autorizam a invocacao da operacao abrir. Neste instante, tamb´ m e instanciado o objeto AccessDecision, atualizando-se sua referˆ ncia no SecurityManager. e o a ¸˜ As permiss˜ es necess´ rias para a invocacao de ContaPFis::abrir s˜ o corba: -s-- ou a a ´ corba: --m-, j´ que o combinador e Any. Neste caso, o papel cxpf, por conceder as permiss˜ es o ´ ´ corba: gs--, e ent˜ o ativado no pr´ prio binding, e o acesso e autorizado. O objeto Credentials a o do principal passa a ter o seguinte conte´ do: u Tipo de Atributo Valor do Atributo AccessId bia Role cxpf 879
  • 12. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 O objeto AccessPolicy local passa a ter o conte´ do abaixo: u Atributo de Privil´ gio e Direitos Concedidos role: cxpf corba: gs-- o ´ O objeto RequiredRights local, ap´ s o binding, e constitu´do por: ı Direitos Requeridos Combinador ¸˜ Operacao Interface corba: g--- All ver saldo ContaPFis corba: -s-- All depositar ContaPFis corba: -sm- Any abrir ContaPFis ¸˜ ¸˜ Invocacao da operacao ContaPFis::depositar: Como o binding entre o cliente e o objeto servidor ContaPFis j´ est´ estabelecido, as a a ¸˜ ¸˜ ` ¸˜ verificacoes em relacao a operacao ContaPFis::depositar se resumem a efetuar o proce- ¸˜ dimento de decis˜ o de acesso mostrado na secao 4.3.2. Para isso, o interceptador de controle a ¸˜ de acesso invoca a operacao AccessDecision::access allowed. O direito requerido para a ¸˜ ´ ´ operacao e corba: -s--, contido no objeto AccessPolicy local; desta forma, o acesso e autori- ¸˜ zado, sem modificacoes nos objetos Credentials e AccessPolicy local. ¸˜ ¸˜ Invocacao da operacao ContaPJur::depositar: ¸˜ ¸˜ ´ Para a invocacao desta operacao e necess´ rio estabelecer outro binding, desta vez entre o a cliente e o objeto servidor ContaPJur. Novamente s˜ o obtidos os direitos requeridos (desta vez a ¸˜ para a interface ContaPJur) e os direitos concedidos que autorizam a invocacao da operacao ¸˜ depositar. ` ¸˜ ´ O direito necess´ rio a invocacao de ContaPJur::depositar e corba: ---u, conferido a ´ ´ ´ pelo papel cxpj, que e ativado. O acesso e autorizado, e o objeto Credentials e modificado, passando a ter o seguinte conte´ do: u Tipo de Atributo Valor do Atributo AccessId bia Role cxpf Role cxpj e ´ O objeto AccessPolicy local tamb´ m e atualizado: Atributo de Privil´ gio e Direitos Concedidos role: cxpf corba: gs-- role: cxpj corba: ---u O objeto RequiredRights local passa a ser constitu´do por: ı Direitos Requeridos Combinador ¸˜ Operacao Interface corba: g--- All ver saldo ContaPFis corba: -s-- All depositar ContaPFis corba: -sm- Any abrir ContaPFis corba: g--- All ver saldo ContaPJur corba: ---u All depositar ContaPJur corba: g-m- All abrir ContaPJur 880
  • 13. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 ¸˜ ¸˜ Invocacao da operacao ContaPJur::abrir: O binding entre o cliente e o objeto servidor ContaPJur j´ est´ estabelecido, passando- a a ¸˜ se direto para o procedimento de decis˜ o de acesso. A operacao ContaPJur::abrir requer a os direitos corba: g-m-, que n˜ o est˜ o presentes no objeto AccessPolicy local. Desta for- a a ¸˜ ma, a operacao de decis˜ o de acesso AccessDecision::access allowed invoca a operacao a ¸˜ ¸˜ role access para verificar se os direitos requeridos podem ser conferidos atrav´ s da ativacao e de um papel. Todavia, o principal bia n˜ o possui nenhum papel que confira os direitos ne- a ´ ¸˜ cess´ rios, de modo que o acesso e negado, sem modificacao das credenciais do cliente nem do a objeto AccessPolicy local. Cabe notar que os objetos AccessPolicy e RequiredRights locais s˜ o acessados a partir de a referˆ ncias armazenadas no objeto de sess˜ o SecurityManager; estas referˆ ncias s˜ o v´ lidas e a e a a ¸˜ para todas as ligacoes estabelecidas entre o cliente e os servidores durante a sess˜ o, o que a explica o fato dos objetos AccessPolicy e RequiredRights serem atualizados (e n˜ o instanciados a ¸˜ novamente) durante a evolucao do sistema. 5 ¸˜ Resultados de Implementacao ¸˜ Um prot´ tipo de implementacao da proposta RBAC-JAC OW EB foi desenvolvido em nos- o sos laborat´ rios. Para fins de teste e refinamento deste prot´ tipo, usamos como exemplo um o o ¸˜ contexto de aplicacoes banc´ rias, constitu´da por dois objetos servidores CORBA e um applet a ı cliente Java. Os servidores CORBA utilizam o JacORB [Bro97], um ORB Java livre, e o ap- plet foi desenvolvido com o Java 2 SDK, vers˜ o 1.2.1. Os testes s˜ o realizados usando como a a ¸˜ navegador o Netscape Communicator 4.76. Essa implementacao teve por objetivo investigar a efic´ cia do controle de acesso baseado em pap´ is proposto. A mesma arquitetura de sistema a e ¸˜ foi previamente utilizada para implementar, com sucesso, um esquema de autorizacao discrici- on´ rio [WFW00]. As estruturas j´ desenvolvidas foram revisadas e adaptadas para servirem de a a ¸˜ base para a construcao do controle de acesso baseado em pap´ is. e Os elementos-chave do prot´ tipo s˜ o os interceptadores de controle de acesso apresenta- o a ¸˜ dos na secao 3 e o servico de pol´ticas PoliCap aumentado com o suporte ao RBAC descrito ¸ ı ¸˜ na secao 4.2. Uma vers˜ o do objeto AccessDecision que interage com o PoliCap, crucial na a proposta RBAC-JAC OW EB, foi desenvolvida. As credenciais do cliente—contendo apenas o e a ¸˜ seu atributo de privil´ gio AccessId—s˜ o geradas na inicializacao do sistema seguro com base ¸˜ ¸˜ no seu certificado SSL. Uma interface gr´ fica para a administracao da configuracao (figura 9) a foi tamb´ m implementada. Ela permite a gerˆ ncia de usu´ rios, pap´ is e permiss˜ es, al´ m de e e a e o e ¸˜ ¸˜ hierarquias de pap´ is e restricoes de separacao de tarefas. e O cen´ rio descrito na figura 8 foi usado como caso de teste. Foram implementados os a uˆ objetos servidores ContaPFis e ContaPJur, assim como um applet que implementa a seq¨ encia ¸˜ ¸˜ de operacoes mostrada na figura. O resultado do esquema de autorizacao baseado em pap´ is e ¸˜ implementado concretizou o cen´ rio da figura 8, demonstrando a viabilidade e a adequacao da a proposta RBAC-JAC OW EB. o a ¸˜ A vers˜ o atual do prot´ tipo n˜ o conta, ainda, com autenticacao de principais atrav´ s do a e 881
  • 14. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 ¸˜ Figura 9: Interface gr´ fica de administracao do PoliCap a ´ objeto PrincipalAuthenticator. A credencial do cliente e inicializada com o AccessId extra´do do ı ¸˜ seu certificado SSL, sem que este cliente passe por um processo de autenticacao. A interface de gerˆ ncia das pol´ticas de seguranca pode ser melhorada, incorporando elementos como um e ı ¸ o ¸˜ a e ´ m´ dulo de visualizacao gr´ fica da hierarquia de pap´ is do sistema (atualmente, e necess´ rio a manipular a lista de pap´ is inferiores a um determinado papel para modificar a hierarquia). O e ¸˜ ¸˜ a ´ mecanismo de selecao de pap´ is embutido na operacao role access do PoliCap n˜ o e, ainda, e o mais sofisticado poss´vel; o algoritmo est´ sendo refinado para escolher melhor os pap´ is a ı a e ¸˜ serem ativados para uma dada operacao, com vistas a minimizar as permiss˜ es adquiridas pelo o a e ¸˜ usu´ rio atrav´ s da ativacao. 6 Trabalhos Relacionados Embora o conceito b´ sico de papel venha sendo utilizado h´ d´ cadas como um mecanismo a a e para a gerˆ ncia de permiss˜ es, modelos RBAC formais comecaram a surgir h´ pouco tempo. O e o ¸ a primeiro modelo RBAC formalizado na literatura foi o de Ferraiolo e Kuhn [FK92], do NIST. O trabalho de Sandhu et. al. [SCFY96] foi o primeiro a reconhecer a impossibilidade de capturar ´ ` ¸˜ todas as nuances do RBAC em um unico modelo, o que levou a definicao da fam´lia RBAC96 de ı modelos. O modelo original do NIST tamb´ m passou por revis˜ es, e alguns de seus conceitos e o foram atualizados ao longo do tempo [FCK95, FBK99]. Todos estes modelos compartilham um n´ cleo comum de conceitos, mas cada um deles possui particularidades que os diferenciam. En- u tretanto, h´ visivelmente bem mais semelhancas do que diferencas. Isto levou o NIST e o grupo a ¸ ¸ liderado por Sandhu a propor um modelo unificado que padronizasse os conceitos do RBAC, numa tentativa de estabelecer um consenso e um ponto de partida para novos desenvolvimen- tos. Este modelo, baseado largamente na fam´lia RBAC96 e no modelo NIST, ficou conhecido ı como modelo unificado RBAC-NIST [SFK00]. Embora alguns aspectos do modelo unificado tenham sido contestados [Jae00], a proposta foi bem recebida pela comunidade, e uma revis˜ o a 882
  • 15. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 do modelo est´ atualmente sendo elaborada [Fer00]. a ´ ¸˜ ´ O RBAC/Web [FBK99] e uma aplicacao intranet em que o RBAC e utilizado como esque- ¸˜ ma de autorizacao para controlar o acesso a p´ ginas de um servidor Web. O modelo RBAC a ´ ¸˜ utilizado como referˆ ncia e o modelo NIST. O SSL n˜ o faz parte da aplicacao em si, mas e e a ´ considerado parte do seu contexto operacional. Os usu´ rios no RBAC/Web correspondem a lo- a ¸˜ gins no servidor Web, e as transacoes HTTP que podem ser executadas pelos usu´ rios (atrav´ s a e a o o a ´ dos seus pap´ is) nas p´ ginas sujeitas ao RBAC representam as permiss˜ es. O pr´ prio usu´ rio e e quem escolhe quais os pap´ is que ser˜ o ativados dentre aqueles aos quais ele est´ associado. e a a A proposta JRBAC-Web [Giu99] tamb´ m tem por objetivo a seguranca de servidores Web, e ¸ mas difere do RBAC/Web por centrar-se no modelo de seguranca Java. O RBAC e implemen- ¸ ´ tado como uma extens˜ o do JAAS (Java Authorization and Authentication Service), e baseia-se a em um modelo de referˆ ncia pr´ prio. Assim como no RBAC/Web, as permiss˜ es s˜ o represen- e o o a ¸˜ ¸˜ tadas pelas transacoes HTTP, mas n˜ o h´ uma vinculacao direta entre os usu´ rios do modelo a a a RBAC e entidades externas (como um login, por exemplo). Nesta proposta, as aplicacoes (que ¸˜ a ´ a a ¸˜ s˜ o servlets Java) e que s˜ o respons´ veis pela ativacao de pap´ is. As principais vantagens da e ¸˜ proposta RBAC-JAC OW EB em relacao a estas experiˆ ncias s˜ o a flexibilidade (´ utiliz´ vel em e a e a ¸˜ qualquer aplicacao CORBA), a transparˆ ncia (os pap´ is s˜ o ativados automaticamente pelo sis- e e a tema) e a conformidade com padr˜ es (modelo RBAC-NIST e modelo de seguranca CORBA). o ¸ Beznosov e Deng [BD99] definem um framework para implementar RBAC usando o servico ¸ de seguranca CORBA. As principais diferencas entre a nossa proposta e este framework s˜ o a ¸ ¸ a e ¸˜ transparˆ ncia para as aplicacoes e usu´ rios e o modelo RBAC utilizado como referˆ ncia. Na a e proposta de Beznosov e Deng, o usu´ rio interage, atrav´ s de um UserSponsor, com o objeto a e PrincipalAuthenticator para selecionar os pap´ is ativados em uma sess˜ o, e o modelo RBAC e a ´ utilizado e a fam´lia RBAC96 [SCFY96]. Na proposta RBAC-JAC OW EB, por outro lado, os ı pap´ is s˜ o ativados automaticamente pelo PoliCap quando necess´ rios, de maneira transparente e a a a e ´ para o usu´ rio, e o modelo RBAC de referˆ ncia e o modelo RBAC-NIST [SFK00]. 7 Conclus˜ es o Este trabalho apresentou a proposta RBAC-JAC OW EB, que mostra como o controle de aces- so basedo em pap´ is pode ser incorporado a sistemas de objetos distribu´dos que utilizam a e ı tecnologia CORBA, valendo-se de padr˜ es como o modelo de seguranca CORBA e o modelo o ¸ ¸˜ ´ ¸˜ ¸˜ de referˆ ncia RBAC-NIST. A nossa principal contribuicao, contudo, e a introducao da ativacao e autom´ tica de pap´ is pelo subsistema de seguranca, uma abordagem inovadora na literatura a e ¸ conhecida sobre RBAC. O prot´ tipo implementado, desenvolvido no contexto do projeto JAC OW EB, enfatiza a via- o ¸˜ bilidade da proposta e a adequacao do RBAC como um modelo de controle de acesso ao mesmo ı ¸˜ ı ¸ ¸˜ tempo flex´vel (na definicao da pol´tica de seguranca) e rigoroso (na implantacao da pol´tica de- ı finida). ´ Um aspecto que ser´ futuramente abordado dentro da proposta RBAC-JAC OW EB e o uso do a ¸˜ ¸˜ RBAC para a administracao de seguranca atrav´ s da utilizacao de modelos RBAC administrati- ¸ e vos como o descrito em [SM99]. Outras perspectivas incluem o acompanhamento da evolucao ¸˜ 883
  • 16. 19° Simpósio Brasileiro de Redes de Computadores SBRC 20 01 Florianópolis, Santa Catarina, 21 a 25 de maio de 2001 ¸˜ ` do modelo unificado RBAC-NIST e a adequacao da proposta RBAC-JAC OW EB as suas futuras ¸˜ ` ¸˜ ¸˜ revis˜ es e a incorporacao de melhorias a ferramenta de administracao da configuracao RBAC. o Referˆ ncias e [Adi00] Adiron. ORBAsec SL2 User Guide, version 2.1.4. Syracuse, NY, July 2000. [BD99] K. Beznosov and Y. Deng. A Framework for Implementing Role-Based Access Control Using CORBA Security Service. In Proc. 4th ACM Workshop on RBAC, pages 19–30, 1999. [Bro97] G. Brose. JacORB—Design and Implementation of a Java ORB. In Proc. DAIS’97, pages 143–154, Sep. 1997. [CW87] D. Clark and D. Wilson. A Comparison of Commercial and Military Computer Security Policies. In Proc. IEEE Symp. Security and Privacy, pages 184–194, 1987. [FBK99] D. F. Ferraiolo, J. F. Barkley, and D. R. Kuhn. A Role-Based Access Control Model and Reference Implementation Within a Corporate Intranet. ACM Trans. Information and Systems Security, 2(1):34–64, Feb. 1999. [FCK95] D. F. Ferraiolo, J. A. Cugini, and D. R. Kuhn. Role-Based Access Control (RBAC): Features and Motivations. In Proc. 11th Annual Computer Security Conf., pages 241–248, Dec. 1995. [Fer00] ¸˜ D. F. Ferraiolo. Re: Status of the NIST RBAC model. Comunicacao privada, agosto de 2000. [FGL92] D. F. Ferraiolo, D. M. Gilbert, and N. Lynch. Assessing Federal and Commercial Information Security Needs. NISTIR 4976, NIST, Nov. 1992. [FK92] D. F. Ferraiolo and D. R. Kuhn. Role-Based Access Controls. In Proc. 15th NIST-NCSC National Computer Security Conference, pages 554–563, 1992. [Giu99] L. Giuri. Role-Based Access Control on the Web Using Java. In Proc. 4th ACM Workshop on RBAC, pages 11–18, 1999. [Jae00] T. Jaeger. Rebuttal to the NIST RBAC Model Proposal. In Proc. 5th ACM Workshop on RBAC, pages 65–66, 2000. [OMG99] OMG. Security Service Specification, v1.7. OMG Doc. 99-12-02, Dec. 1999. [SCFY96] R. S. Sandhu, E. J. Coyne, H. L. Feinstein, and C. E. Youman. Role-Based Access Control Models. IEEE Computer, 29(2):38–47, Feb. 1996. [SFK00] R. S. Sandhu, D. F. Ferraiolo, and D. R. Kuhn. The NIST Model for Role-Based Access Control: Towards a Unified Standard. In Proc. 5th ACM Workshop on RBAC, pages 47–63, 2000. [SM99] R. S. Sandhu and Q. Munawer. The ARBAC99 Model for Administration of Roles. In Proc. 15th Annual Computer Security Application Conf., Dec. 1999. [Wes00] C. M. Westphall. Um Esquema de Autorizacao para a Seguranca em Sistemas Distribu´dos ¸˜ ¸ ı de Larga Escala. Tese de doutorado, PGEEL–UFSC, dezembro de 2000. [WF99] C. M. Westphall and J. S. Fraga. A Large-Scale System Authorization Scheme Proposal Integrating Java, CORBA and Web Security Models and a Discretionary Prototype. In Proc. IEEE LANOMS’99, pages 14–25, dezembro de 1999. [WFW00] C. M. Westphall, J. S. Fraga, and M. S. Wangham. PoliCap—Um Servico de Pol´tica para o ¸ ı Modelo CORBA de Seguranca. In Anais do 18o SBRC, pages 355–370, maio de 2000. ¸ 884