Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sumário Unidade I ................................................................................................................................ 4 Introdução ......................................................................................................................... 4 WANET ou MANET ........................................................................................................... 5 Desafios e benefícios ...................................................................................................... 6 Requisitos técnicos ......................................................................................................... 6 Aplicações ......................................................................................................................... 6 Roteamento em redes ad hoc ........................................................................................ 7 Manutenção de rotas ..................................................................................................... 11 Considerações finais ..................................................................................................... 12 Referências...................................................................................................................... 14 Unidade II ............................................................................................................................. 15 Introdução ....................................................................................................................... 15 Aplicações ....................................................................................................................... 16 Estado de pesquisa em redes sobrepostas .............................................................. 17 Resiliência e multicast .................................................................................................. 18 Protocolos P2P ............................................................................................................... 19 Redes sobrepostas e sistemas P2P ........................................................................... 21 Considerações finais ..................................................................................................... 22 Referências...................................................................................................................... 23 Unidade III ............................................................................................................................ 25 Redes virtuais privadas ................................................................................................ 25 Protocolos de encapsulamento VPN .......................................................................... 28 PPTP ................................................................................................................................. 28 L2TP .................................................................................................................................. 29 SSTP ................................................................................................................................. 30 Escolhendo entre protocolos de encapsulamento .................................................. 31 Firewalls ........................................................................................................................... 31 Considerações finais ..................................................................................................... 35 Referências...................................................................................................................... 37 Unidade IV ........................................................................................................................... 38 Introdução ....................................................................................................................... 38 Segurança de redes 802.11 .......................................................................................... 38 Segurança do WAP 2.0 .................................................................................................. 41 Segurança do Bluetooth ............................................................................................... 42 Protocolos de autenticação ......................................................................................... 43 Autenticação baseada em uma chave secreta compartilhada .............................. 44 Autenticação com a criptografia de chave pública ................................................. 49 Considerações finais ..................................................................................................... 50 Referências...................................................................................................................... 52 Unidade V ............................................................................................................................ 53 Qualidade de Serviço .................................................................................................... 53 Requisitos ........................................................................................................................ 53 Técnicas para buscar a qualidade de serviço .......................................................... 55 Superdimensionamento ................................................................................................ 55 Armazenamento em buffers ......................................................................................... 55 Moldagem de tráfego ..................................................................................................... 56 O algoritmo de balde furado ........................................................................................ 57 Reserva de recursos ...................................................................................................... 59 Controle de admissão ................................................................................................... 60 Roteamento proporcional ............................................................................................. 62 Programação de pacotes .............................................................................................. 63 Considerações finais ..................................................................................................... 64 Referências...................................................................................................................... 66 Unidade I Introdução Ad hoc é uma expressão em Latin que significa, literalmente, “para isso”. No idioma inglês, geralmente significa uma solução designada para uma tarefa ou problema específico, não generalizável e que não tem intenção de ser adaptado para outros propósitos. No contexto de ad hoc networks, ou redes descentralizadas, a expressão se encaixa como um verbo, descrevendo um método temporário, provisório ou improvisado de resolver um determinado problema. Pode ser descrito como um protocolo de rede feito à mão. Em resumo, uma rede ad hoc se refere a uma tecnologia que permite comunicação em rede de forma ad hoc, ou, descentralizada. São dois os principais tipos de redes ad hoc: rede ad hoc sem fio/móvel, do inglês wireless ad hoc network (WANET) ou mobile ad hoc network (MANET); e rede ad hoc veicular, do inglês vehicular ad hoc network (VANET). A segunda aplica os mesmos princípios da primeira para o domínio de veículos. No contexto do capítulo, temos maior interesse nas aplicações gerais do protocolo, que tem sua base no estudo das redes móveis e sem fio, logo será o foco dele. O que torna as redes ad hoc diferentes das redes fisicamente conectadas é que todas as regras habituaisa respeito de topologias fixas, vizinhos fixos e conhecidos, relacionamento fixo entre endereço IP e localização e outras, são repentinamente abandonas. Os roteadores podem ir e vir, ou aparecer em novos lugares de um momento para outro. Em uma rede fisicamente conectada, se um roteador tiver um caminho válido para algum destino, esse caminho continuará a ser válido indefinidamente, desde que não ocorra uma falha em algum lugar no sistema. No caso de uma rede ad hoc, a topologia pode se alterar o tempo todo, e assim o interesse e até mesmo a validade dos caminhos podem se alterar de modo espontâneo, sem qualquer aviso prévio. É desnecessário dizer que essas circunstâncias tornam o roteamento em redes ad hoc bem diferente do roteamento nas redes equivalentes fixas. Foram propostos diversos algoritmos de roteamento para redes ad hoc. Um dos mais interessantes é o algoritmo de roteamento AODV, do inglês Ad hoc On-demand Distance Vector. Trata-se de um algoritmo semelhante ao de roteamento com um vetor de distância de Bellman-Ford, mas adaptado para funcionar em um ambiente móvel e que considera a largura de banda limitada e a baixa duração das baterias nesse ambiente. Outra característica incomum é que é um algoritmo por demanda, isto é, determina uma rota até algum destino apenas quando alguém deseja enviar um pacote para esse destino. Uma diferença crítica entre os algoritmos AODV e Bellman-Ford é o fato de que os nós não transmitem difusões periódicas contendo sua tabela de roteamento inteira. Essa diferença economizar largura de banda e também a carga das baterias. AODV também é capaz de realizar o roteamento por difusão e por multidifusão. O algoritmo será detalhado quando discutirmos o roteamento em redes ad hoc. WANET ou MANET Uma rede sem fio ou móvel ad hoc é um tipo descentralizado de rede. Esse tipo de rede é chamado de ad hoc porque não necessita de uma infraestrutura pré-existente, como, por exemplo, roteadores em redes cabeadas. A primeira vez que foi colocada em prática e demostrado que era viável foi em 1999, mas o início de sua pesquisa data do início da década de 1990. Nela, cada nó participa do processo de roteamento, ao encaminhar os dados para outros nós. A definição sobre qual dos nós deve encaminhar os dados é feito de forma dinâmica, baseando-se na conectividade de rede e no algoritmo de roteamento utilizado. No exemplo ilustrado pela Figura 1, o nó C não está dentro do alcance do transmissor sem fio do nó A e o nó A também não está dentro do alcance do transmissor sem fio do nó C. Se A e C desejarem trocar pacotes, terão que recrutar os serviços do nó B para encaminhar os seus pacotes, já que B está em sobreposição com o alcance de A e C. Figura 1 - Estrutura simples de rede ad hoc sem fio com três nós É provável que você já tenha visto, ou até mesmo utilizado, uma conexão ad hoc. No Windows, existe a opção de criar ou conectar-se a uma rede ad hoc, permitindo a comunicação direta com outros dispositivos sem a necessidade de um roteador. Em resumo, redes ad hoc sem fio são autoconfiguráveis e dinâmicas, onde os nós podem se mover livremente. Essa falta de complexidade, principalmente em termos de infraestrutura e configuração, permite que dispositivos criem ou se conectem a redes em qualquer momento ou lugar. Desafios e benefícios A mobilidade proveniente das redes ad hoc dá origem a muitas questões desafiadoras. Se um hospedeiro pode se mover, como será possível descobrir sua localização corrente na rede, de modo que seja possível lhe transmitir dados. Como é realizado o endereçamento, dado que um hospedeiro pode estar em uma entre muitas localizações possíveis. Se o hospedeiro de movimentar durante uma conexão, como os dados serão roteados de modo que a conexão continue sem interrupção. Em algumas situações, a possibilidade de todas as entidades da rede serem móveis podem adicionar uma complexidade excessiva, tornando a topologia muito dinâmica e volátil. Da mesma forma, por não ter entidades centrais, a operação funciona de forma totalmente distribuída. Isso faz com que as funções de rede tenham que ter um alto grau de adaptabilidade. Entre as vantagens, estruturas ad hoc proporcionam uma rede de alta performance, não demandam uma infraestrutura de alto custo monetário para operarem, permite uso de espectro de frequência não licenciado, proporcionam distribuição rápida de informações ao redor dos remetentes e, em caso de falhas, não há interferência no funcionamento da rede, visto que não há roteadores centrais. Requisitos técnicos Uma rede ad hoc é formada por múltiplos nós conectados. A conexão entre esses nós é influenciada pelos recursos de cada um dos nós, como potência do transmissor, potência de computação e memória, etc. Aspectos de comportamento, como confiabilidade, também influenciam. Esses recursos afetam diretamente a qualidade entre as conexões, como largura da conexão, perda de sinal, interferência e ruído. Visto que conexões podem ser feitas e desfeitas a qualquer momento, uma rede funcional deve ser capaz de lidar com essa restruturação dinâmica, preferencialmente de uma forma que seja conveniente, eficiente, confiável, robusta e escalável. A rede deve permitir que dois nós se comuniquem ao retransmitir informação por meio de outros nós. Aplicações Devido a essa natureza descentralizada e falta de complexidade, redes ad hoc, assumindo daqui para frente como sendo sempre sem fio, são aplicáveis à uma gama de diferentes situações onde nós centrais, como roteadores, não são confiáveis. Além disso, esse tipo de rede é mais escalável em comparação com redes sem fio gerenciadas por rotadores. Por exigirem pouquíssima configuração e serem rápidas de tornar disponível, redes ad hoc são ótimas soluções para situações de emergência ou crises, como desastres naturais. A aplicação mais comum de rede ad hoc é para dispositivos móveis. Por dispensar infraestrutura e ser autoconfigurável, permite que esses dispositivos se conectem com o mínimo de fricção. No caso de smartphones, é possível utilizar um tipo específico de rede ad hoc, denominado smartphone ad hoc networks (SPAN). O que a diferencia de uma rede ad hoc móvel comum é o uso de hardware pré-existente nesses dispositivos, como Wi-Fi e Bluetooth, para atuar como conexão, permitindo ligação de ponta a ponta com dispositivos semelhantes. Sua vantagem é dispensar o uso da rede celular das operadoras de telefonia, roteadores sem fio ou qualquer outra forma tradicional de infraestrutura de rede. Há também a aplicação veicular, caso da já citada VANET. Esse tipo é utilizado para a comunicação entre veículos e equipamentos de beira de estrada. A comunicação ocorre por meio de ondas de rádios, sendo formadas de forma instantâneas conforme esses veículos se movem ao longo da estrada. Um subproduto da VANET são as redes ad hoc veiculares inteligentes, do inglês Intelligent vehicular ad hoc networks (InVANETs), que por meio de inteligência artificial auxiliam os veículos a se comportar em situações de colisões com outros veículos e acidentes em geral. Outras aplicações que se beneficiam das facilidades das redes ad hoc são as militares, principalmente por não necessitar de infraestrutura e serem fáceis de operar, e o âmbito de sensores, como naqueles presentes em dispositivos de smart home, sinais de tráfego e até mesmo robôs. Roteamento em redes ad hoc Conforme o vimos anteriormente, uma forma de resumir redes ad hoc é dizer que é uma estrutura de rede formada por roteadores móveis. Entre exemplos possíveis estão veículos militares em um campo de batalha, uma frota de navios no mar, trabalhos de emergência em calamidades, um grupo de pessoas com notebooks, todos esses casos em um situações onde não há uma infraestrutura prévia. Em todos esses casos e em outros, cadanó consiste em um roteador e um host, normalmente no mesmo dispositivo. Em qualquer instante, uma rede ad hoc pode ser descrita por um grafo dos nós, ou seja, roteadores e hosts. Dois nós estão conectados, isto é, há um arco entre eles no grafo, se puderem comunicar-se diretamente utilizando seus sinais de rádio. Tendo em vista que um dos dois pode ter um transmissor mais potente que o outro, é possível que A esteja conectado a B, mas que B não esteja conectado a A. Para simplificar, iremos assumir que todas as conexões são simétricas. Também devemos considerar que o simples fato de dois nós estarem dentro do alcance um do outro não significa que eles estão conectados. Pode haver obstáculos, como edifícios ou rochas, que bloqueiem sua comunicação. Para descrever o algoritmo AODV, iremos utilizar a Figura 2, onde um processo do nó A deseja enviar um pacote ao nó I. O algoritmo AODV mantém uma tabela em cada nó, classificada por destino, fornecendo informações sobre esse destino, inclusive a que vizinhos enviar pacotes para alcançar o destino. Supondo que A procure em sua tabela e não encontre uma entrada correspondente a I. Será necessário descobrir uma rota até I. Essa propriedade de descoberta de rotas apenas quando surge a necessidade é o que torna esse algoritmo por demanda. Figura 2 – Grafo de descoberta de rota utilizando algoritmo AODV As etapas demonstradas na Figura 2 são: a) alcance da difusão de A; b) depois de B e D receberem a difusão de A; c) depois de C, F e G receberem a difusão de A; d) depois de E, H e I receberem a difusão de A. Os nós sombreados são novos destinatários. As setas mostram as rotas inversas possíveis. Para localizar I, A constrói um pacote especial, denominado Route Request, e o transmite por difusão. O pacote alcança B e D, conforme a etapa a) da Figura 2. De fato, a razão para B e D estarem conectados a A no grafo é que eles podem receber comunicações de A. Por exemplo, F não é mostrado como um arco para A, pois não pode receber o sinal de rádio de A. Dessa forma, F não está conectado a A. O formato do pacote Route Request é mostrado na Figura 3. O pacote contém os endereços de origem e destino, em geral seus endereços IP, que identifica quem está sendo procurado. Há também um campo ID da solicitação, um contador local mantido separadamente por cada nó e incrementado toda vez que um pacote Route Request é transmitido. Juntos, os campos endereço de origem e ID de solicitação identificam de forma exclusiva o pacote Route Request, a fim de permitir que os nós descartem quaisquer duplicadas que venham a receber. Figura 3 – Formato de um pacote Route Request Além do contador ID de solicitação, cada nó também mantém um segundo contador de sequência, incrementado sempre que é enviado um pacote Route Request, ou uma resposta ao pacote de outro roteador. Sua função é identificar novas rotas a partir de rotas antigas. O quarto campo da Figura 3 é o contador de sequência de A; o quinto campo é o valor mais recente do número de sequência de I que A detectou, sendo 0 se ele nunca foi detectado. O último campo, contagem de saltos, controlará o número de saltos que o pacote efetuou. Seu valor inicial é 0. Quando um pacote Route Request chega a um nó, B e D no exemplo da Figura 3, esse é processado conforme as seguintes etapas: i) O par, endereço de origem e ID de solicitação, é procurado em uma tabela de histórico local para verificar se essa solicitação já foi vista e processada. Se for uma duplicata, será descartada e o processamento será interrompido. Se não for uma duplicata, o par será inserido na tabela de histórico, para que duplicatas futuras possam ser rejeitadas, e o processamento irá continuar; ii) ii) O receptor procura o destino em sua tabela de rotas. Se for conhecida uma nova rota até o destino, será transmitido de volta à origem um pacote Route Reply, informando como chegar ao destino. Nesse caso, a palavra nota significa que o número de sequência de destino armazenado na tabela de roteamento é maior que ou igual ao número de sequência de destino contido no pacote Route Request. Se for menor, isso quer dizer que a rota armazenada é mais antiga que a rota anterior que a origem tinha para o destino, e então a etapa iii será executada; iii) Tendo em vista que o receptor não conhece uma nova rota para o destino, irá incrementar o campo contagem de saltos e retransmite o pacote Route Request. Também irá extrair os dados do pacote e o armazena como uma nova entrada em sua tabela de rotas inversas. Essas informações serão utilizadas para construir a rota inversa, de forma que a resposta possa voltar à origem mais tarde. As setas na Figura 2 são usadas para construir a rota inversa. Também será inicializado um timer com a entrada de rota inversa inserida mais recentemente. Se ela expirar, a entrada será eliminada. Os pontos B e D não sabem onde está I, e então cada um deles cria uma entrada de rota inversa apontando de volta para A, como demonstrado pelas setas na Figura 2, e transmite o pacote com o campo contagem de saltos definido como 1. A difusão de B alcança C e D. C cria uma entrada para ela em sua tabela de rotas inversas e retransmite. Em contraste, D a rejeita como uma duplicata. De modo semelhante, a difusão de D é rejeitada por B. Porém, a difusão de D é aceita por F e G, sendo armazenada, como mostra a etapa c) da Figura 2. Depois de E, H e I receberem a difusão, o pacote Route Request finalmente alcança um destino que sabe onde I está, ou seja, o próprio I, como ilustra a etapa d) da Figura 2. É possível observar que, embora tenhamos mostrado as difusões em três etapas discretas nesse caso, as difusões de nós diferentes não são coordenadas de nenhuma forma. Em resposta à solicitação recebida, I constrói um pacote Route Reply, como ilustra a Figura 4. Os campos endereço de origem, endereço de destino e contagem de saltos são copiados da solicitação recebida, mas o campo número de sequência de destino é removido de seu contador na memória. O campo contagem de saltos é definido como 0. O campo duração controla por quanto tempo a rota é válida. Esse pacote é retransmitido por unidifusão para o nó de onde veio o pacote Route Request, nesse caso, o nó G. Então o pacote segue o caminho inverso até D e finalmente até A. Em cada nó, o campo contagem de saltos é incrementado, de forma que o nó possa ver a que distância se encontra do destino, no caso I. Figura 4 – Formato de um pacote Route Reply Em cada nó intermediário no caminho de volta, o pacote é inspecionado. O mesmo é inserido na tabela de roteamento local como uma rota para I se uma ou mais das três condições a seguir é satisfeita: i) Não é conhecida nenhuma rota para I; ii) O número de sequência correspondente a I no pacote Route Reply é maior que o valor encontrado na tabela de roteamento; iii) Os números de sequência são iguais, mas a nova rota é mais curta. Desse modo, todos os nós na rota inversa aprendem a rota para I de forma indireta, como um subproduto da descoberta de rota de A. Os nós que receberam o pacote Route Request original, mas que não estavam no caminho inverso, ou seja, B, C, E, F e H no exemplo, descartarão a entrada da tabela de rotas inversas quando o timer associado expirar. Em uma rede grande, o algoritmo gera muitas difusões, até mesmo para destinos que estão próximos. Há, entretanto, uma forma de reduzir número de difusões. O campo prazo de validade do pacote IP é inicializado pelo transmissor com o diâmetro esperado da rede e é decrementado em cada salto. Se alcançar 0, o pacote será descartado, ao invés de ser transmitido por difusão. O processo de descoberta é então modificado. Para localizar um destino, o transmissor envia um pacote Route Request com o campo prazo de validade definido como 1. Se não houver nenhuma reposta dentrode um período de tempo razoável, um outro pacote será enviado, dessa vez com prazo de validade definido como 2. As tentativas subsequentes utilizarão 3, 4, 5, etc. Desse modo, a pesquisa será realizada por tentativa, primeiro no local, e depois em anéis cada vez mais amplos. Manutenção de rotas Por ser possível mover ou desativas os nós, a topologia pode mudar espontaneamente. Por exemplo, na Figura 2, se G for desativado, A não perceberá que a rota esteve usando para I não é mais válida. O algoritmo precisa ter a possibilidade de lidar com esse problema. Periodicamente, cada nó transmite por difusão uma mensagem de “olá”. Cada um de seus vizinhos deve responder a essa mensagem. Se não chegar nenhuma resposta, o transmissor saberá que aquele vizinho saiu de seu alcance e não está mais conectado a ele. De modo semelhante, se tentar enviar um pacote a um vizinho que não responde, o nó aprenderá que o vizinho não está mais disponível. Essas informações são usadas para limpar rotas que não estão mais ativas. Para cada destino possível, cada nó N mantém o controle de seus vizinhos que enviaram um pacote para esse destino durante os últimos T segundos. Esses vizinhos são chamados de ativos de N para esse destino. N faz isso mantendo uma tabela de roteamento organizada por destino e contendo o nó de saída a ser utilizado para acessar o destino, a contagem de saltos até o destino, o número de sequência de destino mais recente e a lista de vizinhos ativos correspondente a esse destino. Uma tabela de roteamento possível para o nó D do exemplo de topologia é mostrada na Figura 5. Figura 5 - Tabela de roteamento de D antes de G ficar inativo Quando qualquer dos seus vizinhos se torna inacessível, N verifica sua tabela de roteamento para ver quais destinos tem rotas que utilizam o vizinho agora inativo. Para cada uma dessas rotas, cada vizinho ativo é informado de que sua rota que passa por N agora é inválida e, portanto, deve ser limpa de suas tabelas de roteamento. Em seguida, os vizinhos ativos comunicam essa informação a seus próprios vizinhos ativos e assim por diante, recursivamente, até todas as rotas que dependem do nó agora inativo serem retiradas de todas as tabelas de roteamento. Como uma ilustração de manutenção de rotas, iremos considerar o exemplo anterior, mas agora com G repentinamente desativado. A topologia alterada é demonstrada na Figura 6. Quando descobre que G está inativo, D observa sua tabela de roteamento e vê que G foi usado nas rotas para E, G e I. A união dos vizinhos ativos para esses destinos é o conjunto {A, B}. Em outras palavras, A e B dependem de G para algumas de suas rotas, e então tem de ser informados de que essas rotas não são mais válidas. D envia essa informação a eles transmitindo pacotes que fazem com que esses vizinhos atualizem suas próprias tabelas de roteamento e, depois disso, D também limpa as entradas para E, G e I de sua tabela de roteamento. Figura 6 - Grafo depois que G fica inativo Considerações finais Redes ad hoc, em geral conhecidas como MANET ou WANET, são um tipo de rede sem infraestrutura e continuamente autoconfigurável de dispositivos móveis conectados de forma sem fio. Cada dispositivo é livre para se mover de maneira independente em qualquer direção, assim sendo, sua conexão com outros dispositivos irá mudar com frequência. Cada um desses dispositivos deve encaminhar dados mesmo que esse dado não tenha uso para si próprio, portanto, cada dispositivos é de certa forma um roteador. O principal desafio em construir uma rede ad hoc é equipar cada dispositivo para continuamente manter a informação necessária para rotear o tráfego de maneira apropriada. Essas redes podem operar de forma independente ou podem estar conectar a Internet. Podem conter um ou múltiplos e diferentes transceptores entre os nós. Isso resulta em uma topologia altamente dinâmica e autônoma. A principal vantagem de redes ad hoc é a sua natureza ad hoc, onde os nós são móveis, ou seja, não há uma infraestrutura fixa, tornando possível diversas aplicações em áreas diferentes. Por ser descentralizada, esse tipo de rede é tipicamente mais robusta que redes comuns centralizadas, devido a forma multisaltos com que a informação é retransmitida. A Figura 7 ilustra a diferença entre uma rede com protocolo de salto único e uma rede multisaltos. Outras vantagens incluem flexibilidade, escalabilidade e baixo custo de administração. Figura 7 - a) Roteamento de salto único; b) roteamento multisaltos Com essas vantagens seguem algumas desvantagens em performance de rede. Em virtude da falta de infraestrutura fixa, variações de performance podem ocorrer frequentemente. Ademais, visto que a topologia da rede determina a ocorrência de interferência e, consequentemente, conectividade, o padrão de mobilidade dos dispositivos dentro da rede irão impactar na performance da rede, possivelmente resultando em dados tendo que ser reenviados diversas vezes. Em referência as aplicações, são diversas as possibilidades, indo desde sensores para captação de informações ambientais, comunicação entre veículos, equipamentos de tráfego, dispositivos de domésticos inteligentes, troca de mensagens de ponta a ponta, operações de resgate em desastres, robôs e assim por diante. Referências Hoebeke, Jeroen, et al. "An overview of mobile ad hoc networks: applications and challenges." Journal-Communications Network 3.3 (2004): 60-66. Johnson, David B., and David A. Maltz. "Dynamic source routing in ad hoc wireless networks." Mobile computing. Springer, Boston, MA, 1996. 153-181. Li, Jinyang, et al. "Capacity of ad hoc wireless networks." Proceedings of the 7th annual international conference on Mobile computing and networking. ACM, 2001. Maltz, David A., et al. "A performance comparison of multi-hop wireless ad hoc network routing protocols." Proceedings of ACM MobiCom. Vol. 114. 1998. Tanenbaum, Andrew S. "Network protocols." ACM Computing Surveys (CSUR) 13.4 (1981): 453-489. Toh, C-K., et al. "Experimenting with an ad hoc wireless network on campus: insights and experiences." ACM SIGMETRICS Performance Evaluation Review 28.3 (2000): 21-29. Toh, Chai-Keong. Wireless ATM and Ad-Hoc Networks: Protocols and Architectures. Springer Science & Business Media, 2012. Zanjireh, Morteza M., Ali Shahrabi, and Hadi Larijani. "Anch: A new clustering algorithm for wireless sensor networks." 2013 27th International Conference on Advanced Information Networking and Applications Workshops. IEEE, 2013 Unidade II Introdução De forma bem simples, uma rede overlay, ou sobreposta, é uma rede construída em cima de outra rede. Para entender como uma rede sobreposta funciona, podemos pensar em nós conectados por ligações virtuais ou lógicas, onde cada uma dessas ligações corresponde a um caminho, podendo percorrer diversas ligações físicas, na rede subjacente. Uma outra forma de definir redes sobrepostas é dizer que elas criam uma topologia virtual estruturada acima do nível básico de protocolo de transporte que facilita a busca determinística e garante a convergência. Redes sobrepostas possuem uma camada semântica de rede acima do nível básico de protocolo de transporte que organiza a topologia da rede de acordo com o conteúdo dos nós, implementando uma abstração de uma tabela de hash distribuída que proporciona balanceamento de cargo, encaminhamento de consulta e tempos de pesquisa limitados. Devido a essas características, redes sobrepostas tem se tornado um componente crítico para sistemas que demandam organização automática. Por exemplo, sistemas distribuídos como redes de ponta a ponta (P2P) e aplicações cliente-servidor são redes sobrepostas, uma vez que seus nós funcionam “por cima” da Internet. A Figura 1 apresenta um exemplode topologia de uma rede sobreposta. Figura 2 - Exemplo de rede sobreposta Por definirem os vizinhos dos nós de acordo com o conteúdo armazenado, redes sobrepostas podem mudar a forma de busca de um problema de travessia de gráfico em um processo iterativo localizado. Nesse processo, cada salto aproxima a consulta do seu conjunto de saltos de destino, que pode ser calculado de acordo com uma função matemática. Isso reduz a carga geral da rede e torna o processo de busca determinístico. Em termos abstratos, uma rede sobreposta opera de forma similar uma tabela de hash distribuída, ao permitir inserção de chave, consulta e remoção. Ao destrincharmos a rede sobreposta ilustrada na Figura 1, podemos identificar as diversas camadas lógicas que a compõe, entre eles uma camada IP, uma camada SONET/SDH, uma camada ótica e uma camada de site. Figura 3 - Rede sobreposta quebrada em camadas lógicas SONET, ou synchronous optical networking, e SDH, ou synchronous digital hierarchy, são protocolos padrões que transferem vários fluxos de bits digitais de forma síncrona sobre, por exemplo, fibra óptica. Aplicações Redes sobrepostas são utilizadas em telecomunicações devido a disponibilidade de equipamentos de comutação de circuitos digitais e a fibra ótica. Redes de telecomunicações e redes baseadas em IP são todas sobrepostas com pelo menos uma camada de fibra ótica, uma camada de transporte e uma camada IP ou camadas de comutação de circuitos. Atualmente a Internet é a base para redes sobrepostas que podem ser construídas visando possibilitar o roteamento de mensagens à destino que não são especificados por um endereço de IP. Por exemplo, tabelas de hash distribuídas podem ser usadas para rotear mensagens à um nó que possua um endereço lógico específico, de quem o endereço de IP não é previamente conhecido. Redes sobrepostas também foram propostas como forma de melhorar o roteamento da Internet, como por meio de garantias de qualidade de serviço visando alcançar streaming de mídia de alta qualidade. Várias das propostas, porém, não foram aceitas em larga escala, principalmente devido a necessidade de mudanças em todos os roteadores da rede. Por outro lado, uma rede sobreposta pode ser implantada de forma incremental em end-hosts rodando o software de protocolo de sobreposição, mesmo sem a cooperação das provedoras de Internet. A rede sobreposta não possui controle sobre como os pacotes na rede subjacente são roteados entre dois nós sobrepostos, mas pode controlar a sequência de nós sobrepostos que uma mensagem percorre antes de atingir seu destino. Entre os principais protocolos de redes sobrepostas baseados em TCP/IP, podemos citar: http e https; as já mencionadas tabelas de hash distribuídas (DHT), do inglês Distributed hash tables; diversos protocolos P2P, como Tor e JXTA; e XMPP. Estado de pesquisa em redes sobrepostas Pesquisadores estão utilizando redes sobrepostas em diversas aplicações, desde roteamento de Internet até armazenamento de rede distribuído. O sistema de roteamento Internet Indirection Infrastructure (i3), baseado em sobreposição, por exemplo, busca simplificar a implantação e gerenciamento de serviços de rede ao dissociar os atos de envio e recebimento. Esse nível adicional de indireção proporciona maior flexibilidade na mobilidade de nós e em localização e implantação de serviços. Há também sucesso, por parte dos pesquisadores, em implantar redes sobrepostas como parte de sistemas de armazenamento distribuído, como por exemplo, sistema de arquivos cooperativo. O sistema de arquivo cooperativo interpreta os valores armazenados da rede Chord como um sistema de arquivos e inclui recursos como replicação para uma maior robustez. A rede Chord é um tipo de rede sobreposta, onde a rede é organizada com base no endereço IP de cada um dos nós participantes, diferentemente de outras redes, que utilizam o conteúdo dos nós como forma de organização. No caso do Pastry, um tipo de rede sobreposta similar ao Chord, porém, focada na implementação de uma tabela hash distribuída (DHT), os pesquisadores conseguiram aplicar o sistema para diversas aplicações finais, já disponíveis para usuários, como armazenamento em cache da Web cooperativo, notificação de grupos e mensagens instantâneas. Algoritmos de redes sobrepostas são temas de diversas pesquisas e desenvolvimento em andamento. Particularmente, o principal foco dessas pesquisas está em reduzir os custos de operação de rede, como entrada e saída simultânea de múltiplos nós, tolerância a falhas, segurança e proximidade física, ao modificar a sobreposição ao adaptar-se melhor a topologia física subjacente. Resiliência e multicast Redes Sobrepostas Resilientes, ou Resilient Overlay Networks (RON), são arquiteturas que permitem aplicações distribuídas da Internet a detectar e se recuperar de desconexão ou interferência. Protocolos de roteamento de área ampla atuais que levam cerca de vários minutos para se recuperar são melhorados com esta sobreposição de camada de aplicação. Os nós da RON monitoram os caminhos da Internet entre si próprios e irão determinar se devem ou não redirecionar pacotes diretamente via a Internet ou via outros nós da RON, otimizando assim as métricas específicas da aplicação. Uma rede sobreposta resiliente possui um projeto conceitual simples. Nós RON são implantados em diversas localidades da Internet. Esses nós formam uma camada de aplicação sobreposta que coopera no roteamento de pacotes. Cada um dos nós RON monitoram a qualidade dos caminhos de Internet entre eles, e usa essa informação para automaticamente selecionar os caminhos de cada pacote de maneira precisa, portanto, reduzindo a quantidade de tempo necessária para se recuperar de uma baixa qualidade de serviço. Em redes de computadores, multicast é uma comunicação em grupo, onde a transmissão de dados é endereçada para um grupo de nós de destino de forma simultânea. Em um roteamento unicast, a mensagem é destinada a apenas um dos nós que compõem uma rede, conforme ilustra a Figura 3. Figura 4 - Esquema de roteamento unicast Por outro lado, em um roteamento broadcast, a mensagem é distribuída entre todos os nós da rede. A Figura 4 demonstra esse funcionamento. Figura 5 - Esquema de roteamento broadcast O multicast está entre esses dois tipos, pois a mensagem é destinada para mais de um nó, mas não obrigatoriamente para todos os nós. O multicast pode ser distribuído de um para muitos e de muitos para muitos. A Figura 5 apresenta o esquema de distribuição multicast. Figura 6 - Esquema de roteamento multicast O multicast sobreposto é também conhecido como End System ou Multicast de ponta a ponta. Multicast de múltiplas fontes de alta largura de banda entre nós amplamente distribuídos é uma capacidade crítica de uma grande variedade de aplicações, incluindo conferência de áudio e vídeo, jogos multi-party e distribuição de conteúdo. Ao longo da última década, um número de projetos de pesquisa tem explorado o uso de multicast como um mecanismo eficiente e escalável para suportar estes tipos de aplicações de comunicação em grupo. O multicast desacopla o tamanho do conjunto de receptores da quantidade de estado mantida em um único nó e evita potencialmente a comunicação redundante na rede. A implantação limitada do IP Multicast, um protocolo multicast de camada de rede de melhor esforço, tem levantado um interesse considerável em abordagens alternativas que são implementadas na camada de aplicação, utilizando apenas end-systems. Em uma abordagem multicast sobreposta ou end-system, nós participantes organizam-se em uma topologia sobreposta para entrega de dados. Cada aresta nesta topologia corresponde a um caminho unicast entre dois end-systems ou nós na rede subjacente da Internet. Toda a funcionalidaderelacionada a multicast é implementada nos nós e não nos roteadores, e o objetivo do protocolo multicast é construir e manter uma sobreposição eficiente para a transmissão de dados. Há, porém, algumas desvantagens relacionadas ao multicast, entre elas, lentidão na propagação dos dados, latência longa e pacotes duplicados em certos pontos. Protocolos P2P Sistemas peer-to-peer (P2P), ou de ponta a ponta, são sistemas distribuídos que operam sem uma organização ou controle centralizados. A arquitetura P2P particiona as tarefas entres os nós, esses nós possuem os mesmos privilégios e participam em mesma medida. Os nós disponibilizam uma fração dos seus recursos, como poder de processamento, armazenamento em disco ou largura de banda, para outros nós que participam da rede, tudo sem a necessidade de um controle central mediado por servidores. A Figura 6 e Figura 7, ilustram, respectivamente, uma rede P2P e uma rede baseada no modelo tradicional de cliente-servidor. Figura 7 - Modelo de rede P2P Figura 8 - Modelo de rede baseada em cliente-servidor Portanto, em sistemas P2P, os nós são igualmente fornecedores e consumidores de recursos, em contraste com o tradicional modelo cliente- servidor, onde o consumo e o fornecimento de recursos é dividido. Sistemas P2P colaborativos emergentes vão ainda além de ter apenas nós executando tarefas similares enquanto dividem recursos, ao procurar por nós diversos que possam agregar recursos e capacidades únicas a uma comunidade virtual, e assim, tornando a comunidade capaz de empenhar tarefas maiores, além daquelas que podem ser realizadas por nós individuais, mas que ainda são benéficas para todos os nós. A arquitetura P2P, embora tenha sido utilizada anteriormente em diversos domínios de aplicação, tornou-se popular com a advento dos softwares de compartilhamento de arquivos, em especial o Napster. No Brasil, quem já tinha acesso a Internet no início dos anos 2000, mesmo que discada, provavelmente utilizou, ou conheceu, softwares similares, como eMule (Figura 8) e Kazaa. Figura 9 - Interface do eMule Redes sobrepostas e sistemas P2P Para encontrar um pedaço de dado em particular dentro da rede, sistemas P2P, de maneira explícita ou implícita, fornecem um mecanismo de pesquisa, ou função de localizador, que corresponde um dado pedaço de texto, ou chave, com um ou mais nós de redes responsáveis pelo valor associado com aquela chave. Nós P2P interoperam usando o mesmo software ou o mesmo conjunto de APIs baseadas em rede. As aplicações P2P atuais na Internet tipicamente proporcionam funções localizadoras utilizando mecanismos de inundação controlada time-to-live (TTL). Nessa abordagem, o nó de pesquisa encapsula a consulta em uma mensagem única e envia para todos os vizinhos conhecidos. Os vizinhos então verificam se eles podem responder à consulta combinando-a com as chaves em seu banco de dados interno. Se eles encontram uma correspondência, eles respondem, caso contrário, eles encaminham a consulta para seus vizinhos e aumentam a contagem de saltos da mensagem. Se a contagem de saltos ultrapassa o limite do TTL, o encaminhando para. O valor TTL define, assim, um limite para a consulta, que controla a sua propagação. Sistemas baseados em inundações, porém, não escalam de forma adequada devido a carga de largura de banda e processamento que colocam sobre a rede. Além disso, eles não fornecem garantias quanto a tempos de pesquisa ou acessibilidade ao conteúdo. É aqui que redes sobrepostas entram, pois podem abordar essas questões. As qualidades de redes sobrepostas que foram expostas durante a introdução são a razão para estas serem formas interessantes de aplicar sistemas P2P. Porém, podemos destacar novamente, de forma resumida, quatro dessas principais qualidades, sendo: recuperação de dados garantida; horizontes de tempo de pesquisa disponíveis, sendo normalmente O(log N), onde N é o número de nós da rede; balanceamento de carga automático; e auto- organização. O padrão de conectividade de uma rede sobreposta é diferente daquele obtido em um algoritmo baseado em TTL, pois é estruturado e tipicamente simétrico. A estrutura é baseada em uma ou mais funções matemáticas que determinam como os nós estão conectados. A estrutura da rede contribui para os limites de tempos de pesquisa associados às sobreposições. Quando um nó falha, o algoritmo da rede sobreposta proporciona mecanismos que permitem que a rede se recupere e recrie, ou mantenha, uma estrutura de rede apropriada. Uma diferença importante entre redes sobrepostas e redes P2P desestruturadas é que as sobreposições buscam pelos dados com base em identificadores que são derivados diretamente do conteúdo, com isso, não há um suporte nativo para busca por meio de inserção de texto. Embora o trabalho esteja em andamento para a pesquisa de palavras-chave em camadas sobre as sobreposições, se isso pode ser feito com eficiência suficiente para suportar redes de larga escala, ainda é um problema em aberto. Considerações finais Uma rede sobreposta, ou rede overlay, é um conceito de redes de computadores. Nesse tipo de redes, uma nova rede é criada virtualmente por cima de uma já existente. Um exemplo simples de uma rede sobreposta está presente em redes domésticas, com uma rede ethernet, que pode conectar computadores que estão na mesma rede. Nesse exemplo, a rede é criada na camada de enlace. Isto é o suficiente para ter uma comunicação entre os nós desta rede, mas não para ligar esta rede com outras redes, como a Internet. Para isso, é preciso adicionar a camada de rede para os computadores e para o roteador, dando assim ao sistema a capacidade de rota e a criação de uma rede sobreposta. Uma rede sobreposta é organizada como nós de laços virtuais que funcionam por cima da Internet. Dessa forma, é possível ver uma rede sobreposta como uma máscara que cobre uma rede previamente existente. Essa máscara serve para criar laços virtuais entre certos nós da rede existente. Com isso, é criada uma rede onde a comunicação é baseada nos nós pertencentes a rede sobreposta, como o que acontece em redes P2P, na maioria dos casos sem levar em conta os nós intermediários do caminho que não fazem parte da rede sobreposta. Do ponto de vista físico, redes sobrepostas são muito complexas, já que combinam diversas camadas lógicas que são operadas e construídas por diversas entidades. Mas elas permitem um maior nível de abstração, dessa forma permitindo muitos serviços que não poderiam ser propostos por um único operador de telecomunicações. Muitas redes P2P são redes sobrepostas, pois são organizadas como um sistema virtual de nós que funcionam em cima da Internet. Além disso, esse tipo de rede pode ser utilizado para que um pequeno grupo de nós possa se comunicar com benefícios superiores em relação aos que são acessíveis a outros nós da rede. Dessa forma, criando uma rede com hierarquias. Redes Virtuais Privadas, do inglês Virtual Private Network (VPN), são outro tipo comum de rede sobreposta que utilizamos no dia a dia. Em uma rede P2P, um algoritmo de roteamento distribuído é utilizado para definir a localização dos nós da rede sobreposta. Esse algoritmo não considera a real localização dos nós na rede em que está sobreposto, já que é implementado sobre a camada de aplicação. Com esse algoritmo, localiza-se que hospedeiro da rede P2P possui o objeto requisitado, e depois é gerado o caminho até ele, por meio da rede sobreposta. Como em redes P2P é comum existirem réplicas dos objetos para fins de disponibilidade, o algoritmo guarda pouca informação sobre a localização das cópias. Ao invés disso, como essa essa informação pode ser alterada diversas vezes em um curto espaço de tempo, o algoritmo manda requisições procurando um nó disponível com a cópia do objeto desejado mais próximo.Referências Andersen, David, et al. Resilient overlay networks. Vol. 35. No. 5. ACM, 2001. Bandara, HMN Dilum, and Anura P. Jayasumana. "Collaborative applications over peer-to-peer systems–challenges and solutions." Peer-to-Peer Networking and Applications 6.3 (2013): 257-276. Barkai, David. Peer-to-Peer Computing: technologies for sharing and collaborating on the net. Intel Press, 2001. Dabek, Frank, et al. "Wide-area cooperative storage with CFS." ACM SIGOPS Operating Systems Review. Vol. 35. No. 5. ACM, 2001. Doval, Diego, and O. Donal. "Overlay networks: A scalable alternative for P2P." IEEE Internet computing 4 (2003): 79-82. Harte, Lawrence. Introduction to Data Multicasting, IP Multicast Streaming for Audio and Video Media Distribution. Althos, 2008. Rowstron, Antony, and Peter Druschel. "Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems." IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing. Springer, Berlin, Heidelberg, 2001. Schollmeier, Rüdiger. "A definition of peer-to-peer networking for the classification of peer-to-peer architectures and applications." Proceedings First International Conference on Peer-to-Peer Computing. IEEE, 2001. Stoica, Ion, et al. "Chord: A scalable peer-to-peer lookup service for internet applications." ACM SIGCOMM Computer Communication Review 31.4 (2001): 149-160. Stoica, Ion, et al. "Internet indirection infrastructure." ACM SIGCOMM Computer Communication Review. Vol. 32. No. 4. ACM, 2002. Tarkoma, Sasu. Overlay Networks: Toward Information Networking. Auerbach Publications, 2010. Tanenbaum, Andrew S. "Network protocols." ACM Computing Surveys (CSUR) 13.4 (1981): 453-489. Unidade III Redes virtuais privadas Uma rede virtual privada, do inglês virtual private network (VPN), estende uma rede privada através de uma rede pública e permite que os usuários enviem e recebam dados em redes compartilhadas ou públicas como se seus dispositivos de computação estivessem diretamente conectados à rede privada. Aplicações em execução em um dispositivo, por exemplo um notebook, desktop, smartphone, através de uma VPN pode, portanto, se beneficiar da funcionalidade, segurança e gerenciamento da rede privada. A criptografia é uma parte comum, embora não inerente, de uma conexão VPN. Uma VPN é criada estabelecendo uma conexão virtual ponto a ponto através do uso de circuitos dedicados ou com protocolos de encapsulamento em redes existentes. Uma VPN disponível na Internet pública pode fornecer alguns dos benefícios de uma rede de longa distância (WAN). Da perspectiva do usuário, os recursos disponíveis na rede privada podem ser acessados remotamente. A tecnologia VPN foi desenvolvida para permitir que usuários remotos e filiais acessem aplicações e recursos corporativos. Para garantir a segurança, a conexão de rede privada é estabelecida usando um protocolo de encapsulamento em camadas criptografado, e os usuários da VPN usam métodos de autenticação, incluindo senhas ou certificados, para obter acesso à VPN. A Figura 1 ilustra uma visão geral da conectividade de uma VPN. Figura 10 - Visão geral da conectividade VPN Em outras aplicações, usuários da Internet podem proteger suas conexões com uma VPN, para contornar restrições geográficas e censura ou para se conectar a servidores proxy visando proteger a sua identidade e localização, permanecendo anônimo na Internet. No entanto, alguns sites bloqueiam o acesso à tecnologia VPN conhecida para evitar a contenção de suas restrições geográficas, e muitos provedores de VPN têm desenvolvido estratégias para contornar esses obstáculos. Muitas empresas têm escritórios e fábricas espalhados por muitas cidades, às vezes por vários países. Antigamente, antes das redes públicas de dados, era comum tais empresas arrendarem linhas dedicadas da companhia telefônica entre alguns pares de locais ou entre todos eles. Algumas empresas ainda fazem isso. Uma rede construída a partir de computadores de empresas e de linhas telefônicas dedicadas é chamada rede privada. Um exemplo de rede privada que conecta três locais é mostrado na Figura 2. Figura 11 - Rede privada de linha dedicada As redes privadas funcionam muito bem e são bastante seguras. Se as únicas linhas disponíveis forem as linhas dedicadas, nenhum tráfego poderá vazar para fora das instalações da empresa, e os intrusos terão de grampear fisicamente as linhas para entrar, o que não é fácil. Quando surgiram as redes públicas de dados e mais tarde a Internet, muitas empresas optaram por mover seu tráfego de dados, e possivelmente o de voz, para a rede pública, mas sem desistirem da segurança da rede privada. Essa demanda logo levou à criação de VPNs, que são redes sobrepostas às redes públicas, mas com a maioria das propriedades de redes privadas. Elas são chamadas "virtuais" porque são meramente uma ilusão, da mesma forma que os circuitos virtuais não são circuitos reais e que a memória virtual não é memória real. Embora as VPNs possam ser implementadas sobre redes ATM, ou frame relay, uma abordagem cada vez mais popular é construir VPNs diretamente sobre a Internet. Um projeto comum é equipar cada escritório com um firewall e criar túneis pela Internet entre todos os pares de escritórios, como ilustra a Figura 3. Se o IPsec for usado no tunneling, será possível agregar todo o tráfego entre dois pares de escritórios quaisquer em uma única Security Association (SA) autenticada e criptografada, fornecendo assim controle de integridade, sigilo e até mesmo uma considerável imunidade à análise de tráfego. Figura 12 - Rede privada virtual Quando o sistema é criado, cada par de firewalls tem de negociar os parâmetros de sua SA, incluindo os serviços, os modos, os algoritmos e as chaves. Muitos firewalls têm recursos internos de VPN, embora alguns roteadores comuns possam fazer isso muito bem. Porém, como os firewalls se destinam principalmente a questões de segurança, é natural fazer os túneis começarem e terminarem nos firewalls, proporcionando uma separação clara entre a empresa e a Internet. Desse modo, firewalls, VPNs e IPsec com ESP em modo de túnel formam uma combinação natural e amplamente usada na prática. Depois que as SAs são estabelecidas, o tráfego pode começar a fluir. Para um roteador na Internet, um pacote que viaja por um túnel VPN é apenas um pacote comum. O único detalhe pouco usual sobre ele é a presença do cabeçalho IPsec depois do cabeçalho IP, porém, como esses cabeçalhos extras não têm nenhum efeito sobre o processo de encaminhamento, os roteadores não se preocupam com esse cabeçalho extra. Uma vantagem importante dessa forma de organizar uma VPN é sua completa transparência para todo o software do usuário. Os firewalls configuram e gerenciam as SAs. A única pessoa consciente dessa configuração é o administrador de sistema, que tem de configurar e administrar os firewalls. Para todas as outras pessoas, é como ter de novo uma rede privada de linha dedicada. Protocolos de encapsulamento VPN O encapsulamento permite embrulhar um pacote de um tipo de protocolo dentro do datagrama de um protocolo diferente. Por exemplo, a VPN usa PPTP para encapsular pacotes IP em uma rede pública, como a Internet. É possível configurar uma solução VPN baseada em protocolo de encapsulamento ponto a ponto (PPTP), protocolo de encapsulamento de camada dois (L2TP) ou protocolo de encapsulamento de soquete seguro (SSTP). PPTP, L2TP e SSTP dependem muito dos recursos originalmente especificados para o protocolo ponto a ponto (PPP). O PPP foi projetado para enviar dados através de conexões dial-up ou ponto a ponto dedicadas. Para IP, o PPP encapsula pacotes IP dentro de quadros PPP e depois transmite os pacotes PPP encapsuladosatravés de um link ponto a ponto. O PPP foi originalmente definido como o protocolo a ser usado entre um cliente dial-up e um servidor de acesso à rede. PPTP O PPTP permite que o tráfego multiprotocolo seja criptografado e depois encapsulado em um cabeçalho IP para ser enviado por uma rede IP ou uma rede IP pública, como a Internet. O PPTP pode ser usado para acesso remoto e conexões VPN site a site. Ao usar a Internet como rede pública para VPN, o servidor PPTP é um servidor habilitado para VPN com uma interface na Internet e uma segunda interface na intranet. O PPTP encapsula quadros PPP em datagramas IP para transmissão pela rede. O PPTP usa uma conexão TCP para gerenciamento de encapsulamento e uma versão modificada do GRE (Generic Routing Encapsulation) para encapsular quadros PPP para dados encapsulados. As cargas dos quadros PPP encapsulados podem ser criptografadas, compactadas ou ambas. A Figura 4 mostra a estrutura de um pacote PPTP contendo um datagrama IP. Figura 13 - Estrutura de pacote PPTP contendo datagrama IP O quadro PPP é criptografado com criptografia ponto a ponto da Microsoft (MPPE) usando chaves de criptografia geradas no processo de autenticação MS-CHAP v2 ou EAP-TLS. Os clientes de rede virtual privada devem usar o protocolo de autenticação MS-CHAP v2 ou EAP-TLS para que as cargas dos quadros PPP sejam criptografadas. O PPTP está aproveitando a criptografia PPP subjacente e encapsulando um quadro PPP criptografado anteriormente. L2TP O L2TP permite que o tráfego multiprotocolo seja criptografado e depois enviado por qualquer meio que suporte a entrega de datagramas ponto a ponto, como IP ou modo de transferência assíncrona (ATM). L2TP é uma combinação de PPTP e Layer 2 Forwarding (L2F), uma tecnologia desenvolvida pela Cisco. L2TP representa os melhores recursos de PPTP e L2F. Ao contrário do PPTP, a implementação do L2TP da Microsoft não usa o MPPE para criptografar datagramas do PPP. O L2TP depende da segurança do IPsec no Modo de Transporte para serviços de criptografia. A combinação de L2TP e IPsec é conhecida como L2TP/IPsec. O L2TP e o IPsec devem ser suportados pelo cliente VPN e pelo servidor VPN. O suporte ao cliente para L2TP passou a ser incorporado aos clientes de acesso remoto a partir do Windows Vista e Windows XP, e o suporte ao servidor VPN para L2TP foi integrado a partir dos membros da família Windows Server 2008 e Windows Server 2003. O L2TP é instalado com o protocolo TCP/IP. O encapsulamento para pacotes L2TP/IPsec consiste em duas camadas. Na primeira, encapsulamento L2TP, um quadro PPP, isto é, um datagrama IP, é envolvido com um cabeçalho L2TP e um cabeçalho UDP. A Figura 5 mostra a estrutura de um pacote L2TP contendo um datagrama IP. Figura 14 - Estrutura de pacote L2TP contendo datagrama IP Na segunda camada, encapsulamento IPsec, a mensagem L2TP resultante é agrupada com um cabeçalho e trailer de IPsec Encapsulating Security Payload (ESP), um trailer de autenticação IPsec que fornece integridade e autenticação de mensagens e um cabeçalho IP final. No cabeçalho IP está o endereço IP de origem e destino que corresponde ao cliente VPN e servidor VPN. A Figura 6 mostra o encapsulamento L2TP e IPsec para um datagrama PPP. Figura 15 - Escapsulamento L2TP e IPsec para datagrama PPP A mensagem L2TP é criptografada com o DES ou o DES triplo (3DES) usando chaves de criptografia geradas no processo de negociação do Internet Key Exchange (IKE). SSTP O protocolo SSTP (Secure Socket Tunneling Protocol) é um novo protocolo de encapsulamento que usa o protocolo HTTPS na porta TCP 443 para passar o tráfego por firewalls e proxies da Web que podem bloquear o tráfego PPTP e L2TP/IPsec. O SSTP fornece um mecanismo para encapsular o tráfego PPP pelo canal SSL do protocolo HTTPS. O uso do PPP permite o suporte a métodos de autenticação fortes, como EAP-TLS. O SSL fornece segurança no nível de transporte com negociação aprimorada de chaves, criptografia e verificação de integridade. Quando um cliente tenta estabelecer uma conexão VPN baseada em SSTP, o SSTP primeiro estabelece uma camada HTTPS bidirecional com o servidor SSTP. Sobre essa camada HTTPS, os pacotes de protocolo fluem como a carga dos dados. O SSTP encapsula quadros PPP em datagramas IP para transmissão pela rede. O SSTP usa uma conexão TCP, pela porta 443, para gerenciamento de túnel, bem como quadros de dados PPP. A mensagem SSTP é criptografada com o canal SSL do protocolo HTTPS. Escolhendo entre protocolos de encapsulamento Ao escolher entre as soluções VPN de acesso remoto PPTP, L2TP/IPsec e SSTP, é preciso considerar alguns fatores. O PPTP pode ser usado com uma variedade de clientes da Microsoft. Ao contrário de L2TP/IPsec, o PPTP não requer o uso de uma infraestrutura de chave pública (PKI). Ao usar a criptografia, as conexões VPN baseadas em PPTP fornecem confidencialidade dos dados, isto é, os pacotes capturados não podem ser interpretados sem a chave de criptografia. As conexões VPN baseadas em PPTP, no entanto, não fornecem integridade de dados, por exemplo, prova de que os dados não foram modificados em trânsito, ou autenticação de origem de dados, por exemplo, prova de que os dados foram enviados pelo usuário autorizado. A quantidade de opções de clientes da Microsoft em que o L2TP pode ser usado é menor do que aqueles possíveis com o PPTP. O L2TP suporta certificados de computador ou uma chave pré-compartilhada como método de autenticação para IPsec. A autenticação de certificado de computador, o método de autenticação recomendado, exige que uma PKI emita esses certificados ao servidor VPN e a todos os clientes VPN. Usando o IPsec, as conexões VPN L2TP/IPsec fornecem confidencialidade, integridade e autenticação de dados. Diferentemente do PPTP e SSTP, o L2TP/IPsec permite a autenticação da máquina na camada IPsec e a autenticação no nível do usuário na camada PPP. O SSTP só pode ser usado com computadores clientes executando o Windows em determinados Service Packs. Ao usar SSL, as conexões VPN SSTP fornecem confidencialidade, integridade e autenticação de dados. Todos os três tipos de túneis carregam quadros PPP em cima da pilha de protocolos de rede. Portanto, os recursos comuns do PPP, como esquemas de autenticação, negociação do Internet Protocol versão 4 (IPv4) e Internet Protocol versão 6 (IPV6) e NAP (Network Access Protection), permanecem os mesmos para os três tipos de túneis. Firewalls A capacidade de conectar qualquer computador, em qualquer lugar, a qualquer outro computador, em qualquer lugar, é uma moeda de duas faces. É muito cômodo para as pessoas navegarem pela Internet quando estão em casa. Para os gerentes de segurança das empresas, trata-se de um grande problema. Muitas empresas têm grandes quantidades de informações confidenciais on- line, como segredos comerciais, planos de desenvolvimento de produtos, estratégias de marketing, análises financeiras, etc. A revelação dessas informações para um concorrente poderia ter terríveis consequências. Além do perigo das informações virem a público, também há o perigo do vazamento dessas informações dentro da empresa. Em particular, vírus, worms e outras pestes digitais podem burlar a segurança, destruir dados valiosos e consumir muito tempo dos administradores, que tentam eliminar a confusão causada por eles. Com frequência, eles são trazidos por funcionários descuidados. Em consequência disso, são necessários mecanismos para manter os bits inofensivos e descartar os maliciosos. Um dos métodos é usar o IPsec, que protege os dados em trânsito entre sites seguros. No entanto, o IPsec não faz nada para impedir as pestes digitais e os intrusos de invadirem a LAN da empresa. Para alcançar esse objetivo, precisamos examinar os firewalls. Um firewall é um sistemade segurança de rede que monitora e controla o tráfego de entrada e saída da rede com base em regras de segurança predeterminadas. Um firewall normalmente estabelece uma barreira entre uma rede interna confiável e uma rede externa não confiável, como a Internet. Os firewalls geralmente são categorizados como firewalls de rede ou firewalls baseados em host. Os firewalls de rede filtram o tráfego entre duas ou mais redes e são executados no hardware da rede. Os firewalls baseados em host são executados em computadores host e controlam o tráfego de rede dentro e fora dessas máquinas. Os firewalls são apenas uma adaptação moderna de uma antiga forma de segurança medieval, que é cavar um fosso profundo em torno do castelo. Esse recurso forçava todos aqueles que quisessem entrar ou sair do castelo a passar por uma única ponte levadiça, onde poderiam ser revistados por guardas. Nas redes, é possível usar o mesmo artifício. Uma empresa pode ter muitas LANs conectadas de forma arbitrária, mas todo o tráfego de saída ou de entrada da empresa é feito através de uma ponte levadiça eletrônica, o firewall, como mostra a Figura 7. Figura 16 - Firewall que consiste em dois filtros de pacotes e um gateway de aplicação O firewall, nessa configuração, tem dois componentes. Dois roteadores que filtram pacotes e um gateway de aplicação. Também existem configurações mais simples, mas a vantagem desse projeto é que cada pacote deve passar por dois filtros e um gateway de aplicação para sair ou entrar na rede. Não existem outras rotas. Cada filtro de pacotes é um roteador padrão equipado com algumas funções complementares, que permitem a inspeção de cada pacote de entrada ou de saída. Os pacotes que atenderem a algum critério serão remetidos normalmente, mas os que falharem no teste serão descartados. Na Figura 7, provavelmente o filtro de pacotes da LAN interna verificará os pacotes enviados e o da LAN externa conferirá os pacotes recebidos. Os pacotes que atravessam o primeiro obstáculo vão para o gateway de aplicação, onde serão submetidos a uma nova verificação. A colocação dos dois filtros de pacotes em diferentes LANs destina-se a assegurar que nenhum pacote entre ou saia sem passar pelo gateway de aplicação, pois não há outro caminho. Em geral, os filtros de pacotes são baseados em tabelas configuradas pelo administrador do sistema. Essas tabelas listam as origens e os destinos aceitáveis, as origens ou destinos bloqueados e as regras padrão que orientam o que deve ser feito com os pacotes recebidos de outras máquinas ou destinados a elas. No caso comum de uma configuração TCP/IP, uma origem ou destino consiste em uma porta e um endereço IP. As portas indicam qual é o serviço desejado. Por exemplo, a porta 23 do TCP é para telnet, a porta 79 é para finger e a porta 119 é para notícias da usenet. Uma empresa poderia bloquear os pacotes recebidos em relação a todos os endereços IP combinados com uma dessas portas. Dessa forma, ninguém fora da empresa poderia estabelecer login via telnet ou procurar alguém usando o daemon Finger. O bloqueio de pacotes de saída é mais complicado porque, embora muitos sites adotem as convenções padrão para numeração de portas, eles não são obrigados a fazê-lo. Além disso, para alguns serviços importantes, como FTP, os números de portas são atribuídos dinamicamente. Além disso, embora o bloqueio das conexões TCP seja difícil, o bloqueio de pacotes UDP é ainda mais complicado, porque se sabe muito pouco, a priori, sobre o que eles farão. Muitos filtros de pacotes simplesmente não aceitam tráfego UDP. A segunda metade do mecanismo de firewall é o gateway de aplicação. Em vez de apenas examinar pacotes brutos, o gateway opera na camada de aplicação. Por exemplo, um gateway de correio eletrônico pode ser configurado de forma a examinar cada mensagem recebida ou enviada. O gateway toma a decisão de transmitir ou descartar cada mensagem, com base nos campos de cabeçalho, no tamanho da mensagem ou até mesmo em seu conteúdo, por exemplo, em uma instalação militar, a presença de palavras como "nuclear" ou "bomba" pode provocar algum tipo de ação especial. As instalações têm liberdade para instalar um ou mais gateways de aplicação destinados a aplicações específicas, mas não é incomum que organizações suspeitas permitam a entrada e a saída de mensagens de correio eletrônico e até usem a Web, mas proíbam tudo que seja muito arriscado. Combinada com a criptografia e a filtragem de pacotes, essa estratégia oferece um nível de segurança limitado ao custo de algumas inconveniências. Ainda que o firewall esteja perfeitamente configurado, ainda existem vários problemas de segurança. Por exemplo, se um firewall estiver configurado para permitir apenas a entrada de pacotes de redes específicas, por exemplo, outras fábricas da empresa, um intruso fora do firewall pode inserir falsos endereços de origem para ultrapassar essa verificação. Se um usuário interno quiser transportar documentos secretos para fora da empresa, ele poderá codificar ou até mesmo fotografar os documentos e transportar as fotografias como arquivos JPEG, que conseguirão passar por quaisquer filtros de palavras. Não discutimos nem mesmo o fato de que 70% de todos os ataques vêm de dentro do firewall, por exemplo, de funcionários insatisfeitos. Além disso, há toda uma classe de diferentes ataques com que os firewalls não podem lidar. A ideia básica por trás de um firewall é impedir a entrada de intrusos e a saída de dados secretos. Infelizmente, existem pessoas que não têm nada melhor para fazer do que tentar derrubar serviços ou sites. Para isso, eles enviam ao destino pacotes legítimos em grande quantidade, até o site entrar em colapso com a carga. Por exemplo, para incapacitar um site, um intruso pode enviar um pacote SYN do TCP para estabelecer uma conexão. Então, o site alocará um slot de tabela para a conexão e enviará um pacote SYN + ACK em resposta. Se o intruso não responder, o slot de tabela ficará retido por alguns segundos até o timeout. Se o intruso enviar milhares de solicitações de conexão, todas os slots de tabela serão preenchidos e nenhuma conexão legítima poderá passar. Os ataques em que o objetivo do intruso é desativar o destino em vez de roubar dados são chamados ataques de negação de serviço, em inglês Denial of Service (DoS). Em geral, os pacotes solicitados têm endereços de origem falsos, para que o intruso não possa ser rastreado com facilidade. Uma variante ainda pior é aquela em que o intruso já entrou em centenas de computadores em outros lugares do mundo, e depois comanda todos esses computadores em um ataque ao mesmo alvo ao mesmo tempo. Essa estratégia não apenas aumenta o poder de fogo do intruso, mas também reduz a chance de detecção, pois os pacotes estão vindo de um grande número de máquinas pertencentes a usuários insuspeitos. Um ataque desse tipo é chamado DDoS, de Distributed Denial of Service, e é muito difícil proteger-se contra ele. Ainda que a máquina atacada pode reconhecer rapidamente uma solicitação falsa, processar e descartar a solicitação é um processo que leva algum tempo e, se chegarem solicitações em número suficiente por segundo, a CPU passará todo seu tempo lidando com elas. Considerações finais Uma VPN é, como o próprio nome diz, uma rede de comunicação privada, sendo construída sobre uma rede de comunicações pública, está sendo mais comumente a Internet. Em uma rede pública, o tráfego de dados é feito por meio de protocolos padrões, que não são necessariamente seguros. Já ao fazer uso de um VPN, estabelece-se uma conexão segura e criptografada, que pode ser considerada como um túnel, entre o computador e o servidor operado pelo serviço que provê a VPN. As VPNs são costumeiramente usadas para conectar de forma segura filiais de uma organização que estãogeograficamente distantes, criando uma rede coesiva. Diversas organizações interligam suas bases operacionais por meio do uso de VPN. Outro caso de uso comum nesse cenário é de empresas terceirizadas que prestam algum tipo de suporte para essas organizações, onde faz-se necessário a conexão por meio de VPN para “estar” na mesma rede da organização em questão. Usuários individuais também se beneficiam de VPNs para prover segurança em conexões sem fio, para contornar restrições geográficas e de censura, ou para se conectar a servidores proxy com a finalidade de proteger a suas identidades e localizações. Um sistema de comunicação por VPN tem um custo de implementação e manutenção insignificantes, se comparados aos antigos sistemas de comunicação física, como por exemplo o frame relay, que tem um custo altíssimo e segurança questionável. Por essa razão, muitos sistemas de comunicação estão sendo substituídos por VPNs, que além do baixo custo, oferecem alta confiabilidade, disponibilidade e integridades dos dados trafegados. VPNs seguras usam protocolos de criptografia por encapsulamento, que proporcionam confidencialidade, integridade e autenticação, necessárias para garantir a privacidade das comunicações requeridas. Quando uma rede quer enviar dados para outra por meio da VPN, um protocolo, por exemplo o IPsec, faz o encapsulamento do quadro normal com o cabeçalho IP da rede local e adiciona o cabeçalho IP da Internet atribuída ao roteador, um cabeçalho de autenticação e o cabeçalho ESP, que proporciona integridade, autenticidade e criptografia para a área de dados do pacote. Entre os protocolos de encapsulamento que são normalmente aplicados em VPNs podemos citar o L2TP, SSTP, PPTP e IPsec, entre outras variações desses. Há vantagens e desvantagens ao escolher cada um deles. Quando implementados de maneira adequada, esses protocolos podem garantir comunicação segura por meio de redes inseguras. Em relação a firewalls, podemos resumir sua definição como sendo um dispositivo de rede que tem por objetivo aplicar uma política de segurança a um determinado ponto da rede. O termo, em inglês, faz alusão comparativa a função que este desempenha para evitar o alastramento de acessos nocivos dentro de uma rede de computadores a uma parede antichamas, que evita o alastramento de incêndios pelos andares e salas de um edifício. Os firewalls são normalmente associados a redes TCP/IP, podendo ser do tipo filtro de pacotes, proxy de aplicações, etc. Esse dispositivo de segurança existe na forma de software e hardware, sendo que a combinação de ambos é nomeada tecnicamente de appliance. A complexidade de instalação depende do tamanho da rede, da política de segurança, da quantidade de regras que controlam o fluxo de entrada e saída de informações e do grau de segurança desejado. Os filtros de pacotes, primeira classificação de firewalls a surgir no fim da década de 80, analisam individualmente os pacotes à medida que esses são transmitidos, verificando apenas o cabeçalho das camadas de rede e de transporte. As regras podem ser formadas indicando os endereços de rede, de origem e/ou destino, e as portas TCP/IP envolvidas na conexão. A principal desvantagem desse tipo de tecnologia para a segurança reside na falta de controle de estado do pacote, o que permite que agentes maliciosos possam produzir pacotes simulados, fora de contexto ou ainda para serem injetados em uma sessão válida. Atualmente os ataques passaram a se concentrar nas características e vulnerabilidades específicas de cada aplicação. Disso surge a necessidade de desenvolver um novo método que fosse capaz de analisar as particularidades de cada protocolo e tomar decisões que pudessem evitar ataques maliciosos contra uma rede. Nisso, entra o firewall de aplicação, mais comum nos dias atuais, surgindo como uma evolução do filtro de pacotes, visando proporcionar a segurança necessária para os padrões de usos modernos. A capacidade de suprir a deficiência dos modelos tradicionais e mapear todas as transações específicas que ocorrem na camada de aplicação Web proprietária e, também, de ser um terminador do tráfego SSL, podendo avaliar protocolos HTTPS, que originalmente passariam despercebidos ou não analisados por firewalls tradicionais, são as vantagens dessa classificação de firewall. Entretanto, por essas mesmas qualidades, esse tipo de firewall exige um grande poder computacional, geralmente traduzido para um grande custo de investimento. Além disso, ao interceptar aplicações Web e suas interações com o cliente, pode acabar por provocar alguma incompatibilidade no padrão de transações, exigindo um profundo trabalho de avaliação por parte dos implementadores. Referências Boudriga, Noureddine. Security of mobile communications. Auerbach Publications, 2009. Crawford, Douglas (1 de setembro de 2019). «The Best VPN Services for 2019.». proprivacy.com Lewis, Mark. Comparing, designing, and deploying VPNs. Adobe Press, 2006. Mason, Andrew G., and Rick Foreword By-Stiffler. Cisco secure virtual private networks. Cisco Press, 2001. Oppliger, Rolf. "Internet security: firewalls and beyond." Communications of the ACM 40.5 (1997): 92-102. Tanenbaum, Andrew S. "Network protocols." ACM Computing Surveys (CSUR) 13.4 (1981): 453-489. Yang, Yanyan, et al. "IPsec/VPN security policy correctness and assurance." Journal of High Speed Networks 15.3 (2006): 275-289 Unidade IV Introdução Não é difícil projetar um sistema totalmente seguro em termos lógicos usando VPNs e firewalls, muito embora na prática é grande a possibilidade de vazamentos ocorrerem. Essa situação pode acontecer se algumas das máquinas forem sem fios e usarem comunicação de rádio, que passa pelo firewall em ambos os sentidos. O alcance das redes 802.11 frequentemente é de algumas centenas de metros, assim, qualquer pessoa que queira espionar uma empresa pode dirigir até o estacionamento dos funcionários pela manhã, deixar um notebook capaz de reconhecer sinais 802.11 dentro do carro para registrar tudo que ouvir e partir no final do dia. À tarde, o disco rígido estará repleto de valiosas informações. Grande parte do problema de segurança pode ter sua origem nos fabricantes de estações base sem fios, conhecidos como pontos de acesso, que tentam tornar seus produtos amigáveis para o usuário. Em geral, se o usuário retirar o dispositivo da caixa e o conectar à tomada da rede elétrica, ele começará a operar de imediato, quase sempre sem qualquer segurança, revelando segredos para qualquer um que estiver dentro do alcance de rádio. Se ele for conectado a uma rede Ethernet, todo tráfego dessa rede também aparecerá de repente no estacionamento. Por essa razão, não é preciso dizer que a segurança é ainda mais importante para sistemas sem fios que para sistemas fisicamente conectados. Segurança de redes 802.11 O padrão 802.11 prescreve um protocolo de segurança do nível de enlace de dados, chamado WEP, do inglês Wired Equivalent Privacy, projetado para tornar a segurança de uma LAN sem fio tão boa quanto a de uma LAN fisicamente conectada. Tendo em vista que o padrão para LANs fisicamente conectadas é nenhuma segurança, é fácil alcançar esse objetivo, e a WEP o alcança, como veremos. Quando a segurança do 802.11 é ativada, cada estação tem uma chave secreta compartilhada com a estação base. A forma como as chaves são distribuídas não é especificada pelo padrão. Elas poderiam ser pré-carregadas pelo fabricante, trocadas com antecedência pela rede fisicamente conectada. Finalmente, a estação base ou máquina do usuário poderia escolher uma chave ao acaso e enviá-la à outra máquina pelo ar, codificada com a chave pública da outra máquina. Uma vez estabelecidas, em geral as chaves permanecem estáveis por meses ou anos. A criptografia
Compartilhar