HTTPS (nome completo: Hyper Text Transfer Protocol sobre SecureSocket Layer) é um canal HTTP com segurança como objetivo. Com base no HTTP, a criptografia da transmissão e a autenticação da identidade garantem a segurança do processo de transmissão [1]. HTTPS adiciona SSL com base em HTTP. A base de segurança do HTTPS é SSL, portanto, SSL é necessário para os detalhes de criptografia. HTTPS tem uma porta padrão diferente de HTTP e uma camada de criptografia / autenticação (entre HTTP e TCP). Este sistema fornece autenticação e métodos de comunicação criptografados. É amplamente utilizado em comunicações sensíveis à segurança na World Wide Web, como pagamentos de transações.
HTTPS é composto principalmente de duas partes: HTTP + SSL / TLS, ou seja, uma camada de módulo para processamento de informações criptografadas é adicionada ao HTTP. A transmissão de informações entre o servidor e o cliente será criptografada por meio de TLS, portanto, os dados transmitidos são todos criptografados.
Princípio HTTP
① O navegador do cliente' deve primeiro estabelecer uma conexão com o servidor por meio da rede. A conexão é concluída por meio de TCP. Geralmente, o número da porta para conexão TCP é 80. Depois que a conexão é estabelecida, o cliente envia uma solicitação ao servidor. O formato da solicitação é: Uniform Resource Identifier (URL), número da versão do protocolo, seguido por informações MIME, incluindo modificadores de solicitação, informações do cliente e conteúdo da licença.
② Após receber a solicitação, o servidor fornecerá as informações de resposta correspondentes. O formato é uma linha de status, incluindo o número da versão do protocolo das informações, um código de sucesso ou de erro, e as informações MIME incluem informações do servidor, informações da entidade e possível conteúdo.
Princípio HTTPS
① O cliente envia para o servidor a lista de algoritmos que suporta e um número aleatório usado para gerar a chave;
② O servidor seleciona um algoritmo de criptografia da lista de algoritmos e o envia junto com um certificado contendo a chave pública do servidor para o cliente; o certificado também contém a identificação do servidor para fins de autenticação, e o servidor também fornece um usuário Usado como um número aleatório para gerar a chave;
③ O cliente verifica o certificado do servidor' s (para verificação do certificado, você pode consultar a assinatura digital), e extrai a chave pública do servidor' s; em seguida, gere uma string de senha aleatória chamada pre_master_secret e use a chave pública do servidor' Criptografar (consulte a criptografia / descriptografia assimétrica) e envie as informações criptografadas ao servidor;
④ O cliente e o servidor calculam independentemente a criptografia e as chaves MAC com base em pre_master_secret e o valor aleatório do cliente e do servidor (consulte o algoritmo de troca de chaves DH);
⑤ O cliente envia o valor MAC de todas as mensagens de handshake para o servidor;
⑥ O servidor envia o valor MAC de todas as mensagens de handshake para o cliente
vantagem
Use o protocolo HTTPS para autenticar usuários e servidores para garantir que os dados sejam enviados ao cliente e servidor corretos;
O protocolo HTTPS é um protocolo de rede construído por SSL + HTTP que pode ser usado para transmissão criptografada e autenticação de identidade. É mais seguro do que HTTP. Ele pode evitar que os dados sejam roubados e alterados durante a transmissão e garantir a integridade dos dados.
HTTPS é a solução mais segura na arquitetura atual. Embora não seja absolutamente seguro, aumenta muito o custo de ataques man-in-the-middle.
deficiência
No mesmo ambiente de rede, o protocolo HTTPS estenderá o tempo de carregamento da página em quase 50% e aumentará o consumo de energia em 10% a 20%. Além disso, o protocolo HTTPS também afetará o cache, aumentando a sobrecarga de dados e o consumo de energia.
A segurança do protocolo HTTPS tem escopo e tem pouco efeito em ataques de hackers, ataques de negação de serviço e sequestro de servidor.
O mais importante é que o sistema de cadeia de crédito do certificado SSL não é seguro. Especialmente quando alguns países podem controlar o certificado raiz da CA, os ataques man-in-the-middle são igualmente viáveis.
Custos aumentados. Após a implantação do HTTPS, o trabalho do protocolo HTTPS aumentará o consumo de recursos adicionais de computação. Por exemplo, o algoritmo de criptografia do protocolo SSL e o número de interações SSL ocuparão uma certa quantidade de recursos de computação e custos de servidor. No cenário de aplicativos de acesso de usuário em grande escala, o servidor precisa realizar operações frequentes de criptografia e descriptografia, e quase todos os bytes precisam ser criptografados e descriptografados, o que incorre em custos de servidor. Com o desenvolvimento da tecnologia de computação em nuvem, o custo de uso de servidores implantados em data centers diminuiu gradativamente após o aumento em escala. Em comparação com a melhoria da segurança de acesso do usuário, o custo de entrada caiu para um nível aceitável.




