Entendendo o IPSEC

Publicado em:
09/01/2011

Antes de tudo deixa explicar o que significa IPSEC esta sigla significa Internet Protocol Security, o IPSEC é projetado para proteger dados por assinatura digital e criptografar os dados antes de transmitir. IPSEC criptografa informações sobre datagramas IP por encapsulamento, então se o pacote for capturado o atacante não pode fazer quase nada.

Qual é suporte do Windows 2003 para IPSEC?

Geração de chave à para dois computadores comunicarem em rede usando datagrama IP criptografados exige que ambos tem acesso a chave compartilhada de criptografia, está chave permite que cada computador criptografe dados e outro computador descriptografado os dados, o IPSEC utiliza algoritmo chamado Diffie-Hellman para criptografar chaves idênticas

Checksums criptografia à IPSEC usa chave criptográfica para calcular um checksum para o dados em cada pacote, é chamado de hás message authnetication code (HMAC) , então transmite com os dados , se alguém alterar o pacote enquanto ele está sendo transmitindo , o pacote é descartado.

Mutual authentication à Antes dos computadores abrirem um canal de comunicação em IPSEC eles devem primeiro estabelecer uma relação de confiança para isto Windows 2003 disponibiliza para autentificação os seguinte meio

  • Kerberos
  • Certificado digital
  • Senha

Uma vez os computadores estabelecido o meio seguro evita ataques dos tipos spoof em uma das pontas.

Replay prevention à Em alguns caso é possível o atacante usar dados de pacote capturado contra você, mesmo que os pacotes estiverem criptografados, por exemplo, os primeiros pacotes que dois computadores trocam durante uma sessão segura têm alguns pacote que o atacante pode interceptar e reenviar para ganhar acesso a recursos. O IPSEC previne a repetição de pacotes desta natureza assinando um numero de seqüência para cada pacote, em um sistema IPSEC não aceita o numero de seqüência de pacote errado.

Filtragem de pacote IP -> O Ipsec inclui seu próprio mecanismo de filtragem de pacote o que evita ataques do tipo denial-of-service pelo bloqueio de especifico tipo de endereço de ips , protocolos , portas ou qualquer outra combinação

 

Importante

 

  • IPSEC suporta dois tipos de hash o HMAC combinado com Message Digest 5 (MD5) e HMAC em combinação com Secure Hash Algorithm-1 (SHA1), sobre o HMAC-SHA1 é opção para trabalhar com uma chave maior visto que SHA1 utiliza 160bit enquanto o MD5 utiliza apenas 128bit , o HMAC-MD5 é forte o suficiente para ambiente normal mas HMAC-SHA1 é melhor escolha para um nível maior de segurança

Protocolos utilizado pelo IPSEC

Por padrão o IPsec utiliza dois protocolos que prove diferente tipos de segurança para comunicação em rede

  • IP Authentication Header (AH)
  • IP Encapsulation Security Payload (ESP)

IPSEC com AH

O protocolo IP authentication header ele não faz a criptografia dos dados em pacotes IP, mas prove autenticação, anti-replay e serviços de integridade, você pode usar AH por você mesmo ou combinação com ESP. Usando o AH sozinho prove uma segurança básica com baixa sobre carga, porem o AH não garante que os pacotes possam ser modificados em rota.

Ao utilizar o AH para proteger a transmissão de dados o sistema insere o cabeçalho AH dentro do datagrama IP, imediatamente depois do cabeçalho IP e antes do datagrama do payload.

Os campos do cabeçalho AH são:

  • Next header: Especifica o protocolo que está gerando o cabeçalho, se o IPSec está usando AH sozinho, o campo contem o código para protocolos que gerou o payload no qual é usualmente TCP, UDP ou ICMP.
  • Payload lenth: Especifica o tamanho do cabeçalho AH
  • Reservado: Sem uso
  • Índice de parâmetros de segurança : contem um valor que é combinação do pacote do endereço destino e protocolo de segurança (AH), assim define o datagrama Security association . O security association é uma lista dos itens de segurança negociados entre os computadores que estão em comunicação, qual o sistema irá utilizar para proteger os dados transmitidos
  • Authentication Data : Contem integrity check value (ICV) que envia ao computador cálculos baseado no campos do endereço ip , cabeçalho AH e payload do datagrama IP , o sistema que realiza o mesmo calculo e compara o resultado para este valor , o ICV é uma mensagem de código de autenticação que tem como principal objetivo autenticar uma mensagem e verificar a sua integridade .

Figura01 – Cabeçalho AH

cabeçalho_AH

IP –Encapsuluition security payload

O protocolo IP segurança de encapsulamento de payload (ESP) é utilizado para criptografar os dados dentro do datagrama IP , prevenindo que invasores leiam a informação dentro do pacote , caso este seja capturado. O ESP também prove autentificação , integridade e anti-replay , não como o AH que insere somente um cabeçalho dentro do datagrama IP , o ESP insere um cabeçalho e um trailer no qual envolve o payload datagrama , o protocolo criptografia todos os dados abaixo do cabeçalho do ESP incluindo o ESP trailer, portanto se alguém conseguir capturar o pacote usando ESP , pode ler o conteúdo do cabeçalho do endereço IP mas não poderá ler qualquer parte do payload do datagrama que inclui o datagrama TCP , UDP ou cabeçalho ICMP .

Figura 2 – ESP cabeçalho e trailer localização

cabeçalho_ESP

A utilização do ESP com AH , pode ser realizada isto permite aumentar a segurança porque somente o ESP sendo utilizado tem a possibilidade o atacante alterar o cabeçalho do endereço IP , incluindo o AH no cabeçalho IP dentro do calculo ICV resultado na maior proteção e inibe este tipo de ataque.

Figura 3 – AH + ESP

cabeçalho_ESP_AH

Os campos e funções do cabeçalho ESP como mostra na figura-4 podem ser visto logo abaixo.

  • Índice de parâmetros de segurança : contem um valor que é combinação do pacote do endereço destino e protocolo de segurança (AH), assim define o datagrama security association . O security association é uma lista dos itens de segurança negociados entre os computadores que estão em comunicação, qual o sistema irá utilizar para proteger os dados transmitidos
  • Payload Data : Contem informação trazida de dentro do payload do datagrama IP como TCP, UDP ou ICMP
  • Pad lenth : especifica o numero de bytes que podem ser preenchido no campo
  • Next Header: Especifica o protocolo que está gerando o cabeçalho , se o IPSec está usando AH sozinho , o campo contem o código para protocolos que gerou o payload no qual é usualmente TCP,UDP ou ICMP .
  • Authentication Data: Contem integrity check value (ICV) que envia ao computador cálculos baseado no campos do endereço ip , cabeçalho AH e payload do datagrama IP , o sistema que realiza o mesmo calculo e compara o resultado para este valor , o ICV é uma mensagem de código de autenticação que tem como principal objetivo autenticar uma mensagem e verificar a sua integridade .

Na figura 4 é mostrado o formato de uma mensagem ESP

Formato_mensagem_ESP

Modo de transporte e modo túnel

IPSec pode operar de duas formas : modo transporte e modo túnel , para comunicação entre computadores na mesma rede você utilizada o modo transport mode , no qual os dois sistemas tem suporte a IPSec, em conexões WAN e conexões de VPN , é necessário utilizar modo túnel , no sistema final que não tem suporte e toda implementação é feita no roteador de forma que toda ponta deverá ter a mesma implementação ou compatível

Como funciona o modo túnel

  1. Computador envia dados usando padrão de datagrama ip sem proteção
  2. O pacote chega ao roteador que mandar para conexão WAN , encapsulado pelo IPSEC , criptografando os dados
  3. O roteador transmite o pacote protegido para segundo roteador  até o final da conexão WAN
  4. O segundo roteador verifica o pacote por cálculos e comparações ICVs e descriptografar os dados necessários
  5. O segundo roteador re-empacota a informação dentro do pacotes para forma padrão , desprotegida e entrada o pacote para destino dentro da rede privada

 

Na parte acima vimos o que está por tras do funcionamento do IPSEC , agora iremos descobrir quais são e como funciona os componetes do IPSEC  no Windows 2003 .

IPSEC componentes

A implementação do IPSec dentro do Windows Server 2003 consiste dos seguintes componentes.

IPSec Policy Agent à É um serviço que procura por políticas armazenadas dentro do banco de dados do Active Directory ou Registro Windows

Internet Key Exchange  (IKE) à IKE é um protocolo que os computadores que utilizam o IPSEC usam para trocar informação sobre geração de Diffie-Hellman e para criar associação segura (SA). A comunicação IKE é feita em dois estágios , primeiro estagio , chamada de fase 1 AS , incluem negociação de qual algoritmo de criptografia, hash e método de autenticação o sistema irá utilizar, a segunda fase  ou 2 SAs , neste estagio cada ponta negocia com qual protocolo IPSEC, algoritmo hash e criptografia algoritmo que o sistema irá utilizar,  como também a troca de informação sobre autenticação e geração de chave  .

IPSec Driver à É responsável pela construção dos pacotes IPSec , criptografia dos dados a serem transmitidos , o driver recebe uma lista de filtros da política do IPSec com a lista, o IPSec compara cada pacote de saída , quando o pacote combina com os critérios da lista , o IPSec driver inicia IKE processo de comunicação com  sistema de destino , adiciona o cabeçalho AH e ESP para pacote de saída e criptografa os dados dentro se for necessário, para pacotes entrantes o IPSec driver calcula hash e checksum e compara os pacotes recém chegados

Planejamento do desenvolvimento do IPSec

Para implementar o IPSec no ambiente de rede você deve ficar atento, primeiro  que adicionando cabeçalho AH e ESP em cada pacote ira aumentar o trafego na rede e segundo , calculo de hash e criptografia de dados requer quantidade maior de tempo do processador, a menos que você tem um poderoso ambiente de rede não é um boa idéia utilizar o IPSec para todos os pacotes , mas sim utilizar filtros que analisarem o trafego e irá aplicar as políticas do IPSec , outra fator importante é que as versões antigas como Windows 2000 não pode usar IPSec , o sistema operacional do cliente tem que ter suporte ao IPSec.

Trabalhando com políticas IPSec

Você pode desenvolver as políticas do IPSec de varias formas , a duas formas mais comuns são via Local security Policy console e via Group policy Object , criar as políticas via GPO permite uma administração mais objetiva e rápida.

Políticas padrão do IPSEC

São três políticas padrões

  • Client (resposta somente) : Configurar o computador para utilizar IPSec somente quando outro computador requisita pelo IPSEC, o computador utilizando esta política nunca inicia uma negociação IPSEC, este somente responde a uma requisição de outro computador para comunicação segura.
  • Secure Server (Exigir segurança) : Configurar o computador para requerer IPSec security para todas as comunicações, se o computador tentar comunicar com um computador que não tenha suporte IPSec, o computador terminar a comunicação inicial
  • Server (Solicitar segurança): Configura o computador para requisitar o uso do IPSEC quando for comunicar com outro computador, o computador tiver suporte o IPSec inicia negociação , se outro computador não tiver suporte o IPSEC estabiliza uma padrão de conexão não segura

Modificando políticas IPSec

  • Regras : Uma regra é uma combinação de filtro IP e filtro de ações especificas como e quando o computador deverá usar o IPSEC, um IPSec política também trabalhar com múltiplas regras
  • IP filter list: É uma coleção de filtros que especifica que o trafego o sistema poderá ser seguro com IPSec, baseado com endereço IP , protocolos ou números de portas, você também pode criar filtro usando uma combinação de critério
  • Filtro ação : Configuração parâmetro  que especifica exatamente como IPSec deverá fazer segurança aos pacotes filtrados, ação filtro IPSec deverá ser usado com AH, ESP ou ambos.

É isso pessoal, no próximo post , vou falar como implementar.

[ ]’s

2 respostas em “Entendendo o IPSEC

  1. Olá Fábio, tudo bem? Com o uso do IPSEC, eu consigo proteger todos os meus dados? Por exemplo, uma estrutura que possui uma rede com um controlador de domínio configurado com o IPSEC, caso alguem tenta enviar algum anexo para outra pessoa fora da minha rede, esse destinatário vai conseguir abrir esse arquivo?

    • Na verdade o IPSEC protege e encripta os dados no processo de comunicação de dados, evitando uma invasão que é protegida pelo tunelamento do IPSEC, mas se você tirar os dados do local, será acessado em outro local, não é a finalidade do IPSEC proteger dados fora da sua rede

      O cenário que eu acho que se encaixa no seu ambiente seria o AD RMS combinado com o Bitlocker seria interessante.
      Abraço

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s