51952248 1285455275-seguranca-de-redes
TRANSCRIPT
Segurança de redes – conceitos e tecnologia
Paulo Gabriel © Soares2010
Segurança de Redes
Para que diversas redes comuniquem, é necessária a presença de um determinado tipo de componente: o router. É o responsável pela comunicação de dados entre redes distintas.
Desempenha esta tarefa analisando os campos de endereço origem e destino, a tabela de rotas e enviando o pacote pelo caminho presente na tabela (rota) ou pelo melhor caminho (caso existam várias rotas para um mesmo destino, e caso o router seja dinâmico).
Em conjunto com o endereço físico das placas de rede, o endereçamento lógico, usado pelos routers, pode ser determinado manualmente. Já o endereço físico não, é registado pelo fabricante na interface de rede.
Paulo Soares
Interligando Redes
Então temos um problema: se trocarmos a placa de rede ao computador este não conseguirá comunicar na rede. Isto seria verdade se não existisse o endereçamento lógico, pois ao trocarmos a interface de rede, todas as tabelas de encaminhamento teriam de ser trocadas, pois o endereço mudou e porque o endereço físico não possui nenhuma característica hierárquica.
Para resolver o problema, as pilhas e o protocolo criaram uma associação entre o endereço físico e o lógico. Tomemos como exemplo a pilha de protocolos TCP/IP. Nela existe um protocolo chamado ARP (Address Resolution Protocol), responsável por descobrir endereços físicos e associá-los a endereços lógicos.
Funciona da seguinte forma:
Paulo Soares
Interligando Redes
Dois computadores numa mesma rede:
1. Computador A deseja comunicar com computador B2. Computador A envia uma chamada ARP para a
rede, para todos os computadores, perguntando “Qual o endereço físico do computador que possui endereço lógico
xpto?”3. Computador xpto ouve e responde: “o meu endereço
físico é zpto!”4. A partir deste momento, o computador A poderá
enviar os pacotes directamente para o computador B, pois todas as informações de endereçamento estão presentes (endereço físico e lógico dele próprio, e do
destino).
Paulo Soares
Interligando Redes
Computadores em redes diferentes
1. Computador A deseja comunicar com computador B2. Computador A verifica o endereço lógico do
computador B, e constata que o mesmo NÃO está na mesma sub-rede que ele próprio
3. Computador A então tenta enviar o pacote para o seu router
4. Computador A estabelece comunicação com o router
5. Router estabelece comunicação com computador B
Paulo Soares
Interligando Redes
Perceber a diferença...
Os endereços físicos só são importantes dentro da mesma rede, justamente porque não existe hierarquia no seu formato.
Contudo, através do endereço lógico, o computador A pode determinar que o computador B não pertencia à sua rede, e enviou o pacote para o componente responsável pela interligação de redes: o router, que por sua vez, sabia para onde enviar o pacote, de forma que o mesmo chegasse ao computador B.
Caso o router não possuísse esta informação, retornaria uma mensagem para o computador A, dizendo: “rede destino inalcançável”.
Paulo Soares
Interligando Redes
TCP/IP pilha de protocolos
Ao contrário do que muitos acham, não é apenas um protocolo de comunicação, mas uma pilha deles. Esta pilha de linguagens de comunicação permite que todas as camadas de comunicação em rede sejam atendidas e a comunicação seja possível.
Todas as pilhas de protocolo, de uma forma ou de outra, tem de atender a todas as camadas, para permitir que os computadores consigam trocar informações. Podemos fazer uma analogia de uma pilha de protocolos com a comunicação verbal.
Se alguém fala com outra pessoa e esta o entende, é porque todas as camadas para que a “fala” seja interpretada foram atendidas. Imagine, para que duas pessoas comuniquem verbalmente, será necessário:Paulo Soares
Interligando Redes
TCP/IP pilha de protocolos
1. Que ambas saibam o mesmo idioma 2. Que ambas tenham toda a estrutura fisiológica para que
emitam som (voz – cordas vocais, língua, garganta, pulmões
3. Que ambas possuam toda a estrutura fisiológica para que ouçam o som (orelha, ouvido interno, tímpanos, etc.)
◦ Nesta pilha de protocolos, temos como mais importantes:
ARP (Address Resolution Protocol) O ARP é o protocolo responsável pelo mapeamento ou
associação do endereço físico ao endereço lógico, de computadores numa mesma rede.
Paulo Soares
Interligando Redes
TCP/IP pilha de protocolos
IP O Internet protocol é o responsável pelo endereçamento
lógico de pacotes TCP/IP. Além disso, é responsável pelo encaminhamento destes pacotes e sua fragmentação, caso a rede seguinte não possa interpretar pacotes do mesmo tamanho.
ICMP (Internet Control Message Protocol) A função do ICMP é basicamente de diagnóstico e tratamento
de mensagens. Através dele é possível determinar, por exemplo, quanto tempo um pacote pode demorar para ir a uma máquina remota e voltar (round trip), bem como determinar se houve perda de pacotes durante a transmissão.
Também é possível determinar qual o caminho que um pacote segue a partir de uma máquina.
Paulo Soares
Interligando Redes
TCP/IP pilha de protocolos
TCP (Transmission Control Protocol) É um protocolo de transporte, responsável pela entrega
correcta dos pacotes. A principal característica é a confiabilidade. Para cada pacote ou conjunto de pacotes que envia, espera do destinatário uma confirmação da chegada dos mesmos. Caso isso não ocorra, ou o pacote chegue corrompido, tratará de efectuar a retransmissão.
Paulo Soares
Interligando Redes
Também coloca nos pacotes um número de sequência, para que o destino possa “agrupar” o dado original, caso os pacotes sigam por caminhos diferentes ou cheguem atrasados (fora de ordem).
TCP/IP pilha de protocolos
UDP (User Datagram Protocol) O UDP assim como o TCP, também é um protocolo de
transporte. Contudo, não possui nenhuma verificação de erros ou confirmação de entrega. É muito utilizado em aplicações que necessitem de tráfego urgente, e não sejam tão sensíveis a algumas perdas de pacotes.
Exemplos de aplicações que usam UDP como transporte: transmissão de áudio e vídeo pela rede (RealPlayer ou Media Player), jogos online (Quake, Half-Life). Pela falta do número de sequência ou confirmação, o tráfego UDP é muito mais vulnerável em termos de segurança.
Paulo Soares
Interligando Redes
Protocolos de Aplicação
Em cima da infra-estrutura fornecida pelos protocolos descritos até agora, funcionam os protocolos de aplicação. Estes fazem a interface com o utilizador, ou com a aplicação do utilizador.
Exemplos de protocolos de aplicação: HTTP (HyperText Transfer Protocol), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), SNMP (Simple Network Management Protocol), POP3 (Post Office Protocol v.3), TELNET, e assim por diante.
Cada protocolo de aplicação comunica com a camada de transporte através de portas de comunicação. Existem 65536 portas possíveis, e por convenção, as portas de 1 a 1023 são conhecidas como “Well Known Port Numbers”, portas privilegiadas ou portas baixas, que possuem serviços mais comuns previamente associados.
Paulo Soares
Interligando Redes
Protocolos de Aplicação
Cada protocolo de aplicação precisa de uma porta, TCP ou UDP, para funcionar. Os mais antigos possuem as suas portas padrão já determinadas. Exemplo:
Paulo Soares
Interligando Redes
Protocolos de Aplicação
As portas acima de 1023 são denominadas portas altas e são usadas como “end points”, ou pontos de “devolução” duma ligação. Ao ler o nosso correio electrónico usamos um protocolo chamado POP3, que funciona na porta 110.
O nosso computador estabelece uma ligação com o servidor de correio electrónico na porta remota 110 e na 1026 (por exemplo) localmente.
A porta local é na maioria dos protocolos uma porta acima de 1023, desde que não esteja a ser usada.
DNS (Domain Name System) Idealizou-se uma forma mais fácil de gerir computadores
ligados a uma rede TCP/IP. Para estabelecer uma ligação devemos fornecer o endereço IP do destino e o serviço que desejamos usar (no caso, a porta) e o transporte.
O DNS foi concebido para evitar o transtorno de decorar dezenas de endereços IP. Através dele, cada host recebe um nome, fácil de aprender, dentro de uma hierarquia, o que ajuda ainda mais na hora de identificá-lo.
Paulo Soares
Interligando Redes
Sockets (de comunicação) Os sockets são a base para o estabelecimento da
comunicação numa rede TCP/IP. Através deles é que a transferência de dados torna-se possível. Cada ligação é montada por um socket, que é composto de três informações:
◦ 1. endereçamento (origem e destino)◦ 2. porta origem / destino◦ 3. transporte
Portanto, ao tentar ler o nosso correio electrónico, um socket será estabelecido entre a nossa máquina e o servidor de correio. Para montá-lo, precisamos:
◦ 1. do nosso endereço IP e do endereço IP destino◦ 2. porta origem / destino (neste caso, porta destino 110, origem 1026)◦ 3. transporte (TCP)
Paulo Soares
Interligando Redes
Utilitários para diagnosticar problemas
PING (Packet INternet Grouper) Utiliza o protocolo ICMP para diagnosticar o tempo de reposta
entre dois computadores ligados numa rede TCP/IP. A partir daí, pode-se ter uma estimativa do tráfego (se o canal de comunicação está ou não saturado) bem como o tempo de latência do canal. A latência dum link está directamente ligada à velocidade do router (em termos de processamento) e não apenas à velocidade do canal de comunicação.
TRACERT (traceroute) O tracert também utiliza pacotes ICMP (em máquinas
Windows) para realizar diagnósticos. Podemos determinar qual o caminho que os pacotes farão até um host destino. A função do tracert é justamente essa: traçar a rota entre uma origem e um destino. Vai mostrar todos os nós (routers).
Paulo Soares
Interligando Redes