Usando SSL no Studio

O Secure Sockets Layer (SSL) é uma tecnologia de segurança padrão para estabelecer um link criptografado entre um servidor e um cliente. O link criptografado assegura que todos os dados passados entre o servidor e os clientes permaneçam privados e inalterados. Para criar uma conexão SSL, um servidor requer um certificado SSL. Esta seção fornece uma visão geral sobre o uso do SSL no Studio, discute o Transport Layer Security (TLS) e a segurança do SSL, discute certificados e fornece os procedimentos necessários para importar de forma adequada a Autoridade de Certificação (CA) e os certificados de entidade final e chaves privadas para uso ao verificar a autenticação do cliente SSL.

SSL e Transport Layer Security

O TLS 1.0 representa um upgrade de SSL 3.0. Como exemplo, o protocolo do handshake TLS para estabelecer autenticação e criptografia do cliente/servidor difere do protocolo de handshake SSL . Além disso, o TLS agora é mais extensível. Embora eles não possam interoperar, o TLS fornece um mecanismo pelo qual uma implementação do TLS 1.0 pode ser revertido para a implementação de um SSL 3.0.

O protocolo TLS utiliza a tecnologia criptográfica de chave pública e chave simétrica. A criptografia de chave pública utiliza uma chave pública e uma chave privada. As informações criptografadas com uma chave podem ser decriptografadas somente com a outra chave. Por exemplo, as informações criptografadas com a chave pública podem ser decriptografadas somente com a chave privadas.

Cada chave pública do servidor é publicada, enquanto que a chave privada é mantida secreta. Para enviar uma mensagem segura para o servidor, o cliente criptografa a mensagem utilizando a chave pública do servidor. Quando o servidor recebe a mensagem, ela decriptografa a mensagem com sua chave privada.

A criptografia de chave simétrica utiliza a mesma chave para criptografar e decriptografar mensagens. O cliente gera aleatoriamente uma chave simétrica a ser usada para criptografar todos os dados da sessão. A chave é, então, criptografada com a chave pública do servidor e enviada ao servidor.

O TLS fornece três serviços básicos de segurança:
  • Privacidade de Mensagem – Obtida por meio de uma combinação de criptografia de chave pública e de chave simétrica. Todo o tráfego entre um cliente e um servidor é criptografado usando uma chave e um algoritmo de criptografia negociado durante a configuração da sessão.
  • Integridade da mensagem – Garante que o tráfego da sessão não altere a rota até seu destino final. O TLS e o SSL utilizam uma combinação de chaves públicas/privadas e funções hash para garantir a integridade da mensagem.
  • Autenticação mútua – Troca de identificação por meio dos certificados de chaves públicas. As identidades do cliente e do servidor são codificadas nos certificados de chaves públicas, que contêm os seguintes componentes:
    • Nome distinto do assunto
    • Nome distinto do emissor
    • Chave pública do assunto
    • Assinatura do emissor
    • Período de validade
    • Número de série
É possível também utilizar HTTP (HTTPS) seguros para garantir que a s informações seguras de um cliente não sejam comprometidas ao fazer o download a partir de um servidor.

Certificados

O SSL utiliza certificados digitais para autenticar a identidade do servidor e, opcionalmente, do cliente. Os certificados digitais são emitidos por uma Autoridade de Certificação (CA), uma agência confiável autorizada para emitir, renovar e revogar certificados digitais após verificar a identidade e a legitimidade da parte solicitante. Um certificado de CA, que pode ser um certificado CA de raiz ou um certificado CA subordinado, inclui a assinatura do CA e o período de validade. Um CA garante a conexão entre uma chave e um outro CA ou entidade final. Uma entidade final é uma pessoa, uma função, uma organização, um pseudônimo ou uma parte do hardware ou do software.

A criptografia e a autenticação são executadas por meio de uma chave pública e privada. A chave pública está integrada em um certificado, conhecido como um certificado do site ou do servidor. O certificado contém diversos itens de informações, incluindo o nome do CA que emitiu o certificado, o nome e a chave pública do servidor ou do cliente, a assinatura do CA e a data e número do certificado. A chave privada é criada ao criar um certificado autoassinado ou uma solicitação de certificado CA e é usado para decriptografar mensagens de clientes.

Uma sessão SSL ou TLS é estabelecida na seguinte sequência:
  1. O cliente e o servidor trocam mensagens de saudação para negociar o algoritmo de criptografia e a função hash (para integridade da mensagem) a serem utilizados para a sessão.
  2. O cliente solicita um certificado ITU-T standard X.509 a partir do servidor para provar sua identidade. Como opção, o servidor pode solicitar um certificado do cliente. Os certificados são verificados, verificando o formato do certificado, as datas de validade e verificando se o certificado inclui a assinatura de uma autoridade de certificação confiável (ou é autoassinado.
  3. O cliente gera aleatoriamente um conjunto de chaves utilizadas para criptografia. As chaves são criptografadas com a chave pública do servidor e seguramente comunicadas com o servidor.