Sistemas Distribuı́dos: Conceitos e Projeto
Controle de Acesso
Francisco José da Silva e Silva
Laboratório de Sistemas Distribuı́dos (LSD)
Departamento de Informática / UFMA
http://www.lsd.ufma.br
4 de julho de 2013
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
1 / 22
Introdução
Uma vez estabelecido um canal seguro de comunicação, um cliente
pode enviar uma requisição ao servidor, o que normalmente envolve
uma chamada a um método especı́fico de um objeto;
A requisição somente deve ser atendida caso o cliente possua o direito
de realizar esta invocação;
Formalmente, a verificação do direito de acesso é chamado controle
de acesso enquanto autorização refere-se à atribuição dos direitos
de acesso;
O controle de acesso envolve sujeitos que solicitam requisições a um
objeto;
Um monitor de referências armazena o que cada sujeito tem direito
de realizar e decide se a um dado sujeito é permitido realizar uma
dada operação.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
2 / 22
Modelo Geral para Controle de Acesso a Objetos
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
3 / 22
Matriz de Controle de Acessos
Uma abordagem comum para modelar os direitos de acesso de
sujeitos a objetos é através da matriz de controle de acessos;
Cada sujeito é representado por uma linha na matriz e cada objeto
por uma coluna. Uma entrada M[s, o] lista as operações que o sujeito
s pode realizar sobre o objeto o;
A matriz de controle de acessos não é implementada como uma
matriz, já que tipicamente ela é esparsa. Normalmente uma das
seguintes implementações é utilizada:
1
2
Lista de Controle de Acesso (ACL): cada objeto mantêm uma lista
de direitos de acesso dos sujeitos que podem acessá-lo;
Capacidades: define o que um sujeito pode realizar em um dado
objeto. O portador da capacidade possui os direitos de acesso
especificados na capacidade.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
4 / 22
ACLs e Capacidades
Figura: (a):ACL (b):Capacidades
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
5 / 22
Domı́nios de Proteção
Tanto listas de controle de acesso quanto listas de capacidades
podem se tornar muito grandes;
Uma alternativa para a redução de ACLs é o uso de domı́nios de
proteção;
Um domı́nio de proteção é um conjunto de pares (objeto, direitos
de acesso);
Cada requisição é emitida no contexto de um dado domı́nio;
Existem diversas abordagens para o uso de domı́nios de proteção.
Uma delas é construir grupos de usuários. Os grupos podem ser mais
flexı́veis caso possam ser hierárquicos;
Toda vez que um usuário solicita o acesso a um objeto, o monitor de
referência deve verificar a que grupo o usuário pertence e depois
verificar a ACL deste grupo.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
6 / 22
Domı́nios de Proteção
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
7 / 22
Domı́nios de Proteção
Domı́nios de proteção podem ainda ser implementados como papéis;
Neste caso, o usuário se registra no sistema com um papel especı́fico
que é normalmente associado à função que o usuário exerce na
organização;
Deve ser possı́vel a um usuário trocar de papel caso seja necessário.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
8 / 22
Agrupamento Hierárquico de Objetos
Uma alternativa ao uso de domı́nios de proteção é através do
agrupamento hierárquico de objetos baseado nas operações que eles
provêem, possivelmente utilizando um mecanismo de herança;
Quando um sujeito realizar uma requisição a um objeto, o monitor de
referências verifica a qual interface a operação solicitada pertence (ao
invés de procurar pelo objeto especı́fico) e se o sujeito possui o direito
de realizar uma chamada a uma operação desta interface.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
9 / 22
Gerenciamento de Autorização
Em sistemas centralizados, o gerenciamento de direitos de acesso é
facilitado pelo fato de todos os direitos de um novo usuário serem
relativos à máquina local, podendo os mesmos serem especificados
pelo administrador do sistema;
Em um sistema distribuı́do, os recursos estão espalhados em várias
máquinas e se a mesma abordagem fosse utilizada seria necessário
criar uma conta para cada usuário em todas as máquinas;
Esta questão pode ser simplificada através da criação de uma única
conta em um servidor central que deve ser consultado toda vez que
um usuário acessa recursos ou máquinas.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
10 / 22
Capacidades e Certificados de Atributos
Uma outra abordagem largamente empregada em sistemas
distribuı́dos é o uso de capacidades;
Uma capacidade é uma estrutura de dados para um recurso especı́fico
que especifica os direitos de acesso de seu portador sobre o mesmo;
Existem diferentes implementações de capacidades.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
11 / 22
Capacidade em Amoeba
Server port corresponde a um identificador do objeto servidor do
recurso que é independente de máquina;
Object identifica o objeto no dado servidor. Os 72 bits relativos ao
server port e object formam o identificador único de cada objeto
Amoeba;
Rights especificam os direitos de acesso do portador;
Check é utilizado para tornar a capacidade inesquecı́vel,
como explicado a seguir.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
12 / 22
Tornando a Capacidade Inesquecı́vel
Quando um objeto é criado, o servidor escolhe um valor aleatório
denominado check e o armazena tanto na capacidade quanto em suas
tabelas internas;
Em uma nova capacidade, todos os bits dos direitos de acesso estão
marcados como 1 e isto corresponde aos direitos do proprietário. Esta
capacidade é retornada ao cliente;
Para criar uma capacidade restrita, o cliente devolve a capacidade ao
servidor juntamente com uma máscara de bits contendo os novos
direitos;
O servidor recupera o check de suas tabelas, realiza um XOR do
mesmo com os novos direitos e executa uma função one-way ;
O servidor então cria a nova capacidade colocando os bits de direito
enviados pelo cliente e o resultado da função no campo
check, retornando-a ao cliente.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
13 / 22
Geração de capacide restrita no Amoeba
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
14 / 22
Geração de capacide restrita no Amoeba
Quando o servidor receber de volta a capacidade restrita, ele
verificará através do campo de direitos que se trata de uma
capacidade restrita, realizará um XOR do check orginal (resgatado de
suas tabelas) com o campo de direito da capacidade e aplicará a
função one-way no valor resultante para verificar se o resultado da
função é o mesmo do campo check constante da capacidade;
Caso o usuário tente modificar o campo de direito da capacidade
(aumentando seus direitos), ele invalidará a capacidade, dado que o
resultado não casará.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
15 / 22
Certificado de Atributos
Uma generalização de capacidades são os certificados de atributos
que listam pares (atributo, valor) para uma dada entidade;
Eles podem ser utilizados para controlar os direitos que o portador
possui sobre o recurso identificado;
Assim como acontece com outros certificados, certificados de
atributos são controlados por autoridades certificadoras de
atributos.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
16 / 22
Delegação
Imagine a situação: um usuário solicita a um servidor de impressão
que um dado arquivo seja impresso às 2 da manhã passando o nome
do arquivo a ser impresso;
O servidor de impressão deve possuir direito de leitura sobre o arquivo;
O usuário deveria poder delegar temporariamente esse direito de
acesso ao arquivo;
Proxy no contexto de segurança é um token que permite ao portador
operar com os mesmos (ou restritos) direitos e privilégios que o
sujeito que concedeu o token.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
17 / 22
Delegação: Primeira Abordagem
Alice deseja delegar direitos a Bob;
Ela constrói um certificado dizendo ”Bob possui direito R”, como
[A, B, R]A ;
Se Bob desejar passar alguns de seus direitos à Charlie, ele solicita ao
mesmo que contate Alice solicitando um certificado apropriado;
Neste caso, Alice deve conhecer todos.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
18 / 22
Delegação: Abordagem de Neuman
Outra abordagem:
Alice constrói um certificado contendo “o portador deste certificado
possui direito R”;
Neste caso, deve-se proteger o certificado de cópia ilegal.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
19 / 22
Delegação: Abordagem de Neuman
O proxy possui duas partes: um certificado e uma parte secreta;
Seja A o processo que criou o proxy;
+
A primeira parte do certificado é o conjunto C = {R, Sproxy
},
consistindo do direito de acesso R delegado por A juntamente com a
parte pública de um segredo que é utilizado para autenticar o
portador do certificado, de acordo com o protocolo a seguir.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
20 / 22
Delegação: Abordagem de Neuman
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
21 / 22
Delegação: Abordagem de Neuman
Alice e Bob compartilham uma chave secreta KA,B ;
+
Alice envia a Bob o certificado C = {R, Sproxy
}, assinado com
+
sig (A, C ), denotado por [R, Sproxy ]A . Esta mensagem não necessita
ser criptografada. Somente a parte secreta necessita de criptografia,
−
) na mensagem 1;
mostrada como KA,B (Sproxy
Bob envia sua credencial ao servidor na forma do certificado assinado
+
]A ;
[R, Sproxy
O servidor pode agora verificar que C não teve seus direitos de acesso
modificados já que foi assinado por Alice. No entanto, ele ainda não
sabe se Bob é o correto proprietário do certificado;
Para se assegurar disso, ele desafia Bob enviando N encriptado por
+
;
Sproxy
+
(N) e retornar N, Bob prova que ele
Ao decriptar Sproxy
conhece o segredo e é o legı́timo portador do certificado.
Francisco Silva (UFMA/LSD)
SD: Princı́pios e Algoritmos
4 de julho de 2013
22 / 22
Download

Sistemas Distribuídos: Conceitos e Projeto Controle de Acesso