P. 1
Lista de Exercios I

Lista de Exercios I

|Views: 3.645|Likes:
Publicado porJosé Neto
Uploaded from Google Docs
Uploaded from Google Docs

More info:

Published by: José Neto on Nov 13, 2012
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

09/24/2015

pdf

text

original

Universidade Estadual de Feira de Santana

Departamento de Tecnologia
Disciplina: Sistemas Distribuídos Avançados
Profa. Elisângela Oliveira Carneiro
Semestre 2012.2

Exercícios

1. Cite tipos de recurso de hardware e recursos de dados ou softwares que possam
ser compartilhados com sucesso. Dê exemplos práticos de seu compartilhamento
em sistemas distribuídos.

Recursos de software: Arquivos, banco de dados
Recursos de hardware: Disco, impressoras, memória
Exemplo: Compartilhamento de arquivos no google docs através da internet ou o
compartilhamento de uma impressora entre vários computadores de um escritório.

2. Como os relógios de dois computadores ligados por uma rede local podem ser
sincronizados sem referência a uma fonte de hora externa?
Dois relógios ligados por uma rede local podem ser sincronizados sem uma fonte
de hora externa, pois , sendo síncrono, é possível saber os limites da taxa de derivação
dos relógios, o atraso máximo de transmissão de mensagens e o tempo que leva para
executar cada etapa de um processo e a técnica que torna isso real chama-se relógios
lógicos.
Um processo envia o tempo t de seu relógio local para o outro em uma mensagem
m, pois o receptor se programaria para configurar o seu com o tempo t + Tmin, onde Tmin
é o tempo necessário para levar a mensagem m de um para o outro, ocorrendo sincronia
perfeita entre eles.
Entretanto Tmin pode sofrer uma variação desconhecida devido às variáveis que
podem influenciar na queda do desempenho da rede(concorrencia pelo canal de
comunicação, por exemplo), mesmo assim, Tmin pode ser estimado considerando o canal
sempre acessível, ou seja, livre de congestionamentos.
Além do Tmin, também existe um limite máximo de tempo para a transmissão da
mensagem. Sendo a incerteza igual a Tmax - Tmin, o receptor pode configurar o seu
relógio no ponto médio da incerteza, ou seja, somar o tempo t que demorou com o Tmax
e o Tmin, sendo o desvio de no máximo a incerteza dividida por dois.

Quais fatores limitam a precisão do procedimento que você descreveu?
O principal fator é a taxa de desvio do relógio ou também chamado de drift dos
computadores conectados na rede que são desvios dos relógios dos computadores que
são calculados a partir de um modelo de relógio perfeito


Como os relógios de um grande número de computadores conectados pela Internet
poderiam ser sincronizados? Discuta a precisão deste procedimento.
Embora seja possível alcançar consenso é impossível obter sincronização através de
sistemas assíncronos.


3. Faça as suas considerações sobre questões como: heterogeneidade, openess,
transparência de distribuição e escalabilidade em sistemas distribuídos.

Heterogeneidade: Está muito relacionada com a migração de código ou código móvel,
pois a heterogeneidade está atrelada à execução de programas em quaisquer
plataformas como a linguaguem java, pois os programas em java são feitos para rodarem
em máquinas virtuais java, e não para um conjunto de processadores e sistemas
operacionais específicos. Portanto a heteregoneidade é a capacidade do sistema permite
o acesso a serviços e executarem aplicativos de um conjunto de computadores e redes
diferentes.

Heterogeneidade: Usuários podem acessar serviços e executarem aplicativos de um
conjunto de computadores e redes diferentes (heterogênios).

Openness: Ou sistema aberto é quando um sistema computacional pode ser estendido e
reimplementado de várias maneiras. Um sistema aberto é determinado principalmente
pela capacidade de atrelar novos serviços e disponibilizá-los para mais clientes. Porém
para alcançar esse tipo de característica, é necessário padronização como feitos pelos
projetistas de protocolos Internet através de emissão de documentos chamados Request
For Comments (RFC).

Transparência de distribuição: Ocultação, para o usuário final ou para um programador de
aplicativos, da separação dos componentes em um sistema distribuído de modo que o
sistema seja percebido como um todo, em vez de uma coleção de componentes
independentes. Existem vários tipos de transparencias, são elas:
● De acesso
● De localização
● De concorrencia
● De replicação
● De falhas
● De mobilidade
● De desempenho
● De escalabilidade

Escalabilidade: A escalabilidade é identificada se um sistema permanece eficiente quando
há um aumento significativo no número de recursos e no número de usuários, sendo
assim, o sistema seria capaz de manter a qualidade de serviço mesmo com um numero
maior de requisições, assim como, expandir facilmente a quantidade de servidores
aumentar a capacidade de processamento da quantidade de requisições.

4. Comente as transparências desejáveis em Sistemas Distribuídos.
As duas transparências que afetam mais fortemente a utilização de recursos dos sistemas
distribuídos, são a de acesso(exemplo, acesso remoto a arquivos) e a de
localização(exemplo, URLs). Existe um termo muito utilizado que é a transparência de
rede indicando quando a de acesso e a de localização estão presentes ao mesmo tempo
em um sistema.

5. QuaI é o papeI do middIeware em um Sistema Distribuído?
Fornecer uma abstração de programação, assim como o mascaramento da
heterogeneidade das redes, de sistemas operacionais e linguagens de programação
subjacentes como a biblioteca RMI do Java.

6. Pode-se conseguir escaIabiIidade peIa apIicação de diferentes técnicas. Quais
são essas técnicas?
São basicamente três técnicas:
● Uso de dados replicados (Replicação)
É amplamente usada e é o segredo da eficácia dos sistemas distribuídos,
pois ela pode fornecer um melhor desempenho, alta disponibilidade e tolerância a
falhas devido ao armazenamento de dados em vários servidores distintos como a
cache dos navegadores e dos servidores proxy, pois são mantidas cópias uns dos
outros.
● Associada a uso de cache (Ocultar latência de comunicação)
A ideia é reduzir comunicação global, passando parte da computação do
servidor para o cliente que está requerendo o serviço. O código e o agente móvel
podem ser utilizados para implementar essa técnica.
● Distribuição
Essa técnica visa particionar o conjunto de objetos nos quais o serviço é
baseado e os distribui ou então mantém cópias duplicadas deles em vários
hospedeiros. A arquitetura peer-to-peer exemplifica muito bem esses dois
aspectos da distribuição.




7. Os sistemas distribuídos mais dinâmicos surgem a partir de variações do modelo
cliente-servidor. Cite exemplos dessas variações e descreva sistemas onde o uso
destas variações são mais apropriados.
● Clientes leves
Chamados de terminais burros, se referem a uma camada de software em
um computador local, que oferece uma interface para que possa executar
aplicativos em um computador remoto, sendo assim, todo o código é executado
em um servidor com grande capacidade de processamento de várias tarefas
simultâneas. A nossa biblioteca possui clientes leves para consulta de material
disponível no acervo.
● Serviços fornecidos por vários servidores
Os serviços podem ser implementados como vários processos servidores
em diferentes computadores hospedeiros, interagindo conforme for necessário.
Um cluster é uma forma bastante comum de implementação de sistemas web que
necessitam oferecer um grande grau de escalabilidade e que se encaixa nessa
variação.
● Servidores Proxies e cache
Assim como a cache de um processador, a caches em sistemas
distribuídos são utilizadas para guardar cópias de objetos em um local mais
próximo, afim de melhorar o tempo de resposta do sistema, guardando objetos
recentemente utilizados. Os navegadores implementam esse conceito de cache
pois eles armazenam localmente, uma cache de páginas recentemente visitadas.
Os servidores proxy fornecem uma cache compartilhada de recursos web para
máquinas clientes de um ou vários sites, aumentando a disponibilidade e o
desempenho do serviço, reduzindo a carga sobre a rede remota e sobre os
servidores web. A universidade possui servidores proxy que acessam servidores
web através de um firewall.
● Código móvel
São códigos aplicativos que são baixados pela maquina cliente para
posterior execução de forma local. Os Applets java são um exemplo bem claro de
códigos aplicativos. Alguns jogos feitos em java através da applets são bastante
usados pois, ao executar um código localmente, a resposta pode ser bem rápida,
pois não sofre os atrasos, nem a variação da largura de banda associada à
comunicação na rede. Vale ressaltar que o código móvel pode representar uma
ameaça de segurança para o usuário então os navegadores limitam os recursos
locais que podem ser utilizados pelos applets.
● Agentes móveis
Um agente móvel é um programa em execução(código e dados) que passa
de um computador para outro em um ambiente de rede, realizando uma tarefa em
nome de alguém, como uma coleta de informações, e finalmente retornando com
os resultados obtidos a esse alguém. Os web crawlers acessam recursos em
servidores web em toda a Internet e que funcionam com muito sucesso e são
muito utilizados por sites de busca como o Google. No caso do agente
móvel(assim como o código móvel), podem ser uma ameça em potencial à
segurança e assim que um computador recebe um agente móvel, deve decidir,
com base na identidade do usuário, quais recursos locais ele pode usar.
● Computadores de rede
Os computadores em rede são compostos de sistema operacional e
aplicativos necessários para o usuários, sendo carregados a partir de um servidor
remoto. O aplicativos são executados localmente mas os arquivos são
gerenciados pelo servidor de arquivos remotos.
● Dispositivos móveis e interoperabilidade espontânea
São associações entre dispositivos que são rotineiramente criadas e
destruídas. Isso ocorre devido ao aumento da quantidade de dispositivos móveis
capazes de se comunicar através de rede sem fio e como esses dispositivos se
movimentam, tem-se um grande problema de transparência de mobilidade
atrelada.

8. Em sistemas distribuídos, existem três modelos que são considerados
fundamentais. Quais são eles? Explique cada um deles.
1 Modelo de Interação: A computação é feita de processos que interagem por
mensagens resultantes gerando uma comunicação e coordenação entre estes
processos. Ele deve refletir as falhas e atrasos que são gerados por elementos
como falta de noção de um tempo único, assincronissidade da maioria das redes,
ordenação de eventos.
2 Modelo de Falha: Define e classifica tipos de falhas com base na análise de seus
efeitos potenciais, assim possibilitando uma busca por um tratamento de seus
efeitos e falhas. As falhas podem ser por omissão, em Pepperlands, por omissão
em canais, arbitrárias ou bizantinas, de temporização (ocorre apenas em sistemas
sincronos),
3 Modelo de Segurança: Tem por objetivo tornar seguro os processos e canais de
comunicação onde passam as transações do sistema que possui os recursos e
objetos compartilhados de um usuário, que não quer que usuários não autorizados
tenham acesso. As origens das ameaças são: Do invasor, que é capaz de ler,
copiar, alterar e excluir uma mensagem ou informação.
Algumas técnicas permitem a implementação de sistemas distribuidos
seguros, elas são, criptografia e segredos compartilhados, autenticação e
utilização de canais seguros. Entretanto ainda se procura meios para solucionar os
problemas de negação de serviço e código móvel.

9. Liste os três principais componentes de software que podem falhar quando um
processo cliente invocar um método em um objeto servidor. Dê um exemplo de
falhas para cada caso. Sugira a maneira como os componentes podem ser feitos
para tolerar as falhas uns dos outros.
1 Reatividade (tempo de resposta): Os sistemas devem ter poucas camadas de
software e minimizar transferência de dados entre o cliente-servidor.
2 Taxa de rendimento (Capacidade do sistema realizar o trabalho): Implantar
computadores que consigam dar conta das requisições e ter uma boa infra-
estrutura de rede.
3 Balancemento de carga (Aplicativos e processos de serviço executem
concomitantemente): Deve-se evitar disputa do mesmo recurso e explorar as
capacidades computacionais disponiveis, pode-se também usar migração de
tarefas parcialmente concluidas.

10. Um serviço é implementado por vários servidores. Explique por que recursos
poderiam ser transferidos entre eles. Seria satisfatório que os clientes fizessem
uma difusão seletiva (multicast) de todos os pedidos para o grupo de servidores
como uma maneira de se obter transparência de mobilidade?
Recursos podem ser transferidos entre os varios servidores porque existe uma
transparencia de quem possui o recurso, ou seja, o compartilhamento dos recursos
acontece em um nível de abstração mais alto e é transparente ao usuário.
É interessante o multicast dos usuários entre os varios servidores do sistema, caso
esses de fato possuam o mesmo serviço (como por exemplo a redundância de dados)
pois os servidores correm menos risco de ficarem sobrecarregados, além da tolerância à
falhas caso algum dos servidores pare de funcionar por falha de rede ou de processo.

11. Descreva e ilustre a arquitetura cliente-servidor de um aplicativo importante de
Internet (por exemplo, web, correio eletrônico, ...). Diga como os servidores
cooperam no fornecimento de um serviço.

É um modelo computacional que separa clientes e servidores, sendo interligados entre si
geralmente utilizando-se uma rede de computadores. Cada instância de um cliente pode
enviar requisições de dado para algum dos servidores conectados e esperar pela
resposta.
um navegador da web é um programa cliente em execução no computador de um usuário
que pode acessar informações armazenadas em um servidor web na Internet. Usuários
de serviços bancários acessando do seu computador usam um cliente navegador da Web
para enviar uma solicitação para um servidor web em um banco. Esse programa pode,
por sua vez encaminhar o pedido para o seu próprio programa de banco de dados do
cliente que envia uma solicitação para um servidor de banco de dados em outro
computador do banco para recuperar as informações da conta. O saldo é devolvido ao
cliente de banco de dados do banco, que por sua vez, serve-lhe de volta ao cliente
navegador exibindo os resultados para o usuário.
O modelo cliente-servidor, se tornou uma das ideias centrais de computação de rede.
Muitos aplicativos de negócios a serem escrito hoje utilizam o modelo cliente-servidor. Em
marketing, o termo tem sido utilizado para distinguir a computação distribuída por
pequenas dispersas computadores da "computação" monolítica centralizada de
computadores mainframe.
Cada instância de software do cliente pode enviar requisições de dados a um ou mais
servidores ligados. Por sua vez, os servidores podem aceitar esses pedidos, processá-los
e retornar as informações solicitadas para o cliente. Embora este conceito possa ser
aplicado para uma variedade de razões para diversos tipos de aplicações, a arquitetura
permanece fundamentalmente a mesma.

12. Frequentemente, os computadores usados nos sistemas peer-to-peer são
computadores utilizados nos escritórios ou nas casas dos usuários. Quais são as
implicações disso na disponibilidade e segurança dos objetos de dados
compartilhados que eles contêm e até que ponto qualquer vulnerabilidade pode ser
superada por meio da replicação?
Quanto à disponibilidade, se nenhum usuário que possua certa parte do arquivo
estiver conectado na rede nenhum outro usuário que esteja fazendo download desse
arquivo conseguirá completar todas as partes. A centralização do serviço em um único
computador não favorece aumento da escala do sistema.
Quanto à segurança, nas redes peer-to-peer esse quesito não é predominante.
Existem problemas de dados corrompidos, latência de transferencia, transferencia não
confiável, etc., além do problema de negação de serviço. Pode-se utilizar autenticação e
criptografia para amenizar os problemas de segurança.
A vulnerabilidade na disponibilidade pode ser solucionada utilizando a replicação
de dados por servidores, transformando esses em seeds e sendo utilizado por todos os
usuários da rede. O problema nesse caso se resume à velocidade de transferência
desses servidores para prover o serviço aos clientes da rede.

13. Dê exemplos de aplicações onde o uso de código móvel seja vantajoso.
1 Deixa que o cliente processe a parte pesada, economizando o processamento do
servidor.
2 Internet Banks:
3 applets

14. Dê alguns exemplos de falhas no hardware e no software que possam/não
possam ser toleradas pelo uso de redundância em um sistema distribuído. Até que
ponto o uso de redundância nos casos apropriados torna um sistema tolerante à
falhas.
Uma falha de disco em um dos servidores pode ser solucionada utilizando a
redundância de dados, onde o cliente poderá se conectar a outro servidor que contenha o
mesmo dado que ele deseja ter acesso.
Uma falha física na rede (cabo quebrado por exemplo) pode ser solucionada com
a replicação de dados.
A redundância de informações enviadas junto aos pacotes trafegados na rede
distribuída é um caso de redundância para evitar falhas de software. Normalmente utiliza-
se bits de paridade ou checksums que servem para detectar erros simples nos dados
transmitidos.
A redundância aumenta a confiabilidade da rede, porém existem redes em que o
custo para a utilização da redundância não vale a sua implementação, como por exemplo
servidores que armazenam controle de tráfego aéreo, pois estes atualizam seus dados
com grande frequência.

15. Considere um servidor simples que executa pedidos do cliente sem acessar
outros servidores. Explique por que geralmente não é possível estabelecer um
limite para o tempo gasto por tal servidor para responder ao pedido de um cliente.
O que precisaria ser feito para tornar o servidor capaz de executar pedidos dentro
de um tempo limitado? Essa é uma opção prática.
É dificil estabelecer um tempo limite para a resposta do servidor ao cliente porque
os sistemas distribuídos (internet, por exemplo) possuem uma latência de resposta muito
diferente a depender de qual servidor está sendo solicitado o serviço. O que acontece é
que as rotas utilizadas podem estar congestionadas, ou passando por vários roteadores,
o que aumenta o tempo para a mensagem chegar ao destino e ser respondido. Além do
mais, servidores que recebem muitas requisições demorarão mais tempo para processá-
las e enviar uma resposta ao usuário.
Para solucionar o problema pode ser utilizado sistemas distribuidos síncronos,
onde existe uma faixa de tempo para que o servidor responda a uma mensagem ou
solicitação do usuário, além de que cada processo possui um relógio local onde a sua
taxa de desvio de tempo é conhecida.
Além dos sistemas síncronos, pode ser utilizado sistemas assíncronos, onde é
preciso fazer um tratamento para amenizar a questão de atrasos e demoras nas
respostas dos servidores na rede. O tempo esperado para a resposta do servidor é
superior ao tempo utilizado pelo sistema síncrono.

16. Considere dois serviços de comunicação para uso em sistemas distribuídos
assíncronos. No serviço A, as mensagens podem ser perdidas, duplicadas ou
retardadas e somas de verificação se aplicam apenas aos cabeçalhos. No serviço B,
as mensagens podem ser perdidas, retardadas ou entregues rápido demais para o
destinatário manipulá-las, mas sempre chegam com o conteúdo correto. Descreva
as classes de falhas exibidas para cada serviço. Classifique suas falhas de acordo
com seu efeito sobre as propriedades de validade e integridade. O serviço B pode
ser descrito como um serviço de comunicação confiável?
● Serviço A
Este serviço fere o principio da integridade devido as mensagens poderem
chegar duplicadas além de ferir também a validade devido a não garantia de
entrega das mensagens.
● Serviço B
Este serviço fere o principio da integridade devido as mensagens poderem
chegar duplicadas, sendo assim o serviço B não é confiável.

17. Imagine um cenário no qual mensagens multicast enviadas por diferentes
clientes são entregues em ordens diferentes em dois membros do grupo. Suponha
que esteja em uso alguma forma de retransmissões de mensagem, mas que as
mensagens que não são descartadas cheguem na ordem do remetente. Sugira o
modo como os destinos poderiam remediar essa situação.
Uma solução possível à situação seria cada destinatário entrega mensagens para a sua
aplicação, na ordem de envio. Quando o destinatário recebe uma mensagem fora de
ordem, ele a guarda até que tenha recebido a mensagem anterior que está sendo re-
transmitida.

18. Como processos e threads se relacionam? Quais são os benefícios de
processos multithread?
Um processo pode possuir várias threads, sendo que caso uma thread tenha que esperar
o recebimento de informação de uma entrada o processo não irá parar, já no caso inverso
tanto a thread como o processo estarão bloqueados.

Beneficios do processo MultiThread:
● Torna possivel o paralelismo em um sistema multiprocessador.
● Os processos MonoThreads fazem uma chamada bloqueadora do sistema,
bloqueando o processo como um todo, o que não ocorre no multiThread.
● Pode agir como um conjunto de programas cooperativos, cada qual executado por
um processo separado.

19. Teria sentido limitar a quantidade de threads em um processo servidor?
Sim. Threads requerem memória para sua própria pilha, assim havendo muitas Threads
pode fazer o servidor não trabalhar corretamente. Outro ponto é que para o sistema
operacional, threads independentes tendem a operar de forma caótica, dificultando o
funcionamento estável do SO causando erros de E/S, erro de paginação, podendo levar a
degradação do desempenho do sistema.

20. Descreva como ocorre a comunicação sem conexão entre um cliente e um
servidor usando a interface sockets.
A comunicação entre processos se resume em transmitir uma mensagem entre o soquete
de um processo e o soquete de outro processo. Para um processo receber uma
mensagem, seu soquete deve estar vinculado a uma porta local e a um dos endereços IP
do computador em que é executado, sendo assim, as mensagens enviadas para um
endereço de IP e um número em particular só podem ser recebidas por um processo cujo
soquete esteja associado a esse endereço e porta.
A comunicação sem conexão é implementada através do protocolo UDP(User Datagram
Protocol) com a inserção de Datagramas em DatagramSockets que por sua vez podem
receber mensagens de forma bloqueante, ou seja, enquanto o processo não receber uma
mensagem, o programa fica travado, porém o envio de mensagens não é bloqueante, não
interferindo no andamento do processo.

21. Como se dá a comunicação entre processos em sistemas de comunicação
síncrona e assíncrona?
● Síncronos: Cada mensagem transmitida em um canal é recebida dentro de um
tempo limite conhecido, levando em consideração o desvio do relógio, atraso de
mensagens e o tempo de execução de um processo.
● Assincrono: As mensagens enviadas são esperadas sem que estejam numa
determinada faixa de tempo (às vezes é necessário estabelecer um prazo final).

22. Explique o modelo de falhas de comunicação do protocolo UDP e TCP.
Compare-os.
Uma comunicação é definida confiável em termos de duas propriedades: integridade e
validade.
● Protocolo UDP
Falhas por omissão: Pode ser que mensagens se percam devido a erros de
soma de verificação ou inexistência de espaço disponível no buffer. A propriedade
de integridade pode ser verificada através de uma soma de verificação no qual
reduz para uma chance insignificante de que qualquer mensagen recebida esteja
corrompida.
Ordenamento: Ocasionalmente as mensagens podem ser entregues em
uma ordem diferente da que foram emitidas.
Os aplicativos que utilizam UDP podem efetuar seus próprios controles
para atingir a qualidade de comunicação desejável.
● Protocolo TCP
A integridade é satisfeita pois os fluxos TCP usam somas de verificação
para detectar e rejeitar pacotes corrompidos, assim como números de sequência
para detectar e rejeitar pacotes duplicados. A validade é satisfeita pois os fluxos
TCP usam timeout e retransmissões para tratar com pacotes perdidos, porém há
garantia de entrega de mensagens, mesmo quando alguns dos pacotes das
camadas inferiores são perdidos.
Se a perda de pacotes em uma conexão ultrapassar um limite, ou se a rede
que está conectando dois processos for rompida ou se tornar seriamente
congestionada, o TCP responsável pelo envio de mensagens não receberá
nenhum tipo de confirmação e, após certo tempo, declarará que a conexão está
desfeita.

23. A segurança em sistemas distribuídos podem ser divididos em duas partes.
Identifique-as. Quais ameaças e ataques estão sujeitos os sistemas distribuídos?
As falhas podem ser falhas de rede e falhas de processo. Estas podem ser
classificadas em falhas por omissão, falhas arbitrárias e falhas de temporização.
As falhas por omissão em processo são os casos onde um processo ou canal de
comunicação deixa de executar as ações que deveria. Nas falhas de rede, o canal de
comunicação realiza uma falha de omissão quando não entrega mensagem ao destino.
As falhas arbitrárias são as piores, pois são falhas que não se sabem onde ou
quando vão acontecer.Nesse tipo de falha qualquer erro pode acontecer, o sistema pode
parar de processar ou de responder, ou fazer processamentos indesejados. No que diz
respeito a falha na rede, as mensagens enviadas podem ser alteradas durante o trajeto
na rede, através do sistema de comunicação, ou podem ser entregues mais de uma vez
no destino ou mensagens inexistentes podem ser geradas.
As falhas de temporização são aplicadas apenas aos sistemas síncronos, que
possuem restrição de tempo. No quesito falha de processo, pode acontecer falha de
relógio, onde o relógio local do processo ultrapassa o limite de sua taxa de desvio em
relação ao tempo físico, ou de desempenho quando o processo ultrapassa o tempo limite
de processamento sem enviar uma resposta ao cliente. Em relação à rede, a transmissão
de uma mensagem pode demorar mais que o tempo limite determinado.

24. Como podemos estabelecer transações eletrônicas seguras em sistemas
distribuídos?
Utilizando criptografia de dados, autenticação de usuário através de número de
celular ou senhas seguras. Pode ser utilizado certificações dos web sites utilizados para
as transações eletrônicas, confidencialidade das informações passadas pelo sistema.

25. É possível projetar sistemas distribuídos seguros? O que devemos levar em
consideração durante o projeto?
É possivel projetar sistemas distribuídos seguros. Devemos eliminar todas as
brechas de segurança do sistema, sempre supondo o pior caso. De fato, é impossivel
tratar todos os erros de segurança do sistema, mas pode-se provê um mínimo satisfatório
de segurança para o usuário do sistema.
Após a implementação do sistema deve-se fazer uma validação formal dos
requisitos e dos protocolos de segurança. Para demonstrar validade dos mecanismos
utilizados os projetistas devem construir uma lista de ameaças. A gravação de logs do
sistema também pode ser utilizado para prover segurança no projeto de sistemas
distribuídos.

26. Qual o papel da criptografia em sistemas distribuídos?
O papel da criptografia é codificar as mensagens que trafegam na rede a fim de
que, caso estas sejam interceptadas, o seu conteúdo não tenha informação relevante
alguma para o interceptador.

27. As trocas iniciais de chave pública são vulneráveis ao ataque do homem no
meio. Descreva as defesas que podem ser aplicadas contra este ataque.
● Utilização de uma conexão segura no momento da troca de chaves pelos atores
que conversarão na rede.
● Utilização de uma entidade segura que possa distribuir a chave para os atores que
conversarão na rede (Key Distribution Centers).

28. Tem sentindo restringir a vida útil de uma chave de sessão? Caso a resposta
seja positiva, dê um exemplo de como isso poderia ser estabelecido.
Sim. A chave de sessão deve ser trocada a cada nova conversação, a fim de
dificultar o descobrimento da chave por atores maliciosos na rede. A troca de chaves
garante que se uma mensagem for interceptada e o interceptador tentar utilizar essa
mesma chave para estabelecer uma comunição, a mesma irá falhar por que a chave
estará vencida.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->