VPN - Alessandro Coneglian Bianchini
Transcrição
VPN - Alessandro Coneglian Bianchini
Rede Privada Virtual - VPN Eng. Alessandro Coneglian Bianchini [email protected] Tópicos Abordados Introdução a VPN Protocolos de Tunelamento Criptografia Infraestrutura de Chave Pública - PKI Introdução IPSec Arquitetura IPSec Protocolos de Segurança da Arquitetura IPSec Internet Key Exchange – IKE Estudo de Casos Introdução a VPN O que é uma VPN? Para que serve a VPN? VPN x Link Dedicado Segurança VPN O que é uma VPN? Matriz-SP 192.168.11.3/24 Filial-RJ 192.168.11.2/24 192.168.90.3/24 192.168.90.2/24 Internet 192.168.11.1/24 192.168.11.4/24 192.168.11.5/24 Túnel 192.168.90.1/24 192.168.90.4/24 192.168.90.5/24 Para que serve uma VPN? Para transmitir dados privado através de uma rede pública. A VPN é implementa através de criação de túneis virtuais. VPN x Link Dedicado O preço do link dedicado é proporcional a distancia a ser interligada. A VPN utiliza a capilaridade da Internet para fazer as interligações. Comparativo...... Segurança VPN Autenticidade Integridade Confidencialidade Controle de Acesso Protocolos de Tunelamento PPTP L2TP Point-to-Point Tunneling Protocol Desenvolvido por um consórcio US-Robotics, Microsoft, 3Com, Ascend e ECI. Amplamente utilizado em sistemas windows. Encapsulamento feito através do protocolo GRE Autenticação feita através dos protocolos PAP, CHAP e MS-CHAP. Criptografia através do MPPE. Inclui suporte aos protocolos NetBEUI e IPX. Layer 2 Tunneling Protocol Desenvolvido pela Cisco System Herdeiro do PPTP e L2F Algumas características do PPTP são mantidas. Utilização de PPP para acesso remoto Suporte aos protocolos NetBEUI e IPX Não prove mecanismo de encapsulamento e criptografia. Combinado com o IPSec para realização de acesso remoto com segurança. Criptografia Criptografia de chave simétrica Criptografia de chave assimétrica Criptografia de Chave Simétrica Texto Texto Criptografado Este texto é usado para fazer a apresentação no Inatel Aalsfhaslfd asldashdashdsak dhsadjsahdjashdj asdhsajdhsa • DES • 3DES Algoritmo de criptografia Algoritmo de decriptografia Texto Este texto é usado para fazer a apresentação no Inatel Criptografia de Chave Assimétrica Privada Pública Texto Texto Criptografado Este texto é usado para fazer a apresentação no Inatel Aalsfhaslfd asldashdashdsak dhsadjsahdjashdj asdhsajdhsa • RSA Algoritmo de criptografia Algoritmo de decriptografia Texto Este texto é usado para fazer a apresentação no Inatel Infraestrutura de Chave Pública Certification Authority Certificado Empresa A Certificado Empresa B Tipos de VPN VPN Client-to-site VPN Site-to-site VPN SSL VPN Client-to-site VPN Site-to-Site VPN SSL Introdução ao IPSec Ipsec é um conjunto de Protocolos que definem uma arquitetura e as especificações do serviço de segurança. Trabalha em dois modos, Transporte e Túnel. Modo Transporte Pacote original Modo transporte Cabeçalho IP Cabeçalho IP Cabeçalho TCP Cabeçalho IPSec Dados Cabeçalho TCP Dados Modo Túnel Pacote original Modo túnel Cabeçalho IP Novo Cabeçalho IP Cabeçalho TCP Cabeçalho IPSec Dados Cabeçalho IP Cabeçalho TCP Dados Arquitetura IPSEC Arquitetura ESP AH Algoritmo de criptografia Algoritmo de autenticação DOI Gerenciamento de Chaves Políticas Protocolos de Segurança da Arquitetura IPSec Encapsulation Security Payload – ESP Authentication Header – AH Protocolo ESP Cabeçalho IP Pacote original Cabeçalho TCP Modo transporte Autenticado Cabeçalho IP Cabeçalho ESP Cabeçalho TCP Pacote original Cabeçalho IP Cabeçalho TCP Modo túnel Dados ESP Trailer ESP Autenticação Encriptografado s Novo Cabeçalho IP Dados Dados Autenticado Cabeçalho ESP Cabeçalho IP Cabeçalho TCP s Dados Encriptografad ESP Trailer ESP Autenticação Protocolo ESP – Cont. SPI Sequence number Protected Data Pad Pad Length Next header Autentication Data ESP Modo Transporte ESP Modo Tunnel IP Header New IP Header SPI SPI Sequence number Sequence number Inicialization Vector Authentication Inicialization Vector TCP Header Encrypted Encrypted Data Pad Pad Length IP Header TCP Header Next header Autentication Data Data Pad Pad Length Next header Autentication Data Authentication Protocolo AH Cabeçalho IP Pacote original Cabeçalho TCP Dados Autenticado Modo transporte Pacote original Cabeçalho IP Cabeçalho IP Cabeçalho de Autenticação Cabeçalho TCP Cabeçalho TCP Dados Dados Autenticado Modo túnel Novo Cabeçalho IP Cabeçalho Autenticação Cabeçalho IP s Cabeçalho TCP s Dados Protocolo AH - Cont. Next header Payload Length Reservado SPI Sequence number Authentication Data AH no Modo Transporte IP Header Next header Payload Length Reserved SPI Authenticated AH no Modo Túnel Sequence number IP Header TCP Header Next header Data Payload Length SPI Authenticated Sequence number IP Header TCP Header Data Reserved Diffie-Hellman 1. O primeiro passo é combinar dois números inteiros (A e B). 2. Cada um (Alice e Bob) escolhem um número inteiro secreto. Alice escolhe o número X e Bob escolhe o número Y. 3. Alice usa a fórmula: Ra = (AX) mod B. 4. Bob usa a fórmula: Rb = (AY) mod B. 5. Alice divulga para Bob que o resultado foi Ra. 6. Bob divulga para Alice que o resultado foi Rb. 7. Alice usa a fórmula seguinte para descobrir a chave privada (PSK): PSK = (RbX) mod B. 8. Bob usa a fórmula seguinte para descobrir a chave privada (PSK): PSK = (RaY) mod B. A partir deste momento, se Alice enviar um email para Bob encriptado por AES-256, utilizando a chave PSK, somente quem souber essa chave (Bob ou Alice) poderá desencriptar o e-mail e ler seu conteúdo. Exemplo Prático 1.Que eles tenham combinado A = 7 e B = 11. 2. Que Alice tenha escolhido X = 6. 3. Que Bob tenha escolhido Y = 3 4. Alice envia para Bob Ra = 4. [Ra = (76) mod 11 => Ra = 4] 5. Bob envia para Alice Rb = 2. [Rb = (73) mod 11 => Rb = 2] 6. Alice calcula PSK = 9. [PSK = (26) mod 11 => PSK = 9] 7. Bob calcula PSK = 9. [PSK = (43) mod 11 => PSK = 9] A chave definida (PSK) é igual a 9. Descobrindo a chave Para descobrir a chave calculada, é preciso utilizar a fórmula: PSK = (AX*Y) mod B. Como vocês podem ver, as combinações de pares X e Y são infinitas e é muito difícil que alguém consiga descobrir os dois números. Modelo DH Group 1: 768-bit group DH Group 2: 1024-bit group DH Group 5: 1536-bit group Internet Key Exchange - IKE É um protocolo híbrido baseado em framework, definido pelo Internet Security Association and Key Manengement Protocol - ISAKMP ISAKMP É implementado como parte de dois protocolos de gerenciamento de chave OAKLEY, desenvolvido por Hilare Orman (criptografista da Universidade do Arizona), e SKEME, protocolo de troca de chave desenvolvido por Hugo Krawczyk, também criptografista. Protocolo ISAKMP Initiator Cookie Responder Cookie Next Payload Major Version Minor Version Message ID Message Length Exchange Type Flag ISAKMP – Interligação de Payload Initiator Cookie I S A K M P Responder Cookie KE 0 KE Payload Exchange Type Flag Message ID Total Message Length Nonce 0 KE Payload Lenght KE Payload KE Payload Data 0 0 Nonce Payload Data H E A D E R Nonce Payload Lenght Nonce Payload ISAKMP – Troca de Chave O ISAKMP descreve duas fases separadas de negociação. Na primeira, os terminais se autenticam e estabelecem um canal seguro entre eles. Na segunda, utilizam autenticação e o canal seguro criado pela primeira fase serve para a negociação de serviços de segurança de diferentes protocolos. Métodos de Autenticação Preshared Key Digital Signatures Digital Signature Algorithm (DSA) Rivest Shamir Adelman (RSA) Nonces Geração da Chave Primária • Para autenticação com preshered key, SKEYD=PRF (preshared-key Ni | Nr) • Para autenticação com assinatura, SKEYD=PRF (Ni | Nr, gxy) • Para autenticação com nonce SKEYD=PRF (hash Ni | Nr, CKY-1 CKY-R) Derivação da Chave Primária SKEYID_d, usada no IPSEC SA; SKEYD_d = PRF(SKEYD, gxy | CKY-I | CKY-R | 0) SKEYID_a, usada para prover integridade aos dados e autenticação de origem para as mensagens IKE; SKEYD_a = PRF(SKEYD, SKEYD_d | gxy | CKY-I | CKY-R | 1) SKEYID_e, usada para criptografar as mensagens do IKE. SKEYD_e = PRF(SKEYD, SKEYD_a | gxy | CKY-I | CKY-R | 2) Fases do IKE Fase 1 Main Mode Agressive Mode Fase 2 Quick Mode Exemplo Preshared Key • e o R). Iniciador Respondedor Cabeçalho,SA Cabeçalho,SA Cabeçalho,KE,Nonce Cabeçalho,KE,Nonce Cabeçalho, IDi,Hash Cabeçalho, IDr,Hash hash do iniciador: HASH-I = PRF(SKEYD,gi | gr | CKY-I | CKY-R SA-offer | ID-I); hash do respondedor: HASH-R = PRF(SKEYD,gr | gi | CKY-R | CKY-R SA-offer | ID- Estudo de Caso Estudo de caso VPN LAN-to-Lan Site A Site B Gateway VPN A 192.168.11.2/24 Gateway VPN B 200.204.200.120/26 ADSL512K/128K 192.168.11.5/24 Internet(ADSL) 200.171.161.54 192.168.90.2/24 ADSL 256K/128K 192.168.90.5/24 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0x0000000000000000 Next payload: Security Association (1) Version: 1.0 Exchange type: Identity Protection (Main Mode) (2) Flags .... ...0 = No encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x00000000 Length: 176 Security Association payload Next payload: NONE (0) Length: 148 Domain of interpretation: IPSEC (1) Situation: IDENTITY (1) Proposal payload # 0 Next payload: NONE (0) Length: 136 Proposal number: 0 Protocol ID: ISAKMP (1) SPI size: 0 Number of transforms: 4 Transform payload # 0 Next payload: Transform (3) Length: 32 Transform number: 0 Transform ID: KEY_IKE (1) Life-Type (11): Seconds (1) Life-Duration (12): Duration-Value (3600) Encryption-Algorithm (1): 3DES-CBC (5) Hash-Algorithm (2): MD5 (1) Authentication-Method (3): PSK (1) Group-Description (4): 1536 bit MODP group (5) Transform payload # 1 Next payload: Transform (3) Length: 32 Transform number: 1 Transform ID: KEY_IKE (1) Life-Type (11): Seconds (1) Life-Duration (12): Duration-Value (3600) Encryption-Algorithm (1): 3DES-CBC (5) Hash-Algorithm (2): SHA (2) Authentication-Method (3): PSK (1) Group-Description (4): 1536 bit MODP group (5) Transform payload # 2 Next payload: Transform (3) Length: 32 Transform number: 2 Transform ID: KEY_IKE (1) Life-Type (11): Seconds (1) Life-Duration (12): Duration-Value (3600) Encryption-Algorithm (1): 3DES-CBC (5) Hash-Algorithm (2): SHA (2) Authentication-Method (3): PSK (1) Group-Description (4): Alternate 1024-bit MODP group (2) Transform payload # 3 Next payload: NONE (0) Length: 32 Transform number: 3 Transform ID: KEY_IKE (1) Life-Type (11): Seconds (1) Life-Duration (12): Duration-Value (3600) Encryption-Algorithm (1): 3DES-CBC (5) Hash-Algorithm (2): MD5 (1) Authentication-Method (3): PSK (1) Group-Description (4): Alternate 1024-bit MODP group (2) 200.204.200.120 200.171.161.54 Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Security Association (1) Version: 1.0 Exchange type: Identity Protection (Main Mode) (2) Flags .... ...0 = No encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x00000000 Length: 80 Security Association payload Next payload: NONE (0) Length: 52 Domain of interpretation: IPSEC (1) Situation: IDENTITY (1) Proposal payload # 0 Next payload: NONE (0) Length: 40 Proposal number: 0 Protocol ID: ISAKMP (1) SPI size: 0 Number of transforms: 1 Transform payload # 0 Next payload: NONE (0) Length: 32 Transform number: 0 Transform ID: KEY_IKE (1) Life-Type (11): Seconds (1) Life-Duration (12): Duration-Value (3600) Encryption-Algorithm (1): 3DES-CBC (5) Hash-Algorithm (2): MD5 (1) Authentication-Method (3): PSK (1) Group-Description (4): 1536 bit MODP group (5) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Key Exchange (4) Version: 1.0 Exchange type: Identity Protection (Main Mode) (2) Flags .... ...0 = No encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x00000000 Length: 244 Key Exchange payload Next payload: Nonce (10) Length: 196 Key Exchange Data Nonce payload Next payload: NONE (0) Length: 20 Nonce Data 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Key Exchange (4) Version: 1.0 Exchange type: Identity Protection (Main Mode) (2) Flags .... ...0 = No encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x00000000 Length: 244 Key Exchange payload Next payload: Nonce (10) Length: 196 Key Exchange Data Nonce payload Next payload: NONE (0) Length: 20 Nonce Data 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Identification (5) Version: 1.0 Exchange type: Identity Protection (Main Mode) (2) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x00000000 Length: 60 Encrypted payload (32 bytes) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Identification (5) Version: 1.0 Exchange type: Identity Protection (Main Mode) (2) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x00000000 Length: 60 Encrypted payload (32 bytes) Modo Rápido (quick mode) Iniciador respondedor Cabeçalho,HASH1,SA,Ni [,KE] [,Idci,Idcr] Cabeçalho,HASH2,SA,Nr [,KE] [,Idci,Idcr] Cabeçalho,HASH3 HASH1=PRF(SKEYID_a, M-ID | SA | Ni | [KE] [| IDci | IDcr]) HASH2=PRF(SKEYID_a ,M-ID | Ni | SA | Nr| [KE] [| IDci | IDcr]) HASH3=PRF(SKEYID_a, 0| M-ID | Ni | Nr| ) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Hash (8) Version: 1.0 Exchange type: Quick Mode (32) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x60B914E0 Length: 380 Encrypted payload (352 bytes) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Hash (8) Version: 1.0 Exchange type: Quick Mode (32) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x243F6037 Length: 380 Encrypted payload (352 bytes) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Hash (8) Version: 1.0 Exchange type: Quick Mode (32) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x243F6037 Length: 348 Encrypted payload (320 bytes) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Hash (8) Version: 1.0 Exchange type: Quick Mode (32) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x60B914E0 Length: 348 Encrypted payload (320 bytes) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Hash (8) Version: 1.0 Exchange type: Quick Mode (32) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x60B914E0 Length: 52 Encrypted payload (24 bytes) 200.204.200.120 200.171.161.54 Internet Security Association and Key Management Protocol Initiator cookie: 0x4CC6A1AEDF49CC83 Responder cookie: 0xAF256C2903459977 Next payload: Hash (8) Version: 1.0 Exchange type: Quick Mode (32) Flags .... ...1 = Encryption .... ..0. = No commit .... .0.. = No authentication Message ID: 0x243F6037 Length: 52 Encrypted payload (24 bytes) 200.204.200.120 Encapsulating Security Payload SPI: 0x57d9bb0d Sequence: 1 Data (108 bytes) 200.171.161.54