Unidade A - Protocolos de Criptografia

Protocolos de criptografia

O protocolo de segurança e criptografia mais importante é o SSL (Secure Socket Layer). O SSL é um protocolo criptográfico baseado em cifras assimétricas que fornece segurança e integridade dos dados transmitidos em redes TCP/IP, como a Internet. Este protocolo ajuda a prevenir que entre as duas pontas da comunicação não exista nenhum acesso indevido ou que dados transmitidos sejam falsificados. Em outras palavras, apenas o emissor e o receptor  podem ver a mensagem como ela foi originalmente concebida.

O protocolo SSL oferece serviços a protocolos do nível de aplicação proporcionando confidencialidade, integridade e autenticação dos dados. Ele utiliza para transporte o protocolo TCP, reside acima da camada de transporte, é independente das aplicações da camada superior e por isso é considerado um protocolo de segurança que não depende do protocolo de aplicação. Deste modo, o SSL pode oferecer serviços seguros para outros protocolos, tais como o FTP, o HTTP, e o SMTP.

Ao estabelecer a conexão, o SSL estabelece um conjunto criptográfico e um método de compreensão a ser utilizado. O conjunto criptográfico constitui-se de um algoritmo para troca de chaves, um algoritmo para cifragem de dados e um algoritmo para inserção de redundância nas mensagens. O algoritmo para troca de chaves será de criptografia de chave pública, usado no envio da chave privada do algoritmo de cifragem de dados, assim o SSL utiliza um algoritmo assimétrico para criar um canal seguro enviando a chave secreta que será utilizada para cifragem dos dados por um algoritmo simétrico. Por fim, o algoritmo de inserção de redundância é utilizado para garantir a integridade da mensagem que recebe o nome de MAC (Message Autentication Code). As mensagens do protocolo de aplicação são então comprimidas, inseridas as MAC e então cifradas antes de serem envidadas ao TCP. Após a mensagem ser decifrada no destino, a autenticidade da mensagem é verificada sendo comparada com a MAC, quando então é descomprimida e envida para a camada de aplicação.

Note que o protocolo SSL é transparente para o usuário, isto é, ele pode ignorar completamente que utiliza o SSL. Por exemplo, um usuário que utiliza um navegador Internet para se ligar a um determinado site de comércio eletrônico protegido por SSL enviará dados codificados sem nenhuma manipulação necessária da sua parte. Um servidor web protegido por SSL possui uma URL que começa por “https://”, em que o “s” significa, obviamente, secured (protegido).

Outro protocolo bastante utilizado é o IPSec, empregado, por exemplo, em redes VPN (estudaremos isto nas próximas aulas). O IPSec é um conjunto de padrões utilizados para garantir uma comunicação segura entre dois computadores, mesmo que as informações estejam sendo enviadas através de um meio não seguro, como a Internet, estabelecendo níveis de segurança para as comunicações “host to host”, “subnet to subnet” e “host to subnet”.

O IPSec opera em host e em security gateway (roteadores ou firewalls), protegendo, portanto, o tráfego de informações no nível de rede. Ele fornece serviços de segurança sobre o IP permitindo que o sistema selecione outros protocolos para utilizar e determina algoritmos que fazem criptografia de todas as informações trafegadas na rede. O IPSec pode ser utilizado para proteger um ou mais caminhos entre hosts ou entre gateway seguro.

Os serviços de segurança, que o IPSec oferece, inclui o controle de acesso, integridade dos dados, autenticação na origem dos dados, rejeição de pacotes retransmitidos, confidencialidade e controle de tráfego. Esses serviços, estando implementados na camada de rede (IP), podem ser usados por qualquer protocolo da camada de transporte como, por exemplo, o TCP, o UDP e o ICMP.

A implementação do IPSec não requer nenhuma alteração nos aplicativos ou sistemas operacionais existentes, basta a configuração das diretivas de segurança para que o computador passe a usá-lo, então, automaticamente, todos os programas instalados no computador passarão a utilizar o IPSec para a troca de informações com outros computadores também habilitados com o IPSec.

Quando falamos em protocolos de segurança e criptografia, não podemos deixar de estudar dois protocolos destinados especificamente para redes wireless. Ao longo dos últimos anos, podemos observar um grande aumento no número de redes sem fios utilizadas em empresas, universidades e outras instituições . A crescente popularização das redes wireless trouxe consigo mobilidade e praticidade para seus usuários. Contudo, ela também trouxe uma preocupação com a segurança destas redes. E é justamente essa preocupação com a segurança das redes sem fio que vem fazendo com que os protocolos de segurança sejam desenvolvidos e atualizados para este fim.

O primeiro protocolo de segurança adotado para este fim, o qual conferia no nível do enlace uma certa segurança para as redes sem fio semelhante à segurança das redes com fio, foi o protocolo WEP (Wired Equivalent Privacy). Este protocolo, muito usado ainda hoje, utiliza o algoritmo RC4 para criptografar os pacotes que serão trocados numa rede sem fios, a fim de tentar garantir confidencialidade aos dados de cada usuário. No WEP, os dois parâmetros que servem de entrada para o algoritmo RC4 são uma chave secreta de 40 bits ou 104 bits e um vetor de inicialização de 24 bits. A partir desses dois parâmetros, o algoritmo gera uma sequência criptografada. Porém, como no WEP a chave secreta utilizada é a mesma para todos os usuários de uma mesma rede, devemos ter um vetor de inicialização diferente para cada pacote a fim de evitar a repetição de uma mesma sequência. Essa repetição de sequência é extremamente indesejável, pois dá margem a ataques bem sucedidos e, consequente, descoberta de pacotes por eventuais intrusos.

Um outro protocolo bastante empregado é o famoso WPA (Wi-Fi Protected Access). Ele foi concebido como uma atualização e melhoria do protocolo anterior, o WEP. O protocolo WPA, também chamado por alguns de WEP2 ou TKIP (Temporal Key Integrity Protocol), surgiu de um esforço conjunto entre membros da Wi-Fi Aliança e da IEEE, duas instituições importantes de engenharia, empenhados em aumentar o nível de segurança das redes wireless. Com a substituição do WEP pelo WPA, temos como vantagem a melhoria da criptografia dos dados ao utilizar um protocolo de chave temporária (o TKIP) que possibilita a criação de chaves por pacotes, além de possibilitar uma função de detecção de erros, um vetor de inicialização de 48 bits (ao invés de 24 como no WEP), e um mecanismo de distribuição de chaves. Além disso, uma outra vantagem é a melhoria no processo de autenticação de usuários. Essa autenticação faz uso dos protocolos 802.11x e EAP (Extensible Authentication Protocol), que através de um servidor de autenticação central faz a autenticação de cada usuário antes deste ter acesso à rede. Hoje já temos a nossa disposição o WPA2, uma melhoria do WPA que utiliza o algoritmo de encriptação AES.

Para encerrar a aula de hoje, é importante você notar que os protocolos e as técnicas de criptografia estão constantemente sendo aprimoradas com o intuito de garantir a segurança e a privacidade da informação. Nenhum método é 100% seguro, pois com o passar do tempo o segredo é quebrado, o algoritmo é descoberto, ou uma falha é encontrada. Um protocolo de criptografia considerado seguro hoje pode, nesse momento, estar sendo estudado exaustivamente por hackers que pretendem invadir as diversas redes públicas e privadas espalhadas pelo mundo. Sendo assim, a dica é: utilize sempre o protocolo ou a técnica mais atualizada possível para evitar dores de cabeça.