| VPN (Virtual Private Network) |
|
|
|
|
Com a crescente utilização da informática, sobretudo por parte das empresas, passou a existir a necessidade de trocar informação confidencial entre pontos remotos. Para tal, as operadoras ofereciam como solução o aluguer de linhas dedicadas, em que existia um cabo físico que ligava os dois pontos. Esta solução revelou-se incomportável pelos custos elevados que acarreta, quer para as operadoras, quer para os clientes. Para dar resposta a este problema surgiram as Redes Privadas Virtuais, usualmente conhecidas por VPNs, que tiram partido de um meio partilhado, não seguro, e estabelecem um túnel seguro onde pode passar informação confidencial. O meio partilhado não seguro é normalmente a Internet. Assim um utilizador desde que tenha acesso à Internet, pode utilizar essa mesma ligação para virtualizar uma linha dedicada. A figura que se segue ilustra o cenário típico de uma VPN, estabelecida entre um ponto A e um ponto B. ![]() Fig. 1 - Cenário típico de uma VPN
As VPNs pretendem atingir os quatro objectivos das comunicações seguras: confidencialidade, integridade, autenticação e não repudiação. Para isso, recorrem às quatro primitivas da criptografia, através de: · Cifra simétrica – Garante a confidencialidade através da partilha de um segredo (chave) entre duas extremidades da VPN, sendo todas as comunicações entre estas cifradas/decifradas por essa mesma chave. A Fig. 2 ilustra o seu funcionamento: inicialmente, a mensagem é cifrada com uma chave partilhada entre o emissor e o receptor; posteriormente, após ser transportada até ao receptor, este decifra-a com a utilização da mesma chave, obtendo assim novamente a mensagem original. ![]() Fig. 2 - Cenário de cifra simétrica.
Alguns dos principais algoritmos de cifra são o DES (Data Encryption Standard), 3DES (Triple Data Encryption Standard), RC6 (Rivest Cipher) ou IDEA (International Data Encryption Algorithm). · Resumo da mensagem – Garante a integridade, através da utilização de um algoritmo matemático, não reversível, que recebe um texto e cria um bloco de tamanho fixo cifrado, designado por resumo. Assim, aquando do processo de envio, o emissor faz o resumo e transmite-o juntamente com a mensagem; quando o receptor recebe a mensagem utiliza o mesmo algoritmo para obter o resumo e compara se são os dois iguais; em caso afirmativo, fica com a certeza de que a mensagem não foi alterada. · Cifra assimétrica – Garante a autenticação e a não repudiação. A autenticação é conseguida através da cifra assimétrica, com a utilização do par de chaves pública/privada e da utilização de uma estrutura de confiança PKI. Ao ser garantida a autenticação também se está a garantir a não repudiação, já que só uma entidade pode assinar com a sua própria chave privada. Assim, se uma mensagem chegar assinada com a chave privada de uma entidade, essa entidade não pode recusar que a tenha escrito. Na Fig. 3 é exemplificado o funcionamento da cifra assimétrica, em que uma mensagem é cifrada com a chave pública do receptor e decifrada com a respectiva chave privada.
![]() Fig. 3 - Cenário de cifra assimétrica
As VPNs, têm a capacidade de ligar dois pontos remotos através da Internet e podem ser implementadas nas camadas de rede ou de transporte do modelo OSI. As VPNs da camada de rede normalmente são associadas à tecnologia IPSec, que apesar de ser um standard muito presente no mercado e de garantir compatibilidade com um grande número de equipamentos, raramente é a melhor opção devido à sua complexidade. Existem também VPNs suportadas em protocolos da camada de transporte, abordagem utilizada nas soluções SSL / TLS (Transport Layer Security), onde a sessão trabalha com portos TCP/UDP não apresentando quaisquer problemas com a passagem nos NATs (Network Address Translation) e Firewalls. Uma vez escolhido o nível em que a VPN se estabelece, é necessário definir qual a camada em que os dados serão transportados. As opções são: · Camada de ligação lógica – As duas redes remotas ficam no mesmo nível lógico e ambas pertencem à mesma rede privada. Do ponto de vista prático é como se os equipamentos das duas redes estivessem ligados ao mesmo switch; podem ser transmitidos pacotes não IP e o domínio de broadcast é o mesmo. Esta situação está ilustrada na Fig. 4, na qual se pode constatar que, a nível de endereçamento, as duas extremidades do túnel partilham a mesma sub-rede. ![]() Fig. 4 – VPN de nível 2
· Camada de rede – As duas redes têm espaço de endereçamento distinto, sendo possível controlar a comunicação através de regras de encaminhamento. Do ponto de vista prático, apesar de serem duas redes privadas distintas, ambas comunicam como se estivessem ligadas a portas distintas de um router. Esta é a situação que se ilustra na Fig. 5.
![]() Fig. 5 - VPN de nível 3
No estabelecimento de um túnel para comunicação segura através de uma VPN, normalmente, é estabelecida uma sessão com chaves simétricas efémeras. Contudo, estas chaves são negociadas periodicamente através da cifra assimétrica, permitindo que duas entidades acordem uma chave simétrica através de um meio inseguro. O algoritmo de distribuição de chaves (de sessão), Diffie-Helmann, consegue através da partilha de números num meio inseguro, que duas entidades cheguem a um mesmo número, o qual poderá ser utilizado como chave simétrica de uma comunicação. Este procedimento é efectuado por dois motivos: primeiro, porque a utilização de uma chave simétrica por muito tempo é insegura e, segundo, porque a cifra assimétrica em toda a comunicação acarretava uma carga computacional incomportável. A Fig. 6 ilustra um diagrama de mensagens do estabelecimento de uma sessão de uma VPN de camada de transporte, em que são utilizados certificados SSL e protocolo TLS, que irão possibilitar a troca dos valores necessários para o algoritmo Diffie-Hellmann poder gerar, no cliente e no servidor, uma chave simétrica que será utilizada na sessão. ![]() Fig. 6 - Diagrama de mensagens de estabelecimento de sessão VPN
O cliente envia uma mensagem de Hello para a iniciação do handshake. Esta mensagem inclui uma lista das cifras que suporta e os seus parâmetros de negociação do Diffie-Hellman. O servidor responde com uma mensagem onde indica qual a cifra escolhida e inclui também o seu certificado digital. De seguida, o cliente transmite uma mensagem com o seu certificado digital, um parâmetro utilizado para a criação do código de sessão, confirma a aceitação da cifra escolhida pelo servidor e verifica o hash value de toda a negociação, de forma a garantir que estão em sintonia e que ninguém alterou as mensagens, nomeadamente, a lista de cifras suportadas. Por fim o servidor indica que, a partir daquele momento, fica à espera que as mensagens sejam cifradas e autenticadas com os protocolos combinados e indica ainda ao cliente, o valor da verificação efectuada quanto à correcta transmissão das mensagens de negociação. Como este processo ainda exige algum tempo de processamento, o servidor fica muito exposto a um ataque DoS no caso de um atacante “inundar” o servidor de pedidos, porque este poderia ficar bloqueado a processá-los. É então normalmente utilizada uma cifra simétrica simples que permite oferecer um primeiro nível de segurança contra este tipo de ataques. Este processo é bastante simples e consiste no servidor criar uma chave simétrica, que é renovada com muito pouca frequência e, por um canal seguro, fazê-la chegar ao cliente. Assim, todas as comunicações entre as duas entidades, incluindo a negociação de chaves de sessão, serão cifradas/decifradas com essa chave simétrica. [Eng. André Serpa; Dissertação de Mestrado]
|









