Um artigo para você entender completamente o protocolo SSL / TLS


Um artigo para você entender completamente o protocolo SSL / TLS

SSL / TLS é uma estrutura de comunicação criptográfica, é o método de comunicação criptográfica mais utilizado no mundo. O SSL / TLS usa de maneira abrangente a criptografia simétrica em criptografia, códigos de autenticação de mensagens, criptografia de chave pública, assinaturas digitais, geradores de números pseudo-aleatórios, etc. Pode-se dizer que é o mestre da criptografia.

SSL (Secure Socket Layer) é um conjunto de protocolos projetados pela Netscape em 1994 e lançados na versão 3.0 em 1995.

O TLS (Transport Layer Security) é um protocolo desenvolvido pela IETF com base no SSL3.0, que na verdade é equivalente à versão subsequente do SSL.

Aplicação de SSL / TLS

SSL / TLS é uma estrutura de comunicação segura, que pode transportar o protocolo HTTP ou SMTP / POP3.

Arquitetura de protocolo TLS

O TLS é dividido principalmente em duas camadas: a camada inferior é o protocolo de gravação TLS, responsável principalmente pela criptografia de mensagens usando cifras simétricas.

A camada superior é o protocolo de handshake TLS, dividido principalmente em quatro partes: protocolo de handshake, protocolo de alteração de especificação de senha e protocolo de dados de aplicativos.

  • O protocolo de handshake é responsável pela negociação de algoritmos criptográficos e chaves compartilhadas entre o cliente e o servidor, incluindo a autenticação de certificado, sendo a parte mais complexa dos quatro protocolos.

  • O contrato de alteração de especificação de senha é responsável por comunicar o sinal ao parceiro de comunicação para alterar o método de senha

  • O contrato de aviso é responsável por comunicar o erro à outra parte quando ocorrer um erro

  • O protocolo de dados do aplicativo é responsável por comunicar os dados do aplicativo transportados pelo TLS ao objeto de comunicação.

Acordo de aperto de mão

O protocolo de handshake é um protocolo muito importante no protocolo TLS. Através da interação entre o cliente e o servidor e o compartilhamento de algumas informações necessárias, são geradas uma chave compartilhada e um certificado interativo.

Não fale, primeira foto:

A seguir, apresentamos o significado de cada etapa, passo a passo:

  1. olá cliente

    O cliente envia uma mensagem de saudação ao cliente para o servidor, incluindo o seguinte:

    • Número da versão disponível
    • Hora atual
    • Número aleatório do cliente
    • ID da sessão
    • Lista de conjuntos de criptografia disponíveis
    • Lista de métodos de compactação disponíveis

Mencionamos anteriormente que o TLS é realmente um conjunto de estruturas de criptografia, algumas das quais são realmente substituíveis. Aqui, os números de versão disponíveis, a lista de pacotes de criptografia disponíveis e a lista de métodos de compactação disponíveis devem perguntar ao servidor quais serviços o outro lado suporta.

O número aleatório do cliente é um número aleatório gerado pelo cliente e usado para gerar uma chave simétrica.

  1. olá servidor

    Depois de receber a mensagem de saudação do cliente, o servidor retornará uma mensagem de saudação do servidor ao cliente, incluindo o seguinte conteúdo:

    • Número da versão usada
    • Hora atual
    • Número aleatório do servidor
    • ID da sessão
    • Conjunto de criptografia usado
    • Método de compressão usado

O número da versão usada, o conjunto de criptografia usado e o método de compactação usado são as respostas para a etapa 1.

O número aleatório do servidor é um número aleatório gerado pelo servidor e usado para gerar uma chave simétrica.

  1. Etapa opcional: certificado

    O servidor envia sua própria lista de certificados, porque o certificado pode ser hierárquico; portanto, além de processar o próprio certificado do servidor, você também precisa enviar o certificado assinado para o servidor.
    O cliente verificará o certificado do servidor. Se estiver se comunicando de maneira anônima, nenhum certificado é necessário.

  2. Etapa opcional: ServerKeyExchange

    Se as informações do certificado na terceira etapa forem insuficientes, você poderá enviar o ServerKeyExchange para criar um canal criptografado.

    O conteúdo do ServerKeyExchange pode conter duas formas:

    • Se o protocolo RSA for selecionado, os parâmetros (E, N) da criptografia de chave pública do RSA serão passados. Vamos lembrar a fórmula para criar uma chave pública no RSA: Secret Text = Ming Text E   m o d   N Texto cifrado = texto simples ^ E \ mod \ N , e E, enquanto o know N, a chave pública RSA para saber, em que a transmissão é E, N dois números. O conteúdo específico pode se referir àexplicação detalhada do algoritmo RSA
    • Se o protocolo de troca de chaves Diff-Hellman for selecionado, os parâmetros da troca de chaves serão passados.Para obter detalhes, consulte o método de geração de chaves mais seguro Diffie-Hellman
  3. Etapa opcional: CertificateRequest

    Se estiver em um ambiente de acesso restrito, como uma malha, o servidor também precisará solicitar um certificado ao cliente.
    Se a autenticação do cliente não for necessária, esta etapa não será necessária.

  4. olá servidor pronto O
    servidor envia uma mensagem olá servidor pronto para informar ao cliente que sua mensagem terminou.

  5. Etapa opcional: certificado

    Em resposta à etapa 5, o cliente envia o certificado do cliente para o servidor

  6. ClientKeyExchange

    Ainda existem dois casos:

    • No caso de chave pública ou modo RSA, o cliente gerará uma senha mestre preliminar com base no número aleatório gerado pelo cliente e no número aleatório gerado pelo servidor e, em seguida, usará a chave pública para criptografar e devolvê-la ao servidor.
    • Se o protocolo de troca de chaves Diff-Hellman for usado, o cliente enviará o valor que a parte precisa divulgar para gerar a chave Diff-Hellman. O conteúdo específico pode se referir ao método de geração de chaves mais seguro, Diffie-Hellman , para que o servidor possa calcular a senha mestre preliminar com base nesse valor público.
  7. Etapa opcional: CertificateVerify

    O cliente prova para o servidor que é o detentor do certificado do cliente.

  8. ChangeCipherSpec (prepare-se para mudar a senha)

    ChangeCipherSpec é uma mensagem do protocolo de alteração de especificação de cifra, indicando que as mensagens subsequentes serão criptografadas com a chave negociada anteriormente.

  9. concluído (contrato de final de aperto de mão)

    O cliente informa ao servidor que o protocolo de handshake terminou.

  10. ChangeCipherSpec (prepare-se para mudar a senha)

    O servidor diz ao cliente que ele deseja mudar a senha.

  11. concluído (contrato de final de aperto de mão)

    O servidor informa ao cliente que o protocolo de handshake terminou.

  12. Alternar para o protocolo de dados do aplicativo

    Depois disso, o servidor e o cliente se comunicam de maneira criptografada.

Senha mestra e senha mestra preliminar

A etapa 8 acima gera uma senha mestre preliminar.A senha mestre é gerada pelo gerador de números pseudo-aleatórios + senha mestre preliminar + número aleatório do cliente + número aleatório do lado do servidor implementado pela função hash unidirecional definida no conjunto de cifras.

A senha principal é usada principalmente para gerar a chave denominada senha, a chave do código de autenticação de mensagens e o vetor de inicialização usado no modo CBC da senha simétrica. Consulte a cifra e modo de bloco para obter detalhes

Protocolo de Registro TLS

O protocolo de gravação TLS é responsável principalmente pela compactação de mensagens, criptografia e autenticação de dados:

Primeira foto.

A mensagem será segmentada primeiro, depois compactada e, em seguida, o código de verificação da mensagem é calculado e criptografado com uma senha simétrica.A criptografia usa o modo CBC.O vetor inicial do modo CBC é gerado pela senha mestra.

Após a obtenção do texto cifrado, informações adicionais como tipo, versão e comprimento serão anexadas para formar os dados finais da mensagem.

Para mais informações, visite o blog do flydean

164 artigos originais publicados · 172 elogios · mais de 460.000 visualizações

Acho que você gosta

Origin blog.csdn.net/superfjj/article/details/105609565
Recomendado
Clasificación