SSL (Secure Socket Layer)

Por Francisco Aragão para o Pplware
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.

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]

  
     Pin It  

Arquivado na categoria: Informação


17 Comentários

  1. Um artigo para guardar nos favoritos, boas referências e explicação. Parabéns

  2. excelente!!!!

    Muito bom!!!

    já está guardado!!!

  3. 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

  4. 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

  5. Muito bom post… Muito útil!

    Abraço,

    ———-

    http://www.best-cine.com/

  6. 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…

  7. @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.

  8. @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).

  9. Bem visto, estes comentários são um importante complemento ao artigos… muito bom ;-)

  10. Bom artigo..que se incentive mais desse tipo..

  11. Engraçado que nesta altura tou eu a dar segurança aplicada a redes digitais… : )

  12. Não dá para fazer o download.

  13. Download SSL-pack

    http://www.megaupload.com/?d=OHNVJ58X

    Cumprimentos

  14. 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 :)

  15. 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?

  16. Finalmente um artigo onde se fala de criptografia e não se vê palavras como “encriptar” ou “desencriptar”.

    Parabéns, gostei.

    cumps

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste site reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.