Qualquer página da web é armazenada em um servidor, um computador que está permanentemente conectado à Internet. Quando você segue um link ou insere um nome de domínio na barra de endereço, o navegador encontra o servidor desejado e baixa o conteúdo da página. O mesmo acontece quando você insere o nome de usuário e a senha da sua conta no site e clica “Conecte-se.” O navegador envia esses detalhes para o servidor. O servidor verifica os dados e envia ao navegador uma página com a conta aberta. É assim que o navegador e o servidor trocam dados quando você reproduz um vídeo no YouTube, vá para o Facebook, abra um e-mail ou insira os dados do seu cartão bancário para pagar compras online. Alguns dados são constantemente transmitidos em diferentes direções. Você deve ter notado que alguns links começam com HTTP e outros com HTTPS. Agora vamos explicar o que essas letras significam e como elas diferem umas das outras.
O que é HTTP?
HTTP é um protocolo de transferência de dados amplamente difundido, projetado inicialmente para transmitir documentos de hipertexto (aquilo é, documentos que podem conter links que permitem a navegação para outros documentos). Foi inventado em 1990, junto com HTML, para criar o primeiro navegador interativo baseado em texto: a World Wide Web original. No entanto, hoje, o protocolo continua sendo um dos principais usos da Internet. Mas HTTP tem uma grande desvantagem – é inerentemente inseguro porque não usa criptografia. Isso permitiu que um hacker visualizasse todo o conteúdo. Além disso, HTTP é inaceitável para empresas porque arrisca clientes’ informações pessoais. Com HTTP, a identidade do cliente e do servidor não é verificada, eles podem ser falsificados, e a integridade da mensagem não pode ser provada.
O que significa HTTP?
HTTP significa protocolo de transferência de hipertexto. De acordo com a especificação OSI, é um protocolo da camada sete do aplicativo, e a versão atual do protocolo, HTTP 1.1, está descrito na RFC 2616. Quando você abre uma página da web usando HTTP, seu navegador usa o protocolo de transferência de hipertexto (no porto 80) para solicitar a página de um servidor web. Quando o servidor recebe a solicitação, ele usa o mesmo protocolo para enviar a página de volta para você. Este protocolo é a base para grandes, sistemas ricos em recursos com múltiplas entradas, como a Internet. Sem esta base de processos de comunicação, a Internet como a conhecemos não poderia funcionar porque os links exigem que o HTTP funcione corretamente. No entanto, HTTP envia e recebe dados como texto simples. Isso significa que quando você está em um site usando HTTP, alguém ouvindo na rede pode ver tudo o que é transmitido entre o seu navegador e o servidor. Isso inclui senhas, mensagens, arquivos, e outras coisas que não devem ser vistas por terceiros.
O que é uma solicitação HTTP e uma resposta HTTP?
Quando um usuário interage com recursos da web, As solicitações HTTP são geradas pelo navegador do usuário. Por exemplo, se um usuário clicar em um hiperlink, o navegador enviará uma série de “OBTER HTTP” solicitações para o conteúdo exibido nessa página. Essas solicitações HTTP são enviadas para o servidor de origem ou para um servidor proxy de cache, e esse servidor gera uma resposta HTTP. Respostas HTTP são respostas a solicitações HTTP.
Qual é a aparência de uma solicitação HTTP?
Geralmente, uma solicitação HTTP é um conjunto de linhas de texto correspondentes ao protocolo HTTP. Por exemplo, uma solicitação GET pode ser assim:
GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en
Esta é uma parte do texto gerada por um navegador, que é enviado pela Internet. O principal problema é que ele é enviado precisamente como texto simples, que pode ser lido por qualquer pessoa monitorando a conexão. Isto é especialmente essencial quando os usuários enviam dados confidenciais através de um site ou aplicativo da Web.. Dessa maneira, senhas, números de cartão de crédito, ou quaisquer outros dados inseridos no formulário são enviados em texto não criptografado, tornando-os disponíveis para outros. (Quando o usuário envia o formulário, o navegador o converte em uma solicitação HTTP POST em vez de uma solicitação HTTP GET.)
Quando o servidor recebe a solicitação HTTP, ele envia uma resposta HTTP, que geralmente se parece com isso:
HTTP/1.1 200 OK
Date: Wed, 30 Jan 2021 12:14:39 GMT
Server: Apache
Last-Modified: Mon, 28 Jan 2021 11:17:01 GMT
Accept-Ranges: bytes
Content-Length: 12
Vary: Accept-Encoding
Content-Type: text/plain
Hello World!
Como mencionado anteriormente, se um site usar HTTP em vez de HTTPS, todas essas solicitações e respostas can be read by anyone. Portanto, um invasor pode ler o texto de uma solicitação ou resposta e, assim, saber quais informações alguém está solicitando, enviando, ou recebendo.
O que é HTTPS?
HTTPS é semelhante a HTTP, com a diferença crítica é que é seguro. O protocolo seguro de transferência de hipertexto usa SSL (Secure Sockets Layer) or TLS (Transport Layer Security), que empacota e transfere dados entre o seu navegador e o servidor de forma segura, túnel criptografado pela porta 443. Ao contrário do HTTP, este método torna muito difícil para os farejadores de pacotes descriptografarem.
O que significa HTTPS?
S em HTTPS significa “seguro”. Porque HTTPS usa TLS ou SSL para criptografar solicitações e respostas HTTP, um invasor verá um conjunto de caracteres aleatórios em vez de texto no exemplo acima.
Em vez do acima:
GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en
O invasor vê o seguinte:
t8Fw6T8UV81pQfyhDkhebuz7+oiwldr1j2gHBB3L3RFTRsQCpaSnSBZ78Vme+DpDVJPvZdZUZHpzbqcqmSW1+3xXGsERHg9YDmpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVRWpI6+T4MnDwmCMZUI/orxP3HGwYCSIvyS3MpmmSe4iaWKCOHQ==
Então, o que são TLS e SSL em segurança online? Embora o TLS seja o sucessor do SSL, você ainda pode ouvir HTTPS ser chamado de HTTP sobre SSL. Um website needs an SSL certificate to ensure the security de dados do usuário. Isso também confirma a propriedade do site, evita que invasores criem uma versão falsa do site, e ganha usuários’ confiar. TLS e SSL são especialmente úteis ao fazer compras online. Eles mantêm os dados financeiros seguros e são usados em qualquer site que exija dados confidenciais, como senhas., informações pessoais, e detalhes de pagamento).
Outra vantagem significativa do HTTPS é que ele é muito mais rápido, o que ajuda as páginas da web a carregar mais rápido. Então, já que HTTPS já é considerado seguro, há não há necessidade de fazer varredura ou filtragem de dados, o que reduz a quantidade de dados transferidos. A maneira mais fácil de descobrir se o site que você está usando HTTPS ou não é procurar o ícone de cadeado à esquerda do URL.
Como o TLS/SSL criptografa solicitações e respostas HTTP?
TLS usa uma tecnologia chamada criptografia de chave pública. Existem duas chaves públicas e privadas, e a chave pública é enviada aos dispositivos clientes por meio do certificado SSL do servidor. Depois do cliente opens a connection to the server, os dois dispositivos usam as chaves pública e privada para negociar novas chaves, chamadas chaves de sessão, para criptografar futuras comunicações entre eles. Avançar, todas as solicitações e respostas HTTP são criptografadas com essas chaves de sessão, então qualquer pessoa que intercepte as mensagens só poderá ver uma sequência aleatória de caracteres em vez do texto simples.
Como o HTTPS ajuda a autenticar servidores web?
HTTP não tem verificação de identidade baseado no princípio da confiança. Autenticação significa verificar se uma pessoa ou máquina é quem diz ser. Embora os arquitetos do HTTP não tenham decidido confiar implicitamente em todos os servidores web, eles tinham outras prioridades além da segurança na época. Na Internet de hoje, no entanto, autenticação é essencial. Assim como um documento de identidade verifica a identidade de uma pessoa, uma chave privada verifica a identidade de um servidor. Quando um cliente abre um canal com o servidor de origem (por exemplo, quando um usuário acessa um site), possuir uma chave privada que corresponda à chave pública no certificado SSL de um site prova que o servidor é o host legítimo do site. Isso evita ou ajuda a bloquear muitos ataques possíveis sem autenticação, como ataques no caminho, Sequestro de DNS, Sequestro de BGP, e falsificação de domínio. Além disso, um certificado SSL é assinado digitalmente pela autoridade de certificação que o emitiu. Isso garante que o servidor é quem diz ser.