Desenvolvimento - ASP. NET

ASP.NET - Utilizando SSL (Secure Socket Layer)

Com esse artigo você conseguira incluir em seu site os mesmos recursos de segurança já usados nos sites de comercio eletrônico no que diz respeito a SSL...

por Ramon Durães



Introdução

Lendo os fóruns de asp.net tenho observado que existe muitas perguntas sobre como estabelecer um canal seguro de comunicação para efetuar transações com segurança na internet sem expor informações criticas, como senhas e dados de cartão de credito. Com esse artigo você conseguira incluir em seu site os mesmos recursos de segurança já usados nos sites de comercio eletrônico no que diz respeito a SSL.

O que vem a ser realmente o SSL?
É um protocolo utilizado para garantir a segurança na comunicação entre o servidor web e o browser do cliente. Atualmente recomenda-se utilizar uma chave de 128 bits para garantir um alto poder de criptografia entre as informações enviadas do browser para o servidor e vice-versa. Ou seja toda comunicação estará codificada. Impedido que pessoas procurem obter esses dados por meios de dumps!

Como saber se você está usando SSL ?
Verifique se o cadeado do browser está fechado e se na url consta o https:// . O acesso ao SSL utiliza porta 443 do servidor web.

Quando é o momento de se utilizar o SSL?
Quando você ou seu cliente for trafegar com informações que são altamente restritas e não pode correr o risco de serem interceptadas por terceiros.

Qual referencia no servidor para associar ao certificado ?
O certificado fica associado ao nome da maquina (CommonName), então para registrar o certificado você precisa definir qual é a url que vai utilizar. www.seunome.com.br ou seguro.seunome.com.Br , então o certificado somente ficara valido nesse endereço.

O que é o CSR e como faço para obter ?
CSR é a chave pública gerada pelo seu servidor que será encaminhada para uma empresa certificadora, que emite certificados digitais. Nos próximos passos demonstraremos como gerar a CSR.

Como posso realizar algum teste com certificado sem ter que pagar ?
Bem quase todos os fornecedores de certificados oferecem uma versão trial do certificado para que você possa instalar em seu servidor e testar a vontade.

Vamos agora ver passo a passo tudo que tem que ser feito para gerar um certificado e instalar no servidor.


Figura 01 - Propriedades do site web


Figura 02 - Criando novo certificado


Figura 03 - Inicio


Figura 04 - Para certificado de teste não marque essa opção, use chave de 512 bit

Figura 05 - Nome da Organização


Figura 06 - Entre com o nome completo do seu site, ou no meu caso tou usando nome da minha maquina


Figura 07 - Não use acentos nem nomes "abreviados"


Figura 08 - Nome do arquivo CSR


Figura 09 – CSR GERADA ( C:\certreq.txt )


Pronto! Você acabou de gerar sua CSR, veja o conteúdo do arquivo conforme modelo:

Arquivo:> c:\certreq.txt


-----BEGIN NEW CERTIFICATE REQUEST-----
MIICtjCCAmACAQAwYDEOMAwGA1UEAxMFcmFtb24xDjAMBgNVBAsTBU11dGV4MQ4w
DAYDVQQKEwVNdXRleDERMA8GA1UEBxMIU2FsdmFkb3IxDjAMBgNVBAgTBUJhaGlh
MQswCQYDVQQGEwJCUjBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDe7fuuhWIYhyv5
goDWy1oDI4xx2P85/Qttb5xU7aFvPYF7XSCY6wTxYQ8AeYiGHZfoBUJAlqZnqUGY
-----END NEW CERTIFICATE REQUEST-----

Agora você precisa acessar os fornecedores de certificados para solicitar seu certificado trial.
Para fins de exemplo vou utilizar o http://www.certsign.com.br como exemplo.


Obtendo certificado SSL TRIAL
Nós utilizaremos a url abaixo como modelo
https://digitalid.certisign.com.br/trial/trialserver/index.html


Figura 010 - Tela Inicial
Figura 011 - Inserindo CSR gerada anteriormente


Figura 012 - Confirme os dados e complete as informações requisitadas


Figura 13 - Tela final.

Como esse certificado é de teste você deve instalar um certificado adicional no navegador. Isso somente ocorrerá com certificado trial.



Figura 14 - Mensagem de instalação do certificado de teste.


Parabéns, feito esses passos você deve está recebendo por e-mail o certificado digital que precisa ser inserido no seu servidor conforme modelo abaixo:

-----BEGIN CERTIFICATE-----
MIIDajCCAxSgAwIBAgIQHe8qRLq8o/Ppgra85X7GRDANBgkqhkiG9w0BAQUFADCB
qTEWMBQGA1UEChMNVmVyaVNpZ24sIEluYzFHMEUGA1UECxM+d3d3LnZlcmlzaWdu
LmNvbS9yZXBvc2l0b3J5L1Rlc3RDUFMgSW5jb3JwLiBCeSBSZWYuIExpYWIuIExU
-----END CERTIFICATE-----

Agora voltaremos ao Servidor web para adicionar o certificado final.


Figura 15 – Processando solicitação

Observe que o assiste pergunta se quer processar uma solicitação pendente, seria aquela CSR que geramos.
Copie o conteúdo da chave que veio no email e salve em um arquivo texto, será solicitado na próxima tela.
Depois de informar a localização de seu arquivo com o certificado será mostrada a tela abaixo:


Figura 16 – Tela final, confirmando certificado.

Testando seu certificado
Abra agora seu browser na url que você registrou o certificado, neste exemplo minha url será: https://ramon


Como posso obrigar a somente acessar minha pagina via certificado?

Você deve configurar a pasta de sua aplicação, segurança da pasta, editar, e marcar a opção requer canal seguro (SSL) conforme Figura 17


Figura 17 – Configurando para aplicação somente ser acessada via SSL


Após configurar que sua aplicação necessita de um canal seguro, tipo SSL, o usuário que tentar acessar sem usar o https, vai ter a seguinte mensagem mostrada na figura 18


Figura 18 – Mensagem de erro por acessar uma aplicação de acesso restrito via SSL


Lembre sempre que o acesso normal do usuário é via porta tcp 80, e que o acesso do usuário usando SSL é via porta 443. Portanto caso possua firewall o mesmo deve prever acesso a essas duas portas.

Posso fazer alguma coisa para que o usuário já acesse minha pagina segura sem precisar digitar o https?
Sim, você pode colocar uma pagina padrão que redireciona para a pagina de acesso já usando https, conforme exemplo abaixo:

o usuário digita: http://ramon (
Porta 80)
e a pagina padrão redireciona ele para https://ramon/aplicacao (
Porta 443)
Exemplo da pagina default.aspx



Links para fornecedores de SSL e projetos relacionados.

http://www.certisign.com.br
http://www.instantSSL.com
http://www.thawte.com
http://www.geotrust.com
http://www.verisign.com e o
http://www.openSSL.org , projeto de SSL gratuito.

Finalizando

Em suma é muito importante o uso do SSL para oferecer segurança na troca de informações. E nesse passo a passo, você observou como é simples utilizar o SSL em conjunto com servidor Microsoft IIS.

Ramon Durães

Ramon Durães - Especialista em desenvolvimento de software e Microsoft Most Valuable Professional (MVP) em Visual Studio Team System. Realiza treinamentos de .NET Framework em empresas, consultoria em arquitetura de software e implantação de Visual Studio Team System. Palestrante nos principais eventos da Microsoft no Brasil (Tech-Ed 2005, Tech-Ed 2006, Tech-Ed 2007, Tech-Ed 2008, Tech-ED 2009), Microsoft Innovation Days 2007 (Salvador, Brasília, Recife, Goiânia, Natal, Maringá), Microsoft Innovation Days 2009 (Salvador) , Campus Party Brasil 2009 e eventos regionais relacionados a grupos de usuários e universidades. Conhecido autor de artigos para os principais portais de conteúdo e autor de 10 publicações eletrônicas em CD (Video-Aula) pela editora Linha de Código além dos livros "Desenvolvendo para web usando o Visual Studio 2008" e "Gerenciando projetos de software usando Visual Studio Team System" pela editora Brasport. Pode ser encontrado em seu blog http://www.ramonduraes.net e @ramonduraes no Twitter.