REDES DE COMPUTADORES
2.5 A CAMADA DE APLICAÇÃO
!
A camada de aplicação fornece os serviços "reais" de rede para os
usuários. Os níveis abaixo da aplicação fornecem serviços de
transporte de dados para o nível de aplicação, mas não fazem
nenhum trabalho real para os usuários.
Considerações de Segurança
!
"É fácil ter um sistema de computação seguro. Você meramente
tem de desconectar seu sistema de qualquer rede externa, e
permitir somente terminais ligados diretamente a ele. Pôr a
máquina e seus terminais em uma sala fechada, e por um guarda
na porta." F.T. Grampp e R.H. Morris
!
Por que segurança é necessária? Para proteger o patrimônio físico
(equipamentos, periféricos, meios de armazenamento) e lógico
(informação, identidades).
!
Quanto proteger? Depende do "valor" do que vai ser protegido.
Depende de quanto custa a proteção e de qual é o custo das
perdas em caso de ataque.
!
Quem ataca? Diversos tipos de pessoas. A tabela a seguir mostra
alguns [poucos] exemplos.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 1
REDES DE COMPUTADORES
Adversário
Estudante
Hacker
Representante
vendas
Empresário
Ex-empregado
Contador
Corretor
Espião
Terrorista
Objetivo
Para obter uma informação engraçada do
correio eletrônico de alguém
Para testar a segurança de um sistema; para
obter dados às escondidas
de Para conseguir representar em Fortaleza ou
Recife, e não em Areia e Bananeiras
Para descobrir o plano estratégico de marketing
de um concorrente
Para se vingar da demissão
Para desviar dinheiro da empresa
Para não cumprir uma promessa feita à um
cliente por e-mail
Para descobrir uma estratégia militar do inimigo
Para roubar segredos sobre guerra biológica
!
Hacker: pessoa que sente prazer em aprender os detalhes dos
sistemas de programação e sugar o máximo de suas capacidades ao aposto da maioria que prefere aprender o mínimo necessário.
!
Cracker: quem usa
seus
conhecimentos
computacionais para fins ilícitos.
sobre
sistemas
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 2
REDES DE COMPUTADORES
!
Política
de
segurança:
determina
limites
aceitáveis
de
comportamento e punições adequadas. Define o que é ou não
permitido fazer com a rede (p.ex. tráfego ftp para fora).
!
Idéia chave: (a) qualquer coisa que você não entende
completamente é perigosa, até você entendê-la; (b) tudo que não
for explicitamente permitido, é proibido.
!
Segundo o Orange Book, existem 7 níveis de segurança definidos.
Alguns mais conhecidos são:
!
♦
Nível D: proteção mínima;
♦
Nível C: controle de acesso discreto (UNIX, WinNT);
♦
Nível B: controle de acesso mandatário (VAX);
♦
Nível A1: projeto de segurança aprovado;
♦
Nível C2: identificação e autenticação obrigatória de usuários,
senhas ocultas para recursos e serviços, etc.
Diversas formas de ataque são usadas hoje em via. Algumas delas
são mostradas na tabela a seguir.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 3
REDES DE COMPUTADORES
Ataque
Descrição
Portas
dos Pedaços de código escritos em aplicações ou sistemas
fundos
(Back operacionais, que realizam serviços não previstos em
sua especificação; Ex. versões alteradas de login,
Doors)
telnet e ftp, que aceitam uma seqüência de teclas para
abrir um acesso ao intruso
Características ocultas em programas, que ficam
Bombas
lógicas (Logic dormentes por um longo período de tempo, tornandose ativas sob certas condições
Bombs)
Viroses
seqüência de código inserida em um programa
(Viruses)
executável; Quando o programa é executado, o código
do vírus também é executado, copiando a si mesmo
para outros programas
Vermes
programas que executam de forma independente,
(Worms)
viajando de uma máquina para outra através da rede
Cavalos
de programas que assemelham-se com um programa que
Tróia
(Trojan o usuário deseja executar (um jogo, um editor, o
programa de login); Enquanto aparente fazer o que o
Horses)
usuário quer, está fazendo algo diferente
Bactéria
programas cuja única proposta é a replicação;
(Rabbits)
Reproduzem-se
exponencialmente,
consumindo
memória, CPU, disco, etc.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 4
REDES DE COMPUTADORES
!
Origem: (a) externa (através da rede); (b) interna (através da
rede interna e/ou por meio de acesso físico).
!
Como tentar evitar ataques externos?
♦
♦
♦
♦
♦
♦
♦
♦
!
Melhoras senhas;
Atenção permanente do administrador;
Configuração da rede visando a segurança do sistema;
Usar ferramentas de monitoração;
Implantar as correções (patches) do sistema;
Bloquear conexões e origens indesejadas;
Usar paredes corta-fogo (Firewalls);
Usar modems com recurso de chamada reversa (call-back).
Como tentar evitar ataques internos?
♦
♦
♦
♦
Bloquear o acesso físico as instalações;
Criar uma política de segurança;
Usar criptografia;
Não abusar de programas de domínio público (p.ex. FTP
anônimo).
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 5
REDES DE COMPUTADORES
Segurança de Senhas
!
"Armado de um dicionário de 250.000 palavras, um cracker pode
comparar todas as suas codificações de palavras com aquelas de
um cadastro de senhas em pouco mais de 5 minutos, usando uma
única estação de trabalho".
!
Como elaborar senhas boas? A tabela a seguir dá uma idéia inicial.
Item
Descrição
1
Usar geradores automáticos de senhas (p.ex. PrKv-10b2)
2
Substituir letras por números em senhas fáceis de memorizar
(p.ex. w1nd0ws)
3
Substituir letras por caracteres especiais em senhas fáceis de
memorizar (p.ex. w!ndow$)
4
Usar algumas letras em maiúsculo na senha (p.ex. WinDowS)
5
Usar método simples de criptografia só conhecido por você
(banana = edqdqd)
6
Usar combinações de letras e abreviaturas (p.ex. peter@DSC)
7
Usar iniciais de frases (p.ex. Esqueci da senha de novo! =
edsdn!
8
Combinar todos os anteriores
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 6
REDES DE COMPUTADORES
SERVIÇOS BÁSICOS DE REDE
DNS – Domain Name Service
Conceituação
!
O esquema de endereçamento TCP/IP prevê que cada elemento da
rede seja identificado de forma única através de um número – o
endereço IP;
!
Trabalhar com números é mais natural para as máquinas, mas as
pessoas preferem trabalhar com nomes; é muito mais fácil
lembrar, por exemplo,
que informações sobre a Universidade
Federal da Paraíba estão disponíveis na máquina www.ufpb.br ao
invés da máquina 150.165.132.1.
!
Guardar uma tabela com todos os nomes e números de máquinas
da Internet em cada máquina conectada à rede é impossível (não
só pelo tamanho, como pela velocidade de atualização da base
para mantê-la consistente);
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 7
REDES DE COMPUTADORES
!
Como resolver o problema? Criar um mecanismo (ou serviço) que
permita que o mapeamento de nomes em números seja feito de
forma distribuída, com muitos computadores (servidores) na rede
“tomando conta” de quantidades mais manipuláveis de nomes;
!
Idéia ! Organizar a Internet em Domínios Administrativos e criar
um banco de dados hierárquico, distribuído, onde exista um ou
mais servidores em cada nível da hierarquia, responsáveis por
fornecer informações sobre nomes que se situam abaixo desse
ponto da hierarquia (apenas um nível).
!
A definição de domínios administrativos e a imposição de que não
se cadastre equipamentos e subdomínios com o mesmo nome em
um domínio, evita a utilização de um mesmo nome para mais de
um equipamento na rede.
!
O nome de todo equipamento na rede vai ser composto de um
nome local (que pode se repetir em domínios diferentes), seguido
por uma hierarquia de domínios;
o nome completo do
equipamento passa a ser seu ‘Nome de Domínio Totalmente
Qualificado’ – “Fully Qualified Domain Name – FQDN”.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 8
REDES DE COMPUTADORES
!
Domínios na Internet refletem uma organização institucional e/ou
geográfica; nos Estados Unidos tem-se, por exemplo:
Domínio
.mil
.edu
.com
.gov
.org
.net
!
Tipo de Instituição
Instituições com fins militares
Instituições educacionais
Instituições comerciais
Instituições governamentais
Instituições
nãogovernamentais
Instituições ligadas à rede
Exemplo
antiSaddan.mil
berkeley.edu
microsoft.com
whitehouse.gov
linux.org
internic.net
No Brasil, tem-se uma organização semelhante, acrescentando-se
o sufixo .br aos domínios anteriores:
Domínio
.mil.br
.edu.br
.com.br
.gov.br
.org.br
.net.br
Tipo de Instituição
Instituições com fins militares
Instituições educacionais
Instituições comerciais
Instituições governamentais
Instituições
nãogovernamentais
Instituições ligadas à rede
Exemplo
emfa.mil.br
pioXI.edu.br
varig.com.br
mare.gov.br
atecel.org.br
embratel.net.br
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 9
REDES DE COMPUTADORES
.
mil
gov
net
com
org
edu
gov
br
net
dee
pt
fr
...
com ufpb
ufal . . .
dsc
...
prai
floquinho
IP=150.165.2.33
floquinho . dsc . ufpb . br = Nome de Domínio Totalmente Qualificado
(único na Internet)
mingau
bidu
Figura 1. Hierarquia de nomes na Internet
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 10
REDES DE COMPUTADORES
!
Toda vez que alguém (em geral, software de aplicação) precisa
descobrir o endereço IP associado a algum nome na rede, faz uma
consulta padrão (consulta ao DNS direto) começando na raiz da
hierarquia, descendo pelos ramos até encontrar a informação
procurada ou descobrir que a mesma não existe na rede (ou não
está cadastrada nos servidores de nomes).
Pergunto:
Qual é o endereço IP da máquina
bidu.dsc.ufpb.br?
Servidor DNS
raíz
(.)
2
3
Servidor DNS
Brasil
( .br )
4
1
10
Responde:
É 150.165.2.75!
Servidor
DNS
do meu
domínio
5
6
Servidor DNS
UFPB
( ufpb.br)
7
8
9
Servidor DNS
DSC
( dsc.ufpb.br)
Figura 2. Consulta ao DNS direto
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 11
REDES DE COMPUTADORES
!
De modo semelhante, alguém pode querer saber qual é o nome
associado à algum endereço IP. Nesse caso, faz uma consulta
padrão (consulta ao DNS reverso) também começando pela raiz da
hierarquia.
Servidor
DNS
raíz
(.)
Pergunto:
Qual é nome da máquina cujo
endereço IP é 200.129.69.1?
2
arpa
3
1
6
Servidor DNS
do meu
domínio
in-addr
...
150
Resposta:
É server.fapesq.rpp.br!
...
165
5
4
151
166
200
...
...
129
130
69
ns.ufpb.br responde pelo
DNS reverso da classe B 150.165
admin.fapesq.rpp.br responde pelo
DNS reverso da classe C 200.129.69
Figura 3. Consulta ao DNS reverso
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 12
REDES DE COMPUTADORES
SMTP – SIMPLE MAIL TRANSPORT PROTOCOL ≡ Correio Eletrônico
Conceituação
!
O serviço de correio eletrônico permite a troca de informação
(mensagens, documentos, etc.) de forma rápida e conveniente
entre dois ou mais usuários da Internet; ele provê comunicação
entre dois pontos distintos na rede, mesmo que o destino não
esteja ativo no momento do envio da informação.
!
O serviço é bastante semelhante ao serviço de correio postal,
podendo ser feitas, inclusive, várias analogias entre elementos
atuantes no correio postal e no correio eletrônico; em ambos,
temos:
♦
♦
♦
♦
♦
Nome e endereço do remetente;
Nome e endereço do destinatário;
Agente de coleta/exibição de correspondência;
Agente de despacho e recepção de correspondência;
Agente de entrega de correspondência.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 13
REDES DE COMPUTADORES
conexão
TCP para
usuário
envia
agente de
transporte
(cliente)
fila de
saída
mensagem
mensagens
saintes
interface
com
o usuário
conexão
TCP para
usuário
recebe
caixas
postais
agente
de
entrega
mensagem
fila de
entrada
agente de
transporte
(servidor)
mensagens
entrantes
Figura 4. Esquema conceitual do serviço de correio eletrônico
!
As interfaces com o usuário mais comuns no ambiente UNIX são:
mail, elm, pine, mailtool.
!
O agente de transporte mais comum no ambiente UNIX é o
programa sendmail.
!
agente de entrega varia de acordo
(Internet, Uucp).
com a origem da mensagens
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 14
REDES DE COMPUTADORES
!
Basicamente, o sendmail é responsável por:
♦
♦
♦
♦
♦
Aceitar mensagens das interfaces (agentes) do usuário;
Reescrever os endereços de acordo com o agente de entrega
adequado;
Encaminhar mensagens saíntes aos destinos;
Receber mensagens entrantes das origens;
Escolher o agente de entrega apropriado para as mensagens
entrantes.
Endereços Eletrônicos
!
Para identificar usuários em um ambiente computacional,
estabeleceu-se uma convenção que define um endereço eletrônico
como sendo:
usuário @ domínio
ou
usuário @ máquina . domínio
!
A primeira forma é preferível porque abstrai o nome da máquina
do endereço do usuário (a máquina pode deixar de existir que o
endereço do usuário continua válido).
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 15
REDES DE COMPUTADORES
Formato de Mensagens
!
Mensagens enviadas/recebidas pelo correio eletrônico têm um
formato padrão.
cabeçalho
corpo
From xuxa @ xuxapark.com.br Mon Feb 7 10:05:30 2000
Delivery-Date: Sat, 07 Mon 2000 10:05:20 BSB
Return-Path: [email protected]
Received: from mail.xuxapark.com.br (201.202.203.254) by
mail.sua_casa.com.br (8.8.5/8.8.5) id AA00123; Mon 7 feb 2000 10:05:10 BSB
Received: from camarim.xuxapark.com.br (201.202.203.1) by
mail.xuxapark.com.br (8.8.5/8.8.5) id AA00123; Mon 7 feb 2000 09:15:45 BSB
Date: Mon, 7 feb 2000 09:15:10 BSB
From: [email protected] (Xuxa Meneguel)
Message-Id: <[email protected]>
Subject: alo baixinho!
To: seu_filho@sua_casa
Ola baixinho! Como vai você?
Figura 5. Formato de mensagens
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 16
REDES DE COMPUTADORES
HTTP – Hiper Text Transfer Protocol / WWW – World Wide Web
Conceituação
!
O sistema WWW define um mecanismo de busca e recuperação de
informação baseado no conceito de hipertexto/hipermídia;
!
Através dele é possível a recuperação de informação na forma de
texto, imagens (estáticas e animadas) e sons na rede, em uma
estrutura cliente/servidor onde o servidor armazena um conjunto
de arquivos de dados que são transferidos para o cliente
(disponível em várias plataformas) sob demanda;
!
Os arquivos de dados (texto) são armazenados no servidor na
linguagem HTML (HyperText Makup Language);
!
O sistema propõe uma forma de identificação de servidores,
serviços e arquivos de modo universal através do localizador
universal de recursos (Universal Resource Locator – URL);
protocolo://servidor[:porta]/caminho/arquivo
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 17
REDES DE COMPUTADORES
!
Protocolo indica o serviço desejado; pode ser:
♦
♦
♦
♦
♦
http: para Hypertext Transfer Protocol
ftp: para File Transfer Protocol
mailto: para correio eletrônico
telnet: para terminal remoto
file: para arquivo local
!
Servidor[:porta] indica o endereço (FDQN ou IP) do servidor
desejado (e a porta, opcionalmente; default é 80);
!
Caminho: indica o caminho (“path”) dentro do sistema de arquivos
do servidor;
!
Arquivo: indica o arquivo desejado;
!
Exemplos:
♦
♦
♦
http://www.dsc.ufpb.br
http://www.copex.dsc.ufpb.br
ftp://ftp.mcafee.com
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 18
REDES DE COMPUTADORES
cliente WEB
servidor WEB
servidor
HTTP
depósito
de
arquivos
Internet
Figura 6. Esquema conceitual do HTTP/WEB
!
O cliente WEB disponibiliza para o usuário, através de um
navegador (browser), um mecanismo de busca, transferência e
apresentação de dados contidos em servidores WEB;
!
Diversos navegadores estão disponíveis:
♦
♦
♦
Mosaic;
Netscape;
Internet Explorer.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 19
Download

REDES DE COMPUTADORES A camada de aplicação fornece os