Criptografia e Segurança das Comunicações. IPsec - PDF
Download "Criptografia e Segurança das Comunicações. IPsec"
Júlio Penha Marroquim
1 Criptografia e Segurança das Comunicações IPsec IPsec : 1/27 Introdução (1) Os datagramas IP do nível de rede da pilha de protocolos v4 são inseguros! Endereço fonte pode ser mistificado ( spoofed ). Conteúdo pode ser acedido ( sniffed ). Conteúdo por ser alterado. Datagramas IP podem ser substituídos. Os datagramas IP tansportam conteúdos distintos: Segmentos TCP e UDP, injectados pelo nível de transporte, Mensagem ICMP,... Dados transportados provêm de aplicações diversas: páginas WWW, mensagens ,... IPsec : 2/27
2 Introdução (2) IPsec- IP security é um conjunto de protocolos, definidos em 1998 pelo IETF, que encapsula o IP para suportar a transmissão segura de pacotes de dados. Protocolos mais relevantes definidos nos RFC Nota: elevada complexidade dificultou a sua aceitação. Suporte do IPsec, opcional no IPv4, é obrigatório no IPv6. No entanto, a sua utilização tem de ser confirmada pelos administradores da rede ou pelas aplicações. A pilha IPsec foi incorporada no kernel Linux na versão 2.6 IPsec : 3/27 Introdução (3) O IPsec oferece vários serviços seguros ao nível da camada de rede: Controlo de acessos. Integridade ao nível do pacote. Autenticação da origem de dados. Protecção contra pacotes repetidos. Confidencialidade. Confidencialidade de parte do tráfego. Em cada nó do Ipsec existem duas bases de dados: SAD e SPD. Para cada datagrama (de chegada ou partida): 1. SPD determina o que fazer com o datagrama. 2. SAD determina como fazer a indicação dada pelo SPD. Os tratamentos dos datagramas à saída e à entrada podem ser distintos! IPsec : 4/27
3 Introdução (4) Vantagens do IPsec Protege todo o tráfego na rede, sem ter de se criar encaminhadores ( routers ) distintos, ligações físicas blindadas, infraestrutura DNS,..., nem alterar aplicações. Inconvenientes do IPsec Autentica máquinas, não utilizadores. Implementação mais complexa no nível de rede, transmissão mais lenta. Dados irrelevantes, por exemplo PING, são desnecessariamente cifrados. Incompatível com o NAT. IPsec : 5/27 Introdução (5) Visão geral do IPsec Figura 16-2, Cryptography and Network Security IPsec : 6/27
4 Protocolos IPsec dividido em vários protocolos: IKE- Internet Key Exchange : negociar os parâmetros da sessão, trocar as chaves de cifra e assegurar a autenticação das máquinas. 2 modelo de serviços serviços de transmissão: AH- Authentication Header : integridade de mensagens, autenticação de nós. ESP- Encapsulation Security Protocol : capacidade de AH + confidencialidade (+ lento, + usado). ESP AH IP IKE IPsec : 7/27 Bases de Dados (1) A. SAD A gestão do IPsec baseia-se nas SAs. Uma SA-Security Association é uma ligação simplex identificada por 3 parâmetros incorporados nos cabeçalhos IPsec: IP Destination: define o endereço de destino dos pacotes. IPsec Protocol: o protocolo (AH ou ESP) utilizado pela SA. Security Parameter Index (SPI): número de 32 bits que distingue SAs do mesmo tipo. Associados ao SPI estão todos os parâmetros de funcionamento necessários para a codificação e descodificação dos pacotes enviados através da ligação segura representada pela SA. Em cada nó, o IPsec regista esta informação na base de dados SAD-Security Association Database. IPsec : 8/27
5 Bases de Dados (2) Quer a entidade que envia, quer a que recebe, mantém informação de estado sobre a SA. O protocolo IP é sem conexão ( connectionless ), IPsec é orientado à conexão! SA R1 R1 armazena informação sobre SA R Identificador da SA. Interfaces de origem do SA ( ) e de destino ( ). Tipo de cifra usada (ex: AES em modo CTR) e chaves. Tipo de integridade usada (ex: HMAC com MD5). Chave de autenticação. Tempo de vida do SA. IPsec : 9/27 Base de Dados (3) B. SPD A arquitectura IPSec define a granulariade com a qual um administrador de sistema pode especificar a política de segurança. Em cada nó, o IPsec regista a política na base de dados SPD- Security Policy Database. Em cada selector é determinado o que fazer ao datagrama Descartar o datagrama. Permitir o datagrama, sem alterar (não aplicar Ipsec na saída, na entrada não exigir IPsec). Aplicar serviços de segurança ao datagrama. No Linux, as duas bases de dados são manipuladas pelo comando /sbin/setkey IPsec : 10/27
6 Processamento entre agentes (1) Um datagrama é enviado de R1 para R2, pelos passos seguintes: 1. R1 acede ao SPD para saber como processar o datagrama. 1. Se o datagrama tiver de ser processado, consulta a entrada do SAD. Se não existir entrada, cria novo SA. 2. Cifra e adiciona o valor da função de dispersão do datagrama e entregue-o ao nível inferior (ligação). 2. Quando R2 recebe o datagrama, vindo do nível de ligação, 1. Se existirem cabeçalhos IPsec do datagrama existirem, processa os cabeçalhos: Com base no SPI, consulta o SPD para decidir o que fazer ao datagrama. 2. Se os cabeçalhos IPsec forem inexistentes, consulta o SPD para o que fazer neste caso. 3. Se o SPD indicar que tem de processar o datagrama, ele é descartado silenciosamente se não existir entrada SAD. IPsec : 11/27 Processamento entre agentes (2) Saída A B Datagrama IP e SPI Processa cabeçalhos SPD Processar? Y SAD Datagrama IP N IPsec : 12/27
7 Processamento entre agentes (3) A B Entrada Datagrama IP SPD SAD Processamento IPsec Datagrama IP e SPI IPsec : 13/27 Processamento entre agentes (4) Cada datagrama IPsec, quer no modo AH, quer no modo ESP, contém um número de sequência seq # de 32 bitsinicializado a 0. O número de sequência, incrementado em cada diagrama, combate ataque de repetição. Para evitar duplicação de seq#, quando chegado ao valor de , o SA transmissor deve terminar e ser negociado um novo SA com nova chave. IPsec : 14/27
8 Processamento entre agentes (5) Uma vez que o IP é um protocolo sem conexão (lembrar que o IPSec apenas encapsula o IP), não existe garantia de entrega das datagramas. O destino verifica duplicação de números de sequência e mantém uma janela, de dimensão W (por omissão, W=64) dos datagramas recebidos. Figura 16-4, Cryptography and Network Security IPsec : 15/27 Integridade Os datagramas IPsec possuem um campo, não cifrado, de 96 bits que transporta o valor da função de dispersão acordada entre os dois agentes. As recomendações RFC exigem que é obrigatório disponibilizar as funções de dispersão HMAC-MD5 (valor de 128b) e HMAC- SHA1 (valor de160b). Apenas são considerados os primeiros 96 bits da função de dispersão, o que não é grave uma vez que a alteração de um bit na entrada pode afectar todos os bits da função de dispersão. O receptor decifra o datagrama depois de ter verificado a integridade. IPsec : 16/27
9 Modos de operação (1) O IPsec disponibiliza dois modos de operação para os protocolos AH e ESP. 1. Modo transporte: protege protocolos de níveis superiores. Cifra apenas dados do datagrama. O datagrama IPsec é gerado nos nós hospedeiros. Adoptado em redes locais. IPsec IPsec IPsec : 17/27 Modos de operação (1) 2. Modo túnel: protege toda a carga IP Cifra todo o datagrama (dados+cabeçalho). Normalment usado quando as pontas são gateways seguros (firewall ou encaminhador). Adoptado em redes de larga escala. Vantajoso por esconder a rede por detrás do gateway seguro, embora à custa de maior lentidão. IPsec IPsec IPsec : 18/27
10 Modo AH (1) Cabeçalho do datagrama AH 4-IP, 6-TCP, 17-UDP, 50-ESP,51-AH 8 bits 8 bits 16 bits Tipo Dimensão Reservado prox. AH Dados SPI- Security Parameter Index Número de sequência Unidades de 32/64B 32 bits 32 bits HMAC 96 bits IPsec : 19/27 Modo AH (2) Formato dos datagramas IPsec no protocolo AH Modo transporte Cabeçalho IP Cabeçalho Dados (TCP ou UDP) Modo túnel Cab. IP novo Cabeçalho Cabeçalho IP Dados (TCP ou UDP) Os dados não são cifrados. Garantida apenas integridade pelo valor HMAC do cabeçalho. IPsec : 20/27
11 Modo ESP (1) Campos do cabeçalho ESP SPI - número de SA Seq # - número de sequência de datagrama Campos do reboque ( trail ) Enchimento ( padding ) para as cifras de bloco Dimensão do enchimento Tipo do próximo datagrama Cabeçalho Reboque SPI- Security Parameter Index Número de sequência IV Dados padding Tipo prox. AH HMAC Campos variáveis Campos cifrados (excepto HMAC) IPsec : 21/27 Modo ESP (2) Formato dos datagramas IPsec no protocolo ESP Modo transporte Autenticado por HMAC Cabeçalho IP Cabeçalho ESP Dados (TCP ou UDP) Reboque HMAC Cifrado Modo túnel Autenticado por HMAC Cabeçalho IP (novo) Cabeçalho ESP Cabeçalho IP (velho) Dados (TCP ou UDP) Reboque HMAC Cifrado IPsec : 22/27
12 IKE (1) O IKE-Internet Key Exchange tem por objectivos envolvendo os agentes I- initiator e R- responder. Autenticação mútua entre os agentes. Estabelecimento das chaves partilhadas. Tipicamente são criadas 4 chaves para os dois agentes: pares de transmissão e de recepção para os protocolos AH e ESP. As chaves podem ser determinadas Manualmente por administradores de sistema (pouco usual, apenas para sistemas pequenos e estáveis). Automaticamente, com base em 2 protocolos. Oakley Key Determination Protocol, baseado no DH com segurança reforçada. Internet Security and Key Management Protocol IPsec : 23/27 IKE (2) Na versão 2, o IKE é constituído por duas fases: 1. A fase, designada IKE-SA, tem por objectivo a autenticação mútua dos agentes e o estabelecimento das chaves de sessão. O IKE-SA é bi-direcccional. Existem dois modos de execução da 1ª fase: Principal ( main ) os agentes podem ser invisíveis, mas exige a troca de 6 mensagens Agressivo ( aggressive ) apenas trocadas 3 mensages, mas os agentes têm de ser visíveis. 2. Define múltiplas SA filhas, uni-direccionais, entre as duas entidades da IKE-SA e cada uma com o seu modo AH ou ESP. Existe apenas um modo de execução da 2ª fase: rápido IPsec : 24/27
13 IKE (3) A. Fase IKE-SA Negociação dos parâmetros Troca DH IDs e certificações 1. Modo principal I Proposta algoritmos criptográficos Algoritmo criptográfico aceite g a mod p g b mod p { I, [cert I ]}K IR { R, [cert R ]}K IR R Os agentes passam a comunicar de forma cifrada, com chave K IR determinada pelo método DH Para evitar ataques de polling para determinar os agentes,a identificação só é enviada agora IPsec : 25/27 IKE (4) 2. Modo agressivo I I, g a mod p, proposta alg. criptográficos R R, g b mod p, Alg. criptográfico aceite [cert I ] No modo agressivo, o iniciador apenas propõe uma única combinação de algoritmos criptográficos para cifra/integridade. O receptor limita-se a aceitar ou a rejeitar a proposta. IPsec : 26/27
14 IKE (5) B. Estabelecimento da SA filhas, cada uma criada com um par de mensagens: I R {descrição, nounce N i, [g a mod p], tráfego}k IR {descrição, nounce N R, [g b mod p], tráfego}k IR Na descrição indica-se o modo a usar (AH, ESP), os algoritmos de cifra e seus parâmetros. No tráfego indica-se a gama de números IP, protocolos e identificador de protocolo. IPsec : 27/27