PROPOSTA DE UM MODELO DE SEGURANÇA PARA VPNs NA INTERLIGAÇÃO DE REDES CORPORATIVAS
PROPOSTA DE UM MODELO DE SEGURANÇA PARA VPNs NA INTERLIGAÇÃO DE REDES CORPORATIVAS
PROPOSTA DE UM MODELO DE SEGURANÇA PARA VPNs NA INTERLIGAÇÃO DE REDES CORPORATIVAS
RECIFE
Fevereiro de 2004
ALEXANDRE AUGUSTO GUEDES GUIMARÃES
RECIFE
Fevereiro de 2004
ALEXANDRE AUGUSTO GUEDES GUIMARÃES
BANCA EXAMINADORA
_______________________________________________________________________________
Prof. Dr. Rafael Dueire Lins
Orientador
_________________________________________________________________
Prof. Dr. Valdemar Cardoso da Rocha Jr.
_________________________________________________________________
Prof. Dr. Francisco Heron de Carvalho Jr.
A minha esposa Lyvia e minha filha Luana
pelo nosso grande amor
Agradecimentos
A Deus por ter tornado esse sonho uma realidade e por ter abençoado toda a minha
família com saúde, união e felicidade. Agradeço por ele ter me presenteado com uma
esposa que me ama, me incentiva e que me ilumina todos os dias. Agradeço por ter nos
concedido o maior de todos os presentes: uma filha linda e saudável. Agradeço a Deus
por ter possibilitado a cura do câncer da minha querida mãe. E finalmente agradeço a
Deus por me sentir uma pessoa realizada, saudável e feliz.
A meus pais, Delzuite e Honório, pela minha formação e educação que possibilitou que
eu alcançasse todas as minhas realizações, como ser humano e como profissional.
A Lyvia, minha amada esposa, pelo seu amor, carinho, compreensão e incentivo.
Agradeço e dedico este trabalho a você, por todos os momentos que tivemos que
renunciar durante a realização deste trabalho.
A minha filha Luana, de dois anos de idade, que me enche de alegrias, que me
transformou em uma pessoa mais sensível e preocupada com o próximo, que me fez
perceber tudo aquilo que havia de melhor guardado dentro de mim e que me deu forças
para prosseguir neste desafio.
Aos pais da minha esposa, Adauto e Flávia (Anjinha), por serem verdadeiramente meus
segundos pais, me incentivando e me amando em todos os momentos. Agradeço
especialmente a Anjinha por ter cuidado com tanto amor e carinho da minha filha
durante todo o período desse trabalho, que de certa forma, preencheu a minha
ausência.
Aos meus colegas de Mestrado, em especial a minha amiga Laura Jane pelo incentivo e
apoio.
Sumário
ABSTRACT.......................................................................................... XIX
1 INTRODUÇÃO ..................................................................................1
5.5 ESTUDO DE CASO: PROPOSTA DO USO DE VPNS PARA AS REDES DA PREVIDÊNCIA ................ 134
Lista de Figuras
Lista de Tabelas
Lista de Abreviaturas
Resumo
Uma Virtual Private Network - VPN, ou Rede Privada Virtual, é uma conexão de
rede protegida, construída para uso privado de uma Empresa, estabelecida sobre uma infra-
estrutura de rede pública e compartilhada. Uma VPN utiliza protocolos de segurança e
tecnologias de criptografia e autenticação para garantir características de uma rede privada
e dedicada às Corporações que utilizam uma infra-estrutura não-confiável, como a Internet,
para interligação de suas redes ou de usuários remotos a estas. Portanto, corporações
interessadas no uso desta tecnologia devem preocupar-se com vários aspectos de segurança
envolvidos na interligação de suas redes através de uma infra-estrutura não-confiável. De
maneira geral, poucas referências tratam essa questão de maneira completa, restringem-se
muitas vezes a contextos isolados, sem a preocupação na adoção de outros mecanismos de
segurança que possam ser combinados a uma infra-estrutura de VPN, com o objetivo de
propiciar maior segurança no perímetro externo de uma rede corporativa.
Abstract
A Virtual Private Network - VPN is a protected connection, built for the private use
of the enterprise, over a shared public network. A VPN uses security protocols,
cryptography technologies and authentication to guarantee characteristics of a private and
dedicated network to enterprises that use a not-trustworthy infrastructure, as the Internet,
for interconnection between its networks or remote users to these. Therefore, corporations
interested in the use of this technology must be worried about some security aspects
involved in the interconnection of its networks through a not-trustworthy infrastructure.
General way, few references deal with this question in complete way, restrict many times
the isolated contexts, without the concern in the adoption of other security mechanisms that
can be combined to a VPN infrastructure, objectifying to propitiate greater security in the
external perimeter of a corporative network.
This work investigated an excellent question to the current scene - the use of VPNs
for interconnection the corporative networks through a not trustworthy environment, the
Internet, which already owns an infrastructure mounted and with great availability and
scalability. Currently, companies of the entire world want to use the Internet’s
infrastructure to establish connection with its corporative networks (Intranets), also with
Partners of Business’ Internet (extranets). Thus, they want to search an alternative viable,
and low cost, that can to contribute with significant reductions in the referring costs to hire
private circuits of data. However, they wish, at the same time, a solution that increases
security to the information of its business.
This way, in this work we present a study of the involved security aspects in the
construction, maintenance and use of Virtual Private Networks between Corporative
Networks. Besides being developed the conceptual base on which it establishes a VPN
architecture, the elements of this structure are detailed, as well as the security services that
must be combined with gateways VPN to increase the security of corporative network’s
External Perimeter that uses the Internet, a not trustworthy network, for the establishment
of connections VPN.
xx
For that, security models are considered, which has the purpose to establish a
topology that can guarantee a level of acceptable security for VPNs, this way the elements
and existing security services in the corporative networks can be added, making the
construction of security architecture in depth possible. As such, we studied many forms of
elements positioning and security services in the use of VPNs, in order to make the
analysis and the construction of adequate topologies to the necessities of each Company
possible. The proposal of a VPN, combined the services that provide security in depth, has
the purpose to difficult attacks and threats, which can come to compromise the integrity,
secrecy, authenticity and availability of the information of a Company. In consequence of
this question, we also carry through a case study that intends to develop a model of
security for the Official Social Security network of Brazil and that the appreciation of its
Direction will have to be submitted.
Key words: Virtual Private Networks, Security, Defense in depth, Free software
1
1 INTRODUÇÃO
Criou-se assim a Virtual Private Network (VPN) ou Rede Privada Virtual baseada na
Internet como uma das formas de se interconectar diferentes redes privadas (SILVA, 2003)
para o tráfego de dados entre elas, utilizando-se como meio, uma rede pública, a infra-
estrutura da Internet (ORTIZ, 2003). Também são denominadas de VPNs IP. Sua
característica principal é criar “túneis virtuais” de comunicação entre essas redes em uma
infra-estrutura de rede não-confiável, de forma que os dados trafeguem criptografados por
esses túneis e de forma transparente para as entidades ou redes que estão se comunicando,
aumentando a segurança na transmissão e na recepção dos dados.
Definimos assim, uma Rede Privada Virtual, como sendo uma seção de rede protegida
que forma um canal de comunicação com acesso controlado, permitindo conexões seguras
2
para apenas uma determinada comunidade, fazendo-se uso de uma infra-estrutura de rede não-
confiável ou compartilhada.
Diante desse conceito, este trabalho apresenta um estudo abrangente sobre os aspectos
e as tecnologias existentes na área de segurança de redes de computadores envolvidos na
construção e manutenção de redes VPN baseadas na Internet1, com a finalidade maior de
apresentar um modelo de segurança adequado e viável para a implementação de redes VPN,
combinada a outros serviços de segurança, como por exemplo, firewalls (FIGUEIREDO,
2003), proxys (DOWNES et al., 2003), Sistemas de Detecção de Intrusos (CASWELL et al.,
2003), entre outros, em um ambiente baseado na plataforma de software livre (STALLMAN,
2003), demonstrando inclusive o funcionamento e a viabilidade técnica dos produtos e
sistemas existentes nessa plataforma para essa finalidade.
Esta dissertação também apresentará um estudo de caso para o uso de uma VPN IP
como solução de interligação entre redes corporativas, utilizando-se como meio uma rede
não-confiável, que é o caso da Internet. Ela investiga principalmente os impactos financeiros e
técnicos decorrentes da construção e utilização de VPNs em substituição aos circuitos
dedicados, especificamente nas redes da Previdência Social. O interesse em tal, decorre do
fato do autor desta dissertação trabalhar como Analista de Suporte na Empresa de Tecnologia
1
As VPNs baseadas na Internet também são denominadas de VPN IP, devido ao protocolo de rede usado na
Internet, ou ainda, VPN de nível 3 ou VPN de nível de rede.
3
1.1 Motivação
Uma vez que ainda não há qualquer solução segura e de baixo custo para interligação
das referidas redes, este trabalho procura realizar um estudo abrangente sobre os aspectos e as
tecnologias de segurança existentes, com a finalidade de demonstrar a viabilidade na
implementação e utilização de uma VPN IP, combinada a serviços do Firewall, Proxys e
Sistemas de Detecção de Intrusos, em um ambiente baseado na plataforma de software livre.
Dessa forma, esta pesquisa se predispõe a buscar uma alternativa viável e de baixo
custo, que venha contribuir com reduções significativas nos custos referentes à contratação de
circuitos privados de dados, substituindo circuitos dedicados, em especial os circuitos Frame
Relay interestaduais, de altíssimo custo ao tesouro do Governo Federal, e,
concomitantemente, propiciar uma opção para as conexões host-rede.
Além da questão financeira, que é uma das grandes motivações existentes para a
implementação de qualquer rede VPN, podendo trazer reduções significativas no custo em
assinaturas de circuitos de comunicação interestaduais, outra grande vantagem é a
possibilidade de expandir a quantidade de computadores que podem ter acesso à rede
corporativa, isto é, um aumento na escalabilidade da rede sem investir em infra-estrutura
extra, permitindo inclusive o suporte a usuários móveis, sem a utilização de bancos de
4
A utilização de software livre neste trabalho foi um fato bastante motivador, pois os
sistemas de software livre em geral são seguramente um novo paradigma da nova era da
Computação que influencia significativamente o comportamento das Organizações que
utilizam Tecnologia da Informação como recurso estratégico e como mecanismo
impulsionador dos seus negócios. A aplicação de software livre pelas Empresas nas soluções
em comunicação de dados, em especial, na construção de redes VPN IP, se encaixa
perfeitamente nas pretensões e requerimentos de reduções de custos exigidos, pois o software
livre pode reduzir significativamente o custo na aquisição de licenças de softwares e
ferramentas, bem como, pode propiciar a estas Empresas um aumento de segurança
expressivo, uma vez que o código fonte dos sistemas livres é também disponibilizado. Desta
forma, o código pode ser verificado, atualizado e modificado pelas próprias empresas, a
qualquer momento e diante de qualquer necessidade específica. Portanto, é coerente que se
pretenda buscar soluções mais econômicas e seguras para a implementação de uma VPN IP,
combinada a serviços e protocolos de segurança que definem um modelo de Defesa em
Profundidade, através de ferramentas e sistemas livres.
aplicação de outros serviços de segurança combinados, isto é, não basta apenas criar túneis
criptografados para garantir segurança. Isto é um total equívoco. Deve existir a preocupação
desde a segurança física do site, da capacitação e orientação dos Recursos Humanos de uma
Empresa até a aplicação correta de serviços como firewall, Proxys, Sistemas de Detecção de
Intrusos (SDI), Servidores de Backup, Servidores de Autenticação, Servidores de Antivírus,
Servidores de Certificação, Honey-Pots, entre outros. A aplicação de segurança só não pode
ter um custo maior que o prejuízo que pode ser causado por um invasor. Desta forma, esta
dissertação, além de dar uma fundamentação teórica sobre os aspectos de segurança
envolvidos em redes VPN, foi elaborada de forma a responder a algumas questões de
pesquisa. A primeira a saber é:
No que diz respeito a essa questão, este trabalho investigará os diversos protocolos
existentes para a implementação de redes VPN e definirá um protocolo mais adequado à
interligação de redes corporativas. Não é foco deste trabalho discorrer profundamente sobre as
soluções para acesso remoto, embora que a topologia a ser sugerida nesta dissertação sirva
para este fim.
Ao longo deste trabalho serão discutidos vários serviços de segurança que devem ser
utilizados em conjunto com uma solução VPN, os principais, a saber, são: firewalls, Proxys,
Sistemas de Detecção de Intrusos (SDI), Servidores de Autenticação, Servidores PKI, Listas
de Controle de Acesso e Servidores de Antivírus. Na verdade, a investigação dessa questão
resultará em uma topologia de segurança (modelo proposto) para a implementação de uma
solução VPN entre redes corporativas. Neste estudo, haverá outros desdobramentos, os quais
esta dissertação discutirá posteriormente, que são decorrentes da questão de pesquisa
supracitada, entre as quais cabe destacar:
Outra questão de pesquisa que deve ser investigada nesta dissertação é a relacionada à
aplicabilidade de soluções em software livre para a estruturação de um modelo de VPN
adequado. O grande questionamento é:
No que diz respeito a essa questão, vale destacar que os relatos encontrados até então
na literatura se restringiam muitas vezes a contextos isolados, explorando a utilização de
alguma solução VPN isoladamente, sem com isso apresentar um modelo de topologia
completo que possa combinar outros serviços de Segurança no fortalecimento do perímetro de
7
uma rede corporativa. A situação ainda é mais precária na literatura nacional que apresenta
pouca disponibilidade de livros sobre o assunto. Daí porque surgiu a necessidade de se
investigar o uso de ferramentas livres combinadas para a implementação de soluções VPN
completas que possam garantir um nível de segurança satisfatório para interligação de redes
corporativas. Com isso, pode-se aferir a eficácia e eficiência das ferramentas livres para
construção de um modelo que implemente soluções VPN.
Hipótese 4: Não existe sistema 100% seguro, principalmente porque os sistemas são
operados e configurados por seres humanos, os quais são passíveis de falhas.
1.3 Objetivos
Com a realização desta pesquisa, pretende-se alcançar diversos objetivos que serão
explicitados a seguir.
1.4 Metodologia
Para o desenvolvimento deste trabalho, a primeira atividade realizada foi uma revisão
bibliográfica para se investigar todos os conceitos e aspectos tecnológicos acerca de redes
VPN, apurando-se, em seguida, as pesquisas e trabalhos desenvolvidos na área de Segurança
em Redes de Computadores envolvidos na construção de redes VPN, em especial, na
interligação de redes corporativas utilizando a Internet. Posteriormente, foi desenvolvido um
levantamento sobre os equipamentos, ferramentas e sistemas utilizados para construção de
redes VPN, avaliando características de segurança, escalabilidade, aplicabilidade, facilidade
de instalação e manutenção, estabilidade, suporte, documentação e custo. Nesta avaliação,
concluiu-se que uma solução isolada para VPN não seria uma alternativa viável, pois existiam
outros requisitos e serviços de segurança que necessariamente deveriam fazer parte de uma
10
solução VPN completa. Desta forma, houve a necessidade de se pesquisar outros sistemas de
segurança, os quais são propostos e detalhados neste trabalho. Houve também uma
preferência pela utilização de ferramentas e sistemas livres. Primeiramente, para se investigar
o funcionamento e a viabilidade técnica de soluções livres para a construção de redes VPN,
que é um dos objetivos deste trabalho. Em segundo, pelo domínio e conhecimento do autor
desta dissertação nos sistemas GNU/Linux. Como resultado dessa pesquisa, ocorreu a escolha
de um software livre para a construção de uma rede VPN de experimento para uso na
investigação.
2 SEGURANÇA DE REDES
da Internet nas empresas, onde o risco das informações serem acessadas ou alteradas é grande,
pois qualquer pessoa conectada à Internet pode vir a tomar posse destas informações, caso
não estejam bem protegidas.
Com a evolução dos sistemas de informação, várias organizações passaram a ter seus
escritórios totalmente automatizados, com a utilização mínima de papel. Com isso, as
informações e documentos importantes ao negócio da Organização passaram cada vez mais a
constar em mídia eletrônica, ao invés de documentos em papel. Desta forma, todos os
procedimentos e funções típicas associadas à segurança de documentos em papel devem ser
estendidos aos documentos em mídia eletrônica. Porém, a execução dessas funções de
segurança em mídia eletrônica não é tão simples quanto parece, de acordo como
(STALLINGS, 1999a), existem vários aspectos e desafios que devem ser analisados e
tratados, como por exemplo:
proposta para uma política e topologia de segurança viável, e que esteja em conformidade
com requisitos econômicos e estratégicos de uma organização.
• Integridade – este serviço assegura que os dados não serão alterados durante
uma transmissão sem o conhecimento do receptor, ou seja, nenhuma
modificação no pacote original pode ser feita no decorrer de uma transmissão
sem que exista a detecção da entidade receptora do pacote de que houve algum
16
tipo de violação. Desta forma, este serviço assegura que as mensagens sejam
recebidas exatamente como foram enviadas, garantindo que as mensagens não
sofrerão nenhuma inserção, duplicação, modificação, reorganização,
classificação ou ataques de replays (salva de pacotes transmitidos por uma
comunicação entre duas entidades para serem utilizados posteriormente na
tentativa de forjar uma nova comunicação legítima). O Serviço de Integridade
pode possuir mecanismos automáticos de recuperação ou apenas serviços de
detecção de violação.
Para tornar as redes mais seguras e confiáveis, deve-se estar atento às principais
ameaças que podem comprometer a integridade, privacidade e autenticidade das informações
de uma empresa. Estas ameaças podem ter origem interna ou externa, pois, ao contrário do
que se pensa, nem sempre o principal “inimigo” está fora da rede, como um hacker ou
17
cracker2, mas sim dentro dela, como um funcionário mal intencionado ou muito insatisfeito,
que geralmente possui livre acesso aos recursos disponíveis, e que pode comprometer a
integridade e a privacidade de informações estratégicas da Empresa, como por exemplo,
através da destruição ou alteração de informações e o envio de informações sigilosas da
Empresa a concorrentes.
2
Um haker é um indivíduo hábil em enganar os mecanismos de segurança de sistemas de computação. Enquanto
que um cracker é um haker que possui o intuito de roubar, alterar ou apagar as informações do sistema invadido.
18
O Ataque de Interceptação tem como objetivo capturar o que está sendo transmitido
sem que o sistema perceba, ou seja, ataca-se a privacidade das informações. Este ataque gera
cópias de informações, arquivos, ou programas não autorizados. A entidade não autorizada
pode ser uma pessoa, um programa ou um computador. Um dos principais tipos de ataques
desta categoria é o man-in-the-middle, onde o invasor simula ser o parceiro de ambas as
partes envolvidas na conexão, assumindo a identidade de um usuário válido. Esta categoria de
ataque está representada pela figura 2.1c.
As ameaças também podem ser classificadas em dois tipos: Passivas, onde o sistema
continua a operação sem a percepção de ter um invasor na rede e, geralmente, acontece roubo
de informações; e Ativas, onde o invasor prejudica o sistema, atingindo os dados ou
degradando os serviços (STALLINGS, 1999a), envolve geralmente modificações nos dados
ou a criação de falsos fluxos de dados.
Os ataques passivos são mais difíceis de serem detectados, pois os mesmos não
envolvem alteração ou fabricação de dados.
Northcutt et al. propõe que se pense na segurança de uma rede como uma cebola:
Este é o conceito que norteia a Defesa em Profundidade, o qual será sugerido neste
estudo.
De acordo com Kevin Downes et al. (2000, p. 494), uma política de segurança de rede
visa o controle do tráfego de rede e de sua utilização. Ela visa basicamente definir o que é
permitido e o que é proibido em uma infra-estrutura de rede ou em sistema. Identifica os
recursos da rede e as possíveis ameaças, define usos e responsabilidades e detalha planos de
ação destinados a situações em que ocorram violações da política de segurança. Assim, esta
deve ser reforçada de maneira estratégica através da definição de limites que possam ser
estabelecidos na rede. Estes limites são chamados perímetros de rede.
21
Este trabalho preconiza que as redes corporativas devem sempre adotar uma
abordagem proibitiva. Uma política deve descrever exatamente quais operações são
permitidas em um sistema. Qualquer operação que não esteja descrita de forma detalhada na
política de segurança deve ser considerada ilegal ao sistema.
Uma outra visão sobre os serviços de segurança foi elaborado por Donn Park em
(PARK, 1994) onde descreve seis elementos que devem ser contemplados em qualquer
política de segurança e que também devem ser considerados para a segurança de redes de
computadores. São eles:
Kevin Dowenes et al. (2000) descreve que à medida que se define uma política de
segurança em uma corporação, cada rede que compõe a topologia precisa ser classificada
como um dos três tipos de redes: confiável, não-confiável e desconhecida.
As redes desconhecidas são redes que não são confiáveis, nem não-confiáveis. São
aquelas desconhecidas para um firewall ou Gateway VPN, pois não é possível informar, de
modo explícito, se a rede é confiável ou não-confiável. Porém, estas últimas são consideradas
não-confiáveis para os propósitos de segurança.
redes. Para isso, é necessário designar as redes que serão protegidas e definir os mecanismos
de segurança de rede que exercerão esta proteção para cada perímetro.
(DOWNES et al., 2000) define que para dispor de um perímetro de segurança de rede
bem sucedido, o firewall precisará ser o gateway para todas as comunicações entre redes
confiáveis e não-confiáveis.
Perímetro de
Segurança da Rede
Redes
desconhecidas Servidor Servidor
de WEB FIREWALL
Público
Roteador Roteador
externo Interno
Rede Rede
não-confiável Confiável
Vale ressaltar que caberá às próximas seções dessa dissertação um detalhamento maior
sobre cada elemento de um perímetro de segurança. A partir daí, poderá se compreender
melhor todos os elementos envolvidos em uma topologia de segurança baseada em
perímetros. A seguir, os principais componentes de um perímetro de segurança serão
detalhados.
2.6.2 Firewalls
Aproveitando essa analogia, verifica-se que o firewall funciona como a ponte levadiça,
pois todos os pacotes, entrando ou saindo do perímetro interno, devem passar
obrigatoriamente pelo firewall, sendo submetidos às regras de segurança e filtragem definidas
25
neste firewall, enquanto os processos que aplicam as políticas de segurança podem ser vistos
como os guardas do castelo que cumprem as determinações do Monarca.
Os filtros de pacotes estáticos, como os roteadores, são mais rápidos para filtrar
tráfego do que os firewalls com estado ou Proxy. Essa velocidade é importante e útil
principalmente quando já se está sob ataque ou quando o firewall já está sobrecarregado.
O firewall Proxy é o tipo mais avançado de firewall atualmente existente. Ele possui
todas as características e funcionalidades do firewall com estado, porém, possui serviços mais
avançados e de alto nível, pois impede que os hosts interno e externo se comuniquem
diretamente. Em vez disso, o firewall Proxy age como um intermediário entre os hosts.
26
Os firewalls Proxy examinam de forma mais minuciosa os pacotes para garantir que
apenas o tráfego concordante com o protocolo atravesse o firewall, diminuindo, com isso, a
possibilidade de tráfego malicioso que esteja entrando ou saindo da rede.
• Propagação de vermes.
De acordo com o seu campo de ação, os sensores ainda podem ser classificados de
dois tipos:
Os sensores devem interagir entre si a fim de construírem uma matriz de eventos que
tem por objetivo a qualificação do padrão de ataque, minimizando, desta forma, a ocorrência
de alertas falsos.
Desta forma, quando algum ataque for detectado pelos sensores, tornam-se possíveis
ações de contra-ataque que podem ser: envio de e-mail para o administrador, ativação de
alertas nas estações de gerência via SNMP, reconfiguração de elementos de rede como
firewall e roteadores, e até mesmo o encerramento da conexão através do envio de pacotes de
reset (flag RST do TCP) para a máquina atacante e para a máquina atacada, com o objetivo de
descarregar a pilha TCP.
Os alertas de um SDI normalmente são gerados por dois métodos que serão
posteriormente explorados neste trabalho:
Na figura 2.3 apresentamos uma rede usando dois SDIRs que foram colocados em
segmentos estratégicos da rede, podendo monitorar os dispositivos ou servidores que estão
30
nesses segmentos; neste caso, o SDIR 1 está monitorando o Servidor WEB e o Servidor de
Correio e o SDIR 2 está monitorando e protegendo os sistemas host internos, diminuindo
assim a exposição ao comprometimento interno. Ainda neste cenário, a rede apresentada na
figura utiliza dispositivos SDIH nos servidores de DNS e de Autenticação, protegendo apenas
estes sistemas.
Internet
SDIR 1
Roteador
Firewall
SDIH SDIH
Roteador
Servidor Servidor Servidor
Servidor
WEB de Correio DNS
Autenticação
SDIR 2
O software de SDI proposto neste trabalho é o Snort v.2, disponível para o Sistema
Linux. O Snort é um Sistema de Detecção de Intrusos baseado em Rede (SDIR) de código
fonte aberto. Ele é baseado em Assinaturas e usa regras para verificar a existência de pacotes
suspeitos em um segmento de rede. Deixaremos a sua instalação e configuração para um
trabalho futuro. Informações mais detalhadas sobre o referido software podem ser encontradas
em (CASWELL, 2003) ou no site www.snort.org .
31
componente da rede, qual o orçamento disponibilizado para a segurança, entre outros fatores.
Obviamente, cada situação deverá ser avaliada a fim de se adotar a melhor topologia possível
dentro dos requisitos de segurança, de disponibilidade da rede e diante dos recursos
disponíveis. É evidente que quanto maior o nível de segurança a ser implementado, maior será
a complexidade das configurações dos componentes da rede e, consequentemente, menor o
desempenho. É uma questão de avaliar riscos, custos e benefícios.
A figura 2.4 apresenta uma topologia de uma rede fictícia que possui um roteador de
perímetro que estabelece o ponto de demarcação entre a rede desprotegida (Internet) e uma
rede protegida. Nessa topologia, existem duas DMZs, a primeira, logo após o roteador de
perímetro, é uma zona desmilitarizada semiprotegida, identificada como DMZ suja; a
segunda, que é um segmento de rede a partir do firewall, é uma DMZ protegida. Nesta zona,
já existe a atuação do firewall, portanto, é um segmento mais protegido contra ataques do que
o primeiro. Abaixo do firewall, temos o domínio interno da rede corporativa.
Roteador
de Perímetro DMZ Suja
Internet
Servidor Servidor
Roteador WEB DNS
Filial Remota
DMZ
Firewall Protegida
Switch
Servidor Servidor
Rede Interna FTP PKI
A palavra criptografia significa “escrita secreta”, cujo nome vem do grego kryptos,
que significa oculto ou secreto, e graphen, que significa escrever (KAUFMAN; PERLMAN;
SPENCINER, 2002). A criptografia pode ser definida como arte ou ciência que utiliza
códigos e cifras para ocultar uma informação. Já a palavra cifra vem do hebraico saphar, que
significa dar números. Uma cifra é uma transformação de caractere por caractere ou de bit por
bit, sem levar em conta a estrutura lingüística da mensagem. Em contraste, um código
substitui uma palavra por outra palavra (TANENBAUM, 2003). Atualmente, os códigos não
são mais usados.
O processo de criptografia pode ser descrito da seguinte forma: um emissor gera uma
mensagem original chamada plain text, ou texto simples3, e utilizando-se de uma chave e um
algoritmo de cifragem, gera um cipher text, ou texto cifrado, o qual é transmitido para um
receptor. Ao chegar ao receptor, este texto passa pelo processo inverso, chamado de
decifragem, resultando no texto simples original. Presume-se, então, que a mensagem cifrada
seja incompreensível para quem não tem autorização de lê-la, pois tal intruso, ao contrário do
destinatário pretendido, não possui a chave para decifrar a mensagem cifrada, portanto, não
poderá fazê-lo com muita facilidade. Em algumas situações, este intruso além de escutar o
que passa em um canal de comunicação (intruso passivo), poderá gravar as mensagens e
reproduzi-las posteriormente antes que estas cheguem ao receptor (intruso ativo)
(TANENBAUM, 2003). Na figura 2.5, é apresentado um modelo de criptografia simplificado
e convencional que exemplifica este cenário; posteriormente, será denominado e entendido
que este esquema refere-se a uma criptografia de chave simétrica.
3
Algumas literaturas utilizam o termo texto plano, uma tradução ao pé da letra de plain text. Porém,
neste trabalho será utilizado esta denominação por acharmos mais conveniente e usual.
34
De acordo com (STALLINGS, 1999a), existem dois requerimentos básicos para o uso
seguro de um modelo de Criptografia convencional apresentado na figura 2.5 (criptografia de
chave simétrica):
• Precisa-se de um algoritmo forte, onde um invasor não deverá ser capaz de decifrar
o texto cifrado ou de descobrir a chave secreta, mesmo que ele conheça o
algoritmo de cifragem ou que possua um número de textos cifrados, juntamente
com seus textos simples que produziram cada texto simples.
• Tanto o emissor, quanto o receptor devem obter cópias das chaves secretas através
de um meio seguro e que estas devem permanecer seguras, pois se alguém tiver
acesso a esta chave e conhecer o algoritmo de cifragem, todas as informações
trafegadas poderão ser lidas.
2.7.1 Notação
Este trabalho utilizará uma notação comumente utilizada para estabelecer uma relação
entre texto simples, texto cifrado e as chaves utilizadas. Utilizar-se-á de uma notação C =
EK(P) para representar que a cifragem do texto simples P usando uma chave K gera o texto
cifrado C. De maneira similar, P = DK(C) representa a decifragem de C para se obter o texto
simples P, utilizando-se a chave K. Nesta notação, entende-se que E e D representam as
funções de cifragem e decifragem respectivamente.
35
Já foi dito que um dos requerimentos para o uso seguro de um modelo de criptografia
é a utilização de algoritmos fortes. Aparentemente, pode parecer que um algoritmo secreto
tende a ser mais forte que um algoritmo amplamente conhecido, porém, esta técnica, chamada
de segurança pela obscuridade, não parece que funcione adequadamente em todos os casos
(TANENBAUM, 2003). A segurança não deve repousar na obscuridade do sistema. Tornar o
algoritmo público possibilita que a segurança do método seja verificada e homologada por
vários criptólogos. Uma vez que especialistas tenham tentado decodificar o algoritmo por
vários anos seguidos, sem sucesso, prova-se efetivamente que o algoritmo é sólido. Portanto,
a utilização de um algoritmo secreto de critptografia pode gerar a falsa impressão de que o
mesmo é bastante seguro, simplesmente pelo fato dele não ser conhecido.
O fato, em questão, é que o segredo deve residir nas chaves, e que o algoritmo de
cifragem pode ser de conhecimento público. Esta idéia foi descrita pelo holandês August
Kerckhoff em (KERCKHOFF, 1983) onde ele descreve que uma cifra deve permanecer
segura, mesmo que um criptoanalista inimigo conheça todos os detalhes dos algoritmos de
cifragem e decifragem empregados (KERCHHOFF, 1983). Isto significa que os algoritmos
podem ser públicos, porém, as chaves devem ser secretas. Outros princípios importantes, que
norteiam um processo de cifragem, são:
• quanto aos tipos de cifras utilizadas, isto é, quanto aos tipos de operações
utilizadas na transformação do texto simples para o cifrado;
2.6 apresenta este cenário, onde existe uma chave secreta compartilhada entre emissor e
receptor, porém, essa chave é previamente trocada entre o emissor e o receptor por um canal
de comunicação seguro.
As desvantagens deste processo devem-se ao fato de que como apenas uma chave é
utilizada para cada par de entidades comunicantes, a segurança em cima dela deve ser rígida
e, se o número de entidades que queiram comunicar-se de forma segura for muito grande,
serão necessárias inúmeras cópias de chaves distribuídas, o que dificultará ainda mais a
gerência das mesmas.
• Triple Data Encryption Standard -3DES, que utiliza duas chaves de 56 bits
(chave de 112 bits). Foi uma adaptação do algoritmo DES para torná-lo mais
forte, utilizando três chamadas do próprio algoritmo DES e duas chaves de
criptografia. Maiores informações sobre a proposta deste algoritmo podem ser
encontradas em (TUCHMAN, 1979).
38
• Twofish, que utiliza chaves de 128, 192 ou 256 bits. Algoritmo de Criptografia
muito forte e amplamente utilizado.
• Serpent, que utiliza chaves de 128, 192 ou 256 bits. Algoritmo de Criptografia
muito forte.
Cabe ressaltar que este trabalho não possui objetivo de descrever detalhes sobre os
algoritmos de criptografia; bem como, não possui interesse, neste momento, em realizar
estudos comparativos entre os algoritmos de criptografia, analisando questões de
desempenho, de ocupação de memória, entre outros fatores. Porém, também ressalta a grande
importância e relevância desse tipo de pesquisa em trabalhos futuros com o objetivo de
investigar a aplicabilidade e a adequação de algoritmos de criptografia em soluções VPN.
A criptografia assimétrica, por sua vez, envolve o uso de duas chaves distintas, uma
privada e outra pública. Pode-se utilizar qualquer uma das chaves para cifrar a mensagem.
39
Entretanto, somente a chave inversa deve ser utilizada para decifrá-la. Por exemplo, se um
emissor utiliza a chave pública do receptor para cifrar a mensagem, o receptor deve utilizar a
sua chave privada para decifrá-la.
A criptografia assimétrica foi proposta e publicada pela primeira vez por dois
pesquisadores da Universidade de Standford, Diffie e Hellman em 1976 (STANDFORD;
DIFFIE; HELLMAN, 1976). Essa publicação propôs um sistema de criptografia radicalmente
novo, no qual as chaves de criptografia e descriptografia eram diferentes, revolucionando
assim a criptografia, que até então era uma ciência baseada somente em chaves simétricas. A
proposta de chaves assimétricas estabeleceu um progresso significativo na criptologia e, por
conseguinte, propiciou avanços nos sistemas de criptografia, nas suas aplicações e na
literatura. A utilização de chaves assimétricas teve profundas conseqüências nos serviços de
privacidade, na distribuição de chaves e nos serviços de autenticação. Em sua proposta, o
algoritmo de criptografia E e o algoritmo de descriptografia D, ambos chaveados por suas
chaves assimétricas (K1 e K2), tinham que atender aos seguintes requisitos:
• O texto cifrado não pode ser decifrada por ataque de texto simples escolhido.
difícil derivar DB da chave EB (requisito da Criptografia Assimétrica). Para Bob enviar uma
resposta R para Alice, Bob transmite EA(R).
Em geral, quando os algoritmos de cifragem se deparam com plain texts muito longos
para criptografar, estes algoritmos têm que, necessariamente, quebrar esse texto em unidades
menores e realizar a criptografia para cada unidade individualmente para se obter o texto
criptografado completo. Porém, os algoritmos de cifragem podem utilizar diferentes técnicas,
ou modos, para realizar esse processamento (cifragem), sendo os modos mais comuns os
seguintes:
Este modo de cifra apresenta falhas de segurança, pois um invasor, com certa
experiência, poderia substituir blocos cifrados, por outros previamente gravados, mesmo sem
saber exatamente o conteúdo do bloco, a fim de obter alguma vantagem, e esta substituição
poderia facilmente passar desapercebida, pois esta operação não afetaria o restante dos blocos
cifrados, uma vez que não há relação entre os blocos no processo de cifragem.
cifrado anterior, antes de ser codificado. Conseqüentemente, o mesmo bloco de texto simples
não é mais mapeado para o mesmo bloco de texto cifrado, isto é, o mesmo bloco de texto
simples não resultará no mesmo bloco de texto cifrado. Desta forma, a criptoanálise torna-se
mais difícil e o problema de segurança no modo de cifra ECB, descrito no item anterior, não
ocorre no Modo de Encadeamento de blocos de Cifras.
Codificação Decodificação
P0 P1 P2 C0 C1 C2
XOR XOR
Chave
D D D
...
VI XOR K k k k
Chave
K
Ek E
k
E
k
... VI XOR XOR XOR
C0 C1 C2 P0 P1 P2
parar a espera de uma resposta, estes modos mostram-se inadequados. Para aplicações ou
ambientes que necessitem codificação byte a byte, é usado o modo de feedback de cifra.
Este modo é semelhante ao modo de bloco de cifra, porém, realiza a cifragem byte a
byte. Neste modo, existe um registrador de deslocamento, geralmente de 64 ou 128 bits, no
qual é utilizado para armazenar os últimos bytes cifrados. O byte mais à esquerda desse
registrador é sempre extraído e utilizado na operação XOR com o byte corrente (texto
simples). Posteriormente, este byte é encaminhado à linha de transmissão. Em cada rodada, o
registrador desloca-se 8 bits à esquerda.
Codificação Decodificação
C 2 C 3 C4 C 5 C 6 C 7 C 8 C9 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C9
C C
10 10
P XOR C C XOR P
10 10 10 10
(a) (b)
Fonte: Adaptado de (TANENBAUM, 2003, p. 748)
Figura 2.9 – Codificação e Decodificação no modo de feedback de cifra
A figura 2.9(a) ilustra um registrador de 64 bits para gerar um texto cifrado de 64 bits.
O byte mais à esquerda (C2) é extraído e submetido na operação de XOR com P10.
Posteriormente, o registrador é deslocado 8 bits à esquerda, sendo descartado o C2, e C10 entra
na posição que fica vaga, na extremidade direita do registrador. A decodificação neste modo
de cifra funciona semelhante à codificação, inclusive, o conteúdo do registrador de
deslocamento também é codificado e não decodificado. A figura 2.9 (b) ilustra a
decodificação no modo feedback de cifra.
O problema deste modo de cifra é que se um bit for invertido acidentalmente durante a
transmissão, os 8 bytes codificados ficarão danificados enquanto o byte defeituoso estiver no
registrador, isto é, 64 bits de texto estarão danificados.
44
Neste modo, o texto simples é submetido a uma operação XOR com uma seqüência de
blocos chamada fluxo de chaves. Este fluxo é obtido a partir de uma interação, onde
inicialmente é codificado um Vetor de Inicialização com uma chave para se obter um bloco
de saída. Este bloco gerado (a partir do VI) é então codificado usando-se a chave para se obter
um próximo bloco de saída, até que se tenha uma seqüência de blocos de saída
suficientemente grande para realizar a operação de XOR com todo o texto simples. Este fluxo
de chaves é tratado como uma chave única.
Codificação Decodificação
VI VI
Chave Chave
K EK K EK
Fluxo de Fluxo de
chaves chaves
(a) (b)
A vantagem deste modo de cifra é que como o fluxo de chaves depende apenas da
chave e do Vetor de Inicialização ele não é afetado por erros de transmissão. Desta forma, um
erro ocasionado em um bit no fluxo do texto cifrado transmitido gera apenas o erro de um bit
no texto simples.
O cuidado que deve existir nesse modo de cifra é não se utilizar o mesmo par [chave e
VI] duas vezes, pois isso gerará o mesmo fluxo de chaves o tempo todo, fato que pode expor
o texto cifrado a um ataque de reutilização de fluxo de chaves (TANENBAUM, 2003).
45
c) que o receptor não possa forjar ele mesmo a mensagem. Esta característica
pode proteger o transmissor de possíveis tentativas de fraudes.
Nas Assinaturas Digitais com o uso de criptografia simétrica, uma estratégia comum é
ter uma autoridade central a qual todas as entidades confiam e que possua conhecimento de
todas as chaves secretas dessas entidades. Neste cenário, somente a entidade comunicante
(transmissor ou receptor da mensagem) e a entidade centralizadora conhecem a chave secreta.
A figura 2.11 apresenta um esquema onde Alice envia uma mensagem para Bob
através de uma entidade centralizadora, fazendo uma assinatura de sua mensagem usando sua
chave secreta KA, gerando a mensagem criptografada KA (B, RA, t, P), onde B é a identidade
de Bob, RA é um número aleatório gerado por Alice, t é um timbre de hora para evitar ataques
de repetição e P é a mensagem enviada por Alice. A entidade central (aquela em que todos
46
confiam) descriptografa a mensagem de Alice, verifica o destinatário (no caso é Bob) e envia
a Bob a mensagem criptografada com a sua chave privada: KB (A, RA, t, P, KEC (A, t, P)),
onde A é a identidade de Alice, assinalando que Alice é quem enviou a mensagem. Notemos
que a entidade centralizadora também envia KEC (A, t, P), onde KEC é a chave de criptografia
da Entidade Centralizadora, com o objetivo de impedir que Alice possa repudiar a mensagem
posteriormente, de maneira que Bob possa, se necessário, provar que Alice realmente enviou
a mensagem P com atributo t.
Entidade
Central
A, KA(B, RA, t, P)
Alice
Bob
K (A, RA, At, P, KAEC(A, t, P))
B
O grande problema com o uso de criptografia simétrica para Assinaturas Digitais é que
as entidades comunicantes precisam confiar plenamente em uma autoridade central que pode,
inclusive, ler todas as mensagens trafegadas por ela. Este contexto, dentro de um mesmo
ambiente organizacional, possivelmente, não causaria maiores transtornos, porém, a
participação de entidades de outras organizações dentro desse processo de segurança não
inspira confiança.
Desta forma, o uso de um mecanismo que não exigisse a presença de uma autoridade
central para a utilização de Assinaturas Digitais é imprescindível. Felizmente, o uso de
criptografia de chave pública para Assinaturas Digitais é possível e pode contribuir com a
solução desta problemática.
A figura 2.12 apresenta o mesmo cenário descrito na seção anterior, porém, agora,
utilizando criptografia assimétrica (chave pública). Neste, Alice pode enviar EB(DA(P)) para
Bob, a qual criptografou P com a sua chave privada, fazendo DA(P) e depois criptografou
47
DA(P) usando a chave pública de Bob, fazendo EB(DA(P)). E este, quando recebe EB(DA(P)),
descriptografa a mensagem usando a sua chave privada, produzindo DA(P), aplicando
posteriormente a chave pública de Alice EA para gerar P.
Mensagem Mensagem
P (texto simples) P (texto simples)
DA(P) DA(P)
O problema que ocorre com a Assinatura Digital com o uso de Chave Pública é que a
característica de não-repúdio só ocorre se houver garantias de que as chaves privadas das
entidades comunicantes permanecem secretas e estas também não foram alteradas. Por
exemplo, Bob só poderá provar que uma mensagem foi enviada por Alice enquanto a chave
privada de Alice, chave DA, permanecer secreta. Quando Alice revelar sua chave secreta, ela
pode afirmar que qualquer entidade poderia ter enviado a mensagem.
Dada uma mensagem original, a função hash tem como objetivo produzir uma cadeia
de bits, conhecida como sumário de mensagem, ou resumo, que representa de forma única
esta mensagem. Uma propriedade desta função diz que o caminho inverso deverá ser
computacionalmente inviável, ou seja, não poderá ser possível obter uma mensagem original
através de um resumo, o que garante a integridade da mesma.
Os algoritmos que implementam a função hash têm como objetivo fazer com que o
resumo sofra uma grande modificação caso algum caractere do conteúdo da mensagem seja
alterado. Dentre os principais, podemos destacar o Message Digest 5 (MD-5) e o Secure Hash
Algorithm 1 (SHA-1). Ambos processam os dados de entrada em blocos de 512 bits. O MD5
retorna sumários de 128 bits, enquanto o SHA-1 gera sumários de 160 bits. O MD5, por gerar
um resumo menor é mais rápido, porém, o sumário gerado pelo SHA-1 é mais seguro por ter
160 bits. Atualmente, já existe uma coleção de algoritmos de sumário denominada Secure
Hash Algorithm 2 (SHA-2), padronizado pelo National Institute of Standards and Technology
(NIST), que definiu o SHA-256, o SHA-384 e o SHA-512, tendo como principal
característica o retorno de um sumário de 256, 384 ou 512 bits respectivamente. Portanto,
mais seguro contra ataques de força bruta que seus antecessores.
É conveniente mencionar que para toda função Hash representada por MD, podemos
inferir que tal método de Sumário de Mensagem sempre possuirá as seguintes propriedades
por definição:
• Dado um texto P qualquer, ninguém pode encontrar um texto P’’ tal que
MD(P’’) = MD (P). Para atender a este requisito, a função MD deverá ter pelo
menos 128 bits, de preferência mais (TANENBAUM, 2003).
Cabe ressaltar, que o processo de geração da assinatura utiliza a função hash para a
obtenção do resumo do documento, e que, em seguida, cifra-o com a chave privada do
emissor e envia-o ao receptor. Este utilizará a chave pública do emissor para decifrar a
mensagem e a função hash para recalcular o resumo do documento, comparando-o com o
resumo recebido. Isto garante a integridade e autenticidade do documento.
Mensagem
Mensagem 6
Texto
Texto Simples
Simples M
M 5 Calcula Chave
Mensagem e Hash Hash Pública
1 assinado são de Alice EA
enviados para Bob
Algoritmo
MD5 Descripto-
grafa
(RSA) 7
2
Hash
Hash MD5
MD5
128
128 bits
bits
Hash
Hash Hash
Hash
3 gerado
gerado original
original H
H
4 8
Algoritmo Hash
Hash
Assinado
Assinado São
RSA SIM NÃO
DDAA(H)
(H)
Chave Privada Idênticos
?
de Alice DA
Mensagem
Mensagem Mensagem
Mensagem
Válida
Válida Inválida
Inválida
Sistema de Alice Sistema de Bob
Figura 2.13 - Envio de um sumário de mensagem e do RSA para assinar mensagens não-secretas.
Bob. Posteriormente, Bob calcula o hash MD5 da mensagem recebida, descriptografa o hash
assinado, com a chave pública RSA de Alice, e o compara ao hash recebido, H. Se os dois
forem idênticos, a mensagem é considerada válida.
Maiores detalhes sobre o MD5 e o SHA-1 podem ser consultados em (RIVEST, 1992)
e (NIST, 1993) respectivamente. Para uma análise mais geral, consulte (TANENBAUM,
2003).
Sem a autenticação, não se pode garantir o sucesso de uma VPN, pois não existiriam
garantias de que as identidades dos participantes em uma conexão VPN são de fato
verdadeiras. Desta forma, torna-se fundamental um conhecimento mais detalhado dos
principais protocolos de autenticação utilizados em redes VPN.
A seguir, iremos discutir alguns métodos de autenticação two-party, isto é, aqueles que
são baseados entre duas entidades. Na sua maioria, são métodos que utilizam o protocolo PPP
para o estabelecimento de conexão. Obviamente, não é objeto deste trabalho descrever
detalhadamente todos os métodos, até porque alguns deles são protocolos utilizados para
conexão de clientes remotos via linha discada e o escopo deste trabalho restringiu-se a
53
conexão entre redes corporativas. Porém, é importante sua descrição para um melhor
entendimento dos mecanismos de autenticação utilizados em redes VPN.
2. O cliente remoto informa ao Servidor de Acesso à Rede que ele está executando o
PPP.
A figura 2.14 ilustra este cenário de troca de mensagens no protocolo PAP, de acordo
com os passos acima descritos.
54
Estabelecimento do Servidor de
1 Acesso à Rede
Enlace
Cliente NAS
Remoto
2 Executar o PPP
Usar o PAP 3
4 <usuário>, <senha>
Autoriza ou não
usuário
5
Diante dessas limitações, fica evidente que este protocolo não se adéqua aos
requerimentos atuais de segurança para o estabelecimento de links confiáveis para a
configuração de redes VPN, principalmente pela ausência de criptografia. Desta forma, não
será foco deste trabalho o seu maior detalhamento.
Estabelecimento do
1
Enlace
Servidor de
1 Executar o PPP
Acesso à Rede
Cliente NAS
Remoto
Usar o CHAP 2
3 OK
Desafio (Pergunta) 4a
4b Resposta (hash)
Resposta (hash) 4c
A primeira fase do handshake (4a), que ocorre após o estabelecimento do link, sempre
iniciando do NAS, é o envio de um desafio por parte do Autenticador (terminologia usada
pela RFC 1994 para denominar o Servidor de Autenticação) para o cliente, selecionando de
forma aleatória dentro de um conjunto já pré-estabelecido de desafios e respostas.
Na segunda fase do handshake (4b), o cliente utiliza uma função hash (utiliza
normalmente o MD5) calculado em cima do desafio proposto, para posteriormente devolver a
resposta ao servidor.
Na terceira fase do handshake (4c), o servidor irá validar a resposta (enviada pelo
cliente), verificando-a contra seu próprio cálculo do valor de hash esperado. Ele decifra a
mensagem enviada através da senha do usuário contida no seu banco, autorizando-o ou não.
A RFC 2284 define várias formas de autenticação para o EAP, entre elas, ressaltam-se
as seguintes:
• One-Time Password – quando a senha é gerada uma única vez para cada seção.
• Generic Token Card – neste tipo é gerado uma combinação numérica aleatória
para cada seção.
Servidor
Sugestão de Tipo de Autenticação
Cliente
Aceita ou Não a sugestão
Envia Resposta
1997, o RADIUS foi padronizado pela IEFT através da RFC 2058. Posteriormente, o
protocolo RADIUS teve dezenas de outras RFCs que o alteraram ao longo de sua existência,
tornando a sua definição inicial totalmente obsoleta. Atualmente, ele é descrito pela RFC
2865, de junho de 2000 (RIGNEY et al., 2000) e pela RFC 2866 (RIGNEY, 2000) que define
o serviço de contabilidade do RADIUS. Possui também algumas RFCs que definem extensões
e atualizações ao modelo.
Desta forma, o NAS pode, e deve, ser configurado para trabalhar como cliente de um
Servidor de Autenticação, no caso, um servidor RADIUS. Com isso, cada pedido de
autenticação passa pelo NAS, que passa ao servidor RADIUS, que recebe um retorno do
servidor e o encaminha ao cliente, conforme pode ser observado na figura 2.17.
Cliente
Remoto Cliente
TACACS+/RADIUS Servidor de
Rede de Autenticação
Telefonia TACACS+/RADIUS
NAS
Cliente
Remoto
Cliente
Internet TACACS+/RADIUS
Rede
Corporativa
1. O usuário solicita autenticação PPP para o NAS e entra com usuário e senha.
61
Desta forma, torna-se essencial a separação dessas tarefas e delegá-las a uma terceira
entidade, confiável a toda a rede, que irá centralizar todos os processos de autenticação. E
conforme já mencionado, este esquema permitirá uma maior centralização e controle das
informações de autenticação, o que é bom para a gestão da segurança. Os principais métodos
de autenticação Third-Party conhecidos são: Kerberos e a Infra-estrutura de Chave Pública
X.509 (PKI). O Kerberos será discutido a seguir. A infra-estrutura de Chave Pública X.509
será descrita em uma seção específica deste trabalho, devido a sua grande relevância para a
construção de redes VPN seguras.
2.10.2.1 Kerberos
O Kerberos pode ser usado para autenticar sessões PPP, logins em roteadores, logins
em Servidores de Acesso à Rede (NAS) e acesso a serviços de Telnet, FTP, entre outros
serviços de redes.
KDC
Usuário B
Protocolo
Kerberos
A infra-estrutura de chave pública PKI que será descrita, estabelece meios e regras
técnicas que têm como objetivo garantir a autenticidade, a integridade e a validade jurídica de
documentos em forma eletrônica.
65
Cabe ressaltar que os Certificados não são secretos ou protegidos, qualquer entidade
que conheça a chave pública da CA pode examinar o conteúdo e confirmar a autenticidade de
um certificado emitido por esta Autoridade, uma vez que a CA assina os certificados com a
sua chave privada.
É possível se utilizar a infra-estrutura de Chave Pública (PKI) nas redes VPN, por
meio das configurações do IPSec, padrão este que será detalhado mais adiante nesta
dissertação.
Dentro deste contexto, é importante ressaltar que uma Empresa pode possuir a sua
própria CA, o que chamamos de Autoridade Certificadora Autônoma (SILVA, 2003). Esta
pode ser uma boa opção para reduzir custos, se as redes VPNs serão exclusivamente utilizadas
pela mesma Empresa. Porém, quando se interliga duas ou mais Empresas distintas através de
VPN, esta opção pode não ser muito apreciada por parte de uma das Empresas, pois esta terá
que confiar plenamente na segurança do servidor que faz o papel de CA na outra Empresa.
Neste último caso, talvez a opção mais aconselhável seria a contratação de uma terceira
entidade, reconhecida e confiável para prestar este serviço.
Vale ressaltar que o software de VPN adotado neste trabalho, o FreeS/WAN, com a
aplicação de todos os patchs, possui suporte a Certificados Digitais; porém, para a utilização
dessa facilidade é necessário que todas as entidades envolvidas em uma conexão VPN
(Gateways VPNs) estejam configuradas para que utilizem uma CA, podendo esta ser
autônoma ou não.
2.11.3 X.509
Uma característica do padrão X.509 é a sua proximidade com o modelo OSI, que se
contrapõe inclusive aos modelos da IETF como descrito por Tanenbaum:
/C=BR/O=UEA/OU=Computação/CN=João
• Public Key (Chave Pública) - Esta é a chave pública da entidade que está sendo
chamada, junto com um identificador do algoritmo que especifica que sistema
de criptografia a chave pública utiliza e alguns parâmetros da chave
associados.
• Registro – é o processo pelo qual uma entidade torna-se conhecida por uma
CA. Este processo pode ser feito por uma entidade específica chamada
Autoridade Registradora (Registration Authority ou RA), que estabelece e
verifica corretamente a identidade de uma entidade. Caso a Autoridade
Registradora não exista, a CA assume este papel. Porém, vale ressaltar, que
69
Entidade de
Apresenta Credenciais p/ Usuários
Criação de Certificados
Entidade de
Certificados e CRLs
Gerência
Repositório
Publica Certificados
RA Apresenta
Credenciais e
Requisita
Requisita Certificados
Certificados
Publica Certificados
Publica CRLs
CA
Publica CRLs
Emissor
CRL
Pode-se observar que os componentes desse modelo, de acordo com o padrão definido
na RFC 3280, são:
CA Raiz
CA - 1 CA - 2
CA - 3 Usuário B
Usuário A
O usuário A tem um certificado assinado pela CA-3, que foi assinado pela
CA-1, que foi assinado pela CA Raiz. Agora descendo na hierarquia, tem-se
que CA Raiz assinou CA-2, que emitiu o certificado para o usuário B.
Portanto, conclui-se que, neste caso em particular, pode haver autenticação entre os
usuários A e B, pois os mesmos possuem um ponto de confiança comum. Diz-se, neste caso,
que há um Caminho de Certificação entre A e B. Em não havendo este caminho entre dois
usuários, ou não existindo um ponto de confiança comum na hierarquia de certificações, não
poderá ocorrer autenticação entre os mesmos.
Desta forma, os servidores VPN, que desejam estabelecer um túnel VPN, devem
possuir um caminho de certificação entre os mesmos para que ambos possam utilizar
Certificados Digitais no processo de autenticação.
73
Como já mencionado neste trabalho, uma Virtual Private Network (VPN) ou Rede
Privada Virtual é uma seção de rede protegida formada através de canais desprotegidos, como
a Internet. Uma VPN pode permitir que um usuário externo participe da rede interna como se
estivesse conectado diretamente a ela utilizando-se de uma rede pública e compartilhada.
Outra aplicação de uma VPN, que será a abordagem principal deste trabalho, é o de se
interconectar diferentes redes privadas para o tráfego de dados entre elas, utilizando-se como
meio, uma rede pública.
As VPNs baseadas na Internet surgiram então como uma forma mais confiável e
segura de transmissão de informações na Internet, pois agregaram a ela características de
redes criptografadas, empregando diversos algoritmos de criptografia, autenticação e
protocolos de encapsulamento. Associado também ao baixo custo oferecido pela Internet, está
a facilidade de implementação e manutenção das redes VPN, o que as tornaram tecnologias
acessíveis a qualquer organização que deseje empregar segurança e confiabilidade aos
serviços oferecidos através da Internet.
5
Os PVCs são circuitos cujas conexões são estabelecidas permanentemente.
75
Uma VPN é uma rede de comunicação, construída para uso privado de uma
Empresa, sobre uma infra-estrutura pública compartilhada (PERLMUTTER,
2001).
As redes VPN 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
(TANENBAUM, 2003).
Uma definição simples e menos formal foi dada por Fergson e Huston:
Uma VPN é uma rede privada construída sobre uma infra-estrutura pública,
como a Internet (FERGUSON; HUSTON, 1998).
Diante do exposto, podemos descrever a nossa própria definição de VPN como sendo
um ambiente de comunicação com acesso controlado, permitindo conexões seguras para
apenas uma determinada comunidade, fazendo uso da infra-estrutura de rede pública já
existente, como por exemplo, a Internet.
A VPN se apresenta como opção de segurança cada vez mais popular para a
interconexão de redes corporativas utilizando a Internet. A VPN cria um canal de
comunicação com criptografia fim-a-fim, possibilitando uma conexão mais segura entre duas
redes distintas, fornecendo privacidade, integridade e autenticidade aos dados transmitidos na
rede.
É uma conexão que tem a aparência e várias vantagens de uma conexão dedicada, com
a diferença de ser implementada sobre uma rede compartilhada. Através da técnica de
“tunneling”, ou “tunelamento”, os pacotes de dados são transmitidos por uma rede pública
roteada (como por exemplo, a Internet ou qualquer outra rede disponível comercialmente), em
um ”túnel” privado que simula uma conexão ponto-a-ponto. Esta abordagem possibilita que o
tráfego na rede, gerado por fontes diversas, seja transmitido em uma mesma infra-estrutura,
porém, em “túneis” distintos, permitindo que protocolos de rede trafeguem em infra-estruturas
incompatíveis. Além disso, pode-se diferenciar o tráfego para ser direcionado a um destino
específico e receber diferentes níveis de serviço.
Uma rede VPN implementa criação de túneis de criptografia através da Internet para
transmitir informações entre redes privadas. Para os propósitos deste trabalho, podemos
definir as VPNs como um serviço de comunicação seguro entre redes privadas de corporações
77
Como mencionado, uma VPN tipicamente utiliza a Internet como o meio de transporte
para estabelecer conexões seguras com parceiros de negócios, estender comunicações para
escritórios regionais e isolados e diminuir significativamente o custo de comunicação para
uma comunidade de funcionários crescentemente móvel.
Felizmente, as VPNs tornaram-se uma alternativa viável para transpor esses dois
obstáculos apresentados, através do uso de mecanismos de segurança, baseados no uso de
criptografia, e no uso de tecnologia de “tunneling”, ou tunelamento, a ser descrita
posteriormente.
A idéia básica consiste em que ao invés dos pacotes trafegarem na Internet de forma
aberta, antes de serem transmitidos, os dados são primeiramente autenticados e
criptografados, processo este que utiliza chaves públicas e chaves privadas, e em seguida, os
78
dados são encapsulados em pacotes IP pelo protocolo do túnel VPN e transmitidos pela
Internet. Esta medida possibilitará o sigilo das informações (agora cifrados) mesmo que haja
algum tipo de interferência nesse percurso através de uma rede insegura, como é a Internet.
Como dissemos, as VPNs implementadas entre redes são utilizadas para interconexão
de redes privadas corporativas (Intranets), normalmente entre matriz e filiais, ou entre
empresas parceiras (extranets), ou entre clientes e fornecedores. Desta forma, cada intranet ou
extranet participante de uma conexão VPN necessita de um dispositivo VPN, que pode ser um
roteador, um RAS (Servidor de Acesso Remoto) ou um servidor de rede. Na figura abaixo 3.1
79
é apresentada uma VPN entre duas redes, interligando matriz e filial, onde os dispositivos
VPN estão configurados em Servidores Gateway VPN, que também possuem a função de
firewall. Esta configuração cria um segmento virtual entre as duas extremidades de gateways,
que é chamado de túnel. Vale ressaltar que esta configuração permite que uma rede possa
abrir vários túneis VPN, desde que o software ou o equipamento responsável pelo
tunelamento aceite.
Firewall / Firewall /
Gateway VPN Gateway VPN
Lan Lan
INTERNET
Link dedicado
a um provedor
Link discado Internet
ou dedicado a
um Provedor
Escritório da Internet MATRIZ da
FILIAL Empresa
Gateway Gateway
VPN
VPN
Internet
Empresa A Empresa B
Túneis
IP
Empresa C Empresa D
Gateway
VPN Gateway
VPN
Túnel
Firewall /
Gateway VPN
INTERNET
Provedor
Internet
(ISP)
Intranet
6
Neste contexto, o emprego da palavra local significa que a ligação será efetuada a um Provedor de Acesso a
Internet, localizado na mesma cidade em que se encontra o cliente remoto.
81
Header
do Túnel
VPN
Lan Lan
¢%$&@¿®
INTERNET
Payload Túnel
Payload tunelado e
criptografado
uma conexão, também podendo ser autenticado por algum outro servidor de autenticação
definido na rede. Posteriormente, a informação é criptografada, possibilitando o envio de
formatos de dados não legíveis (textos cifrados), e logo em seguida, estas informações são
encapsuladas em pacotes IP. Neste momento, o Gateway VPN acrescenta um novo cabeçalho
IP, contendo o endereço do Gateway VPN origem e o destino, encapsulando o pacote original.
A medida em que os pacotes chegam em seu destino, vão sendo reconstituídos e
decodificados para um formato legível.
Ao usar tunelamento, embora os endereços dos hosts sejam mascarados para o mundo
virtual, eles não possuem anonimato completo, pois como os endereços dos gateways estão
disponíveis nos pacotes, bisbilhoteiros ainda podem determinar quem está se comunicando
com quem.
O túnel pode encapsular diferentes protocolos, sendo possível para as VPNs que usam
a tecnologia de ‘tunelamento’ simular grande parte das funcionalidades de uma rede privada
dedicada.
Diante dos conceitos básicos sobre tunelamento que foram apresentados até o
momento, ressaltamos ainda que o tunelamento pode ser considerado de dois tipos:
Clientes
VPN
Conexão VPN Túnel
Rede Pública
INTERNET
NAS Gateway
VPN
a utilização de criptografia por software. Porém, neste último caso são necessárias CPUs com
maior capacidade de processamento.
Apesar da redução de custos (que pode ou não ocorrer), é preciso muita atenção com a
segurança quando se constrói uma WAN utilizando a Internet como meio de transporte. Neste
caso, as transmissões da empresa não estarão mais restritas a um link dedicado privado, ao
invés disso, os dados farão a maior parte do trajeto através de uma teia de roteadores e hosts
desconhecidos, em território pouco familiar e eventualmente inseguro. Por este motivo, o uso
da criptografia nas VPNs é fundamental.
Ressalta-se também que a implementação de uma VPN pode consumir bastante tempo
e tornar-se uma grande desvantagem se não houver um planejamento adequado, preocupando-
se com a gerência das chaves e a resolução dos problemas encontrados. É importante que se
tenha conhecimento de como as redes que se pretende interligar estão funcionando, assim
como as suas configurações, pois qualquer imperfeição pode resultar em mais tempo gasto
para corrigi-la.
85
estas VPNs, baseadas nesses protocolos, dependem de uma infra-estrutura de rede específica
montada para cada protocolo pela própria concessionária de telecomunicações. Porém, como
já anteriormente mencionado, este trabalho foca a implementação de redes VPN corporativas
que possam utilizar a infra-estrutura da Internet já montada, baseada no protocolo IPv4.
A RFC 1661 (SIMPSON, 1994), que define o protocolo PPP, apresenta três
componentes principais definidos para este protocolo, são eles:
89
Maiores detalhes sobre o protocolo LCP podem ser obtidos na própria RFC 1661 que
define o PPP. O protocolo NCP é específico para cada protocolo de rede.
90
A figura abaixo ilustra um possível cenário de conexão PPP. Nesta, tem-se um cliente
remoto que estabelece uma conexão PPP através da Rede de Telefonia até o Servidor de
Acesso Remoto (RAS) de uma Empresa para que este possa ter acesso à Rede Interna da
Empresa, tendo a possibilidade ainda de estabelecer uma comunicação com a Internet através
da rede local, ou pode também representar uma conexão a um Provedor de Internet (ISP),
porém, possivelmente este cliente teria acesso apenas ao roteador de borda que dá acesso à
Internet e a outros poucos serviços, como, por exemplo, serviços de FTP e Web.
Internet
Cliente RAS
Remoto
Roteador
Rede de
Telefonia
Conexão PPP
Rede Local
Este protocolo não é objeto de maior pesquisa e detalhamento neste trabalho, pois o
mesmo é utilizado para conexões de Clientes Remotos, e este trabalho preocupa-se com a
interligação entre redes corporativas que já estão inseridas na Internet, porém, é necessário o
91
Desta forma, ele possibilita que os usuários possam discar para um provedor de
Acesso a Internet (ISP) local ou conectar-se diretamente à Internet, e acessar sua rede com a
mesma facilidade como se estivessem em suas próprias mesas de trabalho.
92
Interface Servidor
Virtual PPTP Acesso Servidor
Cliente Remoto PPTP (VPN)
Remoto
Rede Local
Internet
Acesso dial-up
Datagrama IP
Após o cliente remoto realizar a conexão PPP, uma segunda conexão é realizada sobre
a conexão PPP existente, interligando este usuário ao servidor PPTP. Nesta conexão, os
pacotes IP são encapsulados pelo PPTP, que por sua vez, são encapsulados pelo PPP. A figura
7
O protocolo MPPE utiliza chaves de criptografia de 40, 56 e 128 bits
93
4.3 ilustra os pacotes que são trafegados em uma conexão PPTP, descrevendo passo a passo
os pacotes envolvidos.
Cabeçalho
Pacote IP Original Dados
IP
Para que tenhamos uma idéia sobre as críticas que a Microsoft recebeu acerca da
fragilidade desse protocolo de criptografia, tenhamos como exemplo a seguinte conclusão:
Uma das grandes vantagens deste mecanismo de tunelamento é a sua facilidade de uso
e aplicabilidade para clientes remotos. Eles precisam, apenas, fazer uma conexão local com
uma rede pública de dados (Internet) e a partir daí, criar um túnel privado do sistema cliente
até o ponto remoto desejado. Outra vantagem desse mecanismo de tunelamento é que o
mesmo é totalmente transparente ao Servidor de Acesso Remoto e a toda infra-estrutura
Internet, não sendo necessária nenhuma configuração especial no RAS. O RAS ou o Provedor
Internet utilizado para conexão simplesmente repassa o tráfego PPTP da mesma maneira que
95
processa o tráfego IP. O túnel PPTP pode se estender por vários provedores sem a
necessidade de configurações explícitas.
A figura 4.4 descreve um cenário típico do L2TP. Nesse cenário, é apresentada uma
topologia típica de como pode ser feito o tunelamento do PPP entre um cliente remoto ou um
cliente LAC e o LNS.
97
Cliente LAC
ISP
LNS/NAS
LAC/
Rede Local
NAS Internet
Cliente
Remoto
Rede de
Telefonia
LNS/NAS
O cliente remoto inicia uma conexão PPP até o LAC. O LAC então realiza o
tunelamento do PPP até o LNS através da Internet ou através de outra rede, como, por
exemplo, uma rede ATM ou Frame Relay. Desta forma, o cliente acessa a rede local e obtém
um endereço válido nesta rede através de uma negociação NCP. O processo de autenticação e
autorização pode ser provido através de um servidor de domínio dessa rede local
(TOWNSLEY; VALENCIA; RUBENS; PALL; ZORN; PALTER, 1999).
A idéia era fazer desse label um índice para uma tabela interna, fazendo como se a
tarefa de localização da linha de saída de um pacote fosse apenas uma questão de pesquisa em
uma tabela, tornando o roteamento muito mais rápido.
8
No Linux, esta manutenção é feita com UDP através da porta 1701 (ORTIZ; FERREIRA, 2003).
99
O grande problema enfrentado foi sobre a localização do rótulo, pois os pacotes IP não
foram projetados para circuitos virtuais. Não existe nenhum campo disponível para os rótulos
dos circuitos virtuais dentro do cabeçalho IP. Desta forma, a solução encontrada foi se
adicionar um cabeçalho MPLS antes do cabeçalho IP e se utilizar cabeçalhos PPP para
encapsular o MPLS entre os roteadores. A figura 4.5 apresenta o datagrama IP dentro de uma
infra-estrutura MPLS.
Cabeçalho Validação
Dados (Payload)
IP (Checksum)
Cabeçalho Validação
PPP MPLS Dados (Payload)
IP (Checksum)
20 3 1 8
Como observado na figura 4.5, o cabeçalho MPLS possui quatro campos. Porém, o
principal desse cabeçalho que devemos nos ater neste trabalho, é o campo Label, o qual
contém o rótulo do circuito. Vários cabeçalhos MPLS podem ser inseridos no mesmo pacote
(esta situação apresenta-se quando existe a necessidade da existência de diferentes labels
entre os end-points, o label S indica o empilhamento ou não desses labels).
Os roteadores que são capazes de entender os pacotes MPLS são chamados Label
Switch Router (LSR). O caminho percorrido pelo pacote é denominado Label Switch Path
(LSP). E o protocolo de comunicação entre os elementos de rede ou roteadores é chamado de
Label Distribution Protocol (LDP).
Com base nas características apresentadas até o momento sobre o MPLS, facilmente
percebemos que o MPLS pode ser utilizado amplamente para a construção de redes VPN, pois
garante um isolamento completo do tráfego através da criação de tabelas de rótulos usadas
para roteamento exclusivas de cada circuito virtual (SILVA, 2003). O problema dessa solução
100
para a construção de VPN é que a mesma depende da existência de roteadores LSR na rota
entre as entidades comunicantes. A figura 4.6 apresenta um esquema de rede MPLS.
LSR
Roteador
Roteador de Saída
LSR LSR
de Entrada
4.5 IPsec
Diante destes argumentos, esta abordagem foi ganhando cada vez mais apoio,
inclusive do IETF (Internet Engineering Task Force), culminando nas definições de padrões
que compõem o IPSec, descritas inicialmente pelas RFCs 2401, 2402, 2406, 2408 e 2410,
entre outras. A RFC 2401 definiu a Arquitetura de Segurança para o protocolo IP (IPSec) e o
seu funcionamento. A RFC 2402 descreve o protocolo Authentication Header (AH) que
integra o IPSec e provê serviços de integridade, autenticação e de não-repúdio nas conexões.
A RFC 2406 descreve o protocolo Encapsulating Security Payload (ESP), também integrante
do IPSec, que provê serviços de confidencialidade (criptografia) e de limite de fluxo de
tráfego. A RFC 2408 descreve as Associações de Segurança e o protocolo de gerenciamento
de chave, o ISAKMP (Internet Security Association and Key Management Protocol). A RFC
2410 descreve um algoritmo de criptografia nulo para ser utilizado no IPSec. Esta solução
atende aos usuários que não desejam utilizar a criptografia no IPSec, por esta ser dispendiosa
em termos computacionais, permitindo assim o uso de um algoritmo nulo.
Essa afirmação evidencia que o IPSec é um padrão que não está vinculado a
protocolos de criptografia específicos, portanto, a sua estrutura sobrevive mesmo a violações
em algoritmos de criptografia, pois, caso esta situação ocorra, basta alterar o algoritmo
102
Outro aspecto importante a ser ressaltado sobre o IPSec é que, embora trabalhe na
camada de rede IP (não orientada a conexão), o IPSec é orientado a conexão, pois necessita
estabelecer uma conexão para o estabelecimento de uma chave que será utilizada durante um
certo período de tempo. No contexto do IPSec, uma conexão é chamada de uma Associação
de Segurança. Os conceitos e funcionamento de uma Associação de Segurança serão
descritos na seção 4.5.2.
Em 1998, ano em que foram definidos esses protocolos, estabeleceu-se que, para
melhor garantia de interoperabilidade, todas as implementações do IPSec deveriam suportar
obrigatoriamente o DES e o 3-DES como algoritmos de criptografia e os algoritmos HMAC,
MD5 e SHA-1 para autenticação (SILVA, 2003). Atualmente, a lista de protocolos de
criptografia e autenticação encontra-se bem maior, alguns fornecedores de produtos IPSec já
implementam outros algoritmos de criptografia, como por exemplo, o Advanced Encryption
Standard (AES – Rijndael), Serpent, twofish, IDEA, entre outros.
ESP ESP
AH (somente com criptografia) (criptografia + autenticação)
Controle de Acesso
v v v
Integridade
v v
Autenticação
v v
Rejeição de pacotes replay
v v v
Confidencialidade
v v
Confidencialidade em fluxo
de tráfego limitado v v
Podemos também definir uma Associação de Segurança como sendo uma conexão
lógica que protege o fluxo de dados de um dispositivo IPSec a outro usando um Conjunto de
Transformação.
Quando uma entidade quiser estabelecer uma Associação de Segurança, ela utiliza um
SPI, um protocolo de segurança e um endereço destino (pertencente à entidade com que
deseja estabelecer comunicação segura) e envia essa informação à entidade com aquela que
quer estabelecer o canal seguro. Assim, para cada sessão de comunicação autenticada entre
105
dois hosts, são necessários dois SPI - um para cada sentido, dado que cada Associação de
Segurança é unidirecional (simplex).
O IPSec define dois modos de uma Associação de Segurança - SA. Define os modos
de transporte e o de Túnel. No modo de transporte, a carga do pacote IP é protegida pelo
IPSec. O Header (Cabeçalho) do pacote IP original é deixado intacto, sendo adicionado a um
Header de IPsec após o Cabeçalho do pacote IP original. Isto pode ser visualizado na figura
4.7 a seguir.
Cabeçalho IP Carga
Pacote IP Protegido
O Campo de Carga pode
ser Criptografado
O modo de túnel é uma SA entre dois roteadores (ou gateways de segurança como são
chamados) ou um host e um roteador. Neste modo, todo o pacote IP é protegido e torna-se
107
Pacote IP Original
Cabeçalho IP Carga
O modo de Túnel (ou tunelamento) é a base para implementação das redes VPN
dedicadas entre dois roteadores ou a base para conexões VPN entre usuários em hosts remotos
a um roteador dentro de uma Intranet.
Outra questão importante da utilização do modo de Túnel é que neste modo não há
necessidade de se equipar todas as estações e servidores com o IPSec; ao invés disso, pode-se
ativar o IPSec apenas nos roteadores ou nos gateways.
Como será visto posteriormente, tanto o modo de transporte como o modo túnel
podem ser encapsulados em cabeçalhos ESP ou AH.
O Protocolo AH, descrito pela RFC 2402, provê integridade e autenticação aos
datagramas IP, e ainda provê proteção contra ataques do tipo replays, ou seja, quando uma
pessoa mal intencionada captura pacotes válidos e autenticados pertencentes a uma conexão,
replica-os e os reenvia, como se fosse a entidade que iniciou a conexão. Este serviço é
opcional, que pode ser selecionado pela entidade recebedora dos pacotes quando uma SA é
108
estabelecida, embora, que por default haja um sequenciamento dos pacotes feitos pela
entidade que originou os pacotes, este serviço é efetivamente aplicado quando a recebedora
checa os números de sequência dos pacotes. O AH também previne ataques do tipo Spoofing,
ou seja, quando o invasor assume o papel de uma entidade confiável para o destino.
Bit 0 8 16 31
Next Payload
Reservado
Header Length
(16 bits)
(8 bits) (8 bits)
Sequence Number
Cabe observar que como o pacote IP é um datagrama, e portanto não possui garantia
de entrega, cada pacote deve conter informações necessárias para estabelecer o sincronismo
da Criptografia, permitindo, desta forma, que a descriptografia ocorra no destino sem
problemas. Porém, se nenhum algoritmo de criptografia for utilizado, o ESP poderá oferecer
somente autenticação (SILVA, 2003).
Bit 0 8 16 24 31
ESP
Sequence Number
Dados
Criptografados
• Next Header (8 bits): identifica o tipo dos dados contidos no campo Payload
Data, indicando o primeiro header neste Payload.
Como pode ser observado através da figura 4.11, os campos Payload Data, Padding,
Pad Length e Next Header podem ser criptografados pelo serviço ESP. O campo Payload
Data contém o ESP, porém, quando é utilizado algoritmo de criptografia, este campo pode
conter estruturas necessárias para o sincronismo da criptografia, como é o caso dos Vetores de
Inicialização, ou Initialization Vector, quando utilizados no algoritmo DES no modo de
encadeamento de bloco de cifra. O Vetor de Inicialização corresponde aos 8 bytes iniciais da
Chave Simétrica, que serve para evitar que duas mensagens iguais sejam mapeadas para o
113
mesmo bloco criptografado. Este vetor será armazenado no início do Campo Payload Data
(SILVA, 2003).
O Protocolo ESP também pode operar de duas formas: modo de transporte ou modo
túnel. O modo transporte é utilizado para criptografar e opcionalmente autenticar os dados
carregados pelo IP (STALLINGS, 1999a). Neste modo, o cabeçalho ESP é inserido entre o
cabeçalho IP e os Dados (Payload), ou melhor, imediatamente antes do cabeçalho do
protocolo da camada de transporte, adicionando o trailer ESP. Se a autenticação for
selecionada, um campo de Autenticação é adicionado após o trailer ESP. Se o pacote original
já tiver um cabeçalho IPSec, este novo cabeçalho é colocado antes do cabeçalho IPSec já
construído. A figura 4.2 apresenta a aplicação do ESP no modo transporte.
Já o modo túnel é utilizado para criptografar todo o pacote IP, sendo colocado todo o
pacote original dentro de um novo pacote IP. Neste modo, se o túnel for entre dois hosts, os
endereços de origem e destino do novo cabeçalho serão os mesmos do cabeçalho
criptografado. Se o túnel for entre gateways, os endereços de origem e destino do novo
cabeçalho serão dos gateways e os endereços dentro do cabeçalho criptografado serão dos
hosts ou servidores atrás dos gateways (KENT; ATKINSON, 1998c). A figura 4.12 abaixo
ilustra estes dois modos para o protocolo ESP.
Dados Criptografados
Campos Autenticados
Como pode ser observado na figura 4.12, o modo túnel do protocolo ESP possibilita a
criptografia e a autenticação de todo o pacote original, ou seja, garante confidencialidade e
autenticidade ao pacote original.
Fica claro que o modo túnel é aplicável em configurações que incluem um firewall, ou
um outro tipo de gateway de segurança, o qual protege uma rede privada (confiável) de redes
externas, e neste caso, a criptografia ocorre somente entre um host externo e o gateway de
segurança ou entre dois gateways de segurança. Isto simplifica a tarefa de distribuição de
chaves, pois há uma redução no número de chaves necessárias para o estabelecimento de
conexões seguras (STALLINGS, 1999a).
Como o ESP pode fazer tudo que o AH faz, pode-se pensar que o mesmo o substitui
integralmente, porém, há uma leve diferença, o ESP checa integridade apenas da carga do
pacote IPSec e o AH checa integridade do pacote inteiro (carga + cabeçalho IP). Desta forma,
para aplicações críticas, que requeiram alto nível de segurança, faz-se necessário utilizar o AH
e o ESP em conjunto.
ser a definição da Empresa de qual o algoritmo de criptografia pode ser utilizado para
conexões IPSec, mas não a chave de criptografia.
O protocolo IPSec pode proteger qualquer protocolo que rode sobre o IP e qualquer
meio físico onde o IP possa rodar (FREES/WAN, 2003), podendo proteger uma grande
variedade de aplicações e protocolos rodando sobre uma infra-estrutura física complexa, e
esta é a realidade da Internet. Desta forma, O IPSec é considerado uma solução de serviços de
segurança bastante generalista, a qual não gera impactos visíveis aos usuários. Ao contrário
do IPSec, por exemplo, para se utilizar o PGP para criptografia e assinaturas digitais nos e-
mails, o usuário deve no mínimo: lembrar-se da sua frase geradora da chave (passphrase),
mantê-la em segurança e seguir os procedimentos para validar as chaves correspondentes
(FREES/WAN, 2003).
É importante também ressaltar que o IPSec possui algumas limitações. De acordo com
(FREES/WAN, 2003), as principais limitações desse padrão são:
• O IPSec não pode ser seguro se o Sistema não for. Isto significa que garantir
a segurança nas máquinas que implementam os gateways IPSec é um
requerimento essencial.
• O IPsec não pode fazer tudo. Ele não provê toda a funcionalidade dos
sistemas de segurança da camada de aplicação. Entretanto, os ataques a
protocolos da camada de aplicação tornam-se mais difíceis. Havendo, por
exemplo, uma necessidade posterior de comprovação de autenticidade de um
documento através da assinatura digital de um determinado usuário, deverá se
118
• O IPsec não previne ataques DoS (Denial of Service). Esses ataques podem
causar o travamento de um sistema ou uma sobrecarga, que pode comprometer
demasiadamente as operações legais em um sistema, gerando inclusive a
negação de serviços a usuários legítimos. Para ter proteção contra este tipo de
ataque, é necessário a utilização de um firewall, que poderá ser utilizado
juntamente com o IPSec.
Embora a IPSec não possua um mecanismo de gestão de chaves, a IETF definiu como
norma de gerenciamento de chaves o protocolo híbrido Internet Key Exchange – IKE,
através da RFC 2409 (HARKINS; CARREL, 1998), o qual realiza a negociação dinâmica de
um SA. Ele é um protocolo híbrido porque se originou da associação e implementação de três
protocolos, a saber:
Vale destacar:
Doravante, este trabalho fará referência somente ao protocolo IKE, quando se referir a
toda funcionalidade de gerenciamento de chaves definida pelo IETF, englobando tanto o
protocolo ISAKMP, como o protocolo OAKLEY.
• Provê mudança dinâmica das chaves. Com o IKE, chaves expiradas após um
determinado período são trocadas por novas chaves de maneira dinâmica.
O IKE usa a porta 500 do protocolo UDP e interage com os restantes mecanismos de
segurança IPSec através de associações de segurança. Assim, o IKE proporciona a
possibilidade de estabelecer associações de segurança para diversos protocolos e aplicações
de segurança, tendo assim um método transparente e aberto de associar diferentes
mecanismos de segurança, sem envolver as entidades participantes na comunicação.
Aplicação IKE
Transporte
Rede IPsec
Física
A Fase 1 tem o seu início em meio inseguro. A proposta dessa fase é estabelecer um
canal seguro para as negociações da Fase 2, isto é, proteger a comunicação futura entre as
duas entidades ISAKMP, estabelecendo, desta forma, uma Associação de Segurança do
ISAKMP9, também denominada SA IKE (ou SA ISAKMP). Na Fase 2, é estabelecido uma
Associação de Segurança para outros protocolos. Neste caso, é negociada uma SA IPSec,
configurando-se, portanto, uma ligação entre as duas entidades que desejam a conexão.
9
Embora seja chamada de associação de segurança, esta não deve ser confundida com a SA do
padrão IPSec. A SA do ISAKMP é bidirecional e não se aplica ao tráfego IPSec (SILVA, 2003).
122
propostas de SA, o receptor então escolhe uma delas e a envia ao emissor. Na segunda etapa,
as entidades trocam os parâmetros de chaves e um valor randômico, chamado nonces, que é
utilizado para prevenir ataques replay. Na terceira, e última etapa, todas as informações da SA
IKE são trocadas, autenticadas por um dos seguintes métodos de autenticação: segredo
compartilhado, assinatura digital ou criptografia de chave pública (SILVA, 2003). Uma
função hash será utilizada nessa chave e seu resultado será trocado entre as duas entidades.
No modo agressivo, todas as três etapas descritas para o modo principal ocorrem em
uma única mensagem entre o emissor e o receptor, porém, a informação de autenticação não é
criptografada. O que se deve levar em consideração na hora de optar por um modo ou outro é
a largura de banda, pois o Modo Principal gera maior overhead.
A segunda fase tem por objetivo negociar a SA IPSec, utilizando o canal estabelecido
na Fase 1. Como o canal já está estabelecido, esta fase geralmente é mais rápida, desta forma,
alguns autores a chamam de Quick Mode (Modo Rápido).
É aconselhável que a Fase 2 não utilize diretamente a chave definida na Fase 1, pois
um invasor poderá se apoderar da chave utilizada na primeira fase da negociação, o que é
extremamente difícil de acontecer segundo (SILVA, 2003), e descriptografar toda a
comunicação da fase 2, derivando a chave SA IPSec. Para evitar esta situação, aconselha-se
usar na Fase 2 uma nova chave que será derivada por meio do algoritmo Diffe-Helman, cuja
técnica é chamada Perfect Forward Secrecy – PFS (disponível do FreeS/WAN). Obviamente,
tal procedimento irá acarretar em queda de desempenho.
Outra característica a ser ressaltada dobre o protocolo ISAKMP é que ele possui um
recurso bastante interessante e eficiente para reduzir as consequências dos ataques do tipo
DoS, ataques de reprodução. Existe, em seu cabeçalho, dois campos de 8 bytes chamados
cookie do emissor e cookie do receptor que realizam este papel. Estes campos são valores
123
gerados pelas entidades e estão associados aos endereços IP de cada entidade (PERLMAN;
KAUFMAN, 2001). Uma entidade A realiza uma solicitação inicial a outra entidade, digamos
entidade B, e esta retorna um cookie para entidade A. Este cookie ficará armazenado em B,
associando o Endereço IP da entidade A ao cookie fornecido por B. Quando A enviar
novamente uma mensagem para B, a entidade B verifica se o cookie é válido ou não, baseado
no endereço IP de origem. A entidade recebedora só aceitará o pacote se o cookie for válido,
caso contrário, o pacote é descartado. A figura 4.14 ilustra o formato da mensagem ISAKMP.
Cabeçalho
UDP
Cabeçalho
ISAKMP
Dado ISAKMP-1 Dado ISAKMP-2 ... Dado ISAKMP-N
Identificador da Mensagem
Tamanho da Mensagem
Obviamente, este trabalho não define uma arquitetura única de VPN que deve ser
obrigatoriamente usada para qualquer tipo de corporação, até porque, os requerimentos de
segurança e custo de cada cliente são diferentes. Desta forma, este trabalho se propõe a definir
um modelo que possa servir como parâmetro ou referência para a implementação de redes
VPN nas mais variadas situações.
Dentro dessa visão, este trabalho comunga com algumas idéias e regras estabelecidas
por Christopher King (1999) a respeito do posicionamento de um Gateway VPN em uma
topologia de rede. Essas regras, que norteiam este trabalho, são as seguintes:
funcionários ou para parceiros, onde não se sabe a priori qual o endereço IP do Cliente VPN,
dificultando assim o processo de filtragem, e conexões de filiais da própria Empresa.
Gateway VPN
Rede Interna
Roteador
Internet
Firewall
...
Túnel VPN
Texto Plano
Criptografado
A princípio, esta topologia pode parecer adequada e segura, porém, quando analisamos
mais profundamente alguns aspectos simples dos protocolos IKE e IPSec, verifica-se também
que existe uma grande fragilidade neste posicionamento. Esta topologia requer uma
configuração específica, pois para que o túnel VPN funcione é necessário que o firewall não
analise os pacotes de tipo 50 e 51 (AH e ESP), nem aplique as regras definidas no firewall. Os
pacotes UDP na porta 500, utilizado pelo IKE, também não podem ser analisados pelo
firewall, passando diretamente ao Gateway VPN. Portanto, cabe ao firewall analisar o tráfego
que passa fora do túnel VPN, ficando impossibilitado de analisar o tráfego da rede VPN.
Desta forma, esta configuração fragiliza totalmente o firewall, uma vez que, este deve
necessariamente permitir o tráfego VPN sem a análise do conteúdo das informações.
Gateway VPN
Firewall
Roteador
Rede Interna
Internet
...
Túnel VPN
Criptografado
Esta configuração também possibilita um maior controle e gerência da rede, uma vez
que os serviços de VPN e firewall estarão concentrados no mesmo equipamento. Por outro
lado, esta topologia tem como desvantagem uma possível queda de desempenho no poder de
processamento do firewall em virtude da própria sobrecarga gerada pela execução dos
processos referentes ao Gateway VPN e ao firewall dentro da mesma máquina.
Cabe observar, que essa desvantagem pode ser reduzida significativamente com a
correta e adequada utilização do software de filtragem Iptables, onde existe a possibilidade de
se quebrar a complexidade de regras específicas para a VPN em cadeias de regras menores,
otimizando assim a sua interpretação. Além disso, uma outra alternativa que pode vir a
melhorar o desempenho desses servidores é a utilização de arquiteturas multiprocessadas com
a aplicação de Sistemas Operacionais capazes de suportar o multiprocessamento. O kernel 2.6
do sistema linux já suporta ambientes multiprocessados de forma bastante eficiente.
Roteador
Servidores DMZ 1
Internet
Firewall +
Gateway VPN
Servidores DMZ 2
Rede Interna
Firewall + ...
Gateway VPN
Como já mencionado neste trabalho, a infra-estrutura de Chave Pública – PKI pode ser
utilizada para o estabelecimento de conexões VPN. A idéia neste momento é identificar como
o PKI pode ser utilizado e configurado para esse tipo de serviço.
Apesar deste trabalho não possuir interesse em discutir uma solução para o acesso
remoto em redes VPN, restringindo-se às pesquisas quanto às conexões entre redes
corporativas através de uma VPN, cabe, neste momento, um posicionamento da problemática
existente nas conexões remotas.
10
Atualmente, praticamente todos os Provedores de Acesso a Internet utilizam serviços de DHCP que realizam
atribuições dinâmicas de endereços IP aos clientes remotos.
131
pois este endereço é necessário para a sua configuração, uma vez que este endereço é
necessário para o estabelecimento do túnel VPN. A solução recomendada em geral, a qual é
implementada pela maioria dos softwares de VPN, estabelece que um Gateway VPN
considere como a outra ponta do túnel qualquer endereço IP. Este tipo de solução reduz
significativamente a segurança da rede corporativa, pois o firewall teria que liberar a
passagem de pacotes oriundos de qualquer destino endereçados ao Gateway VNP.
A figura 5.4 apresenta a topologia proposta por este trabalho para Empresas que
buscam: interligação entre suas unidades através de VPNs Intranets, estabelecimento de VPNs
Extranet (com parceiros de negócio, clientes, fornecedores, etc) e o estabelecimento de VPNs
de acesso remoto (usuários remotos), dentro de uma filosofia de defesa em profundidade,
11
Na época da proposta MOAT, o software FreeS/Wan provia somente um mecanismo para a identificação, que
era a identificação através do endereço IP de cada extremidade da conexão VPN, descrito no seu arquivo de
configuração, não permitindo endereços dinâmicos.
132
Internet Extranet
Acessos
Servidor
Privativos RAS
Cliente
Roteador B VPN
Remoto
Conexões Servidor
dedicadas Firewall +
Proxy
Gateway VPN
DMZ
Roteador A
Firewall +
Gateway VPN
Switch Servidor IDSR CRL Servidor
DNS 2 PKI
Rede Interna
...
Servidor IDSR Servidor Servidor
Anti-virus 1 WEB/FTP Autenticação Servidor
Figura 5.4 - Topologia proposta para Interligação de unidades corporativas através de VPN
Podemos observar que foi proposta a instalação de dois roteadores: o roteador A, que
tem a finalidade de rotear pacotes entre as unidades organizacionais da própria Empresa
(acesso privativo) e o roteador B, que realiza o roteamento de pacotes da/para Internet e de
clientes remotos através do Servidor de Acesso Remoto, possibilitando acesso a todos os
clientes VPN. A vantagem dessa configuração é que ela possibilita uma segmentação do
tráfego de rede e permite que as Empresas, que ainda precisam ter canais dedicados de
comunicação, tenham uma estrutura mais segura e com tráfego melhor distribuído entre seus
componentes de rede.
Para o estabelecimento de uma conexão VPN, cada gateway VPN precisa se autenticar
com o outro participante da VPN. Como mencionado anteriormente, esta autenticação pode
ser feita por meio dos Certificados Digitais. Desta forma, os dispositivos VPN devem
implementar um conjunto de funcionalidades capazes de gerar o par de chaves pública e
133
Foram também postados dois Sensores de Rede SDIR para monitorar tráfego suspeito
em cada segmento de rede desmilitarizado. Há também a utilização de um servidor web-
proxy, que juntamente com a utilização do protocolo WCCP - Web Cache Communication
Protocol (protocolo desenvolvido pela CISCO que implementa o proxy transparente) deverá
centralizar todas as requisições Web para ele de forma transparente. Com este proxy, é
possível se monitorar todo o tráfego de páginas Internet da corporação, além de se ter a
possibilidade de restringir o acesso a determinadas páginas Web que a Empresa julgue serem
não apropriadas ou inseguras. Esta restrição pode ser aplicada a toda rede, a alguns hosts
específicos (através do IP) ou a subredes. O software de Web-proxy sugerido por este trabalho
é o Squid. Maiores informações sobre este software podem ser encontradas no seu site oficial,
acessando a URL http://www.squid-cache.org/. No site da Rede Nacional de Ensino e
Pesquisa, em http://www.rnp.br/newsgen/0103/wccp.html, também podemos encontrar uma
breve descrição sobre este software, o procedimento de instalação e os procedimentos
necessários para a configuração e habilitação do WCCP. Desta forma, este trabalho não
pretende abordar a sua instalação e configuração por ser bem documentada na Internet.
um nível menor de segurança, até porque, essas unidades comumente não apresentam tantos
componentes de rede e de Sistemas de Informação quanto a matriz, que justifiquem um
investimento em segurança muito pesado. A figura 5.5 ilustra uma proposta menos robusta,
direcionada para as redes das filiais, ou pequenas redes corporativas, formadas na sua maioria
por hosts que rodam sistemas cliente/servidor.
Rede FILIAL
DMZ
Servidor
SDIR
Arquivos
Firewall +
Servido Gateway VPN
Web Roteador ...
FILIAL
Internet
REDE DA
MATRIZ
Roteador
MATRIZ
Figura 5.5 - Topologia proposta para as redes das outras unidades corporativas
Cabe observar, que a proposta apresentada pode ser implantada em cada Escritório
Estadual da Dataprev (modelo matriz), possibilitando que todas as unidades possam se
interligar através de redes VPN baseadas na Internet, e não mais por circuitos de dados
interestaduais, o que significaria uma economia bastante considerável, pois o seu atual
backbone Frame Relay poderia ser substituído por uma infra-estrutura já disponível em todos
os Escritórios, a Internet. Porém, como será discutido na próxima seção, ainda não é viável a
substituição de todos os circuitos de dados, principalmente os circuitos urbanos e os circuitos
para municípios do Interior de alguns Estados.
rede dos Centros de Tratamento de Informação do Rio de Janeiro e São Paulo. Esses são
equipados com elementos de maior desempenho e redundância, por concentrarem grande
parte do fluxo de dados da Rede. Essa camada é responsável pela interligação dos elementos
da segunda camada, conexão à Internet e à entidades externas sediadas no Rio ou São Paulo.
Nível 3 CENTRO
Backbone CENTRO ADM
RJ SP
INTERNET
Frame Relay
CENTRO
Nível 2 BRASÍLIA
Distribuição ESXX ESXX REMAV
MPAS
Governo
Nível 1
DG
Acesso INSS
Agências Gerências
Agências
A segunda camada é formada pelos nós dos Escritórios Estaduais da Dataprev, que
interligam todos os pontos de presença da Previdência no Estado. Também existe um acesso
Internet para comunicação com a rede interna de Brasília. Cada Escritório Estadual tem uma
ligação com o Centro de Informação no Rio e outro em São Paulo.
Canais
VPN
Internet
Escritório Escritório
Estadual
(Amazonas) ... Estadual
(Tocantins)
Agências Agências
Figura 5.7 - Estrutura proposta para a Rede da Previdência Social usando VPNs
no Rio de Janeiro e em São Paulo. Evidencia-se que as reduções mais significativas são
justamente nas regiões mais distantes dos Centros de Tecnologia, Região Norte e Nordeste,
pois os circuitos Frame Relay nessas localidades são de maior degrau e, portanto, mais
onerosos.
Vale ressaltar que não estamos considerando os custos referentes aos investimentos
necessários na aquisição ou adequação de equipamentos em cada Escritório, a fim de suportar
o ambiente de segurança proposto, nem os investimentos em treinamento. Portanto, é
necessário ainda que se realize um levantamento específico para tratar esta questão.
A análise de custos realizado neste trabalho tomou por base informações e cotações
provenientes de concessionárias de Telecomunicações e Provedores de Internet que operam
no Estado do Amazonas. Como estudo de caso, esta análise de custos teve a pretensão de
investigar a viabilidade econômica na implementação de VPNs na Previdência Social e
discutir questões e problemáticas que influenciam diretamente nesses custos, que nem sempre
estão visíveis ou são abordados.
Neste trabalho, observou-se que nem sempre os custos de uma VPN são menores que
as soluções de conectividade feitas através da utilização de circuitos dedicados ou assinaturas
de circuitos Frame Relay, apesar de todas as bibliografias referentes a VPNs afirmarem
categoricamente que as VPNs baseadas em Internet constituem soluções sempre mais
econômicas. O Brasil, por exemplo, é um país que possui dimensões continentais e que
apresenta uma diversidade muito grande quanto às facilidades de comunicação em suas
regiões. Enquanto os Estados da região Sul e Sudeste possuem uma malha de Fibra Ótica
cobrindo toda a região, os Estados da região Norte, em especial o Amazonas, apresenta uma
malha de telecomunicações ainda muito precária o que influencia diretamente nos custos de
circuitos e serviços de Empresas de Telecomunicações e Provedores de Internet, acarretando
uma distorção nos valores de circuitos e serviços cobrados em relação ao restante do país. A
rede de comunicação do Estado do Amazonas com o resto do mundo ainda é feita via Satélite
ou via Rádio. Links de Fibra Ótica só existem dentro de sua Capital. A baixa densidade
demográfica no Interior do Amazonas também contribui com a falta de interesse em
investimentos em Serviços de rede e telecomunicações nos seus municípios, um exemplo
bem claro disso, é a ausência de Provedores de Internet nos municípios do Interior do Estado.
1ª Situação
2ª Situação
3ª Situação
4ª Situação
Empresa Elyte de Manaus, serviço este que possibilita a implementação de VPNs baseadas na
Internet.
• Suporte a várias plataformas como Intel, IBM, Motorola, Alpha, Amiga, Sparc,
dentre outros. E com isso, possui maior flexibilidade em uma mudança de
hardware.
sistema, sendo este um ponto crucial para escolha deste tipo de sistema para
um projeto que exige um alto grau de confiança, estabilidade e escalabilidade.
Uma VPN pode ser implementada por vários dispositivos, tais como: roteadores,
servidores de acesso remoto, equipamentos específicos, ou ainda software instalado em
servidores ou em micros. Neste trabalho, a VPN será implementada através de software,
configurando-se assim Servidores Gateways VPN. E como este trabalho também possui o
intuito de avaliar a implementação de uma VPN em uma plataforma de software livre, além
de observar fatores como: segurança e baixo custo de implementação, a solução para
implementação de uma VPN proposta baseia-se no software FreeS/WAN versão 2.03, cuja
denominação origina-se do termo Secure Wide Area Network (S/WAN), e a palavra Free por
ser um software livre . Além de ser item de avaliação deste trabalho, a escolha deste software
deveu-se também aos seguintes motivos:
FreeS/Wan
Sim Sim Sim Sim Sim Sim
(com Patchs X.509 e NAT)
FreeS/Wan Sim Sim Sim NÃO NÃO Sim
12
Alteração de um programa, que acrescenta ou modifica apenas uma pequena parte deste.
147
aplicados entre duas entidades IPSec, como por exemplo, protocolos, algoritmos de
criptografia e chaves a serem utilizadas, além de outras informações de segurança. O
FreeS/WAN pode ainda utilizar um conceito chamado de Criptografia Oportunista
(Opportunistics Encryption), ou simplesmente OE, que significa que qualquer Gateway VPN,
implementado através do FreeS/WAN, pode criptografar seu tráfego, mesmo sem
conhecimento e intervenção dos administradores de redes das entidades (gateways) e mesmo
sem nenhuma informação pré-configurada sobre a outra entidade (FREES/WAN, 2003).
A seguir será mostrado como a VPN foi implementada, detalhando o cenário dos
testes e os aspectos de sua configuração, além dos resultados obtidos.
A Figura 6.1 ilustra a topologia utilizada durante uma simulação de uma rede VPN
utilizando o FreeS/WAN em plataforma GNU/Linux no ambiente da Dataprev. Os testes
foram realizados simulando-se duas redes distintas de uma mesma empresa, aqui
denominadas de Rede A e Rede B, onde cada rede possui um Gateway VPN implementado
em FreeS/WAN, na versão 2.03. Com o intuito de simular uma rede pública não confiável,
como a Internet, foi postado um computador entre elas, com duas interfaces de rede, com o
serviço de Roteamento entre as duas redes.
148
Túnel VPN
REDE A eth0: eth0: REDE B
200.240.0.1 200.240.1.1
eth1: eth1:
10.64.0.1 10.64.1.1
200.240.1.250
200.240.0.250
Nos Gateways, foram instalados a distribuição do Red Hat 9, com o kernel linux 2.4-
20 em sua configuração padrão13. Nestes, foram instaladas e configuradas duas interfaces de
rede, sendo uma voltada para a rede interna da empresa (denominada eth1 no linux) e a outra
para a Internet (denominada eth0). Também foram instaladas duas placas de rede no roteador
que simulava a Internet, sendo uma voltada para a Rede A (no experimento, interface eth0, IP
200.240.0.250) e a outra para a Rede B (interface eth1, IP 200.240.1.250)14, servindo como
roteadores das redes.
Por não fazer parte dos objetivos deste trabalho, a instalação do Linux não será
abordada. Porém, algumas configurações de roteamento e de DNS (serviço named do Linux),
específicas para o funcionamento adequado de uma VPN (com Criptografia Oportunista)
13
O Kernel não foi recompilado, pois foi aplicado os RPMs do FreeS/WAN, que já alteram o Kernel quando da
sua instalação.
14
A máscara de rede adotada em todos os experimentos deste trabalho foi a 255.255.255.0
149
Componentes da REDE A
- Servidor GateWay VPN
Sistema Operacional: Red Hat 9, linux 2.4-20
software VPN: FreeS/WAN 2.03
Hostname: leftserver
IP da Interface eth0: 200.240.0.1
IP da Interface eth1: 10.64.0.1
Netmask: 255.255.255.0
DNS: 200.240.0.1
- Host (Rede A)
Sistema operacional: Windows XP
IP: 10.64.0.50
Gateway: 10.64.0.1
Componentes da REDE B
- Servidor GateWay VPN
Sistema Operacional: Red Hat 9, linux 2.4-20
software VPN: FreeS/WAN 2.03
Hostname: rightserver
IP da Interface eth0: 200.240.1.1
IP da Interface eth1: 10.64.1.1
Netmask: 255.255.255.0
DNS Primário: 200.240.1.1
DNS Secundário: 200.240.0.1
- Host (Rede B)
Sistema operacional: Windows XP
IP: 10.64.1.50
Gateway: 10.64.1.1
ROTEADOR
Sistema Operacional: Conectiva 9, linux 2.4-21
Hostname: roteador
IP da Interface eth0: 200.240.0.250
Apelido Interface eth0: gwleft
IP da Interface eth1: 200.240.1.250
Apelido Interface eth1: gwright
Netmask: 255.255.255.0
15
Resultado da execução do comando route do linux.
150
Desta forma, para que a VPN possa funcionar adequadamente é necessário configurar
alguns parâmetros do Linux antes de iniciá-la. Para fazer isso, este trabalho se propôs a
documentar tais alterações de configuração que estão relacionadas a seguir:
net.ipv4.ip_forward = 1
FORWARD_IPV4=yes
4. Habilitar as opções de rede do kernel listadas a seguir, caso ainda não estejam
habilitadas na configuração padrão do Linux. Posteriormente, deve-se
recompilar o kernel. Ressalta-se que na distribuição do Linux utilizada neste
trabalho, todas as opções necessárias foram habilitadas quando da instalação
do pacote do software FreeS/WAN (em formato RPM).
IP Security Protocol
IPSEC: IP-in-IP encapsulation (tunnel mode)
IPSEC: Authentication Header
HMAC-MD5 authentication algorithm
HMAC-SHA1 authentication algorithm
IPSEC: Encapsulating Security Payload
3DES: encryption algorithm
IPSEC: IP Compression
IPSEC: Debugging Option
freeswan-module-2.03_2.4.20_20.9-0.i386.rpm
freeswan-userland-2.03_2.4.20_20.9-0.i386.rpm
Depois de verificado as assinaturas digitais dos arquivos obtidos, tarefa que pode ser
feita com a ferramenta GNU Privacy Guard – gnupg (consultar www.gnupg.org para maiores
informações sofre este software), que é uma implementação do PGP para linux, a instalação
pode ser executada através do comando abaixo descrito, executado no diretório onde
encontram-se os RPMs:
• Chaves manuais. Onde cada participante compartilha uma chave secreta que
deve ser distribuída de forma segura. Essa chave é simétrica, servindo para
criptografar e descriptografar as mensagens entre as entidades de uma VPN.
Vale ressaltar que o FreeS/Wan suporta dois tipos de chaves de autenticação, a chave
pública RSA (assimétrica) e a chave secreta, e que cada conjunto de chaves entre dois hosts
ou gateways deve usar o mesmo tipo de chave, RSA ou Secreta, nunca tipos de chaves
diferentes.
Após a instalação do software FreeS/WAN, pode-se criar um par de chaves RSA para
cada Gateway VPN. Conforme já discutido, o FreeS/WAN irá utilizar essas chaves para o
processo de autenticação.
Para a criação dessas chaves, foi utilizado o seguinte comando (com usuário root):
Onde <nome> foi substituído por leftserver.vpn para a criação das chaves no gateway
VPN da rede 200.240.0.0 e rightserver.vpn para a criação das chaves no gateway VPN da
rede 200.240.1.0.
Esse arquivo usa a nomenclatura left e right para representar as duas entidades
gateways envolvidas na conexão, bem como parâmetros que começam com essa
nomenclatura. Um gateway VPN é indicado pela opção left, enquanto o outro gateway é
designado por right. Não é necessário preocupar-se qual entidade será left e qual será right, é
uma questão de escolha do administrador da rede. A expressão left e right é apenas utilizada
para identificar dois servidores Gateways VPNs e suas respectivas LANs.
• A seção conn %default – Esta seção indica as configurações que serão padrões
para todas as conexões da VPN. Vale relembrar que um gateway VPN pode
possuir mais de uma conexão VPN.
# Configuração para possibilitar que um host da Rede A possa estabelecer conexao VPN com
# outro host da rede B
conn redea-gwr
authby=secret
keyexchange=ike
pfs=no
left=200.240.0.1
leftnexthop=200.240.0.250
leftsubnet=10.64.0.0/24
right=200.240.1.1
rightnexthop=200.240.1.250
rightsubnet=10.64.1.0/24
auto=add
• auth=esp : define o tipo de protocolo IPSec que deve ser utilizado nos pacotes
IP, ESP ou AH. Neste caso, define-se o auth está habilitando o cabeçalho ESP
para os pacotes IP
• pfs=no : este parâmetro habilita ou não uma técnica chamada Perfect Forward
Secrecy, na qual a chave da Associação de Segurança IPSec será derivada por
meio do algoritmo Diffe-Helman. Este parâmetro estando habilitado (pfs=yes)
previne que um invasor, mesmo de posse da chave utilizada na primeira fase da
negociação ISAKMP que estabelece a Associação de Segurança ISAKMP, não
possa derivar a chave da SA IPSec. Porém, de acordo com (SILVA, 2003),
algumas versões do FreeS/WAN podem não funcionar bem com o PFS,
recomendando-se desabilitar este parâmetro caso algum problema esteja
ocorrendo. Posteriormente, quando tudo estiver funcionando, pode-se habilitar
novamente o PFS.
159
Neste trabalho, foram configurados Servidores de DNS nos próprios gateways VPN.
Foi definido o domínio vpn em ambos os DNS. Segue a seguir um trecho do arquivo
/var/named/vpn.zone configurado para este experimento, o qual define os registros de
recursos da zona vpn criada, demonstrando como foi publicado os registros de chaves
públicas do Gateway VPN esquerdo (leftserver) e do Gateway VPN direito (rightserver). Os
registros são do tipo TXT e estão destacados com o sombreamento.
160
rightserver IN A 200.240.1.1
rightserver IN TXT "X-IPsec-Server(10)[email protected]
AQPzzql5aXxbO5rVJQZCAeZ+3g1Vh2xlOOc76Jctva5J7pbAoNN3yr8lFzz1Pvbh7pka2OB+Xn
WCWF7zIbTyj+bxmdbWldXWooiCxrx7Q5qbJnmNpGhJI0ziN1oWcUmVgErZ3+kgXogvgrLoxp
c1nrvprybLGyLxTUaFXoVYwTyHzw=="
gwleft IN A 200.240.0.250
gwright IN A 200.240.1.250
...
Foi utilizado o seguinte comando do IPSec para gerar o registro de recurso TXT
contendo a chave pública:
...
@ IN NS leftserver.
1 IN PTR leftserver.
IN TXT "X-IPsec-Server(10)[email protected]
AQOLRoyDXEXMWB+m4smekuG1J+nju1qxCaQdeYs/9TaoMCa+8X1+eCR4io+UHzNrYlxQk
e1lkOLagIHe9JZcv/AFVEjeMciAqNNb/ucCpmwk9CFKLMZiJ9AYKEyCRM6CZ7ErDWDg4TO
K7H8wQR9qzjBmKe2OXl9WxT5J4j08Z1+9uw==" leftserver.
# ipsec verify
# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux FreeS/WAN 2.03
Checking for KLIPS support in kernel [OK]
Checking for RSA private key (/etc/ipsec.secrets) [OK]
Checking that pluto is running [OK]
Esse passo deve ser sempre executado quando o FreeS/WAN fornece um erro
informando que determinada conexão não existe. Geralmente acontece este
erro quando se define uma configuração nova ou se muda o nome de uma
conexão no arquivo /etc/ipsec.conf, e não se adiciona na tabela a conexão. Para
realizar essa tarefa deve-se utilizar o seguinte comando:
Como mencionado anteriormente, foi postada uma estação rodando o software Sniffer
Pro, versão 4.70, da Network Associates, para monitorar o fluxo de comunicação no entre as
duas redes, objetivando acompanhar e comprovar o estabelecimento de seção ISAKMP, IPSec
e da comunicação criptografada. Esta estação foi postada entre o roteador e um dos servidores
VPN, no caso, o leftserver. Alguns relatórios de confirmação foram exportados e estão
presentes no Apêndice D deste trabalho. A figura 6.2 apresenta um print screen de parte do
monitoramento de um estabelecimento de uma SA.
165
Figura 6.2 – Tela do Sniffer Pro no Estabelecimento de SA entre os gateways VPN leftserver e rightserver
Figura 6.3 - Tela do Sniffer Pro durante uma seção Telnet entre os servidores VPN leftserver e rightserver
Figura 6.4 - Tela do Sniffer Pro durante a utilização do Ping entre servidores VPN leftserver e rightserver
No Apêndice D foram incluídos alguns relatórios gerados pelo Sniffer Pro durante os
testes realizados, assim como são apresentados resultados de testes realizados com a
ferramenta tcpdump e análise das saídas de comandos do ipsec (opção look).
Chain Descrição
INPUT Verifica os pacotes que tentam entrar na rede interna.
OUTPUT Verifica os pacotes que tentam sair da rede interna.
FORWARD Verifica todos os pacotes que atravessam a rede.
PREROUTING Analisa todos os pacotes que entram no firewall para sofrerem
NAT. Ele realiza ações de NAT com o endereço de destino do
pacote (Destination NAT).
POSTROUTING Analisa todos os pacotes que saem do firewall para sofrerem NAT.
Ele realiza ações de NAT com o endereço de origem do pacote
(Source NAT).
Observa-se que novas chains podem ser criadas e excluídas, com exceção das chains
apresentadas que não podem ser apagadas.
16
Em versões anteriores do kernel do linux era comum a utilização da ferramenta Ipchains, porém, a ferramenta
Iptables a substitui com substanciais recursos adicionais.
169
seja bloqueado, o pacote é descartado neste momento, caso contrário, o pacote segue
conforme o diagrama (ACCEPT).
Pacotes
Pacotes
Chegando
Saindo
Decisão de FORWARD
Roteamento
Processo
INPUT Interno OUTPUT
As três tabelas utilizadas para definir quais tipos de chains serão utilizadas são:
• Tabela FILTER: É a tabela padrão, sendo utilizada quando não houver tabela
especificada. Utilizada quando há tráfego normal de dados, sem a utilização de
NAT (Network Address Translation). Utiliza as chains INPUT, OUTPUT e
FORWARD, as quais serão descritas posteriormente.
Para melhor entendimento das regras a serem definidas em nosso ambiente VPN, faz-
se necessário apresentar a sintaxe do Iptables, a saber:
Comando Ação
-A Acrescenta uma nova regra a um chain
-D Apaga uma regra de um chain
-F Apaga todas as regras
-L Lista o estado do Iptables
Opção Descrição
-p refere-se ao protocolo que deve ser verificado. Pode ser o número
do protocolo ou um nome retirado de /etc/protocols.
-s refere-se aos dados da rede ou host de origem. Os seus parâmetros
podem ser <endereço IP> / <máscara da sub-rede>.
-d refere-se aos dados da rede ou host de destino. Os seus parâmetros
podem ser <endereço IP> / <máscara da sub-rede>.
-i especifica a interface de rede de entrada.
-o especifica a interface de rede de saída.
--sport especifica a porta de origem. Funciona apenas para as opções
–p udp e –p tcp.
--dport especifica a porta de destino. Também só funciona apenas para as
opções –p udp e –p tcp.
-j define o destino de uma regra.
Destino Ação
ACCEPT Permitirá a passagem do pacote.
REJECT Não permitirá a passagem do pacote.
REDIRECT Redireciona uma requisição para uma porta local do firewall
(utilizada para operação do Proxy).
Uma vez que utilizamos IPSec, necessita-se também regras que aceitem os protocolos
ESP (protocolo 50) e o AH (protocolo 51) para que os mesmos também não sejam barrados.
# Para possibilitar a negociação IKE na eth0 e ipsec0, liberando a porta 500 (IKE)
# na chain de entrada e de saída
/sbin/iptables -A INPUT -p udp -i eth0 --sport 500 --dport 500 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -o eth0 --sport 500 --dport 500 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i ipsec+ --sport 500 --dport 500 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -o ipsec+ --sport 500 --dport 500 -j ACCEPT
17
Como toda a rede da Previdência utiliza roteadores CISCO, a sintaxe dos comandos e os procedimentos
adotados/mostrados neste trabalho serão específicos para os equipamentos desta marca.
172
limitar, e se possível impedir, que estes ataques aconteçam, mesmo que estes métodos
venham a se sobrepor.
Os pacotes são filtrados tanto no sentido Inbound (da rede externa para a interna),
como no sentido Outbound (da rede interna para externa). A figura seguinte mostra uma
aplicação do uso de access list que inspeciona o tráfego de entrada (Inbound) na interface
Serial 0, cuja lista possui propósito de negar o tráfego da Empresa B.
Serial S0 E0
InternetWork ROTEADOR
E1
X
Tráfego da Empresa B negado
Interface Ethernet
Antes de se propor o conjunto de regras padrão do access list, deve-se analisar alguns
pontos sobre a definição e criação de listas de acesso que serão úteis para o entendimento
desta proposta, a saber:
• As Access List são identificadas por números que devem ser únicos em cada
roteador.
• Caso exista Access List na Interface, todo pacote será comparado com no
mínimo uma regra, que é a última regra e é a default : que NEGA todos os
pacotes. Esta regra é chamada deny-any.
174
Uma boa literatura para um estudo completo e minucioso sobre Acccess Lists, como
por exemplo, sua sintaxe, opções e funcionalidades é o material de Certificação CCNA da
Cisco (CISCO, 2000) ou (LEE, 1999), livro escrito por Donal Lee, Engenheiro de Sistemas
Sênior da Cisco Systems, que discorre aspectos bem interessantes sobre questões de segurança
nos roteadores da CISCO.
Observa-se ainda que este trabalho não objetiva explorar todas as funcionalidades das
Access Lists, somente, aquelas mais relevantes para a construção e utilização de VPNs em
Empresas que exigem um nível apropriado de segurança para este serviço, dentro de um
contexto de Defesa em Profundidade.
Existem duas formas de se acessar o Roteador, uma é através de sua porta CONSOLE,
ao qual exige uma conexão direta com a interface serial do Computador com esta porta,
através de Cabo Cross e adaptador RJ45-Serial. Do ponto de vista de segurança, para este tipo
de acesso, deve-se preocupar com o acesso físico de pessoas no ambiente onde está instalado
o roteador, impedir que pessoas não autorizadas tenham acesso a este equipamento é
essencial.
Outra forma de acesso ao roteador é através de uma seção TELNET. Este tipo de
acesso além de ser muito comum é bastante preocupante, pois, se não tratado, qualquer
usuário conectado na rede Internet, mesmo não fazendo parte da VPN, mas tendo
conhecimento do endereço IP do roteador, pode fazer tentativas de abrir uma seção Telnet
com o Roteador e, conseqüentemente, tentar romper a segurança da rede. Diante disso, deve-
se:
Para impedir a abertura de seção TELNET nos Roteadores que participam da VPN,
propõe-se aplicar uma access list para todas as cinco interfaces lógicas (linhas de terminais
virtuais) que estão disponíveis para Telnet (em um roteador CISCO), restringindo assim,
quem poderá realizar Telnet. Para isso, os comandos que devem ser inseridos no roteador são:
ROUTER# conf t
ROUTER (config) # access-list N permit A.B.C.D X.Y.Z.W
ROUTER (config) # line vty 0 4
ROUTER (config-line) # access-class N in
A primeira linha entra na configuração do Router e a segunda define uma regra para a
access-list de número N (que deve estar entre 10 e 99 – listas defaults), onde A.B.C.D é o
endereço da rede e X.Y.Z.W é a máscara que definirá quais os endereços desta rede terão
acesso via Telnet ao Roteador.
Por exemplo, para permitir que todos os endereços da rede 10.64.1.0 acessem o
roteador via telnet, a access list, como sugestão 10, deve ser definida da seguinte forma:
Deve-se lembrar que toda access-list contém a regra de negar todo acesso que não seja
permitido nas regras explícitas na access-list (deny-any) como já comentado anteriormente.
No exemplo acima, será negado o acesso a qualquer estação que não seja da rede 10.64.1.0.
176
ROUTER # conf t
ROUTER (config) # line console 0
ROUTER (config-line) # password <senha>
Onde <senha> deve ser substituída pela senha a ser definida por cada Administrador
da rede.
O Spoofing Attack é um dos tipos mais populares de ataques. Ele consiste na troca do
IP original por um outro IP que é reconhecido na rede como um host confiável. Isto permite
com que hackers ou crackers possam fingir que estão em computadores confiáveis da rede
atacada, e desta forma se aproveitarem disso para entrar em máquinas desta rede e no próprio
roteador através de TELNET ou RLOGIN.
Assim, para se evitar este tipo de ataque, pretende-se propor alguns filtros anti-
spoofing que podem e devem ser utilizados e configurados nos roteadores que se interligam a
Internet, principalmente nas redes corporativas que fazem uso de VPNs.
Para exemplificarmos como deve ser feita esta proteção, através de filtros anti-
spoofing, vamos supor que uma das redes da Dataprev no Amazonas tenha o seguinte
endereço: 200.241.114.0. Desta forma, para evitarmos que exista a possibilidade de um
Spoofing Attack, temos que impedir que qualquer computador em uma rede externa, mesmo
que possua um endereço IP considerado confiável, acesse o roteador pela SERIAL. Exceção
feita apenas para o endereço IP do Gateway VPN. Desta forma, minimiza-se a probabilidade
de ataques de Spoofing Attack. Para isso, podemos executar os seguintes procedimentos (nesta
ordem):
177
1. Estando na Configuração da Serial (com o uso do comando in, Ex: in S0), associe-
a a um access list que se tenha definido para o tráfego Inbound. Supondo que a
access list definida seja 101, procede-se ao seguinte comando:
Obs: Não é necessário este passo se já existe access list Inbound para a Serial
2. Uma vez que não é esperado que pacotes oriundos da Internet (vindos através da
Interface Serial) cheguem no roteador com endereço de origem sendo um endereço
interno (com exceção ao endereço do Gateway VPN), deve-se negar o acesso a
todos os endereços confiáveis de rede através da Serial, a fim de se evitar o
Spoofing Attack (trapaça de endereço). Para isto, faz-se necessário o seguinte
comando:
5. Como última regra, deve-se liberar o acesso IP para todos aqueles pacotes que
não coincidem com as regras impostas anteriormente, pois as regras são checadas
de forma seqüencial. Desta forma, os pacotes que não possuem natureza do
Spoofing Attack (disfarce através do uso de um endereço confiável) ou não são
pacotes originários do servidor VPN são liberados. Isto é feito através do
comando:
test
Haker utiliza um
Endereço Interno
200.241.114.12
Endereços Confiáveis
Interface Ethernet
Com o objetivo de propiciar maior segurança às redes que utilizam roteadores Cisco
conectados a Internet, alguns serviços TCP/IP devem ser desabilitados para que não sejam
utilizados como fontes de informação para ataques. Estes serviços são (LEE, 1999):
• Desabilitar o ICMP
• IP Source Routing
Este serviço possibilita que uma máquina em uma rede não confiável (Internet) possa
ser um nó intermediário (hop intermediário) no caminho de Roteamento entre duas máquinas
de uma subnet que tenham endereços confiáveis uma para outra (geralmente da mesma rede).
Desta forma, um hacker consegue atacar a máquina de endereço destino do pacote.
Assim, para desabilitar este serviço, que é raro de ser usado (geralmente usado para
troubleshooting), procede-se com o seguinte comando:
7 CONCLUSÕES
REFERÊNCIAS BIBLIOGRÁFICAS
CAMPOS, A. Kernel 2.6 – O que muda na nova versão do Linux. Revista do Linux, Ed.
Conectiva S.A., Ano IV, nº 40, p. 35, abril, 2003.
CASWELL, B., BEALE, J., FOSTER, James C., POSLUNS, J. Snort 2: Sistema de
Detecção de Intruso Open Source. Ed. Alta Books, Rio de Janeiro-RJ, 2003.
CISCO, Cisco Networking Academy Program. CCNA Semester 3, v. 2.1.2, Cisco Systems,
2000.
DENKER, John S., BELLOVIN, Steven M., DANIEL, H., MINTZ, Nancy L., KILLIAN,
Tom, PLOTNICK, Mark A. MOAT: a Virtual Private Network Appliance and Services
Platform. Proceedings of LISA ‘99, Seattle, WA, USA, Novembro, 1999.
187
DOWNES, K., FORD, M., LEW, H., SPANIER, S., STEVENSON, T. Internetworking:
manual de tecnologias. Tradução da 2ª edição original, Ed. Campus, Rio de janeiro-RJ,
2000.
FERGUSON, P., HUSTON, G. What’s is a VPN? – Part I. The Internet Protocol Journal –
CISCO, Vol. 1, número 1 - 1998, disponível na Internet em:
http://www.cisco.com/warp/public/759/ipj_1-1/ipj_1-1_VPN1.html, acessado em Julho de
2003.
FERGUSON, P., HUSTON, G. What’s is a VPN? – Part II. The Internet Protocol Journal –
CISCO, Vol. 1, número 2 - 1998, disponível na Internet em:
http://www.cisco.com/warp/public/759/ipj_1-2/ipj_1-2_vpn.html, acessado em Julho de 2003.
GRANADO, Marcus C., VIEIRA, D., GEUS, P. Aspectos Criptográficos no Windows NT.
2º Conferência sobre Redes de Computadores, Universidade de Évora, Portugal, 1999.
HARKINS, D., CARREL, D. The Internet Key Exchange (IKE). IETF RFC 2409,
novembro, 1998.
188
HAMZEH, K., PALL, G., VERTHEIN, W., TAARUD, J., LITTLE, W., ZORN, G., Point-to-
Point Tunneling Protocol (PPTP), IETF RFC 2637, Julho, 1999.
LEE, Donald. Enhanced IP Services for Cisco Networks. Cisco Press, Indianapolis, USA,
1999.
LINUX JOURNAL, Howto: Encrypted Tunnels with FreeS/Wan x509 Path, disponível
em: http://www.linuxjournal.com/article.php?sid=7003, acessado em outubro de 2003.
NAKEN, Ron. Linux as a VPN Client to FireWall-1. Check Point software Technologies
LTD, disponível em: http://support.checkpoint.com/kb/docs/public/firewall1/4_1/pdf/fw-
linuxvpn.pdf, acessado em agosto de 2003.
NELSON, Thomas J. Setting up a Linux FreeS/Wan VPN for Remote Users. disponível
em: http://reguly.net/alvaro/linux/SettingUp_FreeSwan.html, acessado em novembro de 2003.
189
NEMETH, E., SNYDER, G., HEIN, Trent R. Linux Administration handbook. Ed. Prentice
Hall, New Jersey, USA, 2002.
NORTHCUTT, S., ZELTSER, L., WINTERS, S., FREDERICK, Karen K., RITCHEY,
Ronald W. Desvendando Segurança em Redes. Ed. Campus, Rio de Janeiro-RJ, 2002.
NIST, Secure Hash Algorithm, U.S. Government Federal Information Processing Standard,
1993.
KARA, Atsushi. Security Remote Access from Office to Home. IEEE Communications
Magazine, vol. 39, número 10, p. 68 – 72, outubro, 2001.
KENT, S., ATKINSON, R. Security Architecture for IP. IETF RFC 2401, Novembro,
1998a.
KENT, S., ATKINSON, R. IP Authentication Header. IETF RFC 2402, Novembro, 1998b.
KENT, S., ATKINSON, R. IP Encapsulating Security Payload (ESP). IETF RFC 2406,
Novembro, 1998c.
OLIVA, F. Bastiglia. Snort. Revista Security Magazine, Security Magazine Editora LTDA,
Ano III, número 13, p. 5 – 11, 2001.
ORMAN, H. The OAKLEY Key Determination Protocol. IETF, RFC 2412, Novembro,
1998.
ORTIZ, Eduardo Bellincanta. VPN: Implementando soluções com Linux. Ed. Érica, São
Paulo-SP, 2003.
PERLMUTTER, Bruce. Virtual Private Networking – A view from the trenches. Ed.
Prentice Hall, USA, 2000.
PERLMAN, R., KAUFMAN, C. Analysis of the IPSec Key Exchange Standard. Tenth
IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative
Enterprises, Massachusetts, 20 a 22 de junho, 2001.
RALIO, Paulo R. VPN no Red Hat Linux. Artigos Linux in Brazil, disponível em:
http://brlinux.linuxsecurity.com.br/tutoriais/2003_05.html, acessado em setembro de 2003.
RAYMOND, Eric S. The Cathedral & the Bazaar - Musings on Linux and Open Source
by an Accidental Revolutionary. Ed O'Reilly, USA, 1999.
191
RIVEST, R. L. The MD5 Message-Digest Algorithm. IETF RFC 1320, abril, 1992.
SILVA, Lino Sarlo. VPN: Aprenda a construir redes privadas virtuais em plataformas
Linux e Windows, Ed. Novatec, São Paulo, SP, Brasil – 2003.
SIMPSON, W. The Point-to-Point Protocol (PPP). RFC 1661, IETF, Julho, 1994.
SIMPSON, W., PPP Challenge Handshake Authentication Protocol (CHAP), RFC 1994,
IETF, Agosto de 1996.
192
STALLINGS, William. Data & Computer Communications, Sixth Edittion, Ed. Prentice
Hall, USA, 1999a.
TANENBAUM, Andrew. Computer Networks. Fourth Edition. Prentice Hall. New Jersey,
USA, 2003.
TOWNSLEY, W., VALENCIA, A., RUBENS, A., PALL, G., ZORN, G., PALTER, B.
Layer Two Tunneling Protocol "L2TP", IETF RFC 2661, Agosto, 1999.
TUCHMAN, W. Hellman Presents No Shortcut Solutions to DES. IEEE Spectrum, vol. 16,
p. 40-41, julho, 1979.
WENSTROM, Michael. Managing Cisco Network Security. Editora Alta Books, Rio de
Janeiro, 2002.
WING, P., O’HIGGINS, B. Using Public-Key Infrastructures for Security and Risk
Management. IEEE Communications Magazine, vol. 37, número 9, p. 71 – 73, setembro,
1999.
193
Apêndice A
Conceitos sobre Software Livre e GNU
194
O conceito de Open Source, ou código aberto, foi a grande chave para o sucesso desse
movimento, pois este permite que programadores possam livremente compartilhar códigos
fontes de programas com outros programadores, a fim de que estes possam melhorá-los. A
definição deste termo, bem como o de desenvolvimento colaborativo, teve sua origem em um
manifesto publicado por Eric S. Raymond, intitulado "The Cathedral and The Bazaar"
(RAYMOND, 1999), o qual foi divulgado e livremente redistribuído pela Internet, onde foi
exposto um novo modelo de desenvolvimento cooperativo, onde milhares de desenvolvedores
podem participar do desenvolvimento de um determinado software compartilhando código.
Eric Raymond faz-se referência a esse modelo de desenvolvimento aberto como sendo o
Bazaar, (bazar beneficente, em português), em contraposição ao modelo de desenvolvimento
fechado e proprietário, que seria a Cathedral (catedral, em português). O GNU ficou
conhecido com um modelo de desenvolvimento do tipo Bazaar.
Outra questão que deve ser esclarecida, ainda bastante mal interpretada pelos próprios
profissionais da área de Informática, é quanto a gratuidade, ou não, pela permissão de uso de
um software livre, como por exemplo, um sistema GNU/Linux. Um software livre não
significa um software gratuito. Observa-se que as liberdades de um software livre (GPL)
descritos não mencionam que o software deve ser gratuito. Desta forma, é perfeitamente
possível que Empresas possam fornecer um serviço de distribuição de um software livre
objetivando o lucro.
GNU, que significa Gnu Não é Unix, é o nome para um sistema de software
completo e compatível com o Unix, que eu estou escrevendo para que
possa fornecê-lo gratuitamente para todos os que possam utilizá-lo.
(STALLMAN, 1985).
196
A intenção era de que ninguém teria que pagar pela permissão para usar o
sistema GNU. Mas as palavras não deixam isso claro, e as pessoas
frequentemente interpretam que isso significa que as cópias do GNU têm
sempre que serem distribuídas gratuitamente ou por um valor simbólico
(STALLMAN, 1985).
E continua:
Portanto, ente trabalho pretende confirmar também a aplicabilidade dos sistemas livres
disponíveis, particularmente no ambiente GNU/Linux, para os propósitos desse estudo de
caso, na área de Segurança de Redes. Além disso, é coerente que se pretenda buscar soluções
mais econômicas para a implementação de uma VPN, combinada a serviços e protocolos de
segurança que definem um modelo de Defesa em Profundidade, através de ferramentas e
sistemas livres.
197
Apêndice B
Sistema Operacional GNU/Linux
198
O kernel Linux foi implementado pelo estudante finlandês Linus Torvalds. Linus
começou a implementar o sistema a partir de sua vontade de adicionar mais recursos ao
sistema operacional Minix, um sistema implementado por Andrew Tanembaum e que é
utilizado para fins educacionais, Linus iniciou o desenvolvimento do Linux em um período de
inverno na Finlândia onde passou meses em casa construindo o que se tornaria um grande
kernel de sistema operacional. A partir de uma resposta negativa do autor do Minix sobre a
adição de novos recursos ao sistema sobre o pretexto de que este ficaria muito complexo para
fins educativos, Linus decidiu começar a implementação do kernel Linux "do zero", baseando
boa parte do sistema no código do Minix. Linus lançou a primeira versão do kernel em 1991 e
o postou na Internet gratuitamente; assim, começaram a surgir desenvolvedores para ajudá-lo
na implementação do mesmo, o kernel foi adicionado ao projeto GNU que possuía um
sistema que precisava de um kernel mais aperfeiçoado do que o kernel que possuía até o
momento, com o passar do tempo, centenas de desenvolvedores espalhados pelo mundo se
envolveram no projeto e, atualmente, o sistema operacional GNU/Linux pode ser considerado
um sistema robusto, com evolução contínua. Esta evolução é demonstrada na Tabela abaixo.
Tabela 9 – Tamanho do código fonte do kernel versus ano de lançamento. Fonte: (CAMPOS, 2003)
Versão Data Lançamento Linhas de Código
0.01 Setembro/1991 7.5 K
1.0 Março/1994 158 K
1.2 Março/1995 277 K
2.0 Julho/1996 649 K
2.2 Janeiro/1999 1536 K
2.6 Versão estável não lançada +/- 6000 K
Quando o Linux foi escrito, em 1991, o projeto do Sistema Operacional GNU, iniciado
em 1984, já estava quase finalizado, possuindo praticamente todos os componentes de um
Sistema Operacional completo, com exceção do kernel, que ainda estava sendo desenvolvido.
Com isso, quando o Linux foi concluído, ele completou a última grande lacuna que faltava.
Desta forma, pode-se integrar o Linux junto com o sistema GNU para compor um Sistema
Operacional livre completo: um sistema GNU baseado em Linux, ou sistema GNU/Linux,
para simplificar.
199
Apêndice C
Arquivos de Configuração do IPSec
200
1. Arquivos /etc/ipsec.secrets
2. Arquivo /etc/ipsec.conf
Apresentamos a seguir o arquivo /etc/ipsec.conf que foi utilizado para realizar o teste
de Criptografia Oportunista no experimento deste trabalho.
config setup
interfaces="ipsec0=eth0"
klipsdebug=all
plutodebug=dns
uniqueids=yes
# Definicao de Conexões
conn %default
keyingtries=0
esp=3des-md5-96
authby=secret
disablearrivalcheck=no
leftrsasigkey=%dns
rightrsasigkey=%dns
conn gwl-gwr
type=tunnel
keyexchange=ike
pfs=no
keylife=8h
left=200.240.0.1
203
leftnexthop=200.240.0.250
right=200.240.1.1
rightnexthop=200.240.1.250
auto=add
conn redea-gwr
auth=esp
authby=rsasig
pfs=no
left=200.240.0.1
leftnexthop=200.240.0.250
leftsubnet=10.64.0.0/24
right=200.240.1.1
rightnexthop=200.240.1.250
rightsubnet=10.64.1.0/24
auto=add
204
Apêndice D
Relatórios de Testes Realizados
205
# ipsec look
Note que na segunda linha da saída do comando é informado que existe uma conexão
da rede 10.64.0.0/24 para a rede 10.64.1.0/24 usando o túnel 200.240.1.1, ou túnel
[email protected] (conexão redea-gwr). Na terceira linha, percebe-se também que
existe uma conexão da rede 200.240.0.1/32 para a rede 200.240.1.1 usando o túnel
[email protected] (conexão gwl-gwr).
O utilitário tcpdump pode mostrar o conteúdo criptografado que está sendo transportando
entre as redes, comprovando inclusive a utilização do protocolo ESP do IPSec. Na verdade,
essa ferramenta apresenta os pacotes que estão trafegando em uma determinada interface de
rede na tela (saída default). Abaixo, apresentamos um trecho da saída do comando tcpdump,
que foi executado no servidor leftserver para realizar a leitura de pacotes que trafegam na
interface eth0, isto, logo após ter sido estabelecido uma conexão VPN entre os referidos
servidores e ser disparado um ping infinito do servidor leftserver ao servidor rightserver.
# tcpdump –i eth0
- - - - - - - - - - - - - - - - - - - - Frame 1 - - - - - - - - - - - - - - - - - - - -
Frame Status Source Destination Bytes Rel Time
Delta Time Abs time Summary
----------------------------------------------------------------------------------------------
1 M [200.240.0.1] [200.240.1.1] 126 0:00:00.000
0.000.000 25/11/2003 14:45:20 DLC Ethertype=0800, size=126 bytes
IP D=[200.240.1.1] S=[200.240.0.1] LEN=92 ID=24538
IP ESP SPI=3520375608
- - - - - - - - - - - - - - - - - - - - Frame 2 - - - - - - - - - - - - - - - - - - - -
Frame Status Source Destination Bytes Rel Time
Delta Time Abs time Summary
----------------------------------------------------------------------------------------------
2 [200.240.1.1] [200.240.0.1] 122 0:00:00.001
0.001.282 25/11/2003 13:46:41 DLC Ethertype=0800, size=122 bytes
IP D=[200.240.0.1] S=[200.240.1.1] LEN=88 ID=0
UDP D=500 S=500 LEN=88
ISAKMP Header
IP: No options
IP:
ESP: ----- IP ESP -----
ESP:
ESP: Security Parameters Index = 4229109324
ESP: Sequence Number = 244
ESP: Payload Data =
6A5CFCF1CBFCD6475FCB331A10CBA8B7ED4B4D0FEA0C4554EB3885A215F3954640F3BB4FA37F7263D6A864E0E18580
17D6...
ADDR HEX ASCII
0000: 00 0c 6e 19 30 04 52 54 05 f7 06 96 08 00 45 00 | ..n.0.RT.÷.–..E.
0010: 00 88 81 27 00 00 40 32 66 3a c8 f0 00 01 c8 f0 | .ˆ•'..@2f:Èð..Èð
0020: 01 01 fc 13 16 4c 00 00 00 f4 6a 5c fc f1 cb fc | ..ü..L...ôj\üñËü
0030: d6 47 5f cb 33 1a 10 cb a8 b7 ed 4b 4d 0f ea 0c | ÖG_Ë3..˨·íKM.ê.
0040: 45 54 eb 38 85 a2 15 f3 95 46 40 f3 bb 4f a3 7f | ETë8…¢.ó•F@ó»O£•
0050: 72 63 d6 a8 64 e0 e1 85 80 17 d6 b5 6f b6 0f 7e | rcÖ¨dàá…€.Öµo¶.~
0060: 63 da e5 1b e2 56 d1 88 29 95 76 2e 90 a9 6f 7d | cÚå.âVш)•v.•©o}
0070: 2a a1 c1 3c a6 3d 89 26 08 2c ac bc af c2 fb 8d | *¡Á<¦=‰&.,¬¼¯Âû•
0080: 3c 2d 14 aa 7b cc 5d 21 c4 8b 86 d9 5f 0a 11 ad | <-.ª{Ì]!Ä‹†Ù_..
0090: 7b e7 4f 19 4e c5 | {çO.NÅ