Você está na página 1de 10

UM MODELO DE AUTORIZAÇÃO E AUTENTICAÇÃO BASEADO EM REDES DE CONFIANÇA

PARA SISTEMAS DISTRIBUÍDOS DE LARGA ESCALA

Altair Olivo Santin, Joni da Silva Fraga, Emerson Ribeiro de Mello, Frank Siqueira(*)
Departamento de Automação e Sistemas / LCMI e (*)Departamento de Informática e Estatística
Universidade Federal de Santa Catarina
Florianópolis – SC – CEP: 88040-900 – Brasil
{santin, fraga, emerson}@das.ufsc.br, frank@inf.ufsc.br

RESUMO
Este trabalho apresenta um modelo de autorização e autenticação que visa minimizar, principalmente, as
dificuldades de escalabilidade e flexibilidade dos sistemas clássicos, em ambiente de larga escala como a Internet.
O modelo se baseia em redes de confiança construídas a partir da delegação de privilégios de acesso, codificados
em certificados de autorização e armazenados num repositório local (gerente de certificados) que representa o
agrupamento de principais com um mesmo propósito – a federação. Através da construção de relações de
confiança entre federações é constituída uma teia de federações que dá um sentido global a tais certificados. A
principal função da teia é auxiliar o cliente na busca dos privilégios de acesso que o ligam a um servidor. Após
encontrá-los, o cliente poderá negociar a concessão de tais privilégios de acesso junto ao detentor dos mesmos.

ABSTRACT
This work presents an authorization and authentication model, which main purpose is minimizing the scalability
and flexibility difficulties of classic systems in large-scale environment – as Internet, for example. The model is
based upon trust chains built from access delegation privileges, coded in authorization certificates and stored in a
local repository (certificate manager), that represents a grouping of principals (clients and servers) all with a same
purpose – the federation. By the trust relationships construction among the federations is constituted a web of
federations. These federations provide a global sense to such certificates. The mainly federations web function is
helping the client in the access privileges searches that can link one to the server. After the access privileges
locating, the client can start the granting negotiation from the holder of these access privileges .

1 INTRODUÇÃO assinatura digital dos certificados que emite. Estes


certificados vinculam nomes de validade global as
A abordagem clássica, usada na respectivas chaves públicas. O modelo,
autenticação e autorização em sistemas essencialmente, baseia-se em certificados
distribuídos, define uma autenticação formando cadeias (chains) de autenticação a partir
centralizada, baseada em domínios de nomes e de uma CA raiz (root) até um usuário (principal).
precedendo a autorização que geralmente tem os Quando são consideradas aplicações na
seus controles distribuídos. Este modelo, Internet, a autorização e a autenticação devem
empregado em redes corporativas, parece não ser evoluir tomando como base modelos, onde as
muito adequado quando o ambiente é a rede relações de confiança possam ser estabelecidas de
mundial, onde o cliente (usuário) muitas vezes maneira distribuída, escalável e flexível.
não é conhecido de antemão. Na infra-estrutura X.509, é possível
O modelo de confiança (trust model) construir relações de confiança através de
baseado em uma entidade centralizadora (serviço certificação cruzada entre duas CA’s. O objetivo é
de nomes / autenticação), além de propiciar a dispensar a necessidade de percorrer toda a
criação de pontos críticos em relação a falhas e a estrutura hierárquica para ir de uma CA até outra.
vulnerabilidades, pode impor sérias restrições ao Porém, em tal modelo, este tipo de alternativa de
desempenho e à escalabilidade do sistema em fluxo só é permitido entre CA’s. Evidentemente,
ambiente de larga escala (Horst e Lischla, 2001). isto não descaracteriza a CA como entidade
As abordagens que se propõem a atender centralizadora da certificação (autenticação) em
aos requisitos de escalabilidade e flexibilidade em seu domínio de política, nem a rigidez e a
tal ambiente, estão baseadas em infra-estruturas complexidade da estrutura hierárquica imposta
de chaves públicas ou PKIs (Public Key pela PKI X.509.
Infrastructures). Atualmente, a mais comum Para o cenário de aplicações como as da
destas infra-estruturas é o X.509, que define um rede mundial, seria mais adequado um modelo
modelo hierárquico de confiança baseado na onde as relações de confiança pudessem ser
nomenclatura X.500. As comunidades X.509 estabelecidas sem nenhuma entidade
devem ser construídas com base na confiança das centralizadora. Isto poderia ser conseguido
chaves privadas das Certification Authorities construindo-se relacionamentos do tipo
(CA’s) formando a hierarquia global. Cada CA peer-to-peer, por exemplo, ou através de cadeias
controla sua chave privada que é usada na de confiança, onde cada entidade da cadeia
101
(caminho) se comportaria como se fosse uma CA “orientados a chaves”, por ligarem chaves
do modelo X.509 (Hastings e Polk, 2000). públicas diretamente a autorizações.
A infra-estrutura Pretty Good Privacy Neste trabalho será mostrado o uso de
(PGP) foi desenvolvida por Phil Zimmermann em cadeias de confiança na efetivação de um modelo
1991, para cifragem e autenticação de arquivos e de autenticação e autorização para sistemas
correio eletrônico (Garfinkel, 1995). No PGP é distribuídos de larga escala. O modelo de
utilizada criptografia de chave pública e uma confiança proposto se baseia no estabelecimento
estrutura para gerenciamento e certificação das arbitrário de relações de confiança em âmbito
chaves baseada na chamada teia de confiança local (federação), com o objetivo de figurar numa
(web of trust). A teia de confiança não se baseia composição de abrangência global (teia de
em hierarquias como o X.509. Ao invés disto, os federações).
usuários PGP podem construir caminhos de O restante do texto está organizado da
confiança de forma arbitrária, através das seguinte maneira. A seção 2, revisa a gerência de
comunidades PGP ao redor do mundo. confiança. A seção 3, introduz o modelo de
Um certificado de nome no PGP também autenticação e autorização proposto. A seção 4,
liga um nome global a uma chave pública e pode aborda considerações sobre os aspectos de
ser emitido por qualquer principal. Neste caso, os implementação do modelo proposto. A seção 5,
certificados não são emitidos por CA’s com expõe os trabalhos correlatos, e a seção 6,
responsabilidades legais, mas por usuários apresenta conclusões acerca deste trabalho
comuns. O modelo de teia de confiança parece
funcionar bem em comunidades que interagem de
maneira pouco freqüente. Porém, este modelo 2 GERÊNCIA DE CONFIANÇA
pode mostrar-se debilitado na tomada de decisões
de confiança, pois requer múltiplas assinaturas A gerência de confiança unifica a noção
dando credibilidade ao certificado em avaliação. de política de segurança, credenciais, controle de
O controle de acesso é tradicionalmente acesso e autorização, em duas abordagens
baseado na confrontação da identidade autenticada distintas. Em uma, a gerência de confiança é
do cliente, que deseja acessar um recurso, com as efetivada usando uma linguagem na descrição das
ACL’s (lista de controle de acesso) armazenadas políticas e das credenciais, e um motor-lógico
na memória local do guardião (núcleo de (engine) define o comportamento do módulo de
segurança) do recurso sendo acessado. Para a checagem de conformidade (compliance checker).
Internet, quando usadas as infra-estruturas citadas Na outra abordagem, uma estrutura de dados
acima, a autenticidade da identidade dos clientes padronizada é utilizada para descrever os atributos
baseia-se em assinaturas digitais e certificados de de segurança que definem as políticas e os
nome. Esquemas de autorização montados a partir certificados no sistema. Em ambas as abordagens,
destes certificados de nome, como os empregados a checagem de conformidade indica se os
no X.509 ou PGP, são comumente denominados certificados (credenciais) apresentados por um
de “orientados a nomes”. principal estão em conformidade com a política
Os autores (Blaze, Feigenbaum e Lacy, local, especificada pelo guardião.
1996) argumentam que o uso de infra-estruturas A seguir são mostrados os principais
de chave pública baseadas em nomes e ACL’s são sistemas baseados em gerência de confiança.
uma solução inadequada para o controle de acesso
em sistemas como a rede mundial. Tal argüição 2.1 PolicyMaker
baseia-se principalmente na percepção das
dificuldades de escalabilidade e da falta de No ambiente do PolicyMaker (Blaze,
flexibilidade destas infra-estruturas de nomes Feigenbaum e Lacy, 1996) o objetivo é a
globais. Além disto, CA’s agindo como entidades autorização, expressa através de asserções. Uma
legais – com base nas hierarquias de confiança – asserção é um par (f, s), onde s representa a
em diferentes países com soberania e legislação autoridade origem (emissor) e f descreve a
própria, são apontadas como uma das principais autorização concedida e o seu beneficiário. Na
limitações do esquema X.509. especificação das asserções, uma linguagem é
Como uma alternativa, no trabalho de usada como um meio correto e inequívoco de
(Blaze, Feigenbaum e Lacy, 1996) é introduzido o expressão e de interpretação das mesmas. Esta
conceito de gerência de confiança (trust linguagem comum se faz necessária, porque um
management) compreendendo um conjunto de ambiente local pode importar credenciais de
mecanismos unificados para especificar e validar diversas origens nas verificações de conformidade.
políticas de autorização, credenciais e seus O PolicyMaker não define uma linguagem única
relacionamentos. Estes mecanismos de gerência para a especificação de asserções, porque sua
de confiança são geralmente denominados de principal preocupação é com o formalismo da

102
especificação. Assim, a checagem de projetado no MIT por Ronald Rivest e Butler
conformidade é independente das linguagens de Lampson, é uma infra-estrutura de segurança com
especificação de políticas e de credenciais. Além o objetivo principal de facilitar a construção de
disto, boa parte das atividades da gerência de sistemas distribuídos seguros e escaláveis. O SPKI
confiança como a verificação de assinaturas, por é o resultado dos esforços conduzidos por Carl
exemplo, é atribuída à aplicação que, assim, pode Ellison no projeto de um modelo de autorização
escolher livremente a tecnologia de segurança a simples, implementável e bem definido. A
ser utilizada. combinação das duas propostas forma uma base
Basicamente, o módulo de checagem de para a autenticação e autorização em aplicações
conformidade toma como entrada um conjunto de distribuídas. Nesta infra-estrutura os espaços de
asserções de credencial (C), requisições (r) e nomes de principais1 são locais e o modelo,
asserções de política (P) e gera como saída um baseado em cadeias de confiança, é simples e
parecer refletindo a conformidade ou não de C e r flexível.
com P. As credenciais em C devem formar Na atual versão do SDSI / SPKI há dois
cadeias de delegação que concedem ao requerente tipos distintos de certificados, um para nome e
as permissões para o acesso desejado. Não é outro para autorização. Os certificados de nome
função do módulo de checagem descobrir (Tabela 2.1) ligam nomes a chaves públicas, ou
credenciais ausentes em C e buscá-las. Tal módulo ainda, a outros nomes. O sistema de nomeação é
apenas decide quais asserções devem ser avaliadas herdado do SDSI que induz ao uso de nomes
e em qual ordem, para gerar todos os registros locais mesmo no sentido global de um ambiente
parciais de aceitação. Para isto uma estratégia de distribuído. Ou seja, no lugar de criar um espaço
buscas repetidas é usada na geração dos registros de nomes global único, os nomes SDSI / SPKI são
parciais. No fim do processo, estes registros são sempre locais – limitados ao espaço de nomes do
ordenados para que o módulo possa concluir se os emissor do certificado. A combinação da chave
mesmos representam um conjunto substancial de pública do emissor do certificado com um nome
provas de conformidade para a requisição em local representa um identificador global único em
questão ou não. SDSI / SPKI, sendo que o emissor de um
certificado é sempre uma chave pública.
2.2 Keynote
Tabela 2.1: Certificado de Nome SPKI
Campos Descrição
O KeyNote (Blaze e outros, 1999) foi Emissor (Issuer) Chave pública da entidade (chave emissora) que está definindo
desenvolvido sob os mesmos princípios do o “Nome” em seu espaço de nomes local.
Nome (Name) Nome local que está sendo atribuído ao sujeito.
PolicyMaker. Porém, no Keynote uma linguagem Sujeito (Subject) Uma chave pública ou um nome definido em outro espaço de
nomes que será redefinido (referenciado) no espaço de nomes
específica para definição de asserções foi adotada local ao emissor.
para aumentar sua eficiência e para facilitar a Validade Especificação do período de validade do certificado – em
(Validity dates) formato ‘data-hora’.
interoperabilidade na escrita de políticas e de
credenciais. Isto permitiu repassar mais
No SDSI / SPKI é usado um modelo
atribuições para o módulo de gerência de
igualitário: os principais são chaves públicas que
confiança – é o caso da checagem da assinatura
podem assinar e divulgar certificados, como uma
digital. Além disto, na busca das provas de
CA do X.509. Assim, qualquer principal pode
conformidade foi adotado o algoritmo DFS (Depth
criar seu par de chaves (privada e pública) e então,
First Search), que é executado no conjunto de
associar um nome à chave pública do par – que
credenciais do requerente. Assim, a estrutura
pode ser divulgado através de um certificado de
resultante pôde ser tratada como um grafo
nome.
direcionado durante a checagem, o que mostrou-se
Um certificado de nome pode fazer
mais eficiente que a estratégia de buscas repetidas
referência a um outro nome (publicado num
do PolicyMaker – que gerava registros parciais
certificado de nome por outro principal) de modo
utilizados na construção das provas de
a formar uma cadeia de nomes através do
conformidade.
encadeamento de referências (linked names).
Os certificados de autorização (Tabela
2.3 SDSI / SPKI
2.2) SDSI / SPKI ligam autorizações a um nome, a
um “grupo especial” de principais (threshold
A infra-estrutura Simple Distributed
subjects) ou a uma chave. Através destes
Security Infrastructure / Simple Public Key
certificados, o emissor delega permissões de
Infrastructure (SDSI / SPKI) foi motivada pela
acesso a outros principais no sistema.
percepção da complexidade do esquema global de
nomeação X.509. O SPKI (Ellison e outros, 1999)
e o SDSI (Lampson and Rivest, 1996) são duas
1
propostas de propósitos complementares. O SDSI, Entidades ativas que possuem um par de chaves (privada e
pública) e são capazes de executar assinaturas digitais.
103
Na infra-estrutura SDSI / SPKI os 3 MODELO DE AUTENTICAÇÃO E AUTORIZAÇÃO
certificados de autorização são construídos a partir PROPOSTO
das ACL’s do guardião. Na verdade, no que se
refere a certificados e ACL’s, o SDSI / SPKI define Nesta seção são considerados aspectos
um formato único de representação (Figura 3.3), referentes ao modelo de confiança, autorização,
facilitando as atribuições e checagens de autenticação, auditoria e formação de novas
autorização. O conteúdo do certificado pode ser o cadeias de autorização no modelo proposto.
mesmo da ACL, porém, ao certificado é acrescido
o campo do emissor assinando o certificado – a 3.1 Modelo de Confiança
ACL não possui este campo porque é local ao
guardião do serviço. O modelo de confiança proposto está
fundamentado no conceito de “federação” que
Tabela 2.2 – Certificado de autorização SPKI enfatiza o agrupamento de principais, com
CAMPOS Descrição
Emissor (Issuer) Chave pública do emissor do certificado. interesses afins, definindo relações de confiança
Sujeito (Subject) Chave pública (ou hash dessa) ou nome identificando o
principal que receberá a autorização.
entre seus membros. As federações têm o objetivo
Delegação Valor lógico (True / False), indicando se o sujeito pode de auxiliar os seus congregados na redução de
(Delegation) (True) ou não (False) propagar a autorização que lhe foi
delegada pelo emissor. nomes de principais e na construção de novas
Autorização Contém as permissões concedidas pelo emissor –
(Authorization) representadas como S-expression.
cadeias de autorização, através do
Validade (Validity Especificação do período de validade do certificado – em compartilhamento dos certificados de seus
dates) formato ‘data-hora’.
membros.
Em SDSI / SPKI os nomes de principais Figura 3.1 – Visão geral das entidades do modelo
são utilizados apenas para facilitar a memorização de confiança e seus inter-relacionamentos
da identificação dos mesmos (chaves públicas).
Quando uma decisão de acesso vai ser tomada, os Principal
RAP
RCCP
nomes precisam ser “resolvidos” – a cadeia de Agente de P
Servidor de
nomes ligados deve ser percorrida até chegar a Associado Membro
Gerente de
Membro
Aplicação
certificados da
chave pública do principal em questão. O processo RCPr de Y de X federação X de X Servidor A
Cliente P
de recuperação da cadeia de nomes para alcançar teia de
RC
federaçõe
o certificado de nome equivalente é chamado de Principal
Gerente de
“redução da cadeia de nomes”. Analogamente, os Agente de Q
Associado
de X
Membro
de Y certificados da
Membro
de Y
Servidor de
Aplicação
federação Y
direitos concedidos através das delegações
sucessivas, devem ser “reduzidos / resumidos” em RCPr
RCCP
RAP

Servidor B
um certificado único contendo os direitos Cliente Q

propagados até um sujeito. Legenda:


RCPr: Repositório de certificados privados RC: Relação de confiança

Considerando que os certificados RCCP: Repositório de CRL’s e certificados públicos RAP: Repositório de ACL’s SPKI (políticas)

(E1, S1, D1, A1, V1) e (E2, S2, D2, A2, V2)
seguem o formato da Tabela 2.2. Então, estes O modelo de confiança está centrado em
certificados formam uma cadeia de autorização se três entidades: cliente, servidor (de aplicação) e
as seguintes condições forem satisfeitas: S1 = E2 e gerente de certificados da federação (Figura 3.1).
D1 = ‘True’. Caso afirmativo, a redução O gerente de certificados (entidade lógica para o
da cadeia de autorização resultará processo de autorização, pois não participa da
um certificado com o seguinte formato: cadeia de autorização) tem o objetivo de facilitar a
[E1, S2, D2, intersect(A1, A2), intersect(V1, V2)]. interação entre o cliente e o servidor. Este gerente
A função intersect no campo de autorização oferece recursos para o armazenamento e a
representa a interseção (string a string) de A1 com recuperação dos certificados de nome e de
A2. Já a função intersect (V1, V2), no campo de autorização, que os clientes necessitam para
validade, se refere a interseção dos períodos de efetivação de acessos aos servidores.
validade dos certificados em questão. Se não Um gerente de certificados serve a apenas
houver nenhuma interseção, a função de redução um grupo de principais – sua federação. Por
deve retornar uma exceção. exemplo, o gerente de certificados da federação
A especificação SDSI / SPKI prevê dos clientes de um banco, armazena e recupera
também recursos para tolerância a intrusões e a certificados de nome e de autorização apenas para
faltas, efetivados através dos threshold subjects, os principais congregados pela federação do banco
que são aplicáveis apenas aos certificados de em questão. Todos os membros da federação
autorização. Certificados com threshold subjects podem compartilhar o acesso ao repositório de
determinam que um número mínimo de sujeitos, k certificados, implementado pelo gerente de
dentre n, devem autorizar a delegação de uma certificados da federação.
permissão para que a mesma se torne efetiva. Os clientes e servidores podem filiar-se a
várias federações, em tantas quantas forem
104
aceitos. Assim, por exemplo, pode-se imaginar um estaria filiado a sua FCCE. O gerente de
cenário (Figura 3.1), onde um cliente (C) que é certificados da FCB e o gerente de certificados da
membro da federação dos clientes de um banco FCCC estariam associados entre si, sendo que o
(FCB), se torna membro da federação dos clientes gerente de certificados da FCCC estaria também
de uma administradora de cartões de crédito em associação mútua com o gerente de
(FCCC). Este mesmo cliente, pode filiar-se certificados da FCCE. Consequentemente, o
também a federação dos clientes de um site de cliente C poderia fazer compras no site de
comércio eletrônico (FCCE). Paralelamente, o comércio eletrônico e pagar com um cartão de
servidor (S) do site de comércio eletrônico (que é crédito oriundo da FCCC, apenas pertencendo a
filiado a FCCE), pode filiar-se a FCCC. Assim, o FCB, porque há uma relação de confiança entre
cliente C poderia fazer compras no site de ambos (C e S), através da teia de federações.
comércio eletrônico e pagar com um cartão de Pode-se observar que no modelo de
crédito oriundo de FCCC, porque ambos (C e S) confiança proposto não há nenhum tipo de
compartilham relações de confiança com as centralização ou hierarquização. A teia de
mesmas federações (FCCE e FCCC). federações é formada arbitrariamente e
As filiações dos clientes a várias desempenha funções de apoio (suporte) ao
federações permite-lhes ter o acesso facilitado processo de autorização e autenticação, como será
principalmente aos certificados de autorização dos mostrado nos tópicos a seguir.
membros da federação. Porém, o número de É oportuno salientar que a efetivação do
filiações necessárias para ter um determinado modelo poderia ser alcançada com a utilização do
nível de presença na rede mundial caracteriza-se PolicyMaker / KeyNote. Porém, a adoção do
também como um problema de escalabilidade. SDSI / SPKI no nosso modelo se deu em função do
Os requisitos de escalabilidade deste seu grau mais avançado de desenvolvimento,
modelo induzem a algum tipo de formação que resultante das várias contribuições que este já
resulte em uma espécie de teia de federações em recebeu dos pesquisadores da área.
âmbito global. Então, parece razoável que os
gerentes de certificados associem-se uns aos 3.1.1 Nome de Principais
outros – a aqueles que, por afinidade, melhor
representem as necessidades de seus membros – Seguindo as especificações SDSI / SPKI,
através de relações de confiança para formar teias no modelo, os nomes de principais são locais. A
de federações com alcance global. Assim, os publicação dos mesmos é feita através de
clientes e os servidores estariam eximidos da certificados de nome assinados, que qualquer
necessidade de filiar-se a n federações para ter principal poderá emitir. Os nomes locais são
escopo global. concatenados a chave pública do principal, dono
do espaço de nomes, para ter escopo global e são
Figura 3.2 – Exemplo de uma teia de federações propagados através de cadeias de nomes ligados.
envolvidas no processo de autorização de uma compra A noção de grupo também é adotada no
Cliente de um
Banco
modelo e corresponde a um conjunto de principais
RCCP
interpretados como um único nome local no
Agente de C
Gerente de
espaço de nomes do principal que definiu o grupo.
Associado Membro
certificados
de F CCC de F CB
RCPr da FCB
e FCCE
Cliente C 3.1.2 Certificados de Autorização
RC teia de
federações
(requisição
de operação)
+
(cadeia de
R
C
Gerente de
certificados
Os certificados de autorização
C
autorização)
P da FCCC
SDSI / SPKI, utilizados no modelo, são
RC considerados em duas circunstâncias distintas. Na
primeira, quando o bit de delegação estiver
Gerente de Membro
Site de
certificados
da F CCE
de FCCE Comércio desligado (delegação não permitida), os atributos
Eletrônico
de privilégio não podem ser propagados. Neste
RCCP
RAP caso, o principal deve guardar este certificado
Servidor S
Legenda:
como sendo um certificado de autorização
RCPr: Repositório de certificados privados
RCCP: Repositório de CRL’s e certificados públicos
RC: Relação de confiança
RAP: Repositório de ACL’s SPKI (políticas) “privado”, do qual só o mesmo pode fazer uso. Na
segunda circunstância, quando o bit de delegação
estiver ligado (delegação permitida), o sujeito
Considerando-se então o caso anterior
pode fazer dos atributos de privilégio o que bem
(Figura 3.1) no cenário de uma teia global de
entender ou o que lhe for solicitado. Entre as
federações, se poderia vislumbrar uma situação
atitudes que o sujeito pode tomar em relação aos
como a mostrada na Figura 3.2. Neste caso, o
atributos recebidos estão: guardá-los para seu uso
cliente de um banco (C) estaria filiado a sua FCB e
particular (privado) ou repassá-los a terceiros na
o servidor (S) do site de comércio eletrônico
105
íntegra ou num subconjunto, quando isto for de verificação da assinatura digital) deve chegar
necessário. de maneira segura até o destinatário. Como não há
É importante observar que uma vez um servidor para “registrar” a chave pública do
concedido um privilégio (delegável ou não), este é principal, essa chave chegará ao destino por
irrevogável, estando limitado apenas as restrições delegação – através das entidades que formam a
de uso temporal, especificadas no campo de cadeia de confiança na propagação dos
validade do certificado. Assim, é possível certificados de autorização (Figura 3.3).
considerar que os certificados de autorização SPKI Em sistemas baseados em redes de
podem representar não apenas simples atributos confiança, todo o certificado de autorização tem
de privilégio, mas confiança irrestrita do emissor no campo do emissor a chave pública do principal
no sujeito – para administrar aqueles atributos de que assina o certificado (Tabela 2.2). Logo, todos
privilégio (Figura 3.3) durante o período de os certificados de autorização podem ter sua
vigência imposto pelas restrições de validade. Isto autenticidade facilmente verificada. Mesmo o
permite uma descentralização da administração da cliente que é o sujeito (última chave) de uma
concessão de direitos de acesso, que se bem cadeia de autorização pode ter sua autenticidade
explorada, propicia uma flexibilidade bastante facilmente verificada. Isto porque, ao fazer uma
considerável deste modelo sobre os requisição a um servidor, o cliente deverá
convencionais. assiná-la e enviá-la junto com a cadeia de
autorização que lhe concede os privilégios de
3.1.3 Gerente de Certificados acesso necessários. Então, quando o pedido chegar
ao guardião, a cadeia de autorização será
Ao gerente de certificados cabe a verificada (Tabela 3.2). Após uma verificação bem
manutenção das informações referentes aos sucedida, o guardião usa a última chave da cadeia
membros e associados de sua federação – remoção de autorização (chave do cliente, constante no
ou adição de membros e associação a outras campo de sujeito) para verificar a assinatura
federações, sem promover conflito de interesses digital da requisição. Se a assinatura confere, a
(Brewer e Nash, 1989). Ao gerente de certificados autenticidade da requisição é confirmada, em caso
cabe também o armazenamento e recuperação dos contrário não.
certificados de nome e de autorização para os Supondo-se um cliente desejando se
membros da federação. O armazenamento é feito certificar que a chave privada assinando o
em repositório(s) apropriado(s) do gerente e a primeiro certificado da cadeia de autorização, é
recuperação é processada através de algoritmos de mesmo do servidor em questão. Tal cliente deverá
busca de cadeias (Depth First Search, por recuperar o certificado de nome do servidor, a
exemplo). partir da teia de federações, para verificar o nome
Os certificados de autorização que um do servidor. Em seguida, este cliente deve usar a
membro armazena no gerente de certificados chave pública do campo de emissor – do primeiro
tornam-se de conhecimento dos demais membros certificado da cadeia de autorização – para
e associados da federação (“públicos”), e só verificar a assinatura digital do certificado de
podem ser do tipo delegáveis. Estes certificados nome do servidor. Se todas as verificações forem
estarão à disposição dos membros e associados bem sucedidas a identidade do servidor estará
para possíveis pesquisas (buscas) da cadeia de verificada.
autorização (Figura 3.3).
Considerando-se então um cliente 3.3 Autorização
(membro ou associado), desejando acessar um
servidor, sem a autorização necessária. Tal cliente No nosso modelo, preservou-se a
poderá fazer uma busca na teia de federações para estrutura disponível no SDSI / SPKI para a
identificar algum possuidor do direito requerido. construção de ACL’s, descrevendo as políticas de
Após localizar o direito, o cliente poderá iniciar autorização que regulam os acessos dos principais
uma negociação com o detentor do mesmo, aos objetos locais ao servidor. Para o caso de
objetivando obter sua concessão (veja seção 3.5). aplicações distribuídas, certificados de autorização
concedendo permissões de acesso por delegação
3.2 Autenticação são utilizados para alcançar o mesmo propósito. A
concessão inicial de direitos de acesso é feita pelo
Na autenticação de principais a guardião (servidor) do serviço e sua propagação se
identificação não é feita através de nomes, mas de dá através de delegações sucessivas dos
chaves públicas, e o mecanismo de autenticação é certificados de autorização, passando de um
a assinatura digital. Assim, para que a assinatura principal a outro e formando as cadeias de
digital seja verificada no destino, a chave pública autorização (Figura 3.3).
(neste caso, identificador do principal e elemento

106
As requisições de operações em um cadeia de certificados não é encontrada a busca
servidor devem ser assinadas pelo cliente e termina com uma exceção (falha). Neste trabalho,
enviadas junto com a cadeia que o autoriza a através das federações, é criado um esquema que
realizar a operação (Figura 3.2). Quando permite a um cliente localizar um privilégio de
verificada a autorização para efetuar a operação acesso dentro de uma teia de federações, o que dá
requisitada, o servidor emite um certificado um sentido efetivo de abrangência global aos
atribuindo diretamente ao cliente, os direitos que certificados de autorização locais. Isto permite ao
lhe foram delegados através da cadeia de cliente negociar com o detentor de um privilégio a
autorização (reduzida). Numa próxima requisição concessão do mesmo para formar novas cadeias de
da mesma operação no servidor, este certificado é autorização.
apresentado no lugar da cadeia de autorização. Para dar suporte a formação de novas
cadeias de autorização utilizou-se certificados de
Figura 3.3 – Cadeia de certificados de autorização, nome e de autorização, threshold certificates e
mostrando os certificados e os repositórios envolvidos grupos oriundos do SDSI / SPKI na efetivação da
RCPr
teia de federações. A seguir é mostrado como estes
Gerente de
(,C PI , CPCl
i ent e
“ nã
“r e s tr iç õe s de t em po”)
o pode se r el eg
d a do ” , “
a u to r iz aç ão” ,

recursos são utilizados nas entidades do modelo


certificados da
federação Y
Cliente para dar o apoio necessário ao processo de
RCCP (CPAdm , CPCliente , “não
sujeito autorização e autenticação.
(SE LF, C PAdm , “pod
e s e r de le gado” , “auto r iz aç ão” ,“r e s tr i ç õ
e s de te mpo” )

pode ser delegado” ,


“autorização” ,
teia de “restrições de tempo”)
RC
federações emissor
3.5.1 Gerente de certificados
Gerente de
Adm
certificados da
federação X O gerente de certificados define um
sujeito
RCCP
(CPServidor , CPAdm , grupo local congregando os filiados da federação.
“pode ser delegado” ,
Para que um principal qualquer se filie a uma
(SE LF, C PAdm , “pod
e s e r de le gado” , “auto r iz aç ão” ,“r e s tr i ç õ
e s de te mpo” )

“autorização” ,
“restrições de tempo”)
emissor federação, é necessário apresentar um threshold
Servidor certificate assinado por k-de-n membros (já
(“SELF”, CPAdm , “pode
ser delegado” , RAP
filiados) a federação, acompanhado do certificado
de nome do principal que está solicitando a
(SELF , CPA dm, “
pode s e r d
el eg
a do” , “a
ut or iz aç ão
” , “r e s tr i ç ões
de t e mpo”)

“autorização” ,
“restrições de tempo”)

Legenda: admissão. O número (k) de membros necessários


RCPr: Repositório de certificados privados
RCCP: Repositório de CRL’s e certificados públicos
CPx : Indica a chave pública de x
RAP: Repositório de ACL’s SPKI (políticas) para endossar um pedido de filiação é definido por
SELF: Palavra reservada, “utilizada” apenas na ACL pelo RC: Relação de Confiança
verificador da cadeia de certificados de autorização : Detalhes dos campos do certificado/ACL cada gerente de certificados da federação. O
certificado de nome é guardado pelo gerente de
As políticas de autorização (ACL’s) são certificados para auxiliar no processo de
locais ao servidor que oferece o serviço ou identificação de principais, como comentado nas
resultantes da concessão de privilégios feita por seções 3.3 e 3.4. A todo novo membro aceito na
principais membros de uma cadeia, com direitos federação é fornecido um certificado de grupo
de delegação de privilégios – trust do servidor. (certificado de nome expressando participação no
O processo de autorização é efetuado em grupo) para fins de comprovação da filiação.
nível de aplicação e o controle de acesso é O estabelecimento de relações de
executado pelo guardião. A confrontação da confiança entre federações (associação) também é
cadeia de autorização fornecida pelo cliente com a interpretado como admissão de membro no grupo
ACL que protege o recurso possibilita ao guardião local das federações envolvidas. Só que neste
tomar a decisão de permitir ou de negar um caso, o novo associado (a outra federação e por
pedido de acesso (Tabela 3.2). conseguinte seus membros) é tratado como um
grupo definido e administrado em outro espaço de
3.4 Auditoria nomes – de acordo com a definição de grupos
prevista em SDSI / SPKI.
Para efeito de auditoria, são usados os Como já mencionado anteriormente,
registros (logs) de acesso das chaves públicas ao além da mediação das relações de confiança entre
servidor. Quando for necessário será buscado o membros e associados da federação, o gerente de
certificado de nome correspondente, na teia de certificados mantém a base de certificados
federações, para identificar o principal detentor da consistente e fornece interfaces (padrão) para o
chave pública que efetivou o acesso. armazenamento e recuperação de certificados.
Especificamente para o caso da recuperação de
3.5 Formação de Novas Cadeias de Autorização certificados, o gerente implementa os algoritmos
de busca das cadeias de nome e de autorização
Na literatura científica há várias (uma variação do DFS para ambiente distribuído),
experiências com a busca de cadeias de que recorrem a teia de federações quando o
certificados (seção 5), mas em todas quando a certificado desejado não é encontrado localmente.

107
Como o gerente de certificados não figura 3.5.3 Servidor
nas cadeias de autorização como chave nas
delegações sucessivas, o modelo proposto é O servidor de aplicação implementa o
totalmente descentralizado. Assim, o gerente não guardião e os objetos de serviço, os quais protege
torna hierárquicas as relações de confiança e nem com ACL’s SPKI.
assume o papel de ponto crítico em relação a Um conjunto das atividades
falhas e a vulnerabilidades ou ao desempenho do desempenhadas pelo servidor na efetivação do
sistema. controle de acesso (passo V da Tabela 3.1) pode
ser encontrado resumido na Tabela 3.2 (Clarke,
3.5.2 Cliente 2001).

O cliente representa o principal que cria Tabela 3.2 - Seqüência de atividade executadas no
certificados de nome, propaga os certificados de controle de acesso do servidor de aplicação SPKI
Passo Descrição da atividade
autorização por delegação, participa de threshold 1 O guardião verifica o timestamp da requisição, para se certificar que a
mensagem é recente.
certificates, emite requisições de acesso, participa 2 O guardião cria o tag (“operação”) correspondente a requisição do cliente
da formação de novas cadeias e da negociação para confrontá-lo com o que foi devolvido no challenge (passo II - Tabela
3.1.).
para concessão dinâmica de privilégios de acesso 3 O guardião verifica se a chave privada que assinou a requisição é o par da
chave pública contida no campo de sujeito da cadeia de certificados de
(não discutida neste texto). autorização. Caso afirmativo a requisição é autêntica – isto representa a
autenticação.
Como comentado na seção 3.1.2, o 4 O guardião verifica a assinatura digital de cada certificado de autorização,
cliente possuirá certificados privados (Figura 3.3), utilizando a chave pública contida no campo de emissor de cada
certificado verificado. Se todas as assinaturas forem autênticas e todos os
que não são delegáveis ou mesmo que não julga períodos de validade dos certificados estiverem em vigência, então a
seqüência é válida.
conveniente publicar na federação. Assim, o Se este passo for bem sucedido significa que há um caminho de confiança
(“uma seqüência de entidade confiáveis”) por onde foram propagados os
cliente utilizará um agente (Figuras 3.1 e 3.2) certificados de autorização até o cliente (sujeito). Este caminho de
para armazenar e recuperar estes certificados num confiança tem uma função análoga a hierarquia de CA’s do X.509. Porém,
neste casos, a construção da cadeia de autorização é totalmente arbitrária e
repositório privado. O agente corresponde a um depende apenas da confiança mútua entre os membros da mesma e não de
uma entidade “central” de confiança.
software executando atividades de automatização 5 Se o passo 4 for bem sucedido, o guardião verifica se a seqüência de
certificados de autorização concede permissões suficientes ao cliente para
e de gestão dos certificados privados, em nome do a execução da operação desejada. Caso afirmativo, se tem a comprovação
cliente. A automatização compreende tarefas da autorização.

corriqueiras como verificação e efetivação de


assinaturas, busca de cadeias de certificados,
preenchimento de certificados de autorização 4 ASPECTOS DE IMPLEMENTAÇÃO DO MODELO
(baseado em algumas regras predefinidas) e PROPOSTO
manutenção da consistência dos nomes locais. O
agente permite também a adição de outras A seguir são considerados aspectos de
atividades que podem vir a ser automatizadas ou implementação do protótipo do modelo proposto.
que precisam ser online. Assim, o agente está
sempre ativo e o cliente se comunica com o 4.1 Arquitetura do Protótipo
mesmo através de um binding para uma interface
de comandos. As ferramentas adotadas na composição
da arquitetura do protótipo (Figura 4.1) são
Tabela 3.1 - Atividades envolvidas nas trocas entre fortemente influenciadas pela freqüência de sua
cliente e servidor SPKI utilização na Internet – ambiente assumido como
Passo Entidade(s) Descrição da atividade
envolvida(s) o contexto do trabalho. Porém, a infra-estrutura
I C→S O cliente solicita acesso a um recurso protegido (sem
autenticação e nem autorização) para fazer uma operação SDSI / SPKI e as políticas empregadas no modelo
II S→C
(OP).
O guardião (servidor) devolve ao cliente um challenge,
são totalmente independentes da tecnologia em
“prove a posse de privilégios para executar OP no objeto uso e, em linhas gerais, representam as atividades
protegido pela ACL”.
III C O cliente usa um algoritmo para descobrir se há uma descritas no modelo da seção 3.
cadeia de certificados de autorização (Figura 3.3) que lhe
conceda privilégios para executar a operação OP. No protótipo, basicamente, está se
IV C→S Se a cadeia existe, o cliente assina a requisição da
utilizando os protocolos TCP / IP (natos para o
operação OP e em seguida a envia junto com a cadeia de
certificados de autorização ao guardião. Esta mensagem
representa o response ao challenge proposto no passo I.
ambiente Internet) como infra-estrutura de
V S O guardião executa a seqüência de passos descrita na comunicação e o TLS / SSL para dar segurança às
Tabela 3.2.
VI S→C Se todos os passos anteriores foram concluídos com mensagens em trânsito. O CORBA (Common
sucesso, o servidor honra o acesso pleiteado pelo cliente. Object Request Broker Architecture) e o
CORBASec – serviços de segurança CORBA
As atividades envolvidas nas trocas entre (OMG, 2001), estão sendo utilizados como
cliente (C) e servidor (S), que estão sendo usadas middleware. O uso do middleware permite obter
nas requisições de acesso, estão baseadas no as funcionalidades de interoperabilidade e
modelo de autorização adotado do SPKI (Clarke, transparências – para as aplicações construídas a
2001) e são mostradas brevemente na Tabela 3.1. partir dos objetos distribuídos no ambiente

108
heterogêneo da Internet. Além disto, o CORBA e IAIK-iSaSiLk (IAIK, 2000). Porém, nada
o CORBASec estão fundamentados numa impediria que outras implementações que
especificação padronizada e na independência de obedeçam aos mesmos requisitos tivessem sido
ambiente de programação (o CORBA será adotadas.
discutido na seção 4.2). Os protocolos http e ftp
foram mencionados apenas por compatibilidade
com o ambiente Internet, mas poderiam ser 5 TRABALHOS CORRELATOS
quaisquer protocolos de aplicação. Os códigos
Java, interpretados pelas JVM’s (Java Virtual A seguir são destacadas brevemente
Machine do cliente e do servidor), oferecem uma algumas experiências e seus aspectos notáveis.
variedade de opções e facilidades ao Em (Nikander e Viljanen, 1998), o DNS
desenvolvimento de sistemas amigáveis, para o foi usado para armazenar e recuperar os
usuário final, a partir de protocolos de aplicação certificados SDSI / SPKI. Na proposta foram
na Internet. utilizadas extensões acrescidas pela RFC 2065 ao
DNS, para permitir o armazenamento de registros
Figura 4.1 – Arquitetura do protótipo de implementação de certificados. Além disto, foi proposta uma
do modelo infra-estrutura com entidades que armazenam os
certificados de identificação e autorização no DNS
Políticas de autorização / autenticação
e os algoritmos de busca que incluem a filtragem
Infra-estrutura SDSI/SPKI na recuperação dos registros de certificados
pertencentes a cadeia de interesse.
HTTP, FTP, ... Em (Aura, 1998) é considerado que a
JVM JVM
Cliente ORB / CORBASec Servidor rede formada pela propagação de certificados de
autorização SDSI / SPKI pode ser interpretada
TLS/SSL
como um grafo direcionado. Além disto, é
TCP/IP assumido ainda, que em ambientes tipicamente
organizacionais tal rede tem a forma de uma
4.2 CORBA ampulheta. Isto devido a constatação da
ocorrência de um número maior de chaves de
A idéia fundamental do uso do CORBA, servidores e de clientes, do que de chaves
é usufruir do suporte a objetos distribuídos nos intermediárias entre ambos. Então o autor, a partir
aspectos referentes a localização de objetos destas premissas, utiliza os algoritmos DFS
(resolução de nomes) e a segurança em invocações forward, DFS backward e uma combinação de
remotas. No caso, para que se estabeleça uma ambos para fazer buscas rápidas numa base com
sessão entre cliente e servidor usando um canal um único intermediário.
seguro (com integridade e confidencialidade), é Em (Ajmani, 2000) é relatada a
necessária a autenticação mútua dos principais experiência de implementação da busca
(cliente e servidor). Porém, o SPKI utiliza chaves distribuída dos algoritmos propostos em (Aura,
como principais e não nomes, assim são utilizados 1998) – mais especificamente, uma proposta para
os certificados de nome SPKI traduzidos para o que o algoritmo DFS forward apresentasse
SSL, como prevê a RFC 2693, no estabelecimento melhores resultados.
das sessões seguras. Em (Li, 2000) é mostrado que os nomes
O modelo de autenticação e autorização locais SDSI / SPKI podem ser interpretados como
proposto está sendo implementado em nível de grupos (conjunto de principais) distribuídos para a
aplicação (Security Level 2 do CORBASec). “resolução” de nomes. Assim, o autor desenvolve
Porém, para obter os benefícios almejados do algoritmos baseados na programação em lógica
modelo de segurança CORBA, um conjunto para sustentar sua argüição, e para justificar que
mínimo de objetos em nível de ORB foram estes são mais eficientes na busca das cadeias que
mantidos. Para este caso, estão sendo utilizados os as implementações convencionais.
objetos de sessão: PrincipalAuthenticator, No trabalho de (Clarke, 2001), os
SecurityManager, Credentials, SecurityCurrent e algoritmos de busca sugeridos e os demais
SecurityPolicy. aspectos considerados, são na verdade bons
As implementações de ORB que refinamentos das recomendações feitas na RFC
permitem a efetivação do ambiente CORBA 2693.
descrito, nos aspectos desejados e em
conformidade com as especificações da OMG são: 5.1. Considerações sobre as propostas
o Adiron ORBAsec SL2 (Adiron, 2000) e o IONA
ORBacus (IONA, 2001). Em conjunto com os Em linhas gerais pode-se observar nas
ORB’s está sendo utilizado como módulo SSL o experiências relatadas, que os trabalhos descritos

109
em (Nikander e Viljanen, 1998) e (Aura, 1998) promissor do que as experiências relatadas até o
foram concebidos para versões preliminares de momento, devido principalmente a adoção de
SPKI, onde alguns aspectos do modelo ainda não padrões e técnicas que visam o ambiente
estavam bem resolvidos. Portanto, algumas distribuído de larga escala.
premissas assumidas na época, atualmente, não
estão mais em consonância com as recomendações
das RFC’s 2692 e 2693. Já o trabalho de (Ajmani, REFERÊNCIAS BIBLIOGRÁFICAS
2000) é praticamente uma implementação
resolvendo um problema de (Aura, 1998). Porém, ADIRON, LLC. ORBAsec SL2: User Guide.
em termos de arquitetura, nestas experiências boas Version 2.1.4, July 2000
idéias foram apresentadas. AJMANI, Sameer. A trusted Execution Platform
Quanto ao trabalho de (Li, 2000), seu for Multiparty Computation. Master thesis,
principal objetivo foi criar algoritmos de busca Department of Eletrical Engeneering and
voltados para a programação em lógica. Portanto, Computer Science, MIT, 2000.
nenhuma arquitetura foi proposta, mas sua AURA, Thomas. Fast Access Control Decisions
interpretação de nomes locais como grupos from Delegation Certificate Databases. In:
distribuídos mostra-se como uma contribuição proceedings of 3th Australasian Conference on
bastante importante. Information Security and Privacy, 1998.
Em (Clarke, 2001), o conteúdo da RFC BLAZE M., e outros. The KeyNote Trust
2693 é refinado e um relato de implementação da Management System, Version 2, RFC2704.
versão atual de SPKI bastante rico em conteúdo é IETF, 1999.
apresentado, mas não se tem uma proposta de BLAZE M., FEIGENBAUM J. e LACY J.,
arquitetura de abrangência mais ampla. Decentralized Trust Management. In:
Em nosso trabalho se buscou Proceedings of the 17th IEEE Symp. on
principalmente propor uma arquitetura com uma Security and Privacy, 1996.
concepção distribuída, o mais automática e BREWER, D. e NASH, M., The chinese Wall
descentralizada (“democrática”) possível – através Security Policy. In: Proceedings of IEEE
das teias de federações. Na integração com o Symp. on Security and Privacy, 1989.
ambiente, o mínimo de esforço é exigido do CLARKE, Dwaine E. SPKI/SDSI HTTP Server
cliente, pois plugins e/ou applets tornam esta ação Certificate Chain Discovery in SPKI/SDSI.
facilitada. Além disto, tão logo a implantação do Master dissertation, Dep Eletrical Engeneering
modelo esteja concluída, a formação de novas and Computer Science of MIT, 2001.
cadeias de autorização (seção 3.5) poderá ser ELLISON, C. e outros. SPKI Certificate Theory.
medida quanto a sua efetividade. Adicionalmente, RFC2693, IETF, 1999.
um mecanismo de negociação para permitir a GARFINKEL, Simson. PGP:Pretty Good
concessão dinâmica dos privilégios de acesso Privacy. O’Reilly & Associates, Inc., 1995.
poderá ser proposto para automatizar ainda mais o HASTINGS, Nelson E. e POLK, W. Timothy.
processo de formação de novas cadeias. Bridge Certification Authorities: Connecting
B2B Public Key Infrastructures. NIST, 2000.
HORST F. Wedde, Mario LISCHKA, Modular
6 CONCLUSÃO Authorization. In: SACMAT’01,2001.
IAIK (Institute of Applied Information and
O modelo de autorização e autenticação Communication). ORBAsec SL2: User Guide.
proposto tenta minimizar os impactos da rigidez Version 2.1.4, July 2000.
do modelo baseado num universo global de IONA Technologies, Inc., ORBacus: User Guide.
nomeação. Através da adoção das redes de Version 4.1.0, 2001.
confiança e da construção das teias de federações, LAMPSON, B. and RIVEST, R. L., A simple
os certificados de nome e de autorização locais Distributed Security Infrastructure.
ganham um sentido global. http://theory.lcs.mit.edu/~cis/sdsi.html, 1996.
Deve-se considerar que pelo estágio atual LI, Ninghui. Local Names in SPKI/SDSI. In:
de implantação do modelo, não se pode precisar o proceedings of the IEEE Computer Security
tempo de resposta e nem o esforço computacional Foundations Workshop, 2000.
necessário para processar as busca distribuídas das NIKANDER, Pekka e VILJANEN, Lea. Storing
cadeias de certificados, tanto de nomes quanto de and Retrieving Internet Certificates. In: 3th
autorização, quando a teia de federações ganhar Nordic Workshop on Secure IT Systems, 1998.
abrangência global. OMG (Object Management Group). Security
Por mais que os aspectos de desempenho Service, v1.7. http://www.omg.org/cgi-
do sistema ainda não tenham sido avaliados, bin/doc?formal/2001-03-08, 2001.
acreditamos que este modelo se mostra mais

110

Você também pode gostar