Sincronização e Segurança em Sistemas Distribuídos
Classificado em Computação
Escrito em em português com um tamanho de 4,81 KB.
Lamport – Feito para sincronização de clocks lógicos. Exigência: ordenação global de todos os eventos do sistema. Para cada par de eventos, deve-se saber qual aconteceu antes.
Passos:
- Envia mensagem a todos os processos e para si mesmo (mensagem = nome da região, seu número, tempo corrente).
- Quando um processo recebe:
- a) Se o receptor não estiver usando ou não for usar, retorna OK.
- b) Se estiver usando, não responde e guarda requisição na fila.
- c) Se também quer usar, verifica o tempo da mensagem recebida com o da enviada. Se for menor, envia OK. Se não, não responde e guarda na fila.
- Após enviar a requisição, aguarda o OK dos demais.
- Termina o uso, envia OK para todos da fila.
Características:
- Nenhum processo espera indefinidamente.
- Não há deadlocks.
- Número de mensagens é 2(n-1), onde n é o número de processos.
Vantagens: Garantia de inexistência de deadlocks ou espera indefinida. Número de mensagens requeridas: 2(n-1). Não há ponto de falha.
Problemas: Tráfego de rede muito maior. Uma falha no processo bloqueia as tentativas subsequentes de acesso. Sistema muito maior. Funciona melhor para pequenos grupos de processos.
Melhorias: Envio de negação de acesso. Processo pode entrar se tiver OK da maioria.
Anel Lógico – Atribui-se uma posição no anel (ordem numérica de endereços ou qualquer outro meio conveniente). Não importa a ordenação; o importante é cada processo conhecer o próximo na sequência.
Algoritmo:
- O processo recebe o bastão (token).
- O processo entra em somente uma região. Quando termina o uso, passa o token para o próximo.
- Se o próximo tem o token, mas não vai usar, passa para o vizinho.
Características: Não há starvation. Quando um processo deseja acessar, o pior que pode acontecer é ele esperar todos os anteriores executarem.
Vantagens: Garante a exclusão mútua, pois somente quem possui o token pode acessar a região crítica.
Problemas: Se o token se perder, há necessidade de regenerá-lo. Dificuldade de identificar perda de token; se não for detectada corretamente, pode gerar duplicidade. Se algum processo falhar, o vizinho tem que identificar e retirá-lo do processo.
Comparativo quanto ao número de mensagens enviadas:
- Centralizado: Mais simples, mais eficiente - 3 (requisição, autorização e liberação).
- Algoritmos Distribuídos: 2(n-1) (n-1 requisições, n-1 autorizações).
- Token Ring: Variável e imprevisível. Se todos querem acessar, e pode circular por horas sem ninguém querer acessar.
Comparativo de tempo para entrar na região crítica:
- Centralizado: Tempo de 2 mensagens (requisição e autorização).
- Sistema Distribuído: 2(n-1).
- Token Ring: Token chega (0 mensagens), passado (n-1 mensagens).
Principais Ameaças em Sistemas Distribuídos
Principals – Agentes que acessam informações e recursos mantidos em um sistema distribuído. Eles têm nome e chave secreta.
Ameaças:
- Leakage (Vazamento): Aquisição de informações por agentes não autorizados.
- Tampering (Falsificação): Alteração de informações.
- Resource Stealing (Roubo de Recursos): Usar facilidades indevidamente.
- Vandalism (Vandalismo): Interferência na operação do sistema, sem ganho para o criminoso.
Canais de Comunicação - Ameaças:
- Eavesdropping: Cópias de mensagens sem autorização, direto pela rede ou examinando dispositivos de armazenamento de dados.
- Masquerading (Disfarce): Usar identidade de outro principal.
- Message Tempering (Falsificação de Mensagem): Capturar e alterar mensagens antes de repassá-las.
- Replaying: Capturar e armazenar mensagens por um tempo, seguido de envio com atraso.
Infiltração:
- Vírus: Programa anexo a um hospedeiro, que se infiltra sozinho.
- Worm: Varre o sistema ou uma rede, replicando-se e tornando-o inoperante.
- Cavalo de Tróia: Oferecido como útil ao usuário, mas tem função oculta.
Aspectos de Segurança:
- Criptografia
- Autenticação
- Controle de Acesso
- Auditoria