You are on page 1of 30

Modelos Fundamentais

Aplicações Distribuídas
Licenciatura em Engenharia Informática
3º Ano – 5º Semestre
Ano lectivo 2010-2011

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


1
Modelos Fundamentais
  Modelos que lidam com a sincronização do tempo, atrasos
nas mensagens, falhas e questões de segurança são:
•  Modelo de Interacção– lida com o desempenho e a

dificuldade do estabelecimento de limites temporais


num SD.
•  Modelo de Falhas – Especificação das falhas que

podem ser exibidas pelos processos.


•  Modelo de Segurança – Discute os aspectos de

segurança dos processos e canais de comunicação.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo de Interacção
  Os SD são compostos por múltiplos processos que interagem
durante a execução de um algoritmo distribuído.
  A execução de cada passo do algoritmo ocorre dentro dos processos.
  Os processos interagem trocando mensagens, o que resulta na:
  comunicação (i.e., fluxo de informação)
  coordenação (sincronização e ordenação das actividades) entre
processos.
  Existem dois factores importantes que afectam dois processos em
interacção:
  O desempenho do canal de comunicação / Rede
  A impossibilidade de se manter de uma única noção global de tempo
  O modelo de interacção deve reflectir os factos de que a
comunicação sofre atrasos e que a coordenação de processos está
limitada por estes dois factores

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Desempenho de um canal de comunicação
  Latência:
  Atraso entre o ínicio da transmissão de uma mensagem por um
processo e o correspondente inicio de recepção por outro
processo

  Taxa de Transmissão:
  Quantidade de informação que pode ser enviada num dado
intervalo de tempo.

  Jitter
  Variação na latência de uma série de mensagens. Esta
característica é relevante para aplicações multimédia.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Relógios dos Computadores e
temporização dos eventos
  Cada computador possui o seu relógio interno, que pode ser
usado por processos locais para obter o tempo actual.

  Dois processos em execução em diferentes computadores


associam timestamps com os seus eventos.

  Contudo, mesmo que os dois processos leiam o seu relógio em


simultâneo, podem ler valores distintos.
  Podem existir desvios entre os relógios, mesmo que tenham sido
inicializados ao mesmo tempo.

  Existem técnicas para correcção do tempo dos relógios dos


computadores:
  Recepção de sinais de rádio do sistema GPS (Global Positioning
System) – precisão de 1 microsegundo.
  Sincronização com um servidor central usando o protocolo NTP
(Network Time Protocol) (consultar http://www.oal.ul.pt/hora.php)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Sincronizar Relógios dos Computadores

  Windows XP/Vista
(duplo clique sobre o relógio à Acertar Hora e
Data)

  Mac OS X
(preferências do sistemaà Data & Hora)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo de Interacção

  Num SD é difícil estabelecer limites ao tempo necessário à execução


de um processo, entrega de mensagens e nos desvios dos relógios.
  Sistemas Síncronos – Difíceis de implementar - sistemas em que:
  Cada operação tem um tempo mínimo e um tempo máximo de execução;
  Cada mensagem transmitida no canal deve ser recebida dentro de um
tempo máximo bem conhecido
  Cada processo tem um relógio cujo desvio máximo relativamente ao
tempo real é bem conhecido
  Sistemas Assíncronos, sistemas em que não existem limites:
  Temporais para a execução dos processos, atrasos na mensagens ou nos
desvios dos relógios.
  Muito frequente na Internet; Exemplo: uma mensagem de e-mail pode
demorar horas ou dias a chegar.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Tipos de Interacção

  Activa
  Processo solicita execução de operação noutro processo
  Reactiva
  Evento no sistema desencadeia acção num processo
  Indirecta
  Processos comunicam através de um espaço partilhado

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Interacção Reactiva: Modelo Publish/
Subscribe
  No modelo “publish/subscribe”, um processo (subscritor/
consumidor)
subscreve o interesse num conjunto de eventos junto de
outro processo
(publisher/produtor) que os fornece.
  O publisher envia os eventos de um dado tipo para todos
os processos que o subscreveram

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Interacção Indirecta
  Processos comunicam e coordenam-se através dum
espaço de “memória partilhada distribuída”
  Processos escrevem e lêem dados no espaço de memória partilhada
  E.g., Base de dados

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo de Interacção:
Ordenação de eventos
  A determinação da ordem dos eventos é dificil, umas vez que os nós ou processos não
estão perfeitamente sincronizados
  Existe interesse em saber-se se um dado evento é executado antes, depois ou
concorrencialmente com outro evento noutros processos.
  A execução de um sistema pode ser descrito em termos da ordenação dos eventos.
  Consider uma mailing list com utilizadores X, Y, Z, e A.

send r eceive r eceive


X
1 m1 4
m2
send
2 3 r eceive Phys ical
Y
r eceive t ime

send
Z
r eceive r eceive

m3 m1 m2
A
r eceive r eceive r eceive
t1 t2 t3
Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
Resultado: a Inbox de A será:

Item From Subject


23 Z Re: Meeting

24 X Meeting

26 Y Re: Meeting

  Devido à independente entrega das mensagens, as mensagens podem ser


entregues numa ordem diferente.
  Se as mensagens m1, m2, m3 transportarem o tempo t1, t2, t3, podem,
supostamente, ser mostradas aos utilizadores de acordo com a ordenação
do seu tempo.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo de Falhas
  Num sistema distribuído tanto os processos (e
computadores) como os canais de comunicação podem
falhar
  Não é possível conceber componentes sem falhas, apenas se pode
diminuir a probabilidade de as mesmas ocorrerem

  O modelo de falhas consiste na definição rigorosa de


quais os erros ou avarias, assim como das falhas que
podem ter lugar nos diferentes componentes.
  O modelo de falhas abrange ainda a indicação rigorosa do
comportamento global do sistema na presença dos diferentes tipos de
falhas.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Tipos de Falhas
  Falha por Omissão
  Uma falha por omissão dá-se quando um processo ou um canal de
comunicação falha a execução de uma acção que devia executar
  Exemplo: uma mensagem que devia chegar não chegou
  Falha Temporal
  Uma falha temporal dá-se quando um evento que se devia produzir
num determinado período de tempo ocorreu mais tarde
  Falha Arbitrária
  Uma falha arbitrária ou bizantina dá-se quando se produziu algo não
previsto
  Exemplo: chegou uma mensagem corrompida, um atacante produziu
uma mensagem não esperada.

As falhas por omissão e as falhas temporais dizem-se falhas benignas


pois são mais facilmente mascaráveis e não corrompem tão facilmente
os outros componentes

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Falhas por Omissão e Arbitrárias

Class of failure
Affects
Description

Omission
Channel
A message inserted in an outgoing message buffer never

arrives at the other end s incoming message buffer.



but the message is not put

Send-omission
Process
A process completes asend,
in its outgoing message buffer.



Receive-omissionProcess
A message is put in a process s incoming message

buffer, but that process does not receive it.

Arbitrary
Process or
Process/channel exhibits arbitrary behaviour: it may

(Byzantine)
channel
send/transmit arbitrary messages at arbitrary times,

commit omissions; a process may stop or take an

incorrect step.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Falhas na Comunicação

process p process q

send m receive

Communication channel
Outgoing message buffer Incoming message buffer

Falha send-omission Falha channel-omission Falha receive-omission

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Falhas Temporais

Class of Failure
Affects
Description

Clock
Process
Process s local clock exceeds the bounds on its

rate of drift from real time.

Performance
Process
Process exceeds the bounds on the interval

between two steps.

Performance
Channel
A message s transmission takes longer than the

stated bound.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Mascarando as Falhas
  É possível construir serviços fiáveis com componentes
que exibem falhas.
  Recurso à replicação de dados e componentes

  Múltiplos servidores guardando replicas dos dados podem


continuar a oferecer o serviço mesmo que um deles falhe.

  O conhecimento do tipo de falha pode permitir que um


serviço seja desenhado para mascarar a falha dos
componentes de que depende:
  Exemplo: Uso de Checksums nas mensagens e de mecanismos de
retransmissão

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo de Segurança
  A segurança de um SD baseia-se na definição global de uma estratégia ou
política de segurança que se apoia em diversos mecanismos de protecção
à informação ou recursos, e que deverá ter em conta o valor potencial da
informação, as ameaças esperadas e os custos associados à
implementação.
  No fundo, no fundo … o modelo de segurança consiste em definir quais as
ameaças das quais um sistema se consegue defender.

i) O que queremos proteger?


  Ex. CPUs, ficheiros com dados secretos, acessos a linhas telefónicas, acesso a
periféricos, etc.

ii) Contra quem devemos proteger o sistema?


  Contra espionagem por escuta em cabos, análise criptográfica, tentativas de
adivinhação de palavras chave, etc.

iii) E qual o nível de segurança?


  (...) compromisso entre os custos associados (hardware, software e
operadores) e o potencial valor da informação gerida pelo Sistema Distribuído

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelo de Segurança
  Conceitos Base – Ameaças, ataques, contra-ataque
  Uma ameaça a um sistema consiste em uma pessoa individual ou
organização que quer atentar contra a segurança desse sistema.

  Um ataque é o que acontece quando uma ameaça tenta levar


vantagem sobre uma vulnerabilidade.

  Um ataque activo é quando a ameaça introduz informações no sistema


na tentativa de tirar vantagens sobre as suas vulnerabilidades.

  Um mecanismo de contra-ataque é uma acção tomada com intuito de


fornecer protecção contra um ataque específico (ou classe) a uma
vulnerabilidade particular. (Ex: Cartões de multibanco, 3 tentativas).

  Num ataque passivo a ameaça simplesmente observa a informação


que flui no sistema. Não são introduzidas informações para que se
explorarem as vulnerabilidades desse sistema.

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


O inimigo – Ameaças
•  Para modelar ameaças de segurança, assume-se que o
inimigo tem grande capacidade e pode:
–  Enviar mensagens para qualquer processo
•  Forjar endereço das mensagens, fazendo-se passar por outro
processo
–  Ler, copiar, remover e reenviar mensagens que passam no canal
•  Impedir interacção, repetir interacção, etc.

Copy of
m

The enemy

m
Process
p
m

Process
q

Communication channel

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Realização da Segurança
•  Num sistema existem entidades que do ponto de vista da segurança
têm identidade própria, direitos e deveres – e.g., utilizadores,
processos, etc. Utiliza-se o termo actor/principal para as designar e
que pode ser julgado pelos seus actos.
•  A segurança do sistema distribuído passa por:
–  Proteger os processos e os canais usados para a interacção entre
processos - autenticação dos actores e Canais seguros
–  Proteger os objectos (dados) geridos pelos processos contra acessos
não autorizados - Verificar direitos de acesso aos objectos – controlo de
acessos Access rights Object
invocation

Client
result Server

Principal (user) Network Principal (server)


Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011
Serviços Básicos de Segurança
  Autenticação
  Pelo que se sabe (Ex: login e palavra chave)
  Pelo que se tem (Ex: voz, impressões digitais, retina, ADN, etc)
  Autorização ou controlo de acesso
  Está relacionado com quem pode aceder a um objecto. Envolve
autorização, direitos e previlégios.
  O mecanismo mais comum de autorização são as lista de controlo de
acesso ou ALCs (Access Control Lists). Cada entrada na ACL especifica
um utilizador, grupo de utilizadores, e tipo de acesso permitido (Ex:
Read, Write, eXecute).

Objecto0: (Pedro, *,RWX)


Objecto1: (Pedro, estudante, RWX)
Objecto2: (Pedro, *, RW_),(Ana, estudante, R__)
Objecto3: (*, estudante, R__)
Objecto4: (José, *,___),(Maria, docente, RWX)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Serviços Básicos de Segurança
  Criptografia
  “Os serviços de criptografia permitem que informações sejam enviadas
por meio de harware não confiável.”
  A criptografia geralmente permite:
  Assegurar a privacidade dos dados.
  Verificar a integridade da informação, tal como por exemplo o
CRC faz.

  Exemplo: Cifra de César


  Mensagem original: “O TRABALHO ESTA QUASE CONCLUIDO”

  Mensagem cifrada: “R XUDEDOLR HVXD TZDVH

FRQFOZMGR”

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Canais Seguros

•  Num canal seguro os interlocutores (A e B) estão


autenticados
–  O inimigo não pode ler, copiar, alterar ou introduzir mensagens
–  O inimigo não pode fazer replaying de mensagens
–  O inimigo não pode reordenar as mensagens

Principal A


Principal
B

The image cannot be displayed. Your computer may not have The image cannot be displayed. Your computer may not have
enough memory to open the image, or the image may have enough memory to open the image, or the image may have
been corrupted. Restart your computer, and then open the file been corrupted. Restart your computer, and then open the file
again. If the red x still appears, you may have to delete the again. If the red x still appears, you may have to delete the
image and then insert it again. image and then insert it again.

Process p

Secure channel
Process q


Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Canais Seguros

  Texto = sequência de dados a cifrar aplicando uma dada transformação


(M).

  As transformações de cifragem e descodificação são definidas com duas


partes: uma função (F) e uma chave (K)

  A função f define um algoritmo de cifragem cujo resultado {M} K depende


do valor de uma chave (K).

Chave K
Texto Algoritmo Texto
Original de Cifrado
Cifragem
(M) (F)
({M}K)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Canais Seguros

  Criptografia Chave Privada (ou Simétrica)


  As chaves para cifrar e decifrar o texto são idênticas

Remetente A Destinatário B

1. Aquisição K 1. Aquisiçaõ K
2. f(K,M)->{M}K 2. Recepção {M}K
3. Envio {M}K {M]K 3. f-1 (K,{M}k)->M

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Canais Seguros
  Criptografia Chave Pública (ou Assimétrica)
  Deve ser computacionalmente difícil obter a chave privada Kd a partir
da chave pública Ke

Base de
dados de
Chaves
Públicas

Pedido Ke
Remetente A Ke Destinatário B

1. Cálculo de Ke, Kd
1. Aquisição Ke
2. Publicação Ke
2. E(Ke,M)->{M}Ke
{M]Ke 3. Recepção {M}Ke
3. Envio {M}Ke
4. D(Kd,{M}Ke)->M

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Modelos de Sistemas
Revisão 1.0, Revisão 1.1 (Set. 2010)
2007-2011, Alexandre Fonte (adf@ipcb.pt)

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011


Referências
  Coulouris, Dollimore and Kindberg; “Distributed
Systems: Concepts and Design”; Edition 3, © Addison-
Wesley 2001
  Capítulo 2: System Models (pág. 29-62)

  Para Saber mais sobre Segurança em Sistemas


Distribuídos …
  Unidade Curricular de Segurança Informática

Alexandre Fonte Material de Apoio a AD, ESTCB Edição 2010-2011