Utilizando SSL – Secure Socket Layer
SSL - Secure Sockets Layer e TLS - Transport Layer Security (TLS) são protocolos criptográficos que provê segurança de comunicação na intenet.
Abrangência |
---|
ERP 10 e 11 |
SSL é um protocolo de comunicação que aplica uma camada de segurança que é comumente utilizada para codificar os dados trafegados entre um ponto de comunicação a outro (Exemplo: Browser e WebSite). Desta forma, através do processo de criptografia dos dados, é possível prevenir que os dados trafegados possam ser interpretados ou mesmo alterados no seu percurso, garantindo que as informações sigilosas não possam ser vistas ou interpretadas.
Para ser capaz de criar uma conexão SSL, um servidor requer um certificado SSL. Ao optar por ativar o SSL no servidor, é necessário criar duas chaves criptográficas, sendo uma chave privada e uma pública. Desta mesma maneira, é preciso que um Client possua um certificado SSL, que seja relacionado ao certificado no Server no qual será conectado. Este relacionamento/conexão ao Server e de verificação do certificado Client e Server é denominado handshake.
Handshake
Handshake é o processo em que duas máquinas afirmam uma a outra que a reconheceu e está pronta pra iniciar a comunicação.
Observe, a seguir, um exemplo genérico de handshake realizado entre uma conexão TCP client/server utilizando SSL.
Fonte: http://en.wikipedia.org/wiki/Secure_Sockets_Layer#How_it_works
Utilizando SSL em contexto WEB
A utilização do SSL em protocolo HTTP - HyperText Transfer Protocol, é definido como HTTPS - HyperText Transfer Protocol Secure. HTTPS é uma implementação do protocolo HTTP sobre uma camada SSL ou TLS. Essa camada adicional, permite que os dados sejam transmitidos através de uma conexão criptografada e que se verifique a autenticidade do server e do client, através de certificados digitais.
Importante |
---|
A porta TCP usada, por norma, para o protocolo HTTPS é a 443. |
O protocolo HTTPS é utilizado, em regra, quando se deseja evitar que a informação transmitida entre o client e o server seja visualizada por terceiros, como, por exemplo, em compras on-line.
Verificando a utilização do SSL
Quando um visitante de um Website se conecta a um servidor que está utilizando o protocolo SSL, observe na barra de endereço, que o protocolo passa a ser https:// (no lugar de http:// padrão).
Além disso, é possível verificar na barra de status, um cadeado que demonstra a certificação da página segura (SSL).
Exemplos
Internet Explorer ®
Mozilla Firefox ®
Certificado digital SSL
Um certificado digital é um arquivo de computador que contém um conjunto de informações referente a entidade para o qual o certificado foi emitido (seja uma empresa, pessoa física ou computador) mais a chave pública referente a chave privada que acredita-se ser de posse unicamente especificada no certificado.
Um certificado digital normalmente é usado para ligar uma entidade a uma chave pública. Para garantir digitalmente, no caso de uma infraestrutura de chaves públicas (ICP), o certificado é assinado pela Autoridade Certificadora que emitiu e, no caso de um modelo de Teia de Confiança (Web of trust), como o PGP, o certificado é assinado pela própria entidade e assinado por outros que dizem confiar naquela entidade. Em ambos os casos, as assinaturas contidas em um certificado são atestamentos realizados por uma entidade que diz confiar nos dados contidos naquele certificado.
A troca de chaves simétricas entre usuários para comunicação segura tornou-se impraticável, a criptografia de chaves públicas provê um meio de solucionar este problema.
Exemplo
Alice deseja que outras pessoas tenham a capacidade de enviar-lhe mensagens secretas, tudo que ela precisa fazer é publicar a sua chave pública. Desta forma, qualquer pessoa que possua a chave pública de Alice poderá enviar-lhe informações secretas. No entanto, infelizmente, Davi também pode publicar uma chave pública (para a qual Davi sabe a chave privada relacionada) alegando ser a chave pública de Alice e assim tendo a capacidade de decifrar as mensagens secretas destinadas a Alice, mas que foram cifradas pela chave pública de Davi. Mas se Alice possuir um certificado digital com a sua chave pública e este certificado for assinado digitalmente por João, qualquer pessoa que confie em João poderá sentir-se confortável em confiar no certificado de Alice. Em uma ICP, João será uma AC (Autoridade Certificadora), a qual tem a confiança de todos os participantes daquela ICP.
Um certificado pode ser revogado se for descoberto que a sua chave privada relacionada foi comprometida ou se o seu relacionamento (entre uma entidade e a sua chave pública) embutido no certificado estiver incorreto ou foi alterado; Isto poderá ocorrer, por exemplo, se uma pessoa mudar de nome ou CPF. Uma revogação não é comum, mas a possibilidade da ocorrência significa que quando um certificado é confiável, o usuário deverá sempre verificar a sua validade.
Isto pode ser feito, comparando o certificado com uma lista de certificados revogados (LCR). Seu objetivo é mostrar todos os certificados revogados ou cancelados no âmbito daquela AC (Autoridade Certificadora).
Garantir que a lista está correta e atualizada é a parte mais importante em uma ICP centralizada, o que as vezes não é feito corretamente. Para a LCR ser efetiva, precisa estar disponível o tempo todo para qualquer um que precisar e ser atualizada frequentemente. A outra maneira de conferir a validade de certificado, é fazer uma consulta a AC (Autoridade Certificadora) usando o Online Certificate Status Protocol (OCSP) para saber o estado de um certificado específico.
O que é uma Autoridade Certificadora (CA)
As Certification Authority ou Autoridade Certificadora (CA), são empresas que realizam a emissão dos certificados seguros SSL. As autoridades certificadoras são responsáveis por validar a identidade de um Website.
O que mais se aproxima de uma entidade normatizadora das autoridades certificadoras, é o Webtrust Compliancy Program administrado pela AICPA/CICA. A maioria das CA´s obedecem aos critério da Webtrust.
Referência, no servidor, para associação ao certificado
O certificado fica associado ao nome da máquina (CommonName). Então, para registrar o certificado, é necessário definir a URL que será utilizada.
Exemplo: www.seunome.com.br ou seguro.seunome.com.br
Desta forma, o certificado ficará válido somente no endereço definido.
Realizando testes com certificado sem pagamento
Quase todos os fornecedores de certificados oferecem uma versão trial do certificado, permitindo instalá-la em seu servidor e testá-la à vontade,
sem que haja necessidade de pagar por isso. É possível adquirir uma versão trial, através do site de certificados.
Utilizando OpenSSL
Este guia utilizará como base para geração de certificados, conversão de formatos de certificado digital, entre outras operações o projeto OpenSSL (http://www.openssl.org/).
A versão Win32 do aplicativo é encontrada no site http://www.slproweb.com/products/Win32OpenSSL.html
Para entender melhor alguns dos comandos utilizados do OpenSSL, consulte o site http://www.openssl.org/docs/apps/openssl.html
Veja também
Instalando o OpenSSL - Secure Socket Layer