760 likes | 879 Views
IPsec: IP Seguro. Edgard Jamhour. IP Sec - IP Seguro. Padrão aberto baseado em RFC (IETF) . Comunicação segura em camada 3 (IPv4 e IPv6) Provê recursos de segurança sobre redes IP: Autenticação , Integridade e Confidencialidade Dois modos de funcionamento: Modo Transporte Modo Túnel
E N D
IPsec: IP Seguro Edgard Jamhour
IP Sec - IP Seguro • Padrão aberto baseado em RFC (IETF). • Comunicação segura em camada 3 (IPv4 e IPv6) • Provê recursos de segurança sobre redes IP: • Autenticação, Integridade e Confidencialidade • Dois modos de funcionamento: • Modo Transporte • Modo Túnel • Dois Protocolos (Mecanismos) • IPsec ESP: IP Encapsulating Security Payload (50) • IPsec AH: IP Autentication Header (51)
Implementação do IPsec • IPsec pode ser implementado de três formas: • Como um driver • Reescrevendo-se o código do protocolo IP • Dispositivo externo "Bump-in-the-wire" (BITW) IP IPsec Driver IP/IPsec Nativo Enlace (Driver da Placa de Rede) Enlace (Driver da Placa de Rede) Sistemas Operacionais Roteadores
Tipos de IPSec • IP Autentication Header (AH) • Oferece recursos de: • Autenticação • Integridade • IP Encapsulating Security Payload (ESP) • Oferece recursos de: • Confidencialidade • Autenticação • Integridade
Modos de Utilização do IPsec • Modo transporte • Garante a segurança apenas dos dados provenientes das camadas superiores. • Utilizado geralmente para comunicação "fim-a-fim" entre computadores. • Modo tunel • Fornece segurança também para a camada IP. • Utilizado geralmente para comunicação entre roteadores.
Modo Tunel e Transporte INTERNET Conexão IPsec em modo Transporte INTERNET Conexão IPsec em modo Túnel
Modos de Utilização do IPsec Rede Confiável Rede não Confiável Rede Confiável Gateway Seguro Gateway Seguro Rede não Confiável Rede Confiável Host Gateway Seguro Rede não Confiável Host Host
Modo AH • Definido pelo protocolo IP tipo 51 • Utilizando para criar canais seguros com autenticação e integridade, mas sem criptografia. • Permite incluir uma “assinatura digital” em cada pacote transportado. • Protege a comunicação pois atacantes não conseguem falsificar pacotes assinados.
AH e Modo Túnel e Modo Transporte IPv4 IP Normal IP TCP/UDP DADOS IPv4 com autenticação IP AH TCP/UDP DADOS Modo Transporte IPv4 com autenticação e tunelamento IP AH IP TCP/UDP DADOS Modo Tunel Especifica os Computadores Especifica os Gateways nas Pontas do Tunnel
Authentication Header • Provê serviços de autenticação e Integridade de Pacotes. 1 byte 1 byte 1 byte 1 byte Next Header Length reserved reserved SPI: Security Parameter Index Sequence Number Authentication Data (ICV: Integrity Check Value) Campo de Tamanho Variável, depende do protocolo de autenticação utilizado
Campos do IPsec AH • Next Header: • Código do protocolo encapsulado pelo IPsec, de acordo com os códigos definidos pela IANA (UDP, TCP, etc ...) • Length: • comprimento do cabeçalho em múltiplos de 32. • Security Parameter Index: • identificador de 32 bits, com a SA compartilhada pelo transmissor e pelo receptor. • Authentication Data: • Código de verificação de integridade (ICV) de tamanho variável, depende do protocolo utilizado.
Campos do IPsec AH • Sequence Number: • Numero incremental, que começa a contagem quando o SA é criada. • Permite que apenas 232-1 pacotes sejam transmitidos na mesma SA. Após esse número, uma nova SA deve ser criada. negociam SA e definem SPI SPI=deBparaA SPI=daAparaB. SPI=deAparaB SPI=deBparaA SPI=deAparaB e SN=1 Host B Host A SPI=deAparaB e SN=2 SPI=deBparaA e SN=1 ...
Authentication Data • Para enviar um pacote: • O transmissor constrói um pacote com todos os campos IP e protocolos das camadas superiores. • Ele substitui todos os campos que mudam ao longo da transmissão com 0’s (por exemplo, o TTL) • O pacote é completado com 0’s para se tornar múltiplo de 16 bits. • Um checksum criptográfico é computado para concatenação: • Algoritmos: HMAC-MD5 ou HMAC-SHA-1 • MAC: Message Authentication Code
Autenticação • Para receber um pacote: • O receptor utiliza o SPI para determinar qual o algoritmo a ser utilizado para validar o pacote recebido. • O receptor substitui os campos mutáveis por “0” e calcula o checksum criptográfico do pacote. • Se ele concordar com o checksum contido no cabeçalho do pacote de autorização, ele é então aceito. ICV Algoritmo de Integridade iguais? IP AH TCP/UDP DADOS ICV
Negociação Diffie-Hellman • O IPsec utiliza a negociação Diffie-Hellman para criar uma chave de sessão (simétrica) entre os hosts da comunicação segura. • O protocolo Diffie-Hellman é composto de três fases: • Fase 1: • Cada host gera uma chave pública a partir de parâmetros pré-combinados (Diffie-Helman parameters) e um número aleatório secreto. • Fase 2: • Os hosts trocam as chaves públicas • Fase 3: • A chave de sessão é calculada a partir das chaves públicas e dos números aleatórios secretos.
Algoritmo Diffie-Hellman • 1) Cada host obtém os parâmetros "Diffie-Hellman“ (podem ser hard-coded). • Um número primo 'p' (> 2) e uma base g (numero inteiro < p). • 2) Cada host gera um número privado X < (p – 1). • 3) Cada host gera sua chave pública Y: • Y = g^X % p • 4) Os hosts trocam as chaves públicas e calculam a chave secreta Z. • Zb = Ya^Xb % p e Za=Yb ^Xa % p • Matematicamente Z é idêntica para ambos os hosts: Za = Zb
3a. envia a chave pública Y para B 3b. envia a chave pública Y’ para A Diffie-HellMan 1. Segredo Pré-Compartilhado (um número primo e um número inteiro , podem estar no código) 2a. gera a chave pública Y a partir do segredo e de um número aleatório X. 2b. gera a chave pública Y’ a partir do segredo e de um número aleatório X’. A B 4b. gera a chave de sessão Z usando Y e X’ 4a. gera a chave de sessão Z usando Y’ e X
lista de algorítmos desejados: MD5, SHA1 algoritmo aceito: SHA1 negociação Diffie-Hellman (chave de pública de A) negociação Diffie-Hellman (chave de pública de B) Identidade Criptografada (chave de sessão) Identidade Criptografada (chave de sessão) Negociação (Simplificada) B A SA associação de segurança (chave sessão + algoritmo) SPI SA associação de segurança (chave sessão + algoritmo) SPI Algoritmos SHA1 Algoritmos MD5 SHA1
Associação de Segurança • SA: Associação de Segurança • Contrato estabelecido após uma negociação que estabelece como uma comunicação IPsec deve ser realizada. • Algoritmo de Autenticaçã/Criptografia • Chave de Sessão • SPI: Secure Parameter Index • Número inteiro (32 bits) que identifica um SA. • É transmitido junto com os pacotes IPsec para permitir ao destinatário validar/decriptografar os pacotes recebidos.
assinatura comparação SPI=5 assinatura Algo SHA1 SPI=5 assinatura Algo SHA1 DADOS IP AH DADOS IP AH Transmissão dos Dados B A Quando transmitir para B use SPI=5 SPI=5 algo. SHA1 chave: xxxx SPI=5 algo. SHA1 chave: xxxx
IP IP IP IP AH Modo Tunel e Transporte IPsec AH IPsec AH IPsec AH IPsec AH IPsec AH SA SA INTERNET Conexão IPsec em modo Transporte IPsec AH IPsec AH IPsec AH SA SA INTERNET Conexão IPsec em modo Túnel
ESP IPSec : Tunel e Transporte MODO TRANSPORTE autenticado criptografado IP ESPHEADER TCP UDP DADOS ESP TRAILER ESP AUTH IP TCP UDP DADOS IP ESPHEADER IP TCP UDP DADOS ESP TRAILER ESP AUTH criptografado autenticado MODO TUNNEL
Encrypted Security Payload Header • ESP provê recursos de autenticação, integridade e criptografia de pacotes. 1 byte 1 byte 1 byte 1 byte Security Parameter Index HEADER Sequence Number Encrypted Payload (dados criptografados) TRAILER Pad (0 – 255 bytes) Pad Length Next Header Authentication Data (tamanho variável) AUTH
Campos do IPsec ESP • Header: • SPI e Sequence Number: Mesmas funções do AH • O algoritmo de criptografia pode ser qualquer, mas o DES Cipher-Block Chaining é o default. • Trailler: • Torna os dados múltiplos de um número inteiro, conforme requerido pelo algoritmo de criptografia. • O trailler também é criptografado. • Auth: • ICV (Integrity Check Value) calculado de forma idêntica ao cabeçalho AH. Este campo é opcional.
lista de algorítmos desejados: 3DES, DES algoritmo aceito: DES negociação Diffie-Hellman (chave de pública de A) negociação Diffie-Hellman (chave de pública de C) Identidade Criptografada (chave de sessão) Identidade Criptografada (chave de sessão) Negociação C A SA associação de segurança (chave sessão + algoritmo) SPI SA associação de segurança (chave sessão + algoritmo) SPI Algoritmos DES Algoritmos 3DES DES
DES com chave yyyy DES com chave yyyy SPI=6 SPI=6 DADOS CRIPTO. IP ESP ESP DADOS CRIPTO. IP ESP ESP enchimento enchimento Transmissão dos Dados A C Quando transmitir para C use SPI=6 SPI=6 algo. DES chave: yyyyy SPI=6 algo. DES chave: yyyy
IP IP IP IP ESP Modo Tunel e Transporte IPsec ESP IPsec ESP IPsec ESP IPsec ESP IPsec ESP SA SA INTERNET Conexão IPsec em modo Transporte IPsec ESP IPsec ESP IPsec ESP SA SA INTERNET Conexão IPsec em modo Túnel
Configuração do IPsec • Cada dispositivo de rede (Host ou Gateway) possui uma política de segurança que orienta o uso de IPsec. • Uma política IPsec é formada por um conjunto de regras, muito semelhantes as regras de um firewall. • As políticas IPsec são definidas de maneira distinta para os pacotes transmitidos e para os pacotes recebidos.
Estrutura Geral do IPsec Administrador configura Aplicação IKE Base de Políticas Solicita criação do SA Protocolo Aplicação Sockets Transporte (TCP/UDP) refere consulta IP/IPsec(AH,ESP) Base de SAs Enlace consulta
Políticas de Segurança • Uma Política IPsec é formada por um conjunto de regras com o seguinte formato: • Se CONDICAO SatisfeitaEntão executar ACAO da POLÍTICA • A CONDIÇÃO (Chamada de Filtro): • define quando uma regra de Política deve ser tornar ATIVA. • A AÇÃO: • define o que deve ser feito quando a condição da REGRA for SATISFEITA.
Elementos para Configuração do IPsec Lista de Regras Ações (Ação de Filtro) Regra de Política Política IPsec Regra de Política Condições (Lista de Filtros) Regra de Política
Condição (Lista de Filtros) • Cada filtro define as condições em que uma política deve ser ativa. • IP de origem e destino: • nome, IP ou sub-rede b) Tipo de protocolo • código IANA para TCP, UDP, ICMP, etc... c) Portas de origem e destino • se TCP/UDP
Ação • A ação define o que deverá ser feito com o pacote recebido ou transmitido. • O IPsec define 3 ações: • repassar o pacote adiante sem tratamento • ação: bypass IPsec • rejeitar o pacode • ação discard • negociar IPsec • define um modo de comunicação incluindo as opções Tunel, Transporte, IPsec ESP e IPsec AH.
Ações IPsec na Transmissão IP Regras IPsec IP IPsec Driver Discard Bypass Negociar IPsec • gerar assinaturas digitais • criptografar os dados IPsec ESP IP X IPsec AH Enlace
Ações IPsec na Recepção IP Regras IPsec X X IP IP • verifica assinaturas • decriptografa Discard Negociar IPsec Bypass IPsec Driver IPsec AH IP IPsec ESP Enlace
Negociar IPsec • Se a ação for do tipo Negociar IPsec, deve-se definir: • Obrigatoriedade: • Facultativo: aceita comunicação insegura • (se o outro não suporta IPsec). • Obrigatório: aceita apenas comunicação segura. • (rejeita a comunicação se o outro não suportar IPsec) • Tipo de IPsec: • AH(hash) ou ESP(cripto,hash) • Modo Túnel ou Modo Transporte • Se modo túnel, especificar o IP do fim do túnel
Algoritmos Utilizados • Algoritmo de Chave Pública: • Diffie-Hellman • Algoritmos de Criptografia: • DES-CBC with Explicit IV • 40-bit DES-CBC with Explicit IV • DES-CBC with Derived IV as specified in RFC 1829 • Algoritmos de Autenticação: • HMAC-MD5 • HMAC-SHA • Keyed MD5 conforme RFC 1828
Implementação de Políticas • Para que dois computadores "A" e "B" criem uma comunicação IPsec: • Computador A: • deve ter políticas IPsec para transmitir pacotes cujo endereço de destino é "B". • deve ter políticas IPsec para receber pacotes cujo endereço de origem é "B". • Computador B: • deve ter políticas IPsec para transmitir pacotes cujo endereço de destino é "A". • deve ter políticas IPsec para receber pacotes cujo endereço de origem é "A".
Ordenamento dos Regras • Uma política IPsec pode ter regras conflitantes, por exemplo: • Política ICMP • RegraSubRede: • Localhost de/para 10.26.128.0/24::ICMP negociar IPsec • RegraExceção: • Localhost de/para 10.26.128.17::ICMP passar • Existem duas abordagems para resolver esse caso: • As regras são avaliadas em ordem: a primeira ser satisfeita é utilizada (abordagem Cisco) • As regras são avaliadas da mais específica para a mais genérica, independente da ordem (abordagem Microsoft).
Priorização • Idealmente, as regras deveriam ser avaliadas de acordo com a granulariadade dos filtros: • My IP Address • Specific IP Address defined • Specific IP Subnet • Any IP Address • A mesma abordagem vale em relação as portas e protocolos: • Specific Protocol/Port combination • Specific Protocol/Any Port • Any Protocol • Em implementações em que o ordenamento não é automático, cabe ao administrador da rede escolher a ordem.
Política Default • Assim como um firewall, também é possível estabelecer uma política default para o IPsec. • A políticas default será aplicada quando as condições do pacote não forem satisfeitas por nenhuma das regras pré-definidas. • A política default pode ser: • Bloquear • Bypass IPsec • Negociar IPsec em vários modos: • IPsec ESP 3DES, SHA1 • IPsec ESP DES, MD5 • AH SHA1 • AH MD5
Exemplo 1: Política 1 para ICMP • Objetivo: • Evitar ataques ICMP com spoofing. • Política: Para o HOST B: • Apenas mensagens ICMP vindas da subrede 192.168.1.0/24 em modo IPsec AH são aceitas. • Se o solicitante não suporta IPsec, então a comunicação é Rejeitada
Exemplo de Política Transporte: ICMP 2 REGRAS ICMP REDE_A HOST_B HOST_B REDE_A ICMP REDE A HOST B ICMP 192.168.1.7 ICMP (AH) rede 192.168.1.0/24
Expandindo a política: Acesso HTTP • Objetivo: • Possibilitar que usuários da Intranet possam estabelecer comunicação em modo seguro, com criptografia de dados. • Política: Para o HOST B: • Apenas o acesso da subrede 192.168.1.0/24 em modo IPsec ESP é permitido. • Se o solicitante da rede interna não suporta IPsec, então a comunicação pode ocorrer sem IPsec. • Se o solicitante pertencer a uma outra subrede, então a comunicação é bloqueada.
Acesso HTTP 2 REGRAS HTTP REDE_A HOST_B HOST_B REDE_A HTTP REDE A HTTP HOST B HTTP (ESP) 192.168.1.7 HTTP 192.168.1.0
Políticas Básicas • Algumas implementações de IPsec, como no Windows 2000 oferecem ações pré-definidas para facilitar a configuração das regras. • Sem IPsec • Client (Respond Only) • Implementa IPsec apenas se exigido pelo Servidor. • Secure Server (Require Security) • Efetua apenas comunicação IPsec. • Rejeita conexões com clientes que não suportam IPsec. • Server (Request Security) • Solicita sempre comunicação IPsec. • Aceita conexões sem segurança se o cliente não suportar IPsec.