O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve os conceitos básicos do protocolo SSL (Secure Sockets Layer) e fornece um exemplo de transação e captura de pacotes.
A unidade básica de dados em SSL é um registro. Cada registro consiste em um cabeçalho de registro de cinco bytes, seguido de dados.
Tipo | Versão | Duração | ||
T | VH | VL | LH | LL |
Há quatro tipos de registro em SSL:
A versão do registro é um valor de 16 bits e é formatada em ordem de rede.
Note: Para SSL Versão 3 (SSLv3), a versão é 0x0300. Para TLSv1 (Transport Layer Security Version 1), a versão é 0x0301. O Cisco Adaptive Security Appliance (ASA) não oferece suporte a SSL Versão 2 (SSLv2), que usa a versão 0x0002, ou qualquer versão de TLS maior que TLSv1.
O comprimento do registro é um valor de 16 bytes e é formatado em ordem de rede.
Em teoria, isso significa que um único registro pode ter até 65.535 (2^16 -1) bytes de comprimento. O TLSv1 RFC2246 afirma que o comprimento máximo é de 16.383 (2^14 -1) bytes. Sabe-se que os produtos da Microsoft (Microsoft Internet Explorer e Internet Information Services) excedem esses limites.
Esta seção descreve os quatro tipos de registros SSL.
Os registros de handshake contêm um conjunto de mensagens que são usadas para o handshake. Estas são as mensagens e seus valores:
No caso simples, os registros de handshake não são criptografados. No entanto, um registro de handshake que contém uma mensagem concluída é sempre criptografado, pois sempre ocorre após um registro CCS (Change Cipher Spec).
Os registros CCS são usados para indicar uma alteração em cifras criptográficas. Imediatamente após o registro CCS, todos os dados são criptografados com a nova cifra. Os registros CCS podem ou não ser criptografados; em uma conexão simples com um único handshake, o registro CCS não é criptografado.
Os registros de alerta são usados para indicar ao peer que ocorreu uma condição. Alguns alertas são avisos, enquanto outros são fatais e causam falha na conexão. Os alertas podem ou não ser criptografados e podem ocorrer durante um handshake ou durante a transferência de dados. Há dois tipos de alertas:
Esses registros contêm os dados reais do aplicativo. Essas mensagens são transportadas pela camada de registro e são fragmentadas, comprimidas e criptografadas, com base no estado de conexão atual.
Esta seção descreve um exemplo de transação entre o cliente e o servidor.
Quando um cliente e um servidor SSL começam a se comunicar, eles concordam em uma versão de protocolo, selecionam algoritmos criptográficos, opcionalmente autentizam um ao outro e usam técnicas de criptografia de chave pública para gerar segredos compartilhados. Esses processos são executados no protocolo handshake. Em resumo, o cliente envia uma mensagem de saudação do cliente ao servidor, que deve responder com uma mensagem de saudação do servidor ou um erro fatal ocorre e a conexão falha. O cliente Hello e o servidor Hello são usados para estabelecer recursos de aprimoramento de segurança entre o cliente e o servidor.
Client Hello
O Cliente Hello envia estes atributos ao servidor:
Note: O endereço IP do servidor nas capturas é 10.0.0.2 e o endereço IP do cliente é 10.0.0.1.
Server Hello
O servidor envia esses atributos de volta ao cliente:
Para solicitações de retomada de sessão SSL:
Servidor Hello concluído
A mensagem de saudação do servidor concluída é enviada pelo servidor para indicar o fim da saudação do servidor e das mensagens associadas. Depois de enviar esta mensagem, o servidor espera uma resposta do cliente. Ao receber a mensagem de saudação do servidor concluída, o cliente verifica se o servidor forneceu um certificado válido, se necessário, e verifica se os parâmetros de saudação do servidor são aceitáveis.
Certificado do servidor, troca de chave do servidor e solicitação de certificado (opcional)
Certificado do cliente (opcional)
Esta é a primeira mensagem que o cliente envia depois de receber uma mensagem de saudação do servidor concluída. Esta mensagem só é enviada se o servidor solicitar um certificado. Se não houver certificado adequado disponível, o cliente envia um alerta no_certificate. Esta indicação é apenas uma advertência; no entanto, o servidor pode responder com um alerta de falha fatal do handshake se a autenticação do cliente for necessária. Os certificados DH do cliente devem corresponder aos parâmetros DH especificados pelo servidor.
Chave do cliente
O conteúdo desta mensagem depende do algoritmo de chave pública selecionado entre as mensagens do cliente Hello e do servidor Hello. O cliente usa uma chave pré-master criptografada pelo algoritmo RSA (Rivest-Shamir-Addleman) ou DH (DH) para acordo de chave e autenticação. Quando RSA é usado para autenticação de servidor e troca de chaves, um pre_master_secret de 48 bytes é gerado pelo cliente, criptografado sob a chave pública do servidor e enviado ao servidor. O servidor usa a chave privada para descriptografar o pre_master_secret. Em seguida, as duas partes convertem o pre_master_secret no master_secret.
Verificação de certificado (opcional)
Se o cliente enviar um certificado com capacidade de assinatura, uma mensagem de verificação de certificado assinado digitalmente será enviada para verificar explicitamente o certificado.
Alterar mensagens das especificações do cliente
A mensagem Change Cipher Spec (Alterar especificação da impressora) é enviada pelo cliente e ele copia a Especificação da Cifra pendente (a nova) na Especificação da Cifra atual (a que foi usada anteriormente). O protocolo Change Cipher Spec existe para sinalizar transições em estratégias de cifragem. O protocolo consiste em uma única mensagem, que é criptografada e compactada sob a especificação de cifra atual (não pendente). A mensagem é enviada pelo cliente e pelo servidor para notificar a parte receptora de que os registros subsequentes estão protegidos sob as chaves e especificações de cifra negociadas mais recentemente. A recepção desta mensagem faz com que o receptor copie o estado de leitura pendente no estado atual de leitura. O cliente envia uma mensagem Change Cipher Spec após as mensagens de troca de chave de handshake e de Verificação de certificado (se houver), e o servidor envia uma mensagem depois de processar com êxito a mensagem de troca de chave recebida do cliente. Quando uma sessão anterior é retomada, a mensagem Change Cipher Spec (Alterar especificação da unidade) é enviada após as mensagens de Hello. Nas capturas, as mensagens Client Exchange, Change Cipher e Finished (Intercâmbio de cliente, Cifra de alteração e Concluído) são enviadas como uma única mensagem do cliente.
Mensagens concluídas
Uma mensagem Finished (Concluído) é sempre enviada imediatamente após uma mensagem Change Cipher Spec (Especificação do editor de alterações) para verificar se os processos de troca de chaves e autenticação foram bem-sucedidos. A mensagem Finished (Concluído) é o primeiro pacote protegido com os algoritmos, chaves e segredos mais recentemente negociados. Nenhuma confirmação da mensagem Finished (Concluído) é necessária; as partes podem começar a enviar dados criptografados imediatamente após enviarem a mensagem Finished (Concluído). Os destinatários das mensagens Concluídas devem verificar se o conteúdo está correto.