Sistemas Distribuídos - Lista de Preparação para Prova 2
Published:
Questão 1
Em sistemas distribuídos, a criptografia é utilizada para proteger mensagens trocadas entre entidades. Sobre criptografia simétrica e assimétrica, assinale a alternativa correta.
- (A) Na criptografia simétrica, cada entidade possui uma chave pública e uma chave privada.
- (B) Na criptografia assimétrica, a mesma chave é usada para criptografar e decriptografar mensagens.
- (C) A criptografia simétrica exige que as partes compartilhem previamente uma mesma chave secreta.
- (D) A criptografia assimétrica elimina completamente a necessidade de autenticação entre as partes.
- (E) Funções de hash são usadas para decriptografar mensagens criptografadas.
Questão 2
Considere um sistema distribuído com N entidades que utilizam autenticação baseada em chaves secretas compartilhadas. Para que qualquer par de entidades possa se autenticar diretamente, cada par precisa compartilhar uma chave exclusiva.
Avalie as afirmações a seguir.
- I. O número total de chaves secretas necessárias no sistema é dado por
N(N - 1)/2. - II. Cada entidade precisa armazenar
N - 1chaves secretas. - III. O uso de um Centro de Distribuição de Chaves, ou KDC, elimina a necessidade de qualquer chave secreta no sistema.
- IV. O KDC melhora a escalabilidade porque cada entidade precisa compartilhar uma chave apenas com o KDC.
É correto apenas o que se afirma em:
- (A) I e II.
- (B) II e III.
- (C) III e IV.
- (D) I, II e IV.
- (E) I, III e IV.
Questão 3
Julgue as afirmações a seguir como verdadeiras ou falsas.
- I. Uma função de hash criptográfica recebe uma entrada de tamanho variável e produz uma saída de tamanho fixo.
- II. Uma função de hash segura deve permitir recuperar facilmente a mensagem original a partir do resumo.
- III. Uma propriedade desejável de uma função de hash é dificultar a obtenção de duas mensagens diferentes com o mesmo valor de hash.
- IV. Funções de hash podem ser usadas para apoiar mecanismos de integridade de dados.
Assinale a alternativa correta.
- (A) V, V, F, F
- (B) F, V, V, F
- (C) V, F, F, V
- (D) F, F, V, V
- (E) V, F, V, V
Questão 4
Considere o seguinte protocolo simplificado de autenticação entre duas entidades, A e B:
- A envia sua identidade para B.
- B envia um desafio aleatório para A.
- A criptografa o desafio com uma chave secreta compartilhada e envia a resposta para B.
- B verifica a resposta e, se estiver correta, aceita a identidade de A.
Sobre esse protocolo, assinale a alternativa correta.
- (A) O protocolo é vulnerável porque a identidade de A é enviada em texto claro, tornando impossível qualquer autenticação.
- (B) O protocolo usa o princípio de desafio-resposta para reduzir o risco de que uma senha seja capturada diretamente na rede.
- (C) O protocolo é equivalente ao uso de criptografia assimétrica, pois utiliza duas chaves diferentes.
- (D) O protocolo não depende de segredo compartilhado entre A e B.
- (E) O protocolo impede todos os ataques possíveis, inclusive ataques de reflexão e ataques de repetição em qualquer cenário.
Questão 5
Explique por que a criação de um canal seguro em sistemas distribuídos depende tanto de criptografia quanto de autenticação. Em sua resposta, aborde:
- a diferença entre confidencialidade e autenticação;
- o papel das chaves criptográficas;
- o problema de escalabilidade no gerenciamento de chaves secretas compartilhadas;
- como KDCs ou chaves públicas podem ajudar nesse processo.
Questão 6
Uma empresa de comércio eletrônico mantém réplicas de seu banco de dados em três regiões geográficas: América do Sul, Europa e Ásia. Durante uma falha de comunicação entre as regiões, os usuários continuam acessando o sistema e realizando compras. A equipe técnica precisa decidir se mantém todas as regiões aceitando novas compras ou se bloqueia temporariamente algumas operações até que a comunicação seja restabelecida.
Com base no Teorema CAP, avalie as afirmativas a seguir.
- I. Em caso de partição de rede, se o sistema continuar aceitando escritas em todas as regiões, ele prioriza disponibilidade e tolerância a partições, mas pode comprometer a consistência forte temporariamente.
- II. Em caso de partição de rede, se o sistema bloquear escritas em algumas regiões para evitar divergência entre réplicas, ele prioriza consistência forte e tolerância a partições, sacrificando disponibilidade.
- III. O Teorema CAP afirma que sistemas distribuídos não podem oferecer consistência, disponibilidade e tolerância a partições simultaneamente, mesmo em condições normais sem falha de rede.
- IV. A consistência eventual pode permitir que réplicas fiquem temporariamente diferentes, desde que o sistema possua mecanismos para convergir posteriormente para um estado consistente.
- V. A tolerância a partições pode ser descartada em sistemas distribuídos globais, pois falhas de rede são eventos raros e não precisam ser consideradas no projeto.
É correto apenas o que se afirma em:
- (A) I, II e IV.
- (B) I, III e V.
- (C) II, III e IV.
- (D) I, II, IV e V.
- (E) I, II, III, IV e V.
Questão 7
Explique como um sistema distribuído pode garantir o término consistente de uma transação distribuída.
Em sua resposta, discuta o papel de mecanismos de coordenação entre os participantes da transação, como protocolos de comprometimento distribuído, e explique por que todos os participantes devem chegar a uma decisão global consistente de commit ou abort.
Questão 8
Em um ambiente ACID, um protocolo clássico de controle de concorrência é o Two-Phase Locking (2PL).
Explique como o protocolo 2PL funciona, descrevendo suas duas fases principais. Em seguida, apresente um exemplo curto envolvendo duas transações concorrentes acessando o mesmo item de dado, mostrando como o uso de bloqueios pode evitar inconsistências.
Questão 9
Apresente exemplos de aplicações nas quais o modelo ACID é preferível ao modelo BASE, e exemplos de aplicações nas quais o modelo BASE é mais adequado que o modelo ACID.
Em sua resposta, explique por que cada modelo é mais apropriado para os exemplos escolhidos, considerando aspectos como consistência, disponibilidade, desempenho, escalabilidade e tolerância a falhas.
Questão 10
Um sistema de gerenciamento de dados possui duas cargas de trabalho distintas. A primeira é composta majoritariamente por consultas de leitura, com poucas atualizações sobre os mesmos registros. A segunda envolve muitas transações concorrentes tentando atualizar os mesmos itens de estoque em horários de pico.
Com base em controle de concorrência otimista e pessimista, avalie as afirmativas a seguir.
- I. O controle pessimista tende a ser mais adequado quando há alta probabilidade de conflitos, pois bloqueia recursos antes que operações conflitantes ocorram.
- II. O controle otimista tende a ser mais adequado quando conflitos são raros, pois permite que transações avancem sem bloqueios longos e verifica conflitos posteriormente.
- III. No controle otimista, uma transação nunca precisa ser abortada, pois conflitos são prevenidos antes da execução das operações.
- IV. No controle pessimista, o uso de bloqueios pode reduzir a concorrência e introduzir risco de deadlocks.
- V. No controle otimista, conflitos podem ser detectados na fase de validação, o que pode levar ao abort e reinício de transações que já executaram parte de seu trabalho.
É correto apenas o que se afirma em:
- (A) I, II, IV e V.
- (B) I, II e III.
- (C) II, III e IV.
- (D) I, III, IV e V.
- (E) I, II, III, IV e V.
Questão 11
Considere um sistema distribuído com três processos, P1, P2 e P3, localizados em três sites diferentes. A exclusão mútua é implementada usando o algoritmo de Ricart-Agrawala.
Considere o seguinte cenário:
- P1 e P2 solicitam a entrada na seção crítica.
- P3 não deseja entrar na seção crítica nesse momento.
- O timestamp da requisição de P1 é
47. - O timestamp da requisição de P2 é
32.
Liste, em detalhes, todos os eventos que ocorrem até que ambos os processos concluam suas seções críticas.
Em sua resposta, explique:
- quais mensagens de requisição são enviadas;
- quais respostas são concedidas imediatamente;
- quais respostas são adiadas;
- qual processo entra primeiro na seção crítica;
- quando o segundo processo recebe permissão para entrar;
- como os timestamps determinam a prioridade entre P1 e P2.
Questão 12
Um servidor gerencia os objetos a1, a2,… an. O servidor fornece duas operações para seus clientes:
read(i)retorna o valor deai;write(i, value)atribuivalueaai.
As transações T e U são definidas como segue:
T: x = read(j); y = read (i); write(j, 44); write(i, 33);
U: x = read(k); write(i, 55); y = read(j); write(k, 66);
Forneça três interposições serialmente equivalentes das transações T e U.
Questão 13
Elabore um protocolo de autenticação simples que usa assinaturas em um sistema criptográfico de chaves públicas.
Questão 14
Por que não é recomendado implementar um nonce como um timestamp?
Questão 15
Considere a figura que introduz o KDC no slide 22 da aula 13b (Segurança - Parte 2). Explique o motivo pelo qual não é necessário ao KDC saber com certeza que está falando com Alice quando ele recebe a requisição de uma chave secreta que Alice pode compartilhar com Bob?
