Sistemas Distribuidos Aula 6

32
Aula VI André Luiz – [email protected] Sistemas Distribuídos

Transcript of Sistemas Distribuidos Aula 6

Page 1: Sistemas Distribuidos Aula 6

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

Page 2: Sistemas Distribuidos Aula 6

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

Page 3: Sistemas Distribuidos Aula 6

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

Page 4: Sistemas Distribuidos Aula 6

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

Page 5: Sistemas Distribuidos Aula 6

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

Page 6: Sistemas Distribuidos Aula 6

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

Page 7: Sistemas Distribuidos Aula 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

Page 8: Sistemas Distribuidos Aula 6

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

Page 9: Sistemas Distribuidos Aula 6

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

Page 10: Sistemas Distribuidos Aula 6

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

Page 11: Sistemas Distribuidos Aula 6

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

Page 12: Sistemas Distribuidos Aula 6

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

Page 13: Sistemas Distribuidos Aula 6

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

Page 14: Sistemas Distribuidos Aula 6

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

Page 15: Sistemas Distribuidos Aula 6

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

Page 16: Sistemas Distribuidos Aula 6

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

Page 17: Sistemas Distribuidos Aula 6

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

Page 18: Sistemas Distribuidos Aula 6

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

Page 19: Sistemas Distribuidos Aula 6

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

Page 20: Sistemas Distribuidos Aula 6

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

Page 21: Sistemas Distribuidos Aula 6

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

Page 22: Sistemas Distribuidos Aula 6

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

Page 23: Sistemas Distribuidos Aula 6

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

Page 24: Sistemas Distribuidos Aula 6

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

Page 25: Sistemas Distribuidos Aula 6

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

Page 26: Sistemas Distribuidos Aula 6

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

Page 27: Sistemas Distribuidos Aula 6

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

Page 28: Sistemas Distribuidos Aula 6

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

Page 29: Sistemas Distribuidos Aula 6

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

Page 30: Sistemas Distribuidos Aula 6

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

Page 31: Sistemas Distribuidos Aula 6

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

Page 32: Sistemas Distribuidos Aula 6

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