o que é HTTPS ?

o que é HTTPS ?

O que faz um site considerado seguro ?

Você já se perguntou o que significa este cadeado ao lado da URL do web site que você se encontra?

Este cadeado aparece especialmente nos sites que possuem o certificado SSL confiável dentro dos navegador pelo qual o acessamos, e ele nos informa que a conexão dentro deste site está sendo criptografada de ponta a ponta, tanto nos envios quanto nas recepções.

Logo todo protocolo HTTP que passa por dentro das camadas de SSL/TLS com o certificado é considerado HTTPS

antes de entender todo o processo quando entramos em um site e descobrirmos se ele é autenticado ou não, é preciso entender algumas coisas simples.

Pré-Requisitos

  • 1 . As mensagens que forem criptografadas com a chave pública de X , apenas podem ser descriptografadaschave privada de X.

  • 2 . Qualquer um que obter a chave pública de Y pode verificar que uma mensagem foi autenticamente escrita pela chave privada de Y.

Tipos de Criptografias

  • 1 . Symmetric encryption: é o tipo de criptografia onde há apenas uma chave para criptografar e descriptografar uma mensagem.

  • 2 . Asymmetric encryption: é o tipo de criptografia onde há um par de chaves usados para criptografar e descriptografas uma mensagem.

sabendo disso agora podemos partir para o processo.

Conexão Assimétrica para Simétrica

image.png

Quando uma conexão começa com o servidor disponibilizando uma chave pública para o cliente que pode utiliza-la para criptografar dados, e então retornar a mensagem criptogradas, normalmente se criptografa uma chave única que é gerada a partir da public key.

O servidor utilizar a sua private key para descriptografar a mensagem e agora os dois lados da conexão possuem a chave única representativa daquela conexão e não precisam mais utilizar um par de chaves para se comunicar.

Este processo apenas acontece com sites que criptografam seus envios e desencriptam suas requisições, quando estamos no nosso navegador ele pode colocar uma etapa acima de verificação do Certificado SSL deste modo temos algo como o que está abaixo.

verificando Autenticacao, prevencao de maquinas fingindo ser o youtube, e criando chave onde a comunicacao sera encriptada.png

image.png

O que é Certificado de Autorização e como funciona ?

Qualquer web site pode obter um certificado de autorização SSL e é recomendado fazer a requisição de um dos grandes para que o certificado possa ser válido na maioria dos navegadores.

Para tal feito um site envia seu par de chaves para serem assinados, assim que assinados o site fica a disposição de enviar seu certificado digital para qualquer um que requisitar, este certificado possui uma assinatura que é criptografada pela sua private key e pode ser descriptografada pela sua respectiva public key no navegador assim garantindo a integridade e sinceridade nos dados que foram concedidos.

Quando um site possui o certificado de autorização conhecido e valido este site fica com o cadeado verde, perto da URL, o que significa que a comunicação entre as duas partes é criptografada.

Os navegadores que possuem a public key dos CA em que confiam podem verificar a integridade dos dados que recebe através da public key; isso também significa que a chave publica que se encontra do outro lado ( a que utilizamos para enviar nossa secret key que será usada pra comunicação simétrica mais tarde ) pertence de fato ao site que estamos requisitando.

Importante destacar

A maioria dos browser já vem com uma lista de public keys que são confiáveis

importante deixar anotado que uma public key pode descriptografar as mensagem criptografadas por private keys também.

Os certificados de autorização ou mesmo o padrão pair keys para encriptar as mensagens, são muito importantes para evitar EavensDropping ou mesmo ataques de man-in-the-middle.

image.png

O que é um certificado auto assinado ( self signed certificate )

Suponhamos que você tenha um aplicativo em contexto de desenvolvimento e você quer testar a integridade dele, tanto para si quanto para terceiros, você não precisa conseguir um certificado de verdade para utilizar SSL authentication.

você pode criar sua própria certificação de autorização, e então assinar seu par de chaves.

então quando uma máquina requisitar do seu aplicativo ele enviará o certificado dizendo "aqui eu fui assinado por este cara" e naturalmente a máquina requisitante retornaria "eu nem sei quem é esse cara, não confio em você".

Por isso a máquina que está fazendo a requisição deve conhecer e obter a public key do seu certificado de autorização fake e entender como confiável todos os sites assinados pela sua organização. ( Isso precisa ser configurado no servidor / cliente que estiver requisitando ).

Desta forma a máquina diria ok, o certificado é valido e então faria o processo para chave simétrica naturalmente como esperado.

As assinaturas digitais não podem ser falsificadas.

image.png

Fontes deste artigo: