SSL (Secure Socket Layer) – O que é?
Ouvimos falar cada vez mais no protocolo SSL, no tal cadeado que devemos ter a validar a segurança das páginas web. Mas afinal de que se trata este protocolo SSL?
Começamos por abordar o assunto referindo que SSL é um protocolo criptográfico baseado em cifras assimétricas que providencia segurança e integridade dos dados transmitidos em redes TCP/IP, como a Internet. Mas vamos saber mais.
Este protocolo ajuda a prevenir que entre as duas pontas da comunicação não exista nenhum acesso indevido ou falsifiquem os dados transmitidos, ou seja, apenas o emissor e o receptor é que podem ver a mensagem transmitida.
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://. Na primeira visualização de um site seguro aparece sempre uma janela para aprovação do certificado do site visualizado.
Esses certificados servem para validar a Autenticidade do site visitado. Os certificados têm uma hierarquia, a que no topo estão as chamadas Autoridades Certificadoras (CA) que fazem o papel de notário.
Passando agora á parte de criptografia do protocolo. Como disse anteriormente, este protocolo baseia-se em criptografia assimétrica, sendo esta baseada na dificuldade de determinar o número de números relativamente primos a um inteiro n.
Existem vários algoritmos de criptografia assimétrica, entre os quais se destacam:
Algoritmo Deffie-Hellman, que foi lançado por Whithfield Deffie e Martin Hellman em 1976 e tem como objectivo obter um número secreto K, partilhado entre A e B, sem ter que o comunicar. Este algoritmo baseia-se em funções irreversíveis e na dificuldade em fracturar números resultantes do produto de números primos grandes.
E o algoritmo RSA que foi publicado por três investigadores do MIT (Massachusetts Institute of Technology) Rivest, Shamir e Adleman em 1978. Este algoritmo baseia-se na dificuldade de encontrar a função inversa da aplicada que só é obtida se soubermos as duas chaves.
Existem dois tipos de chaves, as chaves públicas, que como o nome indica são de domínio público, ou seja, toda a gente sabe. E as chaves privadas que são aquelas que ninguém pode descobrir.
As mensagens são cifradas com a chave pública do servidor e só podem ser decifradas com a chave privada correspondente.
Este algoritmo tanto pode ser usado para cifrar, como para assinar.
Nota1: Por motivos de segurança, este protocolo nunca pode ser usado para os dois propósitos em simultâneo.
Nota2: Por motivos de segurança o tamanho das chaves, convém ser maior que 1024 bits.
Passando agora a parte prática do protocolo.
Para criarem um certificado para o vosso servidor, apenas tem que seguir os seguintes passos:
1 – Descarregar do pacote de SSL previamente configurado por mim.
2 – Abrir uma consola e executar os seguintes comandos por ordem:
2.1 – vars ( Este “script” irá carregar para memória as configurações de SSL, por exemplo, tamanho das chaves, etc.)
2.2 – clean-all (Este “script” apaga todos os ficheiros da pasta “keys” com a extensão *.old, e se não existir uma pasta “keys” ele adiciona-a na dentro da pasta do pacote de SSL)
Nota3: A pasta keys irá conter as chaves e os certificados criados.
2.3 – build-ca (Este “script” permite criar uma Autoridade Certificadora, para assinar os certificados.)
2.4 – build-key-server nomeServer (Este “script” permite criar a chave e o certificado para o servidor. É necessário colocar o “Common Name” com o URL do servidor)
Nota4: Os “Common Name” dos certificados, não podem ser repetidos.
Parabéns, conseguiram criar o vosso primeiro certificado de SSL, agora só precisam de configurar os servidores para usarem este certificado.
Se eventualmente quiserem fazer um certificado para um cliente apenas é necessário correr na directoria do pack os comandos: 1- vars 2- build-key nomeCliente
Obs: Não esquecer que o “Common Name” não pode ser repetido.
Por agora fico-me por aqui. Mais à frente abordaremos mais informação relaccionada com os SSL. Fiquem atentos.
NOTA: Password para abriri o .rar = www.pplware.com
Download: SSL-pack [1.11MB]
Este artigo tem mais de um ano
Um artigo para guardar nos favoritos, boas referências e explicação. Parabéns
excelente!!!!
Muito bom!!!
já está guardado!!!
O pack por mim configurado :
http://rapidshare.com/files/212254985/SSL-pack.zip.html
Ainda bem que gostaram, mais sobre SSL estará para vir. =D
Cumprimentos
O pack por mim configurado :
h**p://rapidshare.com/files/212254985/SSL-pack.zip.html
Ainda bem que gostaram, mais sobre SSL estará para vir. =D
Cumprimentos
Muito bom post… Muito útil!
Abraço,
———-
http://www.best-cine.com/
A nota 1 não corresponde à verdade: é possível assinar e encriptar uma mensagem em simultâneo. Em qualquer dos casos descritos, as chaves privadas nunca são partilhadas, logo não existem problemas de segurança. No caso da nota 1, usa-se a chave pública do destinatário e a nossa chave privada…
Exacto…
http://truquestelemoveis.blogspot.com/
@Ricardo
Tens razão, o que queria dizer não era nesse sentido, é no sentido em que não convém usar o mesmo algoritmo para cifrar e assinar, pois evita ataques.
@Francisco Aragão
Parabéns pelo artigo.
Para o tornar mais completo falta referir um 3º algoritmo de chave pública, o “Elliptic curve” (http://en.wikipedia.org/wiki/Elliptic_curve_cryptography).
Bem visto, estes comentários são um importante complemento ao artigos… muito bom 😉
Bom artigo..que se incentive mais desse tipo..
Engraçado que nesta altura tou eu a dar segurança aplicada a redes digitais… : )
Não dá para fazer o download.
Download SSL-pack
http://www.megaupload.com/?d=OHNVJ58X
Cumprimentos
Para se ter melhor uma ideia dos diversos algoritmos de chave pública e as suas funcionalidades:
cifragem e Assinaturas Troca de
Algoritmo decifragem digitais chaves
RSA Sim Sim Sim
Elliptic Curve Sim Sim Sim
Diffie-Hellman Não Não Sim
DSS Não Sim Não
DSS = Digital Signature Standard
Na tabela que se segue apresenta-se o tamanho da chave (em bits) entre diferentes tipos algoritmos comparável em termos de computação necessária para criptoanálise (disciplina da criptografia que estuda como quebrar algoritmos de cifragem com vista a aumentar a sua robustez)
Algoritmos Algoritmo de chave pública Algoritmo de chave pública
simétricos Elliptic Curve Cryptography RSA/DSA
56 112 512
80 160 1024
112 224 2048
128 256 3072
(Informação retirada do livro “Cryptography and Network Security Principles and Practices” de William Stallings)
PS. Espero que a formatação das tabelas não se perca 🙂
como eu temia, a formatação da tabela perdeu-se, o que torna impossível a sua interpretação.
@Vitor M. – é possível corrigir a formatação das tabelas?
Finalmente um artigo onde se fala de criptografia e não se vê palavras como “encriptar” ou “desencriptar”.
Parabéns, gostei.
cumps