Segurança Digital: Certificados Digitais, o que são e como funcionam


Quando você faz uma compra em uma loja você recebe a nota fiscal, você vê a loja, os vendedores, conhece ela, conhece quem compra, ela faz propaganda em mídias conhecidas...isso tudo certifica você sobre sobre a autenticidade da loja, que ela é confiável.

E na Internet? Como você sabe quem está por trás daquele site ou daquele serviço? Como confiar? Como as grandes empresas confiam uma nas outras?
Neste artigo falo a respeito do Certificados Digitais, que é o meio que as pessoas, empresas e serviços usam para se 'reconhecer' como confiáveis na rede!


Fazer um site é fácil. Qualquer um pode fazer, clonar ou se passar por alguém, por alguma empresa ou por algum serviço.
Tendo noções de criptografia e chaves públicas e privadas, já publicas no blog, ao fim deste artigo você entenderá como funciona o mundo dos certificados digitais e verá sua importância.
Sabendo o que são e como funcionam, poderá criar os seus, nos próximos artigos.
Se ainda não tiver lido, leia, pois usaremos alguns conceitos destes:
Criptografia assimétrica e importância das chaves
Criptografia de chave pública e privada

E não é só as grandes empresas e indústrias que usam. O usuário comum pode precisar usar também.
Existem ferramentas para se criar e certificar certificados (?), que são usadas em serviços, como do Globus, que é uma ferramenta para computação em Grid, VPN, Apache e outros.
Nos próximos artigos ensinarei duas maneiras de criar certificados, através do OpenSSL e do SimpleCA.


Como há muitos serviços que usam certificados, usarei o exemplo do Globus, que é um Toolkit para Computação Distribuída, que usa os certificados para funcionar.
No Globus, você conecta vários computadores em rede e divide as tarefas entre estes usuários.

- O mercado de certificações


Todos os usuários e serviços do Grid são identificados via certificado.
Este contém todas as informações para identificação e autenticação do usuário/serviço. O Globus só funciona depois que cada usuário identifica o outro, sabe quem é e 'confia' nele.

Essa 'confiança' se dá através dos CA - Certificate Authority, ou seja, autoridades certificadores.
Elas emitem certificados, ou assinam os seus, que são, teoricamente, confiáveis.
Existem sites que vendem estes tipos de serviços e são bastante reconhecidos, como o www.certisign.com.br
Estes tipos de sites funcionam como uma rede de confiança.
Quando você contrata o serviço deles, eles entram em contato com você e realmente checam que você é você e assim você pode usar isso publicamente.
Elas existem na forma de empresas isoladas ou teia de confiança, que assinam só ou conjuntamente seus certificados.

Por exemplo, imagine que a Tia Rosy emitiu o 'CA da titia rOsY' no site dela, de graça e você usa isso para vender seu produto na Internet (alguns serviços de e-commerce e setores financeiros exigem certificados para funcionarem).
Quem vai confiar no certificado dela? Quem é ela? Ninguém ia confiar, ué.

Agora imagine uma autoridade certificadora que já trabalhou com o Google, a Globo.com, a Amazon, o Programação Progressiva...é claro que iriam confiar em uma autoridade certificadora que trabalhou com estes sites.
E existe esta rede de CAs, onde um 'certifica' o outro, ou seja, autentica a existência do outro.
O que é muito importante, pois assim podemos confiar mais nas empresas, já que não estamos vendo elas e muitas vezes elas nem existem fisicamente em nosso país ou nem existe fisicamente.

A criação de um certificado digital em uma empresa competente é um processo simples, primeiro porque você vai pagar, segundo porque elas já são especializadas nisso. Mas vai exigir algumas medidas de segurança, que exigem, dentre outras coisas, um encontro entre empresa e cliente.

Assim, antes essa afirmação que parecia ser boba agora faz sentido: os certificados certificam quem você é. Através do aval dessas entidades/empresas/teias, podemos confiar e saber que você realmente é quem diz ser e assim posso adquir seus serviços e comprar seus produtos.

Porém, alguns programas, como o Globus, exigem estes certificados, emitidos por CAs, para que possamos usar.
Isso é normal, por exemplo no projeto do LHC ou entre troca de informações entre grandes universidades.

Mas se você quiser montar sua grid em sua casa ou em sua faculdade. E aí, você vai pagar para estudar e fazer testes?
Claro que não. Como citei anteriormente, existem ferramentas que emitem e auto-assinam esses certificados para você usar de uma forma 'interna' e gratuita, em seu computador ou em sua rede.
Ensinarei como criar, configurar e usar tais certificados através das ferramentas OpenSSL e SimpleCA em próximos artigos.


Agora vamos voltar ao exemplo do Globus e entrar em detalhes como ocorre por trás dos panos essa identificação.

- Mútua autenticação


A mútua autenticação é quando as duas partes podem comprovar, por meio das CAs, quem elas dizem ser.
Para isso acontecer, as duas precisam ter certificados, sob mesmo padrão (como o X.509), estes precisam estar assinados por CAs e uma parte precisa confiar no certificado assinado do outro.
Após todo esse protocolo, as partes podem dar início a comunicação.

Geralmente, é usado o SSL - Secure Sockets Layer - pra autenticação desse protocolo (ou a TLS, sua versão mais nova).

Antes da autenticação ocorrer, as partes devem confiar nas CAs que assinam os certificados das outras, isso quer dizer que uma tem os certificados da CA da outra, que contém as chaves públicas das AC e então eles confiam que estes certificados realmente pertencem as CAs.

O passo-a-passo da autenticação é o seguinte:

  • A e B se conectam.
  • A dá seu certificado para B, com as informações para provar quem realmente ele é, além da chave pública de A e que Autoridade Certificadora está usando para atestar seu certificado. 
  • B primeiro vai checar se o certificado é válido através da assinatura digital da CA, que a CA é confiável e que o certificado não foi adulterado (Aqui entra a importância da CA que assinou o certificado).
  • Neste ponto B já checou o certificado de A, B precisa se certificar que A é a pessoa identificada pelo certificado. Para isso, B irá testar A através de uma mensagem aleatória e pedindo que A encripte-a.
  • A encripta a mensagem usando usa chave privada e envia de volta para B.
  • Se usando a chave pública, B obtiver a mesma mensagem aleatória gerada antes, ele saberá que A é realmente o mesmo do certificado.

O processo se repete para A se certificar de B, através do certificado de B para A, da validação por A e através da validação da mensagem encriptada.

Após isso, a autenticação mútua é concluída com a certeza da identidade um do outro.

Como verá em artigos futuros ao criar seus próprios artigos, estes contém informações como seu nome, e-mail, cidade, estado, país, nome da sua empresa, do seu grupo, possuem um período de validade, chave pública referente à chave privada especificada no certificado, assinaturas das entidades validando as informações etc.





Caso tenha interesse na área de Segurança Digital (um ramo promissor e muito interessante, além de essencial em todas as empresas) vale a pena conferir este Curso de Segurança Digital, que fala sobre:
- Invasões e sistemas bancários
- Cartões clonados
- Cavalo de Tróia de técnicas de invasão
- Vírus
- Técnicas e ferramentas de segurança e proteção

Clique aqui

Note que é um curso de segurança digital, não curso hacker, embora você vá aprender alguma das técnicas usadas por eles.


Nenhum comentário:

Veja também: