Tutorial de TCP/IP – Parte 18 – Introdução ao IPSec

Introdução:

Esta é a décima oitava parte do Tutorial de TCP/IP. Na
Parte 1 tratei dos aspectos b√°sicos do protocolo TCP/IP. Na Parte 2 falei sobre c√°lculos bin√°rios, um importante t√≥pico para entender sobre redes, m√°scara de sub-rede e roteamento. Na Parte 3 falei sobre Classes de endere√ßos, na Parte 4 fiz uma introdu√ß√£o ao roteamento e na Parte 5 apresentei mais alguns exemplos/an√°lises de como funciona o roteamento e na Parte 6 falei sobre a Tabela de Roteamento. Na Parte 7 tratei sobre a divis√£o de uma rede em sub-redes, conceito conhecido como subnetting. Na Parte 8 fiz uma apresenta√ß√£o de um dos servi√ßos mais utilizados pelo TCP/IP, que √© o Domain Name System: DNS. O DNS √© o servi√ßo de resolu√ß√£o de nomes usado em todas as redes TCP/IP, inclusive pela Internet que, sem d√ļvidas, √© a maior rede TCP/IP existente. Na Parte 9 fiz uma introdu√ß√£o ao servi√ßo Dynamic Host Configuration Protocol ‚Äď DHCP. Na Parte 10 fiz uma introdu√ß√£o ao servi√ßo Windows Internet Name Services ‚Äď WINS. Na Parte 11 falei sobre os protocolos TCP, UDP e sobre portas de comunica√ß√£o. Parte 12, mostrei como s√£o efetuadas as configura√ß√Ķes de portas em diversos aplicativos que voc√™ utiliza e os comandos do Windows 2000/XP/2003 utilizados para exibir informa√ß√Ķes sobre portas de comunica√ß√£o. Na Parte 13 falei sobre a instala√ß√£o e a configura√ß√£o do protocolo TCP/IP. Na Parte 14 fiz uma introdu√ß√£o sobre o protocolo de roteamento din√Ęmico RIP e na Parte 15 foi a vez de fazer a introdu√ß√£o a um outro protocolo de roteamento din√Ęmico, o OSPF. Na Parte 16 voc√™ aprendeu sobre um recurso bem √ļtil do Windows 2000: O compartilhamento da conex√£o Internet, oficialmente conhecida como ICS ‚Äď Internet Conection Sharing. Este recurso √© √ļtil quando voc√™ tem uma pequena rede, n√£o mais do que cinco m√°quinas, conectadas em rede, todas com o protocolo TCP/IP instalado e uma das m√°quinas tem conex√£o com a Internet. Voc√™ pode habilitar o ICS no computador que tem a conex√£o com a Internet. Na Parte 17, voc√™ aprendeu a utilizar o IFC ‚Äď Internet Firewall Connection (Firewall de Conex√£o com a Internet). O IFC faz parte do Windows XP e do Windows Server 2003, n√£o estando dispon√≠vel no Windows 2000. O IFC tem como objetivo proteger o acesso do usu√°rio contra ‚Äúataques‚ÄĚ e ‚Äúperigos‚ÄĚ vindos da Internet.

Nesta décima oitava parte, farei uma apresentação sobre o protocolo IPSec. O IPSec faz parte do Windows 2000, Windows XP e Windows Server 2003. O IPSec pode ser utilizado para criar um canal de comunicação seguro, onde todos os dados que são trocados entre os computaodres habilitados ao IPSec, são criptografados.

O protocolo IPSec

O IPSec √© um conjunto de padr√Ķes utilizados para garantir uma comunica√ß√£o segura entre dois computadores, mesmo que as informa√ß√Ķes estejam sendo enviadas atrav√©s de um meio n√£o seguro, como por exemplo a Internet. Observe que esta defini√ß√£o √© parecida com a defini√ß√£o de VPN ‚Äď Virtual Private Network. Por isso que a combina√ß√£o L2TP/IPSec √© uma das op√ß√Ķes mais indicadas para a cria√ß√£o de conex√Ķes do tipo VPN.

Por exemplo, vamos imaginar uma rede local de uma empresa, onde voc√™ quer garantir a seguran√ßa das informa√ß√Ķes que s√£o trocadas entre a esta√ß√£o de trabalho do Presidente da empresa e as esta√ß√Ķes de trabalho da diretoria. Ou seja, se um dos diretores acessar um arquivo em uma pasta compartilhada, no computador do Presidente da empresa, voc√™ quer garantir que todos os dados enviados atrav√©s da rede sejam criptografados, para garantir um n√≠vel adicional de seguran√ßa. Este √© um exemplo t√≠pico onde a utiliza√ß√£o do protocolo IPSec √© recomendada. Ou seja, voc√™ pode configurar o computador do Presidente e os computadores dos diretores, para que somente aceitem comunica√ß√£o via IPSec. Com isso estes computadores poder√£o trocar informa√ß√Ķes entre si, mas outros usu√°rios, que n√£o estejam habilitados ao IPSec, n√£o poder√£o se comunicar com os computadores com IPSec habilitado.

Uma introdução ao protocolo IPSec

O IPSec √© baseado em um modelo ponto-a-ponto, no qual dois computadores, para trocar informa√ß√Ķes de maneira segura, usando IPSec, devem ‚Äúconcordar‚ÄĚ com um conjunto comum de regras e defini√ß√Ķes do IPSec. Com o uso do IPSEc e das tecnologias associadas, os dois computadores s√£o capazes de se autenticar mutuamente e manter uma comunica√ß√£o segura, com dados criptografados, mesmo usando um meio n√£o seguro, como a Internet.

O uso do protocolo IPSec apresenta funcionalidades importantes, quando existe uma necessidade de grande segurança na comunicação entre dois computadores. A seguir apresento as principais destas características:

¬∑  Uma prote√ß√£o agressiva contra ataques √† rede privada e √† Internet mantendo a facilidade de uso. Ao mesmo tempo que fornece uma prote√ß√£o efetiva contra ataques e tentativas de captura dos dados, o IPSec √© f√°cil de configurar, com o uso de pol√≠ticas de seguran√ßa, conforme voc√™ aprender√° na parte pr√°tica, logo a seguir.

¬∑  Um conjunto de servi√ßos de prote√ß√£o baseados em criptografia e protocolos de seguran√ßa. A criptografia √© um dos elementos principais do IPSec, para garantir que os dados n√£o possam ser acessados por pessoas n√£o autorizadas. Neste ponto √© importante salientar que existem diferentes formas de uso do IPSec com o Windows 2000. Uma delas √© usando o IPSec padr√£o, conforme definido pelos padr√Ķes do IETF. Este uso √© conhecido como uso do IPSec no modo de t√ļnel. J√° uma implementa√ß√£o espec√≠fica da Microsoft, usa o IPSec em conjunto com o protocolo L2TP, sendo o L2TP o respons√°vel pela criptografia dos dados. Este modo √© conhecido como modo de transporte. No modo de t√ļnel somente √© poss√≠vel usar o IPSec em redes baseadas em IP. J√° no modo de transporte, o L2TP √© um protocolo de n√≠vel de transporte, por isso √© poss√≠vel usar IPSec/L2TP para transportar n√£o apenas pacotes IP, mas tamb√©m IPX, NetBEUI e assim por diante.

¬∑  Seguran√ßa do come√ßo ao fim. Os √ļnicos computadores na comunica√ß√£o que devem saber sobre a prote√ß√£o de IPSec s√£o o remetente e o receptor, ou seja, o meio atrav√©s do qual os pacotes s√£o enviados n√£o precisa estar habilitado ao IPSec. Observem que este √© o conceito de enviar informa√ß√Ķes de uma maneira segura, usando um meio n√£o seguro. O exemplo t√≠pico √© a cria√ß√£o de VPNs, usando a Internet. A Internet em si, baseada apenas no protocolo TCP/IP n√£o √© um meio seguro, uma vez que, por padr√£o, os dados n√£o s√£o criptografados. Por√©m adicionando t√©cnicas de criptografia e tunelamento, dispon√≠veis com o uso do IPSec com o L2TP, podemos criar t√ļneis seguros, atrav√©s de um meio n√£o seguro. √Č o conceito de VPN em sua ess√™ncia.

¬∑  A capacidade de proteger a comunica√ß√£o entre grupos de trabalho, computadores de rede local, clientes e servidores de dom√≠nio, escrit√≥rios de filiais que podem ser fisicamente remotos, extranets, clientes m√≥veis e administra√ß√£o remota de computadores.

Configuração baseada em diretivas de segurança

Os métodos de segurança mais fortes que são baseados em criptografia têm a capacidade de aumentar muito a sobrecarga administrativa. A implementação do IPSec no Windows 2000 Server e no Windows Server 2003 evita esse problema implementando a administração do IPSec com base em diretivas de segurança, configuradas via GPOs.

Nota: Para detalhes completos sobre Group Policy Objects (GPOs), consulte o livro: Windows Server 2003 ‚Äď Curso Completo, 1568 p√°ginas, de minha autoria, publicado pela Axcel Books.

Em vez de aplicativos ou sistemas operacionais, voc√™ usa as diretivas para configurar o IPSec. Como as configura√ß√Ķes s√£o aplicadas via GPOs, o Administrador pode aplicar as configura√ß√Ķes de IPSec a todos os computadores de um dom√≠nio, site ou unidade organizacional. O Windows 2000 e o Windows Server 2003 fornecem um console de gerenciamento central, o Gerenciamento de diretivas de seguran√ßa IP, para definir e gerenciar as diretivas de IPSec. As diretivas podem ser configuradas para fornecer n√≠veis vari√°veis de prote√ß√£o para a maioria dos tipos de tr√°fego na maioria das redes existentes, com a aplica√ß√£o de filtros e regras personalizadas, conforme voc√™ ver√° na parte pr√°tica, mais adiante.

Existe um conjunto de diretivas básicas, para habilitar o IPSec, que determinam como será efetuada a comunicação entre os computadores com o IPSec habilitado. A seguir descrevo, resumidamente, estas diretivas padrão, disponíveis no Windows 2000 Server e no Windows Server 2003:

¬∑  Server (Request Security): Ao habilitar esta diretiva, tamb√©m ser√£o aceitas comunica√ß√Ķes n√£o seguras, por√©m para estabelecer uma conex√£o segura, os clientes devem utilizar um m√©todo de autentica√ß√£o aceito pelo servidor. Com esta pol√≠tica ser√£o aceitas comunica√ß√Ķes n√£o seguras (n√£o utilizando IPSec), se o outro lado n√£o suportar o uso do IPSec. Ou seja, quando o cliente tenta se comunicar com o servidor, o Servidor tenta estabelecer uma comunica√ß√£o usando IPSec. Se o cliente n√£o estiver configurado para utilizar o IPSec, a comunica√ß√£o ser√° estabelecida mesmo assim, sem a utiliza√ß√£o de IPSec.

¬∑  Client (Respond only): Esta pol√≠tica √© indicada para computadores da rede interna, da Intranet da empresa. Ao iniciar a comunica√ß√£o com outros computadores, n√£o ser√° utilizado o IPSec. Contudo se o outro computador exigir o uso do IPSec, a comunica√ß√£o via IPSec ser√° estabelecida.

¬∑  Security Server (Request Security): Aceita um in√≠cio de comunica√ß√£o n√£o seguro, mas requer que os clientes estabele√ßam uma comunica√ß√£o segura, usando IPSec e um dos m√©todos aceitos pelo servidor. Se o cliente n√£o puder atender estas condi√ß√Ķes, a comunica√ß√£o n√£o ser√° estabelecida.

Uma maneira mais simples de fornecer proteção dos dados

A implementa√ß√£o da IPSec no n√≠vel de transporte IP (Camada de rede, n√≠vel 3) permite um alto n√≠vel de prote√ß√£o com pouca sobrecarga. A implementa√ß√£o do IPSec n√£o requer nenhuma altera√ß√£o nos aplicativos ou sistemas operacionais existentes, basta a configura√ß√£o das diretivas de seguran√ßa, para que o computador passe a usar o IPSec. Automaticamente, todos os programas instalados no computador, passar√£o a utilizar o IPSec para troca de informa√ß√Ķes com outros computadores tamb√©m habilitados ao IPSec. Isso √© bem mais f√°cil de implementar e de administrar do que ter que configurar a criptografia e seguran√ßa em cada aplicativo ou servi√ßo.

Outros mecanismos de seguran√ßa que operam sobre a camada de rede 3, como Secure Sockets Layer (SSL), s√≥ fornecem seguran√ßa a aplicativos habilitados ao SSL, como os navegadores da Web. Voc√™ deve modificar todos os outros aplicativos para proteger as comunica√ß√Ķes com SSL, ou seja, os programas tem que ser alterados para poderem utilizar o SSL. Os mecanismos de seguran√ßa que operam abaixo da camada de rede 3, como criptografia de camada de v√≠nculo, s√≥ protegem o link, mas n√£o necessariamente todos os links ao longo do caminho de dados. Isso torna a criptografia da camada de links inadequada para prote√ß√£o de dados do princ√≠pio ao fim na Internet ou na Intranet da empresa.




A implementa√ß√£o do IPSec na Camada de rede 3 fornece prote√ß√£o para todos os protocolos IP e de camada superior no conjunto de protocolos TCP/IP, como TCP, UDP, ICMP, etc. A principal vantagem de informa√ß√Ķes seguras nessa camada √© que todos os aplicativos e servi√ßos que usam IP para transporte de dados podem ser protegidos com IPSec, sem nenhuma modifica√ß√£o nos aplicativos ou servi√ßos (para proteger protocolos diferentes de IP, os pacotes devem ser encapsulados por IP).

Características e componentes do protocolo IPSec

Quando o IPSec √© habilitado e dois computadores passam a se comunicar usando IPSec, algumas modifica√ß√Ķes s√£o efetuadas na maneira como √© feita a troca de informa√ß√Ķes entre estes computadores.

A primeira mudan√ßa √© que o protocolo IPSec adiciona um cabe√ßalho (Header) em todos os pacotes. Este cabe√ßalho √© tecnicamente conhecido como AH (Authentication header). Este cabe√ßalho desempenha tr√™s importantes fun√ß√Ķes:

¬∑  √Č utilizado para a autentica√ß√£o entre os computadores que se comunicar√£o usando IPSec.

¬∑  √Č utilizado para verificar a integridade dos dados, ou seja, para verificar se os dados n√£o foram alterados ou corrompidos durante o transporte.

¬∑  Impede ataques do tipo repeti√ß√£o, onde pacotes IPSec s√£o capturados e em seguida reenviados ao destino, em uma tentativa de ter acesso ao computador de destino. O cabe√ßalho de autentica√ß√£o impede este tipo de ataque, pois cont√©m informa√ß√Ķes que permite ao destinat√°rio identificar se um pacote j√° foi entregue ou n√£o. No cabe√ßalho AH est√£o, dentre outras, as seguintes informa√ß√Ķes: A identifica√ß√£o do pr√≥ximo cabe√ßalho, o tamanho do cabe√ßalho, par√Ęmetros de seguran√ßa, n√ļmero de seq√ľ√™ncia e autentica√ß√£o de dados (cont√©m informa√ß√Ķes para a verifica√ß√£o da integridade de dados).

Um detalhe importante a salientar √© que o cabe√ßalho de identifica√ß√£o n√£o √© criptografado e n√£o √© utilizado para criptografar dados. Conforme o nome sugere ele cont√©m informa√ß√Ķes para a autentica√ß√£o e para verifica√ß√£o da integridade dos dados.

Mas al√©m da autentica√ß√£o m√ļtua e da verifica√ß√£o da integridade dos dados √© preciso garantir a confidencialidade dos dados, ou seja, se os pacotes forem capturados √© importante que n√£o possam ser lidos a n√£o ser pelo destinat√°rio. A confidencialidade garante que os dados somente sejam revelados para os verdadeiros destinat√°rios.

Para garantir a confidencialidade, o IPSec usa pacotes no formato Encapsulating Security Payload (ESP). Os dados do pacote s√£o criptografados antes da transmiss√£o, garantindo que os dados n√£o possam ser lidos durante a transmiss√£o mesmo que o pacote seja monitorado ou interceptado por um invasor. Apenas o computador com a chave de criptografia compartilhada ser√° capaz de interpretar ou modificar os dados. Os algoritmos United States Data Encryption Standard (DES padr√£o dos Estados Unidos), DES (Data Encryption Standard) e 3DES (Triple Data Encryption Standard) s√£o usados para oferecer a confidencialidade da negocia√ß√£o de seguran√ßa e do interc√Ęmbio de dados de aplicativo. O Cipher Block Chaining (CBC) √© usado para ocultar padr√Ķes de blocos de dados id√™nticos dentro de um pacote sem aumentar o tamanho dos dados ap√≥s a criptografia. Os padr√Ķes repetidos podem comprometer a seguran√ßa fornecendo uma pista que um invasor pode usar para tentar descobrir a chave de criptografia. Um vetor de inicializa√ß√£o (um n√ļmero inicial aleat√≥rio) √© usado como o primeiro bloco aleat√≥rio para criptografar e descriptografar um bloco de dados. Diferentes blocos aleat√≥rios s√£o usados junto com a chave secreta para criptografar cada bloco. Isso garante que conjuntos id√™nticos de dados n√£o protegidos sejam transformados em conjuntos exclusivos de dados criptografados.

Usando as tecnologias descritas, o protocolo IPSec apresenta as seguintes características/funcionalidades:

¬∑  A configura√ß√£o e habilita√ß√£o do IPSec √© baseada no uso de Polices. N√£o existe outra maneira de criar, configurar e habilitar o IPSec a n√£o ser com o uso de uma GPO. Isso facilita a configura√ß√£o e aplica√ß√£o do IPSec a grupos de computadores, como por exemplo, todos os computadores do dom√≠nio ou de um site ou de uma unidade organizacional.

¬∑  Quando dois computadores v√£o trocar dados usando IPSec, a primeira etapa √© fazer a autentica√ß√£o m√ļtua entre os dois computadores. Nenhuma troca de dados √© efetuada, at√© que a autentica√ß√£o m√ļtua tenha sido efetuada com sucesso.

¬∑  O IPSec utiliza o protocolo Kerberos para autentica√ß√£o dos usu√°rios.

¬∑  Quando dois computadores v√£o se comunicar via IPSec, √© criada uma SA (Securtiy Association ‚Äď associa√ß√£o de seguran√ßa) entre os computadores. Na SA est√£o definidas as regras de comunica√ß√£o, os filtros a serem aplicados e o conjunto de chaves que ser√° utilizado para criptografia e autentica√ß√£o.

¬∑  O protocolo IPSec pode utilizar certificados de chave p√ļblica para confiar em computadores que utilizam outros sistemas operacionais, como por exemplo o Linux.

¬∑  O IPSec fornece suporte ao pr√©-compartilhamento de uma chave de seguran√ßa (preshared key support). Em situa√ß√Ķes onde n√£o est√° dispon√≠vel o uso do protocolo Kerberos, uma chave, como por exemplo a defini√ß√£o de uma senha, pode ser configurada ao criar a sess√£o IPSec. Esta chave tem que ser informada em todos os computadores que ir√£o trocar dados de forma segura, usando IPSec.

¬∑  Conforme descrito anteriormente, o uso do IPSec √© absolutamente transparente para os usu√°rios e aplica√ß√Ķes. O computador √© que √© configurado para usar o IPSec. Os programas instalados neste computador passam a usar o IPSec, sem que nenhuma modifica√ß√£o tenha que ser efetuada. Os dados s√£o interceptados pelo sistema operacional e a comunica√ß√£o √© feita usando IPSec, sem que os usu√°rios tenha que fazer quaisquer configura√ß√Ķes adicionais.

Conclus√£o

Nesta parte do tutorial fiz uma breve apresentação do protocolo IPSec, o qual já é parte integrante do Windows 2000, Windows XP e Windows Server 2003. Inicialmente apresentei a fundamentação teórica sobre IPSec, para que o leitor possa entender exatamente o que é o IPSec e quando utiliza-lo. Mostrei que este protocolo é configurado/habilitado através do uso de políticas de segurança e que existem diferentes modelos de políticas de segurança disponíveis no Windows 2000 Server e/ou Windows Server 2003.

O IPSec √© um conjunto de padr√Ķes utilizados para garantir uma comunica√ß√£o segura entre dois computadores, mesmo que as informa√ß√Ķes estejam sendo enviadas atrav√©s de um meio n√£o seguro, como por exemplo a Internet. Observe que esta defini√ß√£o √© parecida com a defini√ß√£o de VPN. Por isso que a combina√ß√£o L2TP/IPSec √© uma das op√ß√Ķes para a cria√ß√£o de conex√Ķes do tipo VPN.

O IPSec √© baseado em um modelo ponto-a-ponto, no qual dois computadores, para trocar informa√ß√Ķes de maneira segura, usando IPSec, devem ‚Äúconcordar‚ÄĚ com um conjunto comum de regras e defini√ß√Ķes do IPSec. Com o uso do IPSEc e das tecnologias associadas, os dois computadores s√£o capazes de se autenticar mutuamente e manter uma comunica√ß√£o segura, com dados criptografados, mesmo usando um meio n√£o seguro, como a Internet.

 

Livros do autor: