Pplware

Exemplo da (in)segurança de um site sem HTTPS

Nos dias que correm, é importante que todos os dados sensíveis transaccionados entre um cliente e um servidor sejam cifrados de modo a que estes não possam ser entendidos por terceiros. Na prática, quando acedemos a um serviço online que nos solicita dados pessoais ou credenciais de acesso (ex. sites de bancos) é importante que a toda a informação passada seja cifrada de modo a tornar-se ilegível. No caso dos servidor Web (entre outros serviços de uma rede), uma das formas de proceder a cifra dos dados é recorrendo ao protocolo SSL.

Mas como passam os dados na rede se o servidor não tiver o protocolo SSL configurado?

O que é o SSL?

O SSL é um protocolo criptográfico baseado em cifras assimétricas (chave privada + chave pública) que tem como principal objectivo providenciar segurança e integridade dos dados transmitidos em redes inseguras como é o caso da Internet. Quando um utilizador acede a um site que recorre ao SSL, o servidor envia ao cliente a chave pública para que esta possa cifrar a informação que vai ser passada ao servidor. Quando o servidor recebe essa informação, usa a sua chave privada para decifrar a informação transmitida pelo cliente. Existem várias aplicações para este protocolo, como por exemplo o comércio electrónico, servidores Web, servidores FTP, etc. Para identificar facilmente se estão a visualizar um site seguro basta verificar no URL que em vez de estar o normal http:// se encontra https://. Saber mais aqui.

Chave pública vs Chave privada

A chave pública, que está presente no certificado digital, é usada para cifrar os dados a serem enviados ao para o servidor. Já a chave privada, que só o dono do certificado conhece, serve para decifrar a informação que foi cifrada com a sua chave pública.

Certificado Digital

Um certificado é um documento digital que contém informação acerca de quem o possui, nome, morada, localidade, e-mail, duração do certificado, domínio (Common Name) e nome da entidade que assina o certificado. Contém ainda uma chave pública e um hash que permite verificar a integridade do próprio certificado (i.e se um certificado foi alterado). Um certificado assenta numa estrutura hierárquica de confiança, cujo topo é pertença de uma Entidade Certificadora (CA Root Certificate). Esta entidade certificadora confirma que o possuidor do certificado é quem afirma ser, e assina o certificado, impossibilitando desta forma a sua modificação. Em Portugal, como entidade certificadora temos como exemplo a multicert.

SSL

O protocolo SSL – Secure Socket Layer é um protocolo que foi desenvolvido pela Netscape com o objectivo de garantir transacções seguras entre um servidor web e um browser. O protocolo utiliza uma entidade certificadora para identificar o servidor ou o servidor e o cliente.

Openssl

O OpenSSL é uma implementação em código aberto dos protocolos SSL e TLS. Uma das funcionalidades consiste na criação de certificados X.509 que permitem confidencialidade em ligações com SSL (HTTPS) entre outros serviços. Os certificados digitais X.509 representam para o utilizador, o mecanismo de segurança mais visível no âmbito da certificação digital. em resumo: Caso o seu servidor tenha SSL configurado, os dados passam cifrados na rede (entre o cliente e o servidor) garantindo assim a confidencialidade dos dados.

E o seu o servidor não tem SSL?

Bem, se o servidor não tem SSL configurado então a informação passa na rede conforme a introduzimos “em claro”. Para demonstrar tal cenário, criamos um pequeno formulário que envia os dados para o servidor através do método POST (os dados são passados no corpo da mensagem e não no URL) Na mesma máquina corremos o Wireshark (ferramenta de analise protocolar, que permite a captação, em tempo real, de pacotes de dados) para “snifar” todo o tráfego que passa na interface de rede. Para mais facilmente descobrir o que queremos no meio de tantas entradas, podemos aplicar um filtro. Neste caso, como queremos filtrar um pedido HTTP que usa o método Post, podemos usar o filtro http.request.method == “POST” Em seguida fazemos um trace à ligação, carregando no botão do lado direito do rato e escolhemos a opção Follow TCP Stream Como podemos ver, a opção Follow TCP Stream apresenta-nos o conteúdo do stream e nele podemos ver facilmente as credenciais introduzidas (sem qualquer cifra).

O SSL é um requisito obrigatório em sites que implementem funcionalidades de autenticação ou introdução de dados sensíveis. Como utilizadores, é importante que verifiquem se um site possui SSL (HTTPS) e se os certificados foram criados por uma entidade certificadora. Alguma questão ou dúvida, estamos cá para ajudar a esclarecer. Naveguem…seguros!

Exit mobile version