Sistemas Distribuídos: Conceitos e Projeto Controle de Acesso



Documentos relacionados
Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

3 SCS: Sistema de Componentes de Software

O que são DNS, SMTP e SNM

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

(Monitor de referências) olicy nforcement oint. olicy ecision oint

PARANÁ GOVERNO DO ESTADO

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4)

1

FTP Protocolo de Transferência de Arquivos

Conceitos de Banco de Dados

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

COMPLEMENTAÇÃO DA DEFINIÇÃO E CONFIGURAÇÃO DO SISTEMA DE INTERCÂMBIO DE INFORMAÇÃO DE SEGURANÇA ENTRE OS ESTADOS PARTES DO MERCOSUL

Sistemas Distribuídos. Aleardo Manacero Jr.

Assinatura e Certificação Digital

Orientação à Objetos. Aécio Costa

Engenharia de Software III

Softwares Aplicativos Banco de Dados

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ACL Linux. O que são ACLs e por que usá-las?

Servidor de Gerenciamento de Chaves de Encriptação Aérea OTAR

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

I Seminário sobre Segurança da Informação e Comunicações CRIPTOGRAFIA

Aplicação Prática de Lua para Web

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Arquitetura de Rede de Computadores

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Projeto Arquitetural do IEmbedded

Manual dos Serviços de Interoperabilidade

Laboratório de Redes. Professora Marcela Santos

Segurança Internet. Fernando Albuquerque. (061)

Permissões de compartilhamento e NTFS - Parte 1

Sistemas Distribuídos

Manual do Almoxarifado SIGA-ADM

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Segurança da Informação

TCEnet e TCELogin Manual Técnico

Preparando um esquema de endereçamento de sua rede

TREINAMENTO. Novo processo de emissão de certificados via applet.

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Fundamentos de Gestão de TI

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

SISTEMAS DISTRIBUÍDOS

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

ISO/IEC 12207: Gerência de Configuração

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Escola Secundária Eça de Queiroz

Proposta de estudo CNC

Sistemas Operacionais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

SSH Secure Shell Secure Shell SSH

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

agility made possible

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2014

PROJETO INTEGRADOR. 5º PERÍODO Gestão da Tecnologia da Informação Noturno

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Disciplina de Banco de Dados Introdução

ITR Municípios Conveniados - Orientações Gerais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

Proxy. Krishna Tateneni Tradução: Lisiane Sztoltz Tradução: Marcus Gama

Ferramenta web para administração do servidor proxy Squid

Transcrição:

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 Lista de Controle de Acesso (ACL): cada objeto mantêm uma lista de direitos de acesso dos sujeitos que podem acessá-lo; 2 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,S + proxy}, 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 K A,B ; Alice envia a Bob o certificado C = {R,S proxy}, + assinado com sig(a,c), denotado por [R,S proxy] + A. Esta mensagem não necessita ser criptografada. Somente a parte secreta necessita de criptografia, mostrada como K A,B (Sproxy ) na mensagem 1; Bob envia sua credencial ao servidor na forma do certificado assinado [R,S proxy + ] A; 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 S + proxy ; Ao decriptar S proxy + (N) e retornar N, Bob prova que ele 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