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
· 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: