SSL é um sistema de criptografia utilizado em servidores para assegurar privacidade durante a transmissão de informações através da World Wide Web. Servidores com SSL ativado criptografam dados sensíveis no ciphertext antes de enviá-los para clientes, evitando que outras pessoas leiam os dados, mesmo se eles forem atendidos na rota. Clientes recebem dados do servidor e depois decriptografam o ciphertext para ler os dados. O uso de SSL em um servidor da Web ajuda a assegurar que as informações transmitidas entre um cliente, como um navegador da Web, e um servidor, como um servidor da Web, permaneçam privados e permite que os clientes autentiquem a identidade do servidor.
Para que um servidor e um cliente utilizem SSL para comunicação segura, o servidor deve possuir um par de chaves pública-privada e um certificado. O servidor utiliza sua chave privada para assinar mensagens para os clientes. O servidor envia sua chave pública para clientes, para que eles possam verificar que as mensagens assinadas são realmente do servidor e para que possam criptografar mensagens para o servidor, que o servidor decriptografa com sua chave privada.
Para enviar sua chave pública para clientes, o servidor precisa de um certificado emitido por uma CA (autoridade de certificação). O certificado contém a chave pública do servidor, o Nome de Distinção associado com o certificado do servidor, o número de série ou data de emissão do certificado e a data de expiração do certificado.
Uma CA (autoridade de certificação) é uma outra empresa confiável (ou uma autoridade interna designada) que emite certificados. A CA verifica a identidade do servidor e assina digitalmente o certificado com sua chave privada; sua chave publica pode ser utilizada para assegurar que o certificado é válido. Um certificado assinado vincula a identidade do servidor a um par de chaves eletrônicas que pode ser utilizado para criptografar e assinar informações digitais. O próprio certificado é assinado com a chave privada da autoridade de certificação para verificar se o servidor é quem afirma ser.
Para operar um servidor da Web no modo SSL seguro, é necessário primeiro obter um certificado assinado para seu sistema com uma autoridade de certificação. VeriSign, Inc. é uma das várias empresas que agem como autoridade de certificação. Entretanto, você pode utilizar um certificado assinado de formato apropriado de qualquer autoridade de certificação.
Quando você configura conexões protegidas, sua chave pública deve estar associada a um certificado assinado eletronicamente por uma autoridade de certificação (CA) que é designada como raiz confiáveis CA em seu servidor.
Informações iniciais sobre conexões seguras
Para aprender mais sobre os certificados acesse - http://digitalid.verisign.com/
Esta seção fornece uma visão geral sobre conceitos de segurança.
O rápido crescimento de comércio eletrônico na Internet levou a um aumento na demanda de comunicações de rede seguras. Além disso, comunicações internas de empresas através de redes privadas geralmente contêm informações confidenciais que precisam ser protegidas.
Uma comunicação de rede segura possui as seguintes características:
Recursos podem ser protegidos e acessados apenas por pessoas autorizadas. Restringir acesso com base em senhas, endereço IP, nomes de host ou autenticação de cliente SSL assegura controle de acesso.
Você sabe com quem está falando e que pode confiar nesta pessoa. Autenticação, utilizando assinatura e certificados digitais, asseguram autenticidade.
Mensagens não são alteradas enquanto são transmitidas. Sem integridade de informações, você não tem garantia que a mensagem enviada corresponde à mensagem recebida. Assinatura digital assegura integridade.
Informações transportadas de pessoa para pessoa durante uma transação permanecem privadas e não pode ser lida mesmo que seja entregue para a pessoa errada. Criptografia assegura privacidade e confidencialidade.
Criptografia em sua forma mais simples é misturar uma mensagem para que não possa ser lida até que seja arrumada posteriormente pelo receptor. O remetente utiliza um padrão de algoritmo (ou chave) para misturar (ou criptografar) a mensagem. O receptor possui a chave de decodificação. Criptografia assegura privacidade e confidencialidade em transmissões enviadas pela Internet.
Há dois tipos de chaves que podem ser utilizadas para criptografia:
Com chaves assimétricas, você cria um par de chaves. O par de chaves é formado por uma chave pública e uma chave privada, que são diferentes uma da outra. A chave privada contém mais o padrão de criptografia secreto que a chave pública. Sua chave privada não pode ser compartilhada.
O servidor utiliza sua chave privada para assinar mensagens para os clientes. O servidor envia sua chave pública para clientes, para que eles possam criptografar mensagens para o servidor, que o servidor decriptografa com sua chave privada. Apenas você pode decriptografar uma mensagem que foi criptografada com sua chave pública, porque apenas você possui a chave privada. Pares de chaves são armazenados em um banco de dados de chaves que é protegido por uma senha.
Chaves simétricas seguem um modelo antigo do remetente e do destinatário compartilhando algum tipo de padrão. Este mesmo padrão é utilizado posteriormente pelo remetente para criptografar a mensagem e pelo destinatário para decriptografar a mensagem.
O risco envolvido com chaves simétricas é que você precisa encontrar um método de transporte seguro para utilizar durante o compartilhamento de sua chave secreta com as pessoas com as quais deseja se comunicar.
O protocolo SSL (Secure Sockets Layer) utiliza troca de chave assimétrica e simétrica. Chaves assimétricas são utilizadas para o protocolo de reconhecimento SSL. Durante o protocolo de reconhecimento a chave principal, criptografada com a chave pública do destinatário, é passada do cliente para o servidor. O cliente e o servidor fazem suas próprias chaves de sessão utilizando a chave principal. As chaves de sessão são utilizadas para criptografar e decriptografar dados para o restante da sessão. Troca de chave simétrica é utilizada durante a troca da especificação de criptografia (ou nível de criptografia) utilizada.
Para enviar sua chave pública para clientes, o servidor precisa de um certificado digital. Este certificado é emitido por uma autoridade de certificado (CA) que verifica a identidade do servidor.
Informações Relacionadas:
Autenticação é o processo utilizado para verificar identidade, para que você possa assegurar que as pessoas são quem afirmam ser. Há duas maneiras que o servidor utiliza autenticação:
Uma assinatura digital é uma assinatura computada matematicamente que assegura responsabilidade. Uma assinatura digital é semelhante a um cartão de crédito que contém sua foto. Para verificar a identidade da pessoa que envia uma mensagem para você, basta olhar o certificado digital do remetente.
Um certificado digital (ou ID digital), é como um cartão de crédito com uma foto do presidente do banco ao seu lado. Um cliente confia mais em você não somente porque você está na foto, o presidente do banco confia em você também.
Sua confiança na autenticidade do remetente é baseada no fato de você confiar na outra pessoa (uma pessoa ou agência) que certifica o remetente. A pessoa que emite certificados digitais é denominada uma autoridade de certificado (CA) ou signatário de certificado.
Um certificado digital contém:
Você digita seu Nome de Distinção como parte da solicitação de um certificado. O certificado assinado digitalmente inclui não apenas seu próprio Nome de Distinção, mas o Nome de Distinção da CA.
Você pode solicitar um dos seguintes certificados:
CAs difundem suas chaves públicas e Nomes de Distinção empacotados juntos para que as pessoas possam inclui-los em seus servidores e navegadores da Web como um certificado de CA confiável. Quando você designa a chave pública e o certificado de uma CA para ser uma CA confiável, isto significa que seu servidor confia em qualquer pessoa que possua um certificado desta CA. Você pode possuir várias CAs confiáveis como parte de seu servidor. O Servidor HTTP inclui vários certificados de CA confiáveis padrão. Você pode incluir ou remover CAs confiáveis conforme o necessário utilizando o IBM Key Management Utility incluído com seu servidor.
Para comunicar seguramente, o destinatário de uma transmissão deve confiar na CA que emitiu o certificado do remetente. Isto é válido sendo o destinatário um servidor ou um navegador da Web. Quando um remetente assina uma mensagem, o destinatário deve possuir o certificado de CA assinada correspondente e a chave pública designada como um certificado de CA confiável.
Informações Relacionadas:
Uma PKI (Public Key Infrastructure) é um sistema de certificados digitais, autoridades de certificado, autoridades de registro, serviço de gerenciamento de certificado e diretórios X.500 que verificam a identidade e a autoridade de cada parte envolvida em qualquer transação através da Internet. Estas transações podem ser financeiras ou podem envolver qualquer operação em que seja necessária verificação de identidade, como confirmação da origem de transmissões de proposta ou autor de mensagens de e-mail.
Uma PKI suporta a utilização de CRLs (listas de revogação de certificado). Uma lista de revogação de certificado é uma lista de certificados que foram revogados. CRLs fornecem um método mais global para autenticação de uma identidade de cliente pelo certificado, e também pode ser utilizada para verificar a validade de certificados de CA confiáveis.
CRLs e certificados de CA confiáveis são armazenados e recuperados de um servidor de diretório X.500. Os protocolos utilizados para armazenamento e recuperação de informações de um servidor de diretório X.500 são DAP (Directory Access Protocol) e LDAP (Lightweight Directory Access Protocol). O Servidor HTTP suporta LDAP.
Informações podem ser distribuídas em vários servidores de diretório através da Internet e de intranets, permitindo assim que uma organização gerencie certificados, critérios de confiança e CRLs de uma localização central ou de maneira distribuída. Isto torna o critério de confiança mais dinâmico porque CAs confiáveis podem ser incluídas ou excluídas de uma rede de servidores seguros sem que seja necessário reconfigurar cada um dos servidores.
Informações Relacionadas:
O protocolo SSL (Secure Sockets Layer) foi desenvolvido pela Netscape Communications Corporation. SSL assegura que dados transferidos entre um cliente e um servidor permaneçam privadas. Permite que o cliente autentique a identidade do servidor. SSL Versão 3 é necessário para autenticar a identidade de um cliente.
Quando seu servidor possuir um certificado digital, navegadores com SSL ativado como o Netscape Navigator e Microsoft Internet Explorer podem comunicar seguramente com seu servidor utilizando SSL. Com SSL, você pode facilmente estabelecer um site da Web com segurança ativada na Internet ou em sua intranet privada. Um navegador que não suporte HTTP através de SSL não poderá solicitar URLs utilizando HTTPS. Os navegadores não-SSL não permitirão apresentação de formulários que devem ser apresentados seguramente.
SSL utiliza um protocolo de reconhecimento de segurança para iniciar uma conexão segura entre o cliente e o servidor. Durante o protocolo de reconhecimento, o cliente e o servidor concordam sobre as chaves de segurança que serão utilizadas para a sessão e os algoritmos que serão utilizados para criptografia. O cliente autentica o servidor; opcionalmente, o servidor pode solicitar o certificado do cliente. Depois do protocolo de reconhecimento, SSL é utilizado para criptografar e decriptografar todas as informações nos pedidos https e nas respostas do servidor, incluindo:
HTTPS é um protocolo único que combina SSL e HTTP. É necessário especificar https:// como uma referência em documento HTML que fazem link para documentos protegidos por SSL. Um usuário cliente também pode abrir uma URL especificando o https:// para solicitar um documento protegido por SSL.
Porque HTTPS (HTTP + SSL) e HTTP são protocolos diferentes e utilizam portas diferentes (443 e 80, respectivamente), você pode executar pedidos SSL e não-SSL ao mesmo tempo. Como resultado, você pode escolher por fornecer informações para todos os usuários que não utilizam segurança e especificar informações apenas para navegadores que fizerem pedidos seguros. Esta é a maneira como uma empresa revendedora na Internet pode permitir que usuários consultem suas mercadorias sem segurança, mas preencham formulários de pedidos e enviem seus números de cartão de crédito utilizando segurança.
Informações Relacionadas: