Apresentações, Bibliografias, Referências, Resumos, Dicas, Mind Maps (Mapas Mentais), Simulados, Provas Comentadas, tudo que você precisa para ser aprovado em Concurso Público.

quinta-feira, 27 de setembro de 2007

IPSEC

IPSec - Protoclo de Segurança IP
1. Fundamentos
2. Mudança na comunicação das empresas
3. Qual a função do IPSec?
3.1 Perda de privacidade
3.2 Perda de integridade dos dados
3.3 Falsificação de identidade (Identity spoofing)
3.4 Negação de serviço (DoS)
4. IPSec: Visão
4.1 Abordando o problema
4.2 O que é IPSec
4.3 Tecnologias
4.4 Detalhes do IPSec

Pacotes IPSec
Modos de operação
Associações de Segurança (Security Association, SA)
Protocolo de gerenciamento de chaves (Internet Key Management Protocol, IKMP)
Autenticação
Troca de chaves
Utilizando o IKE com o IPSec

O Protocolo de Segurança IP (IP Security Protocol, mais conhecido pela sua sigla, IPSec) visa a ser o método padrão para o fornecimento de privacidade, integridade e autenticidade das informações transferidas através de redes IP.

A Internet tem mudado a maneira como negócios são feitos, mas até mesmo o rápido crescimento da Internet tem sido atingido pela inerente falta de segurança, por ser uma rede pública. Algumas das principais ameaças a que ela está sujeita são:

perda de privacidade na troca de dados: os dados podem ser vistos por terceiros;
perda da integridade dos dados: em algum local no caminho entre a origem e o destino, os dados podem ser modificados por terceiros;
falsificação de identidade: a origem dos dados pode ser forjada, fazendo com que pessoas assumam o papel de outras;
ataques de negação de serviço (Denial of Service, DoS): muitas vezes feitos através da união de diversas máquinas, que fazem requisições excessivas de um determinado serviço, tornando-o indisponível aos outros usuários.
O IPSec tem como objetivo tratar de todas estas ameaças na própria camada de rede (camada Internet do modelo TCP/IP), para que não sejam necessárias modificações nos terminais (host) ou aplicativos. Um dos meios para se conseguir isto, por exemplo, é através da implementação de IPSec nos roteadores de borda, por onde passa todo o tráfego externo de uma empresa/instituição; desta forma, a segurança atuaria de forma transparente para o usuário.

O IPSec é voltado para a encriptação de camada IP, e seu padrão define alguns formatos de pacote novos: Autenticação de Cabeçalho (Authentication Header, AH) para fornecer a autenticação dos participantes da conexão, e o Encapsulamento Seguro da Informação (Encapsulating Security Payload, ESP), para fornecer a integridade e privacidade dos pacotes entre origem e destino. O gerenciamento de chaves, associações de segurança (Security Associations, SA) e os parâmetros para a comunicação IPSec entre dois dispositivos são negociados através do IKE (Inernet Key Exchange, anteriormente chamado de Internet Security Association Key Management Protocol ou ISAKMP/Oakley). O IKE utiliza Certificados Digitais (que garantem a identidade de uma pessoa, evitando a falsificação de identidades) para autenticação de dispositivos, permitindo a criação de grandes redes seguras. Sem o suporte dos Certificados Digitais, as soluções IPSec não seriam escaláveis para a Internet. Todos estes elementos serão explicados ao longo do texto. Atualmente, o protocolo já é encontrado em roteadores, firewalls e em sistemas operacionais Windows e UNIX.
Começaremos com a motivação para o desenvolvimento do IPSec, para depois entrar em detalhes de seus mecanismos de segurança.

1. Fundamentos

Uma rede, para ser considerada segura, deve basear-se numa forte política de segurança, que defina a liberdade de acesso à informação para cada usuário, assim como a localização dos mecanismos de segurança na rede. Há várias soluções para se construir uma infra-estrutura segura para a Internet, Extranets, Intranets e redes para acesso remoto, que oferecem autenticação do usuário, acompanhamento de suas ações e privacidade dos dados. Privacidade, integridade e autenticidade são conseguidas através encriptação na camada de rede, certificação digital e autenticação de dispositivos, palavras-chave quando falamos de IPSec, ou mais genericamente, de mecanismos de segurança em redes públicas.

2. Mudança na comunicação das empresas

A Internet está modificando rapidamente a forma como são feitos os negócios. Ao mesmo tempo em que a velocidade de comunicação aumenta, seu custo diminui. Há um grande espaço para o aumento de produtividade, aproveitando esta situação, através das seguintes topologias, também mostradas na figura 1:

- Extranet: as companhias podem facilmente estabelecer enlaces com seus fornecedores, clientes ou parceiros. Até pouco tempo atrás, isto era feito através de linhas privadas (dedicadas) ou ligações telefônicas (de baixa velocidade). A Internet permite uma comunicação instantânea, de alta velocidade e sempre disponível.
- Intranet: a maior parte das empresas utiliza WANs (Wide-Area Networks) para conectar as redes de sua sede e filiais. Esta solução é cara, e apesar de seu custo ter caído nos últimos anos, ainda há uma grande margem de redução de custos pelo uso da Internet.
- Usuários remotos: a Internet fornece uma alternativa de baixo custo para a conexão destes usuários às redes corporativas. Em vez de a empresa ter que manter bancos de modens e arcar com os custos das ligações telefônicas (muitas vezes interurbanas ou até internacionais), elas podem permitir que seus usuários acessem sua rede através da Internet. Com uma ligação local a um provedor de acesso à Internet (Internet Service Provider, ISP), um usuário pode ter acesso à rede corporativa.

Compartilhamento da rede interna de uma empresa

Estas e outras aplicações da Internet estão mudando a forma com as empresas se comunicam. A Internet fornece uma infra-estrutura pública de comunicações que faz com que tudo isso se torne possível. No entanto, há fraquezas geradas por esta infra-estrutura compartilhada: segurança, qualidade de serviço e confiabilidade. Neste momento aparece o IPSec como peça-chave no fornecimento de segurança nas comunicações de rede.

3. Qual a função do IPSec?
Como visto nos itens anteriores, a Internet apresenta grandes vantagens, mas também alguns riscos. Sem os mecanismos adequados de controle, os dados estão sujeitos a diversos tipos de ataques. Estes ataques são:

3.1 Perda de privacidade
O atacante pode observar dados confidenciais enquanto eles atravessam a Internet. Esta é uma das principais ameaças ao comércio pela Internet hoje. Sem encriptação, todas as mensagens enviadas podem ser lidas por pessoas não autorizadas, como mostrado na figura 2. Estas técnicas são chamadas de “sniffing”, e os programas utilizados para isso de “sniffers”; até usuários com pouco conhecimento já são capazes de bisbilhotar o conteúdo que trafega na rede.

Pessoas não autorizadas podem bisbilhotar o conteúdo de mensagens

3.2 Perda de integridade dos dados
Mesmo que os dados não sejam confidenciais, também devemos nos preocupar com a integridade deles. Por exemplo, uma pessoa pode não se importar que alguém veja suas mensagens do dia a dia, mas certamente se preocupará se os dados puderem ser alterados; uma ordem para a promoção de um funcionário geralmente não precisa ser secreta, mas quem a enviou estará realmente preocupado ser ela puder ser trocada por uma outra indicando uma demissão. O mesmo vale para mensagens secretas, já que o emissor deseja que seus bits não sejam alterados no caminho, o que poderia causar uma alteração no significado da mesma. Mecanismos de integridade dos dados garantem que a mensagem chega ao destino como saiu da origem.

3.3 Falsificação de identidade (Identity spoofing)

Além da proteção do dado, também devemos ter a garantia de que uma pessoa é realmente quem ela diz ser. Como mostrado na figura 3, um atacante pode tentar se passar por uma outra pessoa, para ter acesso a informações confidenciais. Muitos sistemas ainda confiam no endereço IP para identificar um usuário de forma única; no entanto, este sistema já é facilmente enganado.

Uma pessoa se passa por diretor da empresa, obtendo acesso à informações confidenciais

3.4 Negação de serviço (DoS)
Ao migrar para a Internet, uma organização deve tomar as medidas necessárias para garantir que seus sistemas estarão disponíveis aos usuários. Aproveitando brechas de segurança, atacantes fazem com que computadores da empresa sejam levados ao limite, até o ponto em que parem de oferecer o serviço que deveriam. Mesmo que o atacante não consiga acesso a informações privilegiadas, ele sem dúvida causará danos à empresa.

4. IPSec: Visão
4.1 Abordando o problema
Não há respostas simples para a segurança na Internet. Todas as soluções necessitam de muitos elementos, incluindo uma boa política de segurança, padrões que definam o que deve ser protegido, um conjunto de procedimentos que detalham como implementar as políticas e um conjunto de tecnologias que forneçam a proteção.
Confidencialidade, integridade e autenticidade são os serviços-chave para a proteção contra as ameaças descritas na seção anterior. Com a encriptação garantimos a privacidade dos dados, com uma forte autenticação feita na camada de rede podemos garantir a origem dos dados.

4.2 O que é IPSec
IPSec não é o mecanismo de encriptação ou autenticação, mas sim o que vem gerenciar estes. Em poucas palavras, é um framework (um conjunto de diversas ferramentas, compondo um sistema) de padrões abertos que visa a garantir uma comunicação segura em redes IP. Baseado em padrões desenvolvidos pela IETF (Internet Engineering Task Force, organização que desenvolve os padrões da Internet), o IPSec busca garantir confidencialidade, integridade e autenticidade nas comunicações de dados em uma rede IP pública.

Encriptação e autenticação podem ser implementadas tanto na camada de rede, quanto na de enlace ou aplicação. Antes do IPSec, as redes adotavam soluções parciais, que resolviam apenas parte dos problemas. Por exemplo, a utilização de SSL (Secure Sockets Layer, que simulam túneis seguros entre aplicativos) fornece encriptação no nível de aplicação, muito usado em navegadores de Internet, por exemplo, para acesso à serviços bancários. Uma das deficiências da encriptação no nível de aplicação é que ela protege somente os dados enviados pela aplicação que a está usando, mas não de todas as outras. Cada sistema ou aplicativo deve estar adaptado a SSL, para que uma segurança geral possa ser garantida. Atualmente, a maior parte dos aplicativos não utiliza SSL.

Já em instituições militares, o que vem sendo usado há anos é a encriptação no nível do enlace de dados. Neste esquema, todas as comunicações estarão protegidas por dispositivos de encriptação colocados em cada fim do enlace. Apesar de oferecer excelente cobertura, este tipo de encriptação necessita de um par de dispositivos de encriptação a cada enlace, o que pode ser inviável; também não é adequado para a Internet, já que apenas os enlaces dentro de um sistema autônomo estarão ao alcance das empresas/instituições.

O IPSec implementa encriptação e autenticação na camada de rede, fornecendo uma solução de segurança fim-a-fim, ao contrário da anterior (enlace), que é ponto-a-ponto. O IPSec pode ser implementado nos roteadores ou no sistema operacional dos terminais, assim os aplicativos não precisam de alterações para poder utilizar comunicações seguras. Como os pacotes encriptados têm o mesmo formato de pacotes IP comuns, eles podem ser roteados sem problemas em qualquer rede IP, e sem qualquer alteração nos equipamentos de rede intermediários. Os únicos dispositivos de rede que precisam ser alterados são os do início e fim das comunicações IPSec, reduzindo assim os custos de implementação e gerenciamento.

A figura 4 mostra onde a encriptação atua nas diferentes camadas.

Encriptação na camada de enlace, na de rede e na aplicação.

4.3 Tecnologias
IPSec combina diversas tecnologias diferentes de segurança em um sistema completo que provê confidencialidade, integridade e autenticidade, empregando atualmente:

mecanismo de troca de chaves de Diffie-Hellman;
criptografia de chave pública para assinar as trocas de chave de Diffie-Hellman, garantindo assim a identidade das duas partes e evitando ataques do tipo man-in-the-middle (onde o atacante se faz passar pela outra parte em cada um dos sentidos da comunicação);
algoritmos de encriptação para grandes volumes de dados, como o DES (Data Encryption Standard);
algoritmos para cálculo de hash (resto de uma divisão, de tamanho fixo) com utilização de chaves, com o HMAC, combinado com os algoritmos de hash tradicionais como o MD5 ou SHA, autenticando os pacotes;
certificados digitais assinados por uma autoridade certificadora, que agem como identidades digitais.

4.4 Detalhes do IPSec
Na realidade, além das tecnologias mencionadas no item anterior, o IPSec também se refere a diversos outros protocolos (mencionados nas RFCs 2401-2411 e 2451) para proteger datagramas IP. Estes padrões são:
Protocolo de Segurança IP, que define que informações adicionar ao pacote IP para permitir o controle da confidencialidade, autenticidade e integridade, assim como a forma em que os dados devem ser encriptados;
Internet Key Exchange (IKE), que negocia Associações de Segurança (Security Association, SA) entre duas entidades e realiza a troca de chaves. O uso da IKE não é obrigatório, mas a configuração manual de Associações de Segurança é difícil e trabalhosa, torna-se impossível para comunicações seguras em larga escala.

Pacotes IPSec

É definido um novo conjunto de cabeçalhos a serem adicionados em datagramas IP. Os novos cabeçalhos são colocados após o cabeçalho IP e antes do cabeçalho da camada superior (como o dos protocolos de transporte TCP ou UDP). Estes novos cabeçalhos é que dão as informações para proteção das informações (payload) do pacote IP:

Authentication Header (AH): este cabeçalho, ao ser adicionado a um datagrama IP, garante a integridade e autenticidade dos dados, incluindo os campos do cabeçalho original que não são alterados entre a origem e o destino; no entanto, não fornece confidencialidade. É utilizada uma função hash com chave, ao invés de assinatura digital, pois o mecanismo de assinatura digital é bem mais lento e poderia reduzir a capacidade da rede.
Encapsulating Security Payload (ESP): este cabeçalho protege a confidencialidade, integridade e autenticidade da informação. Se o ESP for usado para validar a integridade, ele não inclui os campos invariantes do cabeçalho IP.

AH e ESP podem ser usados separadamente ou em conjunto, mas para a maioria das aplicações apenas um deles é suficiente. Para os dois cabçalhos, o IPSec não especifica quais algoritmos de segurança devem ser utilizados, mas dá uma relação dos possíveis algoritmos, todos padronizados e bastante difundidos. Inicialmente, quase todas as implementações trabalham com MD5 (da RSA Data Security) e o Secure Hash Algorithm (SHA, do governo dos EUA) para integridade e autenticação. O DES é o algoritmo mais comumente usado para a encriptação dos dados, apesar de muitos outros estarem disponíveis, de acordo com as RFCs, como o IDEA, Blowfish e o RC4.

Modos de operação

O IPSec fornece dois modos de operação, como mostrado nas figuras 5 e 6.

No modo de transporte, somente a informação (payload) é encriptada, enquanto o cabeçalho IP original não é alterado. Este modo tem a vantagem de adicionar apenas alguns octetos a cada pacote, deixando que dispositivos da rede pública vejam a origem e o destino do pacote, o que permite processamentos especiais (como de QoS) baseados no cabeçalho do pacote IP. No entanto, o cabeçalho da camada 4 (transporte) estará encriptado, limitando a análise do pacote. Passando o cabeçalho sem segurança, o modo de transporte permite que um atacante faça algumas análises de tráfego, mesmo que ele não consiga decifrar o conteúdo das mensagens.

No modo de tunelamento, todo o datagrama IP original é encriptado e passa a ser o payload de um novo pacote IP. Este modo permite que um dispositivo de rede, como um roteador, aja como um Proxy IPSec (o dispositivo realiza a encriptação em nome dos terminais). O roteador de origem encripta os pacotes e os envia ao longo do túnel IPSec; o roteador de destino decripta o datagrama IP original e o envia ao sistema de destino. A grande vantagem do modo de tunelamento é que os sistemas finais não precisam ser modificados para aproveitarem os benefícios da segurança IP; além disto, esse modo também protege contra a análise de tráfego, já que o atacante só poderá determinar o ponto de início e de fim dos túneis, e não a origem e o destino reais.

Cabeçalho genérico para o modo de transporte

Exemplo de um cabeçalho do modo túnel

Como definido pelo IETF, o modo de transporte só pode ser utilizado quanto tanto a origem quanto o destino “entendem” IPSec. Na maior parte dos casos, é mais fácil trabalhar com o modo de tunelamento, o que permite a implementação do IPSec sem que sistemas operacionais ou aplicativos nos terminais e servidores precisem ser alterados.

Associações de Segurança (Security Association, SA)

Como visto, o IPSec fornece diversas opções para executar a encriptação e autenticação na camada de rede. Quando dois nós desejam se comunicar com segurança, eles devem determinar quais algoritmos serão usados (se DES ou IDEA, MD5 ou SHA). Após escolher os algoritmos, as chaves de sessão devem ser trocadas. Como vemos, há uma certa quantidade de informações que precisam ser negociadas. A Associação de Segurança é o método utilizado pelo IPSec para lidar com todos estes detalhes de uma determinada sessão de comunicação. Uma SA representa o relacionamento entre duas ou mais entidades que descreve como estas utilizarão os serviços de segurança para se comunicarem. As SAs também podem ser utilizadas por outras entidades, como IKEs, para descrever os parâmetros de segurança entre dois dispositivos IKE.

As SAs são unidirecionais, o que significa que para cada par de sistemas que se comunicam, devemos ter pelo menos duas conexões seguras, uma de A para B e outra de B para A. As SAs são identificadas de forma única pela associação entre um número aleatório chamado SPI (Security Parameter Index) e o endereço IP de destino. Quando um sistema envia um pacote que requer proteção IPSec, ele olha as SAs armazenadas em seus banco de dados, processa as informações, e adiciona o SPI da SA no cabeçalho IPSec. Quando o destino IPSec recebe o pacote, ele procura a SA em seus banco de dados de acordo com o endereço de destino a de SPI, e então processa o pacote da forma necessária. As SAs são simplesmente o relatório das políticas de segurança que serão usadas entre dois dispositivos.

Protocolo de gerenciamento de chaves (Internet Key Management Protocol, IKMP)

O IPSec assume que as SAs já existem para ser utilizado, mas não especifica como elas serão criadas. O IETF decidiu dividir o processo em duas partes: o IPSec fornece o processamento dos pacotes, enquanto o IKMP negocia as associações de segurança. Após analisar as alternativas disponíveis, o IETF escolheu o IKE como o método padrão para configuração das SAs para o IPSec.

O IKE cria um túnel seguro e autenticado entre duas entidades, para depois negociar SAs para o IPSec. Este processo requer que duas entidades se autentiquem entre si e estabeleçam chaves compartilhadas.

Autenticação

As duas partes devem ser autenticadas entre si. O IKE é bastante flexível e suporta diversos tipos de autenticação. As duas entidades devem escolher o protocolo de autenticação que será utilizado através de negociação. Neste momento, os seguintes mecanismos são implementados:

chaves compartilhadas já existentes: a mesma chave é instalada em cada entidade. Os dois IKEs autenticam-se enviando ao outro um hash com chave de um conjunto de dados que inclui a chave compartilhada existente. Se o receptor conseguir criar o mesmo hash usando sua chave já existente, ele sabe que os dois IKE possuem a mesma chave, autenticando assim a outra parte;
criptografia de chave pública: cada parte gera um número aleatório, e encripta este número com a chave pública da outra parte. A capacidade de cada parte computar um hash com chave contendo o número aleatório da outra parte, decriptado com a chave privada local, assim como outras informações disponíveis pública e privadamente, autentica as duas partes entre si. Este método permite que as transações sejam negadas, ou seja, uma das partes da troca pode, plausivelmente, negar que tenha feito parte da troca. Somente o algoritmo de chave pública RSA é suportado atualmente.
assinatura digital: cada dispositivo assina digitalmente um conjunto de dados e o envia para a outra parte. Este método a similar ao anterior, mas ele não permite que uma entidade repudie a participação na troca. Tanto o algoritmo de chave pública RSA quanto o DSS (Digital Signature Standard) são suportados atualmente.

Tanto a assinatura digital quanto a criptografia de chave pública necessitam o uso de certificados digitais para validar o mapeamento entre a chave pública e a chave privada. O IKE permite que certificados sejam acessados independentemente (por exemplo, através do DNSSEC), ou que dois dispositivos troquem explicitamente os certificados como parte do IKE.

Troca de chaves

As duas partes devem possuir uma chave de sessão compartilhada para poderem encriptar o túnel IKE. O protocolo de Diffie-Hellman é usado para que as entidades concordem em uma chave de sessão. A troca é autenticada como descrito acima para prevenir contra ataques do tipo “man-in-the-middle”.

Utilizando o IKE com o IPSec

A autenticação e a troca de chaves criam a SA entre os IKEs, um túnel seguro entre os dois dispositivos. Um dos lados do túnel oferece um conjunto de algoritmos, e o outro deve aceitar uma das ofertas ou rejeitar a conexão. Quando os dois lados concordam com os algoritmos que serão utilizados, eles devem produzir as chaves que serão utilizadas pelo IPSec no AH ou ESP, ou os dois. A chave compartilhada pelo IPSec é diferente da compartilhada pelos IKEs; ela pode ser obtida pelo método de Diffie-Hellman novamente, para garantir o sigilo, ou atualizando a criada pela troca original para gerar a SA IKE, fazendo o hash com outro número aleatório. O primeiro método, apesar de fornecer maior segurança, é mais lento. Após esse passos, a SA IPSec é estabelecida.

Como mostrado na figura 8, o IPSec usa o IKE para iniciar uma SA. O primeiro pacote de A para B que deve ser encriptado inicia o processo. O processo IKE monta um túnel seguro entre B e A, onde a SA IPSec será negociada. A então pode usar esta SA para enviar dados de forma segura para B.

Uso do IKE pelo IPSec

Juntando todos os passos descritos anteriormente, temos o seguinte exemplo. B quer iniciar uma comunicação segura com A, enviando o primeiro pacote de dados. Quando o roteador de B recebe este pacote, ele olha suas políticas de segurança e vê este pacote deve ser encriptado; a política de segurança, que deve ser configurada anteriormente, também diz que o outro ponto do túnel IPSec será o roteador de A. O roteador de B procura se já há alguma SA IPSec com o roteador. Se ainda não existe, ele pede uma para o IKE; se os dois roteadores já compartilham uma SA IKE, a SA IPSec pode ser rapidamente gerada. Se ainda não compartilham uma SA IKE, ela deve ser criada antes que possa ser negociada uma SA IPSec. Como parte deste processo, os dois roteadores trocam certificados digitais, que estão assinados por alguma autoridade certificadora que os roteadores de A e B confiam. Quando a sessão IKE é ativada, os dois roteadores podem então negociar a SA IPSec; quando esta última é ativada, significa que os dois roteadores concordaram num algoritmo de encriptação (por exemplo o DES) e um de autenticação (como o MD5), e agora compartilham de uma chave de sessão. Agora o roteador de B pode encriptar o pacote IP que B que enviar a A, colocá-lo em um novo pacote IPSec enviá-lo ao roteador de A. Quando o roteador de A recebe o pacote IPSec, ele faz uma busca na SA IPSec, e então processa o pacote e envia o datagrama original para A. Note que todos os passos são feitos pelos roteadores de A e B, deixando o processo transparente aos usuários.
Na prática a política de segurança pode ser bastante flexível: os roteadores podem decidir quais pacotes devem ser encriptados ou autenticados, de acordo com alguma combinação entre os endereços de origem e destino, portas e protocolo de transporte. Cada um dos tipos de comunicação pode ser autenticado e encriptado separadamente, com chaves diferentes.


Nenhum comentário: