• Nenhum resultado encontrado

aula-02

N/A
N/A
Protected

Academic year: 2021

Share "aula-02"

Copied!
55
0
0

Texto

(1)

Universidade Presbiteriana Mackenzie

Sistemas Distribuídos

Aula 02

Visão Geral de Segurança, Tolerância a Falhas e Comunicação em Grupo

Prof. Rogério Augusto Rondini

Faculdade de Computação e Informática São Paulo, 14 de Fevereiro de 2011

(2)

Segurança em Sistemas Distribuídos

(Visão Geral)

Falhas em Sistemas Distribuídos

Eleição

Comunicação em grupo com JGroups

Introdução a Sistemas Distribuídos 2

(3)
(4)

Segurança – Visão Geral

(5)

Segurança – Visão Geral

Segurança está fortemente

relacionada com a noção de

Sistemas Confiáveis

Requisitos

● Disponibilidade ● Confiabilidade ● Segurança ● Capacidade de manutenção

(6)

Segurança – Visão Geral

Disponibilidade

● Propriedade de um sistema estar pronto para

ser utilizado imediatamente

● Probabilidade de o sistema estar funcionando

corretamente em qualquer momento determinado

● Sistemas de de Alta Disponibilidade ou H.A

(High Availability), maior probabilidade de o

sistema estar funcionando em dado instante do tempo!!

(7)

Segurança – Visão Geral

Confiabilidade

● Probabilidade de um sistema funcionar

continuamente sem falhas

● Contrário à disponibilidade, um sistema

confiável é definido em termos de intervalo de tempo em vez de instante no tempo

● Sistema Confiável é aquele que mais

provavelmente permanecerá em

(8)

Segurança – Visão Geral

Confiabilidade e Disponibilidade apresentam

diferenças sutis

Qual o impacto se compararmos as duas

propriedades ?

(9)

Segurança – Visão Geral

Confiabilidade X Disponibilidade

● Supondo...

● Um sistema que fica fora do ar por um

milissegundo a cada hora, tem uma disponibilidade de 99,9999%, mas é confiável ?!

● Por outro lado, um sistema que nunca cai, mas

é desligado por algum motivo durante duas semanas todo mês de agosto tem alta

confiabilidade, mas somente 96% de disponibilidade...

(10)

Segurança – Visão Geral

Capacidade de Manutenção

● Grau de facilidade de recuperação de um

sistema que falhou (ex. Correção de um bug ou

troca de um servidor...)

● Sistemas com alta capacidade de manutenção

também demonstram alto grau de

disponibilidade, visto que falhas podem ser detectadas e reparadas mais facilmente

– Obs.: muito bonito na teoria, mas não é tão simples

(11)

Segurança – Visão Geral

Segurança (propriamente dito)

● Segurança em relação aos efeitos causados por

uma mau funcionamento

– Ex. Sistema de controle de aeronaves.. O que

acontece se o sistema que controla o trem de pouso da aeronave ficar indisponível no momento do

pouso ?

Segurança de Serviços e Dados

– Comunicação entre usuários e processos – Controle de acesso a recursos

(12)

Segurança de Serviços e Dados

Segurança requer uma descrição dos

“requisitos de segurança” e quais

mecanismos suportam tais requisitos

O que é política de Segurança ?

Quais os mecanismos de segurança

disponíveis?

(13)

Política de Segurança

Descreve com exatidão quais ações as

entidades (usuários, serviços, dados,

máquinas...) de um sistema tem permissão

de realizar e quais são proibidas

(14)

Mecanismos de Segurança

● Criptografia

● Transforma dados em algo que um atacante não possa

entender

● Autenticação

● Verificação da identidade declarada de uma entidade (usuário,

servidor, serviço...)

● Autorização

● Verificação pós autenticação para permitir ou não acesso a um

recurso

● Auditoria

● Rastrear acessos. Não proporciona proteção, mas auxiliam na

(15)

Mecanismos de Segurança

https://www.google.com/accounts request username/password Base Usuários (2) autenticação Permissões (3) autorização Usuário/senha (1) Criptografia Usuário/Senha Trilhas de Auditoria Registro de acessos (4) auditoria Acesso permitido

(16)

Foco de Controle

Foco na proteção dos dados

● Proteção de acesso e integridade a itens de dados

Foco na proteção de serviços

● Controle de acesso a “operações” específicas, exemplo,

um acesso a métodos de um Objeto

Foco na definição de papéis

● Controle baseado no papel que o usuário desempenha ● Ex. GERENTE tem acesso a recursos que o ATENDENTE

(17)

Canal Seguro

Independente do foco de controle utilizado, a

questão fundamental da segurança é

estabelecer um canal de comunicação

seguro

Em linhas gerais, um canal seguro é obtido

através de autenticação, integridade e

(18)

Autenticação

Visa garantir a identidade de quem

enviar uma mensagem e/ou tenta

acessar um recurso protegido

● Baseada em usuário e senha

● Chaves secretas compartilhadas ● Central de distribuição de chaves ● Serviço de Token Seguro (STS)

(19)

Integridade e Confidencialidade

Mensagens são protegidas contra

modificações

Garantia que mensagens não possam

ser interceptadas e lidas

(20)

Controle de Acesso

Algumas definições

● Sujeito – entidade em um sistema de

computação que pode iniciar requisições para realizar operações

● Objeto – entidade em um sistema de

computação na qual uma operação pode ser iniciada

● Monitor de referência – registra as permissões

de um sujeito e decide se o sujeito pode ou não realizar um determinada operação

(21)

Matriz de Controle de Acesso

Modelo conceitual que especifica os

direitos que cada sujeito possui para

cada objeto

● Exemplo:

Sujeito \ Objeto Objeto 1 Objeto 2 Gerente ler, escrever ler

(22)

De difícil implementação em sistemas

distribuídos

Veremos alguns detalhes em segurança

Web, Web Services e Bancos de Dados

(23)
(24)

Tolerância a Falhas

Conjunto de técnicas utilizadas para

tornar sistemas distribuídos “mais

tolerantes a falhas”

● Consequentemente..

– Maior disponibilidade – Maior confiabilidade – Maior segurança...

Um sistema “Tolerante a Falhas” pode

prover seus serviços mesmo na

presença de falhas

(25)

Falhas Transientes

Falha tipo Gasparzinho...

(26)

Falhas Intermitentes

Falhas tipo Assombroso

● Ocorre e desaparece por sua própria vontade ● Quando você menos espera, está de volta!!!

(27)

Falhas Permanentes

Falha continua a existir até que o

componente faltoso seja substituído

● Melhor dos casos, a identificação da falha é

(28)

Tipos de Falha

Falha por queda Falha por omissão

Falha de temporização Resposta fora do intervalo de tempo Falha de resposta

Falha arbitrária

Servidor pára de funcionar, mas estava funcionando corretamente até parar

Servidor não consegue receber mensagens ou responder mensagens que recebeu ou enviar mensagens

A resposta do servidor está incorreta ou o valor da resposta está errado

Servidor produz respostas arbitrárias em momentos arbitrários

(29)

Um problema típico...

Aplicações cliente não conseguem

distinguir entre um sistema que

falhou por queda e um sistema

demasiado lento...

● A falha é de temporização ou omissão ?

(30)

Resiliência

Um mecanismo simples de proteção é

replicar e distribuir a computação através de

grupo

(31)

Resiliência

Simples – simétrico e sem ponto

único de falha, porém, tomada de

decisão é mais complexa

Hierárquico – perda do coordenador

provoca parada repentina (ou até que

seja eleito outro coordenador), mas

decisões são tomadas sem incomodar

nenhum outro Host

(32)

Resiliência

(33)

Grupos

Duas abordagens

● Utilizar servidor de grupo responsável por

gerenciar os participantes

– Problema: ponto único de falha

Utilizar multicast

– “estranho” envia mensagem anunciando que deseja

entrar

– Em caso de grupo hierárquico, deve-se utilizar

(34)

Detecção de Falhas

Como detectar falhas em sistemas

distribuídos ?

(35)

Detecção de Falhas

Algumas abordagens

● PING – processos enviam mensagens uns aos outros

“você está vivo?”

● GOSSIPING – cada nó anuncia periodicamente a seus

vizinhos que ainda está vivo

● Uso de Heartbeat - semelhante a PING

Todas acabam utilizando timeout

● Problema: atrasos configuram queda ??

Pode-se complementar a solução com um

protocolo para “verificar suspeitos”

(36)
(37)

Algoritmos Distribuídos de Eleição

Em sistemas distribuídos, muitas

atividades exigem a existência de um

coordenador que resolva alguns

problemas de consenso

● Exemplos

– Coordenador de Exclusão mútua com controle

centralizado

(38)

Algoritmos Distribuídos de Eleição

Algoritmos de eleição tentam definir

quem será o líder, seja na

inicialização do sistema ou quando

ocorrer uma falha com o líder atual

Ao final, todos devem concordar com

(39)

Algoritmo Bully (valentão)

Premissas

● Todos os processos tem prioridade única

● Assume que um processo sabe a prioridade de

todos os outros

● Quando ocorre a eleição, o processo de maior

(40)

Algoritmo Bully (valentão)

Algoritmo

● Quando um processo Pi detecta que o coordenador

não está respondendo, ele inicia a eleição da seguinte forma:

– Envia mensagem ELEIÇÂO p/ processos com prioridade

maior que a sua

– SE nenhum processo responde

● Pi se intitula COORDENADOR

● Envia mensagem avisando os outros processos

– SE processo Pj responde (msg ALIVE)

● Pi não faz mais nada, Pj assume controle ● Pj retorna ao início agindo como Pi

(41)

Algoritmo de Bully (valentão)

Exercício

● Supondo uma rede com 5 processadores

{P1,P2,P3,P4,P5}, onde o seu índice corresponde à sua prioridade...

O coordenador atual é o processador P5

– Em um dado momento, o processador P2 detecta que

o coordenador está fora do ar.

● Represente graficamente a execução do

(42)

Comunicação em Grupo com Jgroups

Estudo de Caso

(43)

Jgroups é uma ferramenta para comunicação

multicast confiável, o qual permite a criação

de grupos de processos cujos membros

podem enviar mensagens aos demais.

(44)

Características

Comunicação Multicast Confiável

● Mensagens perdidas são retransmitidas

IMPORTANTE: Comunicação Multicast não

significa apenas IP Multicast. O Jgroups

possibilita o uso de TCP como protocolo de transporte

(45)

Arquitetura

(46)

Canal (Channel)

O canal funciona como um identificador de

grupo

● Canais com mesmo nome formam um grupo

● Lista de membros podem ser obtidas de um Canal, e são

chamadas de Visão (view)

● Cliente pode selecionar um endereço e enviar mensagem

unicast ou enviar mensagem multicast a todos os membros

Canais são “primitivos” em termos de

funcionalidades. Comunicação mais complexa

precisa ser escrita por programadores

(47)

Blocos de Construção

Blocos de construção oferecem uma

API mais sofisticada no topo de um

canal.

Esta API abstrai a complexidade de

implementação de mecanismos de

comunicação específicos

(48)

Pilha de Protocolos

O Jgroups oferece uma variedade de

protocolos, que são configurados

como uma PILHA.

Todas as mensagens enviadas e

recebidas passa pela pilha

Cada camada pode modificar,

reordenar, repassar e descartar a

mensagem

(49)

Pilha de Protocolos

A composição da pilha é determinada

através de configuração

Dependendo da necessidade e

característica do sistema, é possível

adicionar ou remover protocolos

(50)

Pilha de Protocolos

● Transporte

● UDP, TCP, TUNNEL

● Descoberta de Membros

● PING, TCPPING, TCPGOSSIP, MPING...

● Junção de Grupos

● MERGE2

● Detecção de Falha

● FD, FD_ALL, FD_PING, FD_SOCK, VERIFY_SUSPECT

● Adesão a grupos

● GMS

● Segurança

(51)

Configuração

<config ...> <UDP mcast_port="${jgroups.udp.mcast_port:45588}"/> <PING timeout="2000" num_initial_members="3"/> <MERGE2 max_interval="30000" min_interval="10000"/> <FD_SOCK/> <VERIFY_SUSPECT timeout="1500" /> <pbcast.NAKACK use_stats_for_retransmission="false" exponential_backoff="0" use_mcast_xmit="true" gc_lag="0" retransmit_timeout="300,600,1200" discard_delivered_msgs="true"/>

<pbcast.GMS print_local_addr="true" join_timeout="3000" view_bundling="true"/>

(52)
(53)

Flexibilidade

O Jgroups oferece mecanismos para

implementação de canais, blocos e

protocolos específicos

● Exemplo: Você pode implementar seu próprio

(54)
(55)

Contato

Rogério Rondini

rarondini.paradygma@gmail.com

Referências

Documentos relacionados

Para o estabelecimento do calendário, foram observadas as exigências térmicas necessárias para completar as fases fenológicas, a distribuição de precipitação pluvial durante

O projeto SALE se utiliza das especificações CORBA – nos seus modelos para tolerância a falhas, tempo real e segurança – na definição de mecanismos próprios para aplicações de

A expectativa é que a cada ano sejam implantados mais sistemas de comunicação veicular no cotidiano de cada um, e daqui a uns vinte anos seja bem mais natural ver veículos

1 Instituto de Física, Universidade Federal de Alagoas 57072-900 Maceió-AL, Brazil Caminhadas quânticas (CQs) apresentam-se como uma ferramenta avançada para a construção de

Nessa visão geral do clima nas salas de aula, já se destaca um ponto comum na prática das três professoras: embora varie o limite de tolerância da professora e a autonomia dos

A tolerˆancia a falhas ´e um aspecto, extremamente, impor- tante em MCC, ainda mais do que em uma nuvem conven- cional, por causa da natureza m´ovel dos dispositivos [9], ou seja,

MPI = Sistema de injeção eletrônica com quatro bicos injetores (multi ponto) MPFI = Sistema de injeção eletrônica com quatro bicos injetores (multi ponto) Novo Palio = Veículos

The FTT-CAN message ID encoding schema allows for 64 dierent IDs (6 bits) for SRT update requests, which correspond to the IDs of the synchronous messages the requests refer to.