O IpSec e o Linux
4,029 acessos
O IPSEC E O LINUX
O público em geral, o usuário do dia-a-dia da Internet, tem sido sacudido com a media todas semanas repercutindo notícias sobre hackers, invasões de computadores, crimes cibernéticos, etc., etc. O que surpreende ao grande público, por outro lado, é que a tecnologia da Grande Rede simplesmente “falhe“, – bem, em geral acostumamo-nos com a idéia de que a tecnologia é perfeita e quase sacrossanta.
Mas o fato é que a Internet nasceu para ser aplicada numa rede de computadores altamente confiável. Com a explosão da Internet, através sobretudo do e-commerce, a suite de protocolos TCP/IP tem sido colocado em cheque continuamente. Deve-se lembrar que o TCP/IP em sua versão atual não realiza autenticação ou criptografia de dados no seu trafego de pacotes. É simples sequestrar (hijack) uma conexão dentro do protocolo, usando um software adequado, como, por exemplo, o Hunt (http://www.gncz.cz/kra/index.html). Trata-se de um programa extremamente maleável, – você pode se intrometer numa conexão sequestrando-a, vigiá-la e mesmo derrubá-la. É fácil também forjar um pacote e manipular os cabeçalhos de pacote TCP ou UDP, como faz, por exemplo, o software SendIp (http://www.earth.li) escrito por Mike Ricketts. Usei tais ferramentas exaustivamente para debug de um firewall, ou mesmo para simples demonstração, ou para treinamento. E o êxito que obtive foi enorme, o que não deveria de certa forma acontecer…
Os ataques de Denial of Service (DoS) são o aspecto mais improdutivo desta insegurança do TCP/IP em sua versão atual. E uma das piores consequências disto, foi a segmentação da Rede: empresas, universidades, institutos, tenderam a isolar sua Intranet da Grande Rede. O que isto significaria? A negação na prática do conceito de uma Rede Global como este fim de século começava a assistir. O que seria insatisfatório, pois a novidade do que estamos assistindo é a idéia que posso ter acesso as informações e arquivos de um computador que está em Nova Delhi, por exemplo. Que minha empresa pode vender on line seu produto para qualquer país que esteja conectado. Se isolo os recursos de uma Rede, isolo em síntese informação.
Foi avaliando tudo isso que o IETF (Internet Engineering Task Force) começou a preparar uma nova geração de protocolos para o TCP/IP: o chamado IPv6, o IP versão 6. A arquitetura de segurança do Internet Protocol é chamada de IPsec – IP Security – que corresponde a um esforço de padronização da segurança na Internet. Note que o IPsec cobre tanto a versão atual do IP (a versão 4) quanto o futuro IPv6. Não é possível cobrir aqui toda a complexidade do tema. O leitor deve buscar mais literatura para estar a par com suficiência de tema tão relevante. Em especial deve-se ler os seguintes RFCs: RFC1825, RFC1826 e RFC1827.
Um dos pontos primordiais do IPsec é oferecer facilidades para a criptografia como peça central para a obtenção de segurança. Sem dúvida, os sistemas Gnu/Linux deverão rumar para que a criptografia – a montagem de um criptosistema – não seja algo acrescido de fora, mas seja parte intrínseca do kernel do sistema operacional. Tal como, por exemplo, a capacidade de networking, é parte inseparável de qualquer sistema Unix.
Podemos resumir aqui os intentos fundamentais do IPsec:
-
A implementação de algoritmos de autenticação e encriptação : mas que são independentes de algoritmos específicos, para suportar a evolução tecnológica da criptografia
-
A implementação de dois protocolos de segurança: o IP Authentication Header (IPAH), e o IP Encapsulating Payload (IPESP,’); eles implementam os mecanismos básicos de segurança no IP
-
Secure Associations que representam um conjunto de serviços de segurança e parâmetros dentro do IP
O IPAH pode autenticar os dados de origem e a integridade dos dados para cada datagrama IP, já o IPESP, sozinho ou combinado com o IPAH, possibilita a privacidade de dados. Com isso, cobrimos os três pontos de qualquer criptosistema: privacidade, autenticidade e autenticação.
Há duas soluções interessantes para o IPsec no Gnu/Linux, que podem ser avaliadas. A primeira, é o projeto X-Kernel Protocol Framework desenvolvido pelo Departamento de computação da Universidade do Arizona. Trata-se de um projeto maior, multi-plataforma, para a construção de estruturas para a implementação de protocolos de Rede. A arquitetura X-Kernel foi adaptada para suportar e implementar o IPsec no Linux. Porém, seu objetivo é mais voltado para o estudo e pesquisa de ambientes de rede. Por isso, mesmo o X-Kernel vem amplamente documentado. Como ele funciona? Ele implementa o IP security dentro do processo aberto pelo X-Kernel. O que é feito “rompendo” a conexão entre o kernel do Linux e o modulo instalável da placa de rede, e inserindo o código IPsec para tornar seguro todos os frames Ethernet que trafegam em nível de IP.
Para construir o software em seu sistema Gnu/Linux você precisa compilar os seguintes programas:
-
O pacote X-Kernel Security versão 3.2
-
A biblioteca pthreads de Christopher Provenzano
-
O modulo ETHTAP, presente no pacote X-Kernel 3.2 (leia as instruções em ‘linux/kernel/README’)
Endereços indispensáveis:
|
documento sobre a release |
http://www.cs.arizona.edu/xkernel/hpcc-blue/linux-release.txt |
Outro projeto que a comunidade de segurança pode visitar é o NIST Cerberus: An IPsec Reference Implementation for Linux. Este projeto é uma parte do programa de desenvolvimento e pesquisa do NIST Internetworking Technology Group e o NIST Systems and Network Security Group, e contem com o suporte de órgãos como NSA e a NIST ATP. Como você pode notar trata-se de um projeto de grande alcance institucional. O que faz, em linhas gerais, o NIST Cerberus? Esta implementação do IPsec para Linux foi devenvolvida tendo como base as especificações atuais IPESP e do IPAH, assim como vários algoritmos criptográficos. O NIST Cerberus já é plenamente funcional e implementa os serviços IPsec: host-to-host, host-to-router e router-to-router.
Até junho deste ano, ele não podia ser baixado via Web, por conta das limitações impostas pelo governo americano para exportação de criptografia forte, e algoritmos patenteados. Mas alternativamente você pode solicitar o envio do pacote NIST através de mídia em disquete, ou visite o site para manter-se informado quanto as formas de download disponíveis.
Endereços:
|
Endereço geral do projeto NIST |
Cerberus http://is2.antd.nist.gov/cerberus/ |