HTTP x HTTPS
Como vimos na sessão anterior, o HTTP é um protocolo de comunicação em uma arquitetura Cliente-Servidor. Esta comunicação é realizada com texto puro, e qualquer tipo de dado pode ser enviado para um servidor, até mesmo dados confidenciais, como uma senha. Essa informação está aberta no Cliente e pode ser visualizada pela ferramenta do desenvolvedor, que fica disponível nos nossos navegadores. Podemos analisar todas as informações enviadas pelo servidor, na aba Network.
Quando fazemos o Login em um site, o Cliente envia estes dados para o Servidor realizar uma validação, porém, até este dado chegar no servidor, ele já passou por vários outros servidores intermediários. Da mesma forma acontece com a resposta, ela passa por vários servidores até chegar de volta em nosso navegador. O problema nesta comunicação é que, utilizando o HTTP este dado fica aberto e qualquer pessoa pode espiar nossas mensagens, o que é muito Inseguro.
Podemos fazer uma analogia com o envio de uma carta de São Paulo para Blumenau:
- A carta será postada no correio mais próximo;
- É enviada para a central de São Paulo;
- É encaminhada para a Central de Florianópolis;
- É direcionada para Blumenau
- Finalmente é entregue em sua casa.
Então nossa carta ficou passeando por vários lugares até de fato chegar no destinatário, e em todos esses lugares alguém estava dando uma espiada no que tinha dentro dela. Pra resolver este nosso problema, existe o HTTPS, que é a mesma coisa que o HTTP, porém, com uma camada a mais de segurança.
Certificado Digital
Para garantir a segurança dos dados, o HTTPS utiliza uma criptografia baseada em chaves públicas e privadas. Paras que estas chaves sejam geradas, de alguma forma é preciso ter uma garantia de quem tá pedindo por esta geração. É preciso garantir que o site da Alini está mesmo tentando se comunicar com o Servidor da Alini. Esta identificação é realizada a partir de um Certificado digital.
Um certificado digital prova uma identidade para um site, onde temos informações sobre o seu domínio e a data de expiração deste certificado.
Então, o Certificado digital é utilizado para identificar a entidade e também para gerar as chaves para a criptografia dos dados.
Apenas conseguimos um certificado digital, a partir de uma Autoridade Certificadora, que é um órgão confiável que garante a identidade do site e também a validade do certificado.
Então quando utilizamos o HTTPS o envio das mensagens funcionam da seguinte forma:
- O Cliente em posse da chave pública criptografam as informações e as enviam para o servidor
- Servidor as descriptografa com a chave privada. Apenas a chave privada pode descriptografar as informações criptografadas com a pública.
Grande Abraço, A.R. 🙂