Aprenda a configurar o Apache com SSL (Parte I)
Nos dias que correm, é importante que todos os dados sensíveis transaccionados entre um cliente e um servidor sejam cifrados de modo a que estes não possam ser entendidos por terceiros. Na prática, quando acedemos a um serviço online que nos solicita dados pessoais ou credenciais de acesso (ex. sites de bancos) é importante que a toda a informação passada seja cifrada de modo a tornar-se elegível. No caso dos servidor Web (entre outros serviços de uma rede), uma das formas de proceder a cifra dos dados é recorrendo ao protocolo SSL.
Sendo este o primeiro artigo relacionado com a certificação digital, hoje vamos apresentar alguns conceitos teóricos associados a este tema.
O SSL é um protocolo criptográfico baseado em cifras assimétricas (chave privada + chave publica) que tem como principal objectivo providenciar segurança e integridade dos dados transmitidos em redes inseguras como é o caso da Internet. Quando um utilizador acede a um site que recorre ao SSL, o servidor envia ao cliente a chave publica para que esta possa cifrar a informação que vai ser passada ao servidor. Quando o servidor recebe essa informação, usa a sua chave privada para decifrar a informação transmitida pelo cliente.
Existem várias aplicações para este protocolo, como por exemplo o comércio electrónico, servidores Web, servidores FTP, etc. Para identificar facilmente se estão a visualizar um site seguro basta verificar no URL que em vez de estar o normal http:// se encontra https://. Saber mais aqui.
Chave pública vs Chave privada
A chave pública, que está presente no certificado digital, é usada para cifrar os dados a serem enviados ao para o servidor. Já a chave privada, que só o dono do certificado conhece, serve para decifrar a informação que foi cifrada com a sua chave pública.
Certificado Digital
Um certificado é um documento digital que contém informação acerca de quem o possui, nome, morada, localidade, e-mail, duração do certificado, domínio (Common Name) e nome da entidade que assina o certificado. Contém ainda uma chave pública e um hash que permite verificar a integridade do próprio certificado (i.e se um certificado foi alterado).
Um certificado assenta numa estrutura hierárquica de confiança, cujo topo é pertença de uma Entidade Certificadora (CA Root Certificate).
Esta entidade certificadora confirma que o possuidor do certificado é quem afirma ser, e assina o certificado, impossibilitando desta forma a sua modificação. Em Portugal, como entidade certificadora temos como exemplo a multicert.
SSL
O protocolo SSL – Secure Socket Layer é um protocolo que foi desenvolvido pela Netscape com o objectivo de garantir transacções seguras entre um servidor web e um browser. O protocolo utiliza uma entidade certificadora para identificar o servidor ou o servidor e o cliente.
Openssl
O OpenSSL é uma implementação em código aberto dos protocolos SSL e TLS. Uma das funcionalidades consiste na criação de certificados X.509 que permitem confidencialidade em ligações com SSL (HTTPS) entre outros serviços. Os certificados digitais X.509 representam para o utilizador, o mecanismo de segurança mais visível no âmbito da certificação digital.
Depois de aprendermos alguns conceitos associados à certificação digital, num próximo artigo iremos aprender como criar certificados digitais para servidores e também para utilizadores. Estejam atentos.
Este artigo tem mais de um ano
Ok Pplware. Agora apanharam a minha atenção e estou ansioso para que lançem os próximos artigos deste tutorial. 😀
Deixo aqui a sugestão que incluam a maneira de configurar o Apache com os Cartões de Cidadão quando chegar a altura.
Infelizmente a documentação técnica dísponivel no site do cartão de cidadão só cobre Micro$oft IIS…
Cumprimentos a toda a Equipa e aos restantes readers 😀
Boas Pedro,
A ideia do próximo tutorial é “configurar” a estrutura da autoridade de certificação e produzir o respectivo certificado.
Mesmo sendo uma autoridade de certificação “caseira” dará para perceber como tudo funciona e também como implementar nos mais diversos serviços
Boas Pedro.
Sim. O self signed certificate é um bom começo 🙂
Força nisso 🙂
Mesmo o que eu andava à procura.
Pplware, sempre na vanguarda da informação 🙂
Fico a aguardar os próximos artigos.
PS.: irão também focar a questão dos eMails? ou só webservers?
Apenas está previsto a inclusão de certificados no Apache. Mas já que falas em servidores de e-mail, irei registar o pedido :).
Ainda ontem procurei isto.
Ia pedir-te, Pedro, que fosses rápido a postar os próximos 😀
Segunda-Feira já tenho cá fora o tutorial 2. Existem muitos tutoriais na Internet sobre este assunto, mas nunca encontrei nenhum que estivesse bem esquematizado e documentado. Assim, decidi trazer esta assunto até aqui ao Pplware 🙂
Boas
Obrigado pelas dicas e vem mesmo a calhar, porque estou a preparar um site para e-commerce e vou precisar de tudo que me ajude.
okapa, bora la! 🙂
Olá Pedro, uma pergunta, tens algum conhecimento de Prestashop?
Já agora fica aqui a sugestão para um próximo artigo. A utilização do PGP no email, ou de outro software com os mesmos objectivos. Os “policias do mundo”, mais conhecidos por americanos, é que ficam lixados da vida, pois ficam com a vida bem mais difícil. Vai daí, tem que ter mais potencia de processamento para quebrar códigos.
Muitos parabéns pelos excelentes posts que aqui coloca. Muitos deles já me deram imenso geito para a vida de trabalho e todos são de uma excelente qualidade.
Tenho uma curiosidade, você é o Pedro Pinto da Maia que dá aulas de redes?
Obrigado e continuação de um excelente trabalho
Gosto, mal posso esperar
Mal posso esperar pela 2º parte!
Mas para usarmos o protocolo https não temos de comprar a uma entidade de topo como verisign, etc? Ou podemos usar o protocolo sem esses certificados?
Boas Micael,
Sim e normalmente esses ja são reconhecidos pelos browsers. No entanto, caso não pretendas gastar dinheiro podes produzir os teus próprios certificados.
Muito obrigado!
Temos mesmo de ter uma root-CA para o icon no browser aparecer verde sem ter de instalar o certificado?
PS: Ainda uso o IE, só apareceu agora este post do pplware.