sistemas distribuidos aula 6
TRANSCRIPT
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 1/32
Aula VI
André Luiz – [email protected]
Sistemas Distribuídos
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 2/32
Algoritmos de Eleição
Sistemas Distribuídos
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 3/32
Algoritmos de Eleição Algortimo Valentão(Bully)
Um processo P, ao detectar a falha do coordenador, inicia aeleição do seguinte modo- P envia uma mensagem de eleição para todos os processorcom números maiores que o seu.
- Se ninguém responde, P vence a eleição e se tornacoordenador- Se um dos processos responde, ele assume a eleição e Pespera
Quando um processo vence a eleição, ele envia uma mensagemcoordenador para todos os processos
- Se um processo que não estava funcionando volta a funcionar,ele inicia uma eleição e se tiver o maior número, assume acoordenação (daí o nome do algoritmo)
3
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 4/32
Exclusão Mútua Algortimo do Anel
Um processo P, ao detectar a falha do coordenador, inicia aeleição do seguinte modo- P envia uma mensagem de eleição, contendo seu ID, para oproximo host.
- Se o host não responder, P envia a mesma mensagen para oproximo host.- Se ninguém responde, P vence a eleição e se tornacoordenador- Se um dos processos responde, ele assume a eleição e Pespera
Quando um processo receber a mensagem que contem su proprioID e é capaz de definir o novo coordenador (Maior ID de todos)
Neste momento todos fazem a mesma coisa e elegem o novocoordenador
- Se um processo que não estava funcionando volta a funcionar,ele pergunta quem é o coordenador e informa sua existência
4
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 5/32
Segurança em Sistemas de
Objetos Distribuídos
Sistemas Distribuídos
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 6/32
Segurança em Sistemas de ObjetosDistribuídos
Segurança é um dos aspectos mais importantes desistemas distribuídos pois tem a ver com a usabilidadedos sistemas.
Por outro lado, é um dos aspectos sobre o qual temos
menos conhecimento e controle.
Nunca podemos dizer que um determinado sistema é100% seguro. Provavelmente, nunca poderemos.
Em sistemas distribuídos, o conceito de confiança torna-se muito nebuloso: em quem podemos confiar?
6
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 7/32
Segurança em Sistemas de ObjetosDistribuídos
É um tópico que já foi muito estudado, então é precisotomar cuidado para não "reinventar a roda"
Se o seu sistema precisa de segurança, o melhor éestudar as tecnologias existentes e escolher uma (ou
algumas) delas
Só em último caso é que se deve pensar em utilizar umanova técnica ou metodologia
Mesmo que você não precise controlar a segurança emseu sistema, talvez você seja forçado a estudar oassunto para fazer com que o seu sistema funcione emambientes que utilizam mecanismos de segurança (p.ex.firewalls, applets)
7
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 8/32
Segurança em Sistemas de ObjetosDistribuídos
Algumas ameaças à segurança dos sistemasdistribuídos são óbvias. Por exemplo, na maioria dostipos de rede local é fácil construir um programa queobtenha cópias de mensagens transmitidas entreprocessos.
Um programa desse tipo pode ser executado em umcomputador que já está conectado à rede ou em um queestá infiltrado nela, através de um ponto de conexãosobressalente.
Outras ameaças são mais sutis. Um programa pode se
instalar como um servidor de arquivos e obter cópias deinformações confidenciais contidas nos dados que osclientes encaminham para armazenamento.
8
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 9/32
Segurança em Sistemas de ObjetosDistribuídos
Para se resguardar dessas ameaças, políticas desegurança devem ser adotadas e mecanismos desegurança devem ser empregados a fim de implementartais políticas.
A distinção entre políticas e mecanismos é útil quandose projetam sistemas de segurança, masfreqüentemente é difícil ter certeza de que um certoconjunto de mecanismos implementa plenamente aspolíticas desejadas. Note que as políticas independemde tecnologia.
9
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 10/32
Segurança em Sistemas de ObjetosDistribuídos
A proposta de um sistema de segurança é restringir oacesso às informações e aos recursos, somente aos principals que estão autorizados.
O termo principal é usado para designar os agentes que
acessam informações e recursos mantidos em umsistema distribuído. Portanto, um principal é uma pessoaou um processo. No modelo de segurança queadotamos, cada principal tem um nome e uma chavesecreta.
Para produzir um sistema que seja comprovadamenteseguro contra ameaças específicas, é necessárioclassificar essas ameaças e os métodos pelos quais cadauma delas pode se concretizar, isto é, os métodos deataque, ou o modus operandi.
10
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 11/32
Segurança em Sistemas de ObjetosDistribuídos
As ameaças aos sistemas de computador subdividem-seem quatro grandes classes:
- Leakage (vazamento): aquisição de informação poragentes não autorizados;
- Tampering (falsificação): alteração não autorizada deinformação (inclusive de programas);
- Resource stealing (roubo de recursos): uso de facilidadessem autorização;
- Vandalism (vandalismo): interferência na operaçãoapropriada de um sistema sem ganhos para o criminoso;
11
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 12/32
Segurança em Sistemas de ObjetosDistribuídos
Para violar um sistema através de quaisquer dasestratégias apresentadas anteriormente, é necessárioacessá-lo.
Virtualmente, todos os computadores possuem canaisde comunicação para acesso autorizado às suasfacilidades, e é através destes que o acesso nãoautorizado ocorre.
Nos sistemas distribuídos, os computadores estãoconectados a uma rede e os seus sistemas operacionaisoferecem uma interface de comunicação padrão quepermite o estabelecimento de canais de comunicaçãovirtuais.
12
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 13/32
Segurança em Sistemas de ObjetosDistribuídos
Os métodos pelos quais violações de segurança podemser cometidas em sistemas distribuídos dependem daobtenção de acesso aos canais de comunicaçãoexistentes, ou do estabelecimento de canais quemascarem conexões aos principals, com a autoridadedesejada.
Isto inclui:
- Eavesdropping: obtenção de cópias de mensagemsem autorização. Isto pode ser feito capturandomensagens diretamente da rede, ou examinando
informações que estão inadequadamente protegidas emdispositivos de armazenamento de dados. Por exemplo,usando a Internet um computador pode ser configuradocom o endereço de rede de outro, permitindo que estetambém receba as mensagens endereçadas àquele.
13
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 14/32
Segurança em Sistemas de ObjetosDistribuídos
- Masquerading (disfarce): envio ou recebimento demensagens usando a identidade de outro principal sema sua autorização.
-Message tampering (falsificação de mensagem):captura e alteração do conteúdo das mensagens antes
de passá-las ao destinatário. Isto é difícil de fazer emmeios que se utilizam de broadcast para troca demensagens, como é o caso das redes Ethernet. Demaneira simplificada, podemos definir broadcast comosendo a entrega simultânea de uma mensagem paratodas as estações da rede.
- Replaying: captura e armazenamento das mensagenspor um certo período de tempo, seguido do envioatrasado dessas mensagens aos seus destinatários. Estemétodo de ataque não pode ser evitado por simplescriptografia, uma vez que pode ser usado paraoperações do tipo vandalismo, ou roubo de recurso,mesmo quando as mensagens não podem serinter retadas elo criminoso.
14
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 15/32
Segurança em Sistemas de ObjetosDistribuídos
Para lançar esses ataques em um sistema distribuído, ocriminoso deve ter acesso ao sistema a fim de executaro programa que implementa o ataque.
A maioria dos ataques são lançados por pessoas que sãousuários legítimos do sistema. Para usuários ilegítimos,
um método simples de infiltração é a adivinhação desenhas, ou o uso de programas de quebra de senhaspara obter as chaves de acesso de usuários conhecidos.
15
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 16/32
Segurança em Sistemas de ObjetosDistribuídos
Além dessas formas diretas de infiltração, existemdiversos métodos mais sutis, que estão se tornando bemconhecidos, tais como:
- Vírus: um programa anexado a um hospedeiro legítimo,que se instala sozinho no ambiente alvo, sempre que o
programa hospedeiro é executado. Uma vez instalado,ele realiza suas ações criminosas sempre que lhe apraz,freqüentemente usando uma data como gatilho.
- Worm: um programa que varre um sistema, ou umarede, replicando-se e buscando bloquear todos os
recursos disponíveis, até torná-lo inoperante. Aocontrário do vírus, um worm normalmente não destróidados.
16
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 17/32
Segurança em Sistemas de ObjetosDistribuídos
- Cavalo de Tróia: um programa oferecido aos usuáriosde um sistema como sendo capaz de realizar umafunção útil, mas que tem uma segunda função oculta. Oexemplo mais comum é o spoof login, um programa queapresenta aos usuários um diálogo idêntico ao diálogonormal de obtenção de login (nome do usuário) epassword (senha), mas que na realidade armazena asinformações fornecidas pelos usuários em um arquivo,com o objetivo de uso posterior ilícito.
17
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 18/32
Segurança em Sistemas de ObjetosDistribuídos
A discussão anterior, sobre ameaças e métodos deataque, leva-nos à conclusão de que para construir umsistema distribuído seguro, nós devemos projetar seuscomponentes partindo do princípio de que os agentes dosistema (pessoas e programas) não são confiáveis, atéque provem o contrário.
No entanto, é impossível produzir um sistema útilconsiderando que não há nenhum componenteconfiável. Assim sendo, o objetivo passa a ser produzirum sistema no qual um número mínimo de componentes
sejam considerados confiáveis.
Os mecanismos de segurança para sistemas distribuídosbaseiam-se em alguns aspectos de segurança.
18
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 19/32
Segurança em Sistemas de ObjetosDistribuídos
Aspectos a se considerar em Segurança
- criptografia (é uma ferramenta que ajuda aimplementar os itens seguintes)
- autenticação (de usuários e objetos) - controle de acesso - auditoria
19
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 20/32
A criptografia de mensagens possui três papéisprincipais na implementação de sistemas seguros.
Em primeiro lugar, é usada para esconder informaçãoprivada nos lugares do sistema onde ela estiver exposta,como por exemplo num canal de comunicação, o qual é
vulnerável a eavesdroping e message tampering.
Esta aplicação de criptografia corresponde ao seu usotradicional em atividades militares e de inteligência.Baseia-se no fato de que uma mensagem criptografadacom uma chave específica só pode ser descriptografada
por um agente que conheça a chave inversacorrespondente.
Segurança em Sistemas de ObjetosDistribuídosCriptografia
20
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 21/32
Segurança em Sistemas de ObjetosDistribuídosCriptografia
A segunda utilidade desta técnica é apoiar mecanismosde autenticação que suportam a comunicação entrepares de agentes do sistema.
Um agente que descriptografa uma mensagem comsucesso, usando uma chave inversa específica, pode
assumir que a mensagem é autêntica se ela contémalgum valor esperado.
Então uma descriptografia com sucesso autentica amensagem decodificada como sendo proveniente de umagente específico.
21
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 22/32
A terceira aplicação da técnica é a implementação deum mecanismo conhecido como assinatura digital.
Este mecanismo simula o papel das assinaturasconvencionais, verificando com um terceiro se amensagem é uma cópia inalterada daquela produzida
pelo agente específico.
A habilidade de prover assinaturas digitais depende daexistência de alguma coisa que o agente emissor damensagem possa fazer que outros não possam.
Segurança em Sistemas de ObjetosDistribuídosCriptografia
22
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 23/32
Segurança em Sistemas de ObjetosDistribuídosAutenticação
A outra técnica que serve de base teórica paramecanismos de segurança de sistemas distribuídos éautenticação.
Esta técnica é o meio pelo qual as identidades dosagentes clientes e servidores são estabelecidas de
maneira confiável. O mecanismo utilizado para atingiresse objetivo baseia-se na posse de chaves decriptografia, isto é, podemos inferir que um agente tema identidade que afirma, se ele possui a chave secretaapropriada. Assim como nos trabalhos de espionagemou nas sociedades secretas, a posse da senha é exigidapara autenticar o possuidor da identidade.
23
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 24/32
Segurança em Sistemas de ObjetosDistribuídosAutenticação
Os mecanismos de autenticação para sistemasdistribuídos tomam a forma de um serviço deautenticação, quando implantados em um ambientecomputacional.
Esse serviço deve prover funcionalidades como geração,
armazenamento e distribuição de todas as chaves decriptografia necessárias ao sistema.
24
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 25/32
Segurança em Sistemas de ObjetosDistribuídosControle de Acesso
A última técnica relativa a segurança é controle deacesso.
Os mecanismos de controle de acesso preocupam-se emassegurar que os acessos aos recursos de informação(por exemplo, arquivos, processos, ou portas de
comunicação) e aos recursos de hardware (servidores deimpressão, pools de processadores ou gateways derede) estejam disponíveis apenas para os usuáriosautorizados a fazê-los.
Realizar controle de acesso é a principal missão do
sistema de segurança. Esse controle é feito com baseem informações obtidas de forma criptografada emediante autenticação dos agentes que se comunicam.
25
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 26/32
Segurança em Sistemas de ObjetosDistribuídos
Firewalls
Filtragem de PacotesUma tabela definida manualmente pelo
administrador de sistema define quais pacotespodem passar
Exemplos:pacotes UDP/IP só podem entrar se forem
destinados à maquina pateta.xpto.org.br nasportas 10 a 20
conexões TCP/IP podem ser enviadas paraqualquer máquina www*.xpto.org.br na porta 80
todos pacotes IP vindos das máquinas*.xpto.org.es podem entrar
26
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 27/32
Segurança em Sistemas de ObjetosDistribuídos
Note que os dois primeiros exemplos limitam MUITOo tipo de serviço que pode ser oferecido por estedomínio
Note que o terceiro exemplo não garante muitacoisa pois é relativamente fácil forjar o endereço de
origem dos pacotesPontes no nível das Aplicações ( Application-Level
Gateways)permite uma filtragem mais fina que "olha" dentro
de cada pacote
o programador da aplicação escreve a ponte e ainstala no firewall esta ponte pode autenticar os pacotes e redirecioná-
los para as máquinas apropriadas da Intranet
27
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 28/32
Segurança em Sistemas de ObjetosDistribuídos
O Serviço de Segurança de CORBA
É uma especificação enorme, super-completa de umserviço de segurança
É tão poderoso que muito poucos ousaram implementá-lo
Requisitos abordados pelo serviçoConfidencialidade - a informação só está disponível
para quem deve estar
Integridade - a informação só é alterada por quem éautorizado a fazer issoResponsabilização (accountability ) - as ações dos
usuários envolvendo segurança são guardadas paraposterior verificação e responsabilização dos usuáriospelos seus atos
Disponibilidade - Usuários autorizados conseguemacessar o serviço quando querem28
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 29/32
Segurança em Sistemas de ObjetosDistribuídos
Ameaças a Segurançausuários acessando serviços aos quais eles não tem
acessoum usuário fingindo que é outro usuário ou assumindo
um papel ao qual ele não tem direitomonitoramento de canais de comunicaçãoconfidenciaismodificar, apagar ou re-enviar mensagens em canais
de comunicaçãoum usuário (p.ex. com super-poderes) realizando
operações que não são registradas em um log um usuário negando que tenha assinado um contrato
29
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 30/32
Segurança em Sistemas de ObjetosDistribuídos
O Serviço de Segurança de CORBA oferece as seguintesfuncionalidades
- Identificação (de usuários, objetos, etc.) e Autenticação
- Autorização e Controle de Acesso
- Delegação
- Auditoria - mantendo registros das atividades, quaisatividades devem ser registradas, quais não
30
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 31/32
Segurança em Sistemas de ObjetosDistribuídos
Segurança da Comunicaçãogarantia de integridadegarantia de confidenciabilidade
Geração de Provas (Non-repudiation) - usado para:oferecer uma prova da origem de certos dados para o
destinatário dos dados.oferecer ao remetente uma prova de recebimento dos
dados pelo destinatário, desta forma, é possível evitarque destinatários ou remetentes neguem as suasações
Exemplo: compra de produtos via Internet.
Muito bom para comércio eletrônico.
31
7/31/2019 Sistemas Distribuidos Aula 6
http://slidepdf.com/reader/full/sistemas-distribuidos-aula-6 32/32
Segurança em Sistemas de ObjetosDistribuídos
Administração de Políticas de Segurançaferramentas para determinar as políticas em cadadomínio
32