Rede Privada Virtual - VPN Eng. Alessandro Coneglian Bianchini
[email protected]
Tópicos Abordados
Introdução a VPN Protocolos de Tunelamento Criptografia Infrae Infraestru strutur turaa de de Chave Chave Pública Pública - PKI Introdução IPSec Arquitetura IPSec Protocolos de Segurança da Arquitetura IPSec Intern Internet et Key Exchan Exchange ge – IKE Estudo de Casos
Tópicos Abordados
Introdução a VPN Protocolos de Tunelamento Criptografia Infrae Infraestru strutur turaa de de Chave Chave Pública Pública - PKI Introdução IPSec Arquitetura IPSec Protocolos de Segurança da Arquitetura IPSec Intern Internet et Key Exchan Exchange ge – 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.11.1/24
192. 92.168.1 68.11. 1.44/24 /24
192. 92.168. 168.11 11..5/24 5/24
192.168.90.3/24
Internet Túnel
192.168.90.2/24
192.168.90.1/24
192. 192.16 168. 8.990.4/ 0.4/24 24
192.1 92.168 68..90.5 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
Este texto é usado para fazer a apresentação no Inatel
• DES • 3DES
Texto Criptografado
Algoritmo de criptografia
Aalsfhaslfd asldashdashdsak dhsadjsahdjashdj asdhsajdhsa
Algoritmo de decriptografia
Texto
Este texto é usado para fazer a apresentação no Inatel
Criptografia de Chave Assimétrica Privada
Texto
Este texto é usado para fazer a apresentação no Inatel
• RSA
Pública
Texto Criptografado
Algoritmo de criptografia
Aalsfhaslfd asldashdashdsak dhsadjsahdjashdj asdhsajdhsa
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
Cabeçalho IP
Modo transporte
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
Dados
Cabeçalho Cabeçalho IP IPSec
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 Cabeçalho IP TCP s
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 ,
•
Para autenticação com assinatura,
•
SKEYD=PRF (preshared-key Ni | Nr ) SKEYD=PRF (Ni | Nr, g xy )
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,
do IKE.
usada para criptografar as mensagens
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
•
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);
e o
R).
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 VPNA 192.168.11.2/24
Gateway VPNB 200.204.200.120/26 ADSL512K/128K
192.168.11.5/24
Internet(ADSL)
200.171.161.54
192.168.90.2/24
ADSL256K/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)