sexta-feira, outubro 06, 2006

Certificado Digital (continuação)

Como utilizar Certificados Digitais?

Após receber um Certificado Digital do Centro de Certificação Digital, você precisa instalá-lo nos aplicativos de software que utiliza. Normalmente, você o instala em seu navegador ou em seu aplicativo de e-mail (Consulte a seção "Como Fazer" na ajuda on-line para obter instruções completas). Depois de serem configurados corretamente, os aplicativos fazem a maior parte do trabalho para você, o que torna razoavelmente fácil o uso de Certificados Digitais. A forma de utilizar o Certificado Digital depende do motivo pelo qual você precisa de um:


  • Se você acessa sites ou aplicativos de rede que requerem seu Certificado Digital, você precisa digitar a senha de sua chave privativa para confirmar que seu certificado deve ser enviado por seu aplicativo. Este, ou o navegador, se encarrega do envio de seu Certificado Digital para o site ou aplicativo de rede (Naturalmente, este processo varia em função de qual aplicativo você está usando).
  • Ao enviar e-mails criptografados (seguros), você precisa recuperar os Certificados Digitais das pessoas com quem se comunica para, então, configurar seu aplicativo de e-mail e criptografar suas mensagens para essas pessoas. Depois de serem configuradas, todas as mensagens de e-mail, para estas pessoas, serão enviadas criptografadas. Alguns aplicativos de e-mail fazem com que você selecione uma opção quando desejar criptografar uma mensagem. Esta funcionabilidade varia dependendo do programa de e-mail que você utiliza.
  • Ao assinar digitalmente as mensagens, seu aplicativo de e-mail anexa seu Certificado Digital à mensagem de e-mail


Qual é o nível de segurança dos Certificados Digitais?


Os Certificados Digitais são muito seguros, desde que você não divulgue para ninguém sua chave privativa e sua senha. Pense em sua senha como a chave de um cofre. Se você é a única pessoa a possuir a chave, o conteúdo do cofre estará seguro. Entretanto, se você compartilhar a chave com outras pessoas, estará diminuindo a segurança do que está contido no cofre. Se alguém conseguir seu Certificado Digital, não poderá utilizá-lo a menos que tenha a chave privativa correspondente e a senha para esta. Antes que seu navegador envie seu Certificado Digital, ele lhe pedirá sua senha. Você deve digitar a senha para poder utilizar seu Certificado Digital.

Os Certificados Digitais também são apresentados em diversas intensidades. A intensidade menor é chamada de "40 bits," referindo-se ao tamanho da chave para o Certificado Digital. A intensidade maior é chamada de "128 bits". Se uma chave de 40 bits pode ser decifrada em 4 horas, para decodificar uma chave de 128 bits seria necessário mais tempo que a idade do universo.


Como proteger meu Certificado Digital?


Há várias coisas que você pode fazer para proteger seu Certificado Digital:

  • Lembre de suas senhas e não as compartilhe com outras pessoas.
  • Proteja seu computador de acesso não-autorizado, mantendo-o fisicamente seguro.
  • Por exemplo, tranque-o em um escritório. Quando sair de sua mesa, utilize um protetor de tela com senha ou desligue o computador.
  • Use produtos de controle de acesso ou recursos de proteção ao sistema operacional (como uma senha de sistema ou protetor de tela ativado por senha).
  • Tome medidas para proteger seu computador de vírus, porque um vírus pode atacar uma chave privativa.

Sua chave privativa é protegida de duas maneiras:

Quando você se inscreve para obter um Certificado Digital, seu navegador da Web cria uma chave privativa* que, em seguida, é armazenada no disco rígido do computador para que você possa controlar o acesso a ela. Ao gerar sua chave privativa, o software que você utiliza (como seu navegador), provavelmente, lhe pedirá uma senha. Esta senha protege o acesso a sua chave privativa. Para usuários do Microsoft Internet Explorer, sua chave privativa é protegida pela sua senha do Windows.

Um terceiro pode acessar sua chave privativa, bastando que tenha acesso ao arquivo onde sua chave está armazenada e conheça a senha da sua chave privativa. Alguns softwares lhe permitem optar por não ter uma senha para proteger sua chave privativa. Se você usar esta opção, estará confiando que ninguém, atualmente ou no futuro, tenha acesso não-autorizado a seu computador.

Em geral, é bem mais fácil usar uma senha do que proteger totalmente seu computador fisicamente. Não usar uma senha é como assinar com antecedência todos os cheques em seu talão e deixá-lo aberto em sua mesa. É sua responsabilidade proteger sua chave privativa. Qualquer pessoa que obtiver sua chave privativa pode falsificar sua assinatura digital** e tomar atitudes em seu nome!

* CHAVES PÚBLICAS E PRIVATIVAS Um Certificado Digital possui duas chaves que são usadas durante a criptografia de dados (embaralhamento de dados). As duas chaves coincidem perfeitamente, porém são utilizadas em par, de forma que uma chave desfaça o que a outra faz. Por exemplo, se uma chave criptografa uma mensagem, apenas a outra chave pode decriptografá-la.

A chave pública é usada por outras pessoas para lhe enviar e-mails criptografados. Ela também é usada para a autenticação de clientes, assegurando que o Certificado Digital não seja violado quando você o enviar do seu computador para um Web site.

A chave privativa é armazenada apenas no seu computador, através do seu navegador. Você nunca deve copiar ou enviar a sua chave privativa para ninguém. Dependendo do seu navegador e das configurações de segurança que você utilize, você pode ter uma senha associada a sua chave privativa. Isto é uma segurança a mais que você pode ter, de forma que, caso alguém pegue a sua chave privativa ou utilize o seu computador, não consiga utilizá-la (ou a seu Certificado Digital).

** ASSINATURA DIGITAL Uma assinatura digital é parecida com uma assinatura feita à mão, na medida em que dá validade a um documento vindo de você. Seu Certificado Digital é anexado a um formulário da web ou a uma mensagem de e-mail, os quais são enviados tanto em texto puro como criptografado.

Depois de decriptografar a mensagem com seu Certificado Digital, o destinatário compara o texto puro com o criptografado. Se as duas mensagens forem iguais, ele pode ter certeza que as informações enviadas realmente vieram de você, e não de outra pessoa. Ele também sabe que você deve ter aprovado tais informações, já que foram enviadas utilizando o seu Certificado Digital.


Como funciona a criptografia?


Criptografia é o processo de embaralhamento de informações. Existem muitas maneiras diferentes (e complicadas) de codificar e decodificar informações. Esta seção oferece uma breve descrição sobre o que é criptografia, sem aprofundar-se em detalhes técnicos. Existem duas finalidades básicas para a criptografia na Internet. Uma, quando você visita um site "seguro" da Web, como uma loja que efetue transações on-line ou um shopping center. Esta é a chamada criptografia através do servidor (server-side encryption), pois utiliza o Certificado Digital dado ao servidor (computador) que gerencia o site da Web. A outra ocorre quando você envia ou recebe mensagens criptografadas. Em ambos os casos, é necessária a permuta de chaves públicas.

Ao criptografar informações, o processo é feito com uma chave pública e, em seguida, desfeito com a correspondente chave privativa. Pense nisso como um cofre que necessita de duas chaves, uma para fechar e outra para abrir. Por exemplo, quando você visita um site "seguro" da Web, o seu computador recebe a chave pública deste site. Quando seu computador envia informações para o mesmo site, ele as criptografa usando a chave pública do site visitado. A única maneira de decriptografar as informações enviadas é usando a chave privativa do site.

O mesmo processo é necessário para um e-mail seguro. Antes que se possa enviar para alguém uma mensagem criptografada, você precisa do Certificado Digital dessa pessoa contendo sua chave pública. Seu aplicativo de e-mail usa esta chave pública para criptografar a mensagem. Deste ponto em diante, somente a chave privativa desta mesma pessoa pode decriptografar a mensagem. Assim sendo, você pode distribuir seu Certificado Digital (e sua chave pública) para quantas pessoas quiser, sem comprometer a integridade de seu Certificado. Entretanto, você não deve divulgar sua chave privativa a ninguém, uma vez que ela é necessária para decriptografar qualquer mensagem que lhe for enviada.

Há mais um ponto importante: Confiança. Muitas CAs diferentes podem oferecer Certificados Digitais. Os aplicativos que você usa são configurados para confiar em certificados vindos de um pequeno número de empresas com sólida reputação. Sendo assim, caso alguém lhe envie seu Certificado Digital (via e-mail ou por um site que você visite) e ele for de uma fonte não confiável, segundo seu aplicativo, aparecerá uma mensagem perguntando se você deseja confiar nesta CA.


O que é infra-estrutura de chave pública (PKI)?


A PKI refere-se a um processo que utiliza chaves públicas e Certificados Digitais para garantir a segurança do sistema e confirmar a identidade de seus usuários. Por exemplo, uma empresa pode usar a PKI para controlar o acesso a sua rede de computadores. No futuro, as empresas poderiam usar a PKI para controlar o acesso a tudo, desde a entrada nos prédios até a obtenção de mercadorias. A PKI permite que pessoas e empresas realizem negócios em particular. Os funcionários podem enviar e-mails pela Internet com segurança, sem se preocupar com a sua interceptação por um concorrente. As empresas podem construir sites privativos, enviando informações somente para clientes conhecidos.

A PKI baseia-se em um sistema de confiança, no qual duas partes (pessoas ou computadores) confiam mutuamente em uma CA (Autoridade Certificadora) para verificar e confirmar a identidade de ambas as partes. Por exemplo, a maioria das pessoas e empresas confia na validade de uma carteira de habilitação de motorista ou em um passaporte. Isto ocorre porque elas confiam na forma pela qual o governo emite estes documentos. Entretanto, uma caderneta de estudante é normalmente aceita como prova de sua identificação apenas para a escola que a emite. O mesmo vale para os Certificados Digitais.

Com a PKI, ambas as partes de uma transação (seja ela um banco on-line e seus clientes ou um empregador e seus funcionários) concordam em confiar na CA que emite seus Certificados Digitais. Normalmente, o aplicativo de software que utiliza seu Certificado Digital tem algum mecanismo para confiar nas CAs. Por exemplo, um navegador contém uma lista das CAs em que confia. Quando é apresentado ao navegador um Certificado Digital (por exemplo, de um shopping on-line realizando comércio seguro), ele consulta a CA que emitiu o Certificado Digital. Se a CA estiver na lista de CAs confiáveis, o navegador aceita a identidade do site da Web e exibe a página da Web. Entretanto, se a CA não estiver na lista de CAs confiáveis, o navegador exibe uma mensagem de aviso que lhe pergunta se você deseja confiar na nova CA. Geralmente seu navegador lhe dá opções para confiar permanente ou temporariamente na CA ou não confiar em absoluto. Como usuário, você tem controle sobre em qual(is) CA(s) deseja confiar, porém o gerenciamento da confiança é feito pelo aplicativo de software (neste exemplo, pelo navegador).


Como funciona a autenticação de cliente?

A autenticação de cliente descreve o processo de confirmação de identidade feito pelo computador. O exemplo a seguir mostra como um site da Web pode utilizar a identificação de cliente, embora este processo não se limite à Internet e possa ser utilizado por aplicativos de rede, entre outras opções. Em geral, o processo é o mesmo. Quando você acessa um site que requer um Certificado Digital, seu navegador apresenta seu Certificado Digital a este site. Ele visualiza a informação contida em seu certificado e determina o que você tem permissão para fazer. (Os Certificados Digitais usados para a identificação de clientes, às vezes, são chamados de certificados de cliente).

Dependendo do navegador que você utilizar, você poderá ter que confirmar que deseja apresentar seu Certificado Digital ao site. Geralmente, você verá uma caixa de diálogo solicitando a senha do Certificado (a mesma de sua chave privativa*). Ao digitar a senha, o navegador envia seu certificado ao site. É importante proteger sua senha, pois se outra pessoa conhecê-la e tiver acesso a seu computador, poderá acessar informações particulares,facilmente, ou passar-se por você on-line.

Depois que o site visualiza seu Certificado Digital, ele verifica a validade do mesmo (se está vencida, por exemplo). O site também pode verificar quem emitiu o Certificado Digital, pois se o servidor não confiar na autoridade certificadora (CA) em questão, seu acesso ao site poderá ser recusado. Por isso, é importante utilizar uma CA de boa reputação.

O site pode utilizar qualquer informação do Certificado Digital para determinar seu nível de acesso, ou seja, o que você tem permissão ou não para acessar. Seu Certificado Digital contém algumas - ou todas - das seguintes informações a seu respeito:

  • Sua chave pública (veja O que é uma chave de Certificado Digital?);
  • Seu nome;
  • Data de validade da chave pública;
  • Nome da companhia (CA) que emitiu seu Certificado Digital;
  • Número de série do Certificado Digital;
  • Assinatura digital da CA;
  • Informações diversas solicitadas pela CA;

Depois que o site da Web confirma sua identidade, você pode ter acesso ao site. Alguns aplicativos de rede ou de sites utilizam as informações do seu Certificado Digital para personalizar as informações apresentadas a você. Essa personalização, às vezes, é chamada de controle de acesso, mas, não confunda controle de acesso com autenticação de cliente. A autenticação de cliente apenas comprova sua identidade.

*CHAVES PÚBLICAS E PRIVATIVAS Um Certificado Digital possui duas chaves que são usadas durante a criptografia de dados (embaralhamento de dados). As duas chaves coincidem perfeitamente, porém são utilizadas em par, de forma que uma chave desfaça o que a outra faz. Por exemplo, se uma chave criptografa uma mensagem, apenas a outra chave pode decriptografá-la.

A chave pública é usada por outras pessoas para lhe enviar e-mails criptografados. Ela também é usada para a autenticação de clientes, assegurando que o Certificado Digital não seja violado quando você o enviar do seu computador para um Web site.

A chave privativa é armazenada apenas no seu computador, através do seu navegador. Você nunca deve copiar ou enviar a sua chave privativa para ninguém. Dependendo do seu navegador e das configurações de segurança que você utilize, você pode ter uma senha associada a sua chave privativa. Isto é uma segurança a mais que você pode ter, de forma que, caso alguém pegue a sua chave privativa ou utilize o seu computador, não consiga utilizá-la (ou a seu Certificado Digital).


Como funciona uma assinatura digital?


Quando você utiliza um aplicativo para assinar digitalmente uma mensagem, basicamente, você anexa a parte pública do seu Certificado Digital à mensagem, juntamente com outras informações que garantem a integridade do seu e-mail. Antes da mensagem de e-mail e o Certificado Digital serem enviados, a mensagem passa por um processo de codificação chamado algoritmo hash, através do qual a mensagem que você está enviando é utilizada para gerar matematicamente um conjunto de caracteres (letras e números), que só poderiam ser criados especificamente pela sua mensagem. Esse conjunto leva o nome de message digest (resumo da mensagem).

Vale a pena ressaltar que o algoritmo hash funciona rapidamente numa direção, mas é muito difícil de funcionar na direção inversa. Ou seja, o seu aplicativo de e-mail pode pegar a mensagem, aplicar o algoritmo hash e criar rapidamente um resumo exclusivo da mensagem. Entretanto, se este recebesse a mensagem resumida, levaria anos para decodificá-la.

Uma vez criado o message digest pelo seu e-mail, este usa sua chave privativa para criptografá-lo. Isto é crítico. Se você enviasse o e-mail, mais o message digest, alguém poderia facilmente alterar o seu texto, recriar a mensagem resumida e, em seguida, enviá-la como se fosse você.
Seu programa manda o e-mail com o Certificado Digital e o message digest criptografado como anexos. Observe que o texto do e-mail não está criptografado. Assim, alguém ainda seria capaz de ler o conteúdo de sua mensagem.

Quando alguém recebe seu e-mail, o aplicativo dessa pessoa utiliza a sua chave pública para decriptografar o message digest. Sendo assim, este aplicativo executa o texto de seu e-mail pelo mesmo algoritmo hash que o seu aplicativo de e-mail utilizou, comparando os resultados. Se o message digest criado agora for igual ao anexado ao seu e-mail, isto indica que seu texto não foi indevidamente alterado entre o seu envio e o recebimento.

Para obter mais informações, consulte Chaves públicas e Privativas.


Como funciona o e-mail seguro?


Você pode usar o e-mail seguro para fazer o seguinte:

Assinar digitalmente uma mensagem para que o destinatário possa verificar se ela partiu de você e não de um impostor. A assinatura de uma mensagem também garante a integridade desta, ou seja, que ninguém a adulterou.

Criptografar uma mensagem para que ninguém possa lê-la enquanto ela percorre o trajeto entre o seu computador e um outro. Você pode configurar a maioria dos aplicativos de e-mail para assinar ou criptografar automaticamente suas mensagens ou, se preferir, pode fazê-lo manualmente, uma a uma.


Que aplicativos utilizam os Certificados Digitais?

Os Certificados Digitais são compatíveis com o Netscape Navigator 3.0, e versões mais avançadas (no Win 95, NT, Sun Solaris 2.5x, 2.6, SGI Irix 6.x e HP-UX 10.20) e também com o Microsoft Internet Explorer 3.02, com atualização authenticode, ou versões mais avançadas da atualização 2.0 (no Win95 e Win NT 3.5.x ou posteriores em plataforma x86.) Para assinar e criptografar e-mail, os Certificados Digitais são compatíveis com Netscape Messenger, Microsoft Outlook e Outlook Express, e também com qualquer outro S/MIME (Secure Multipurpose Internet Mail Extensions) aplicativos de e-mail habilitados, como o Deming, Frontier, Pre-mail, Opensoft, Connectsoft e Eudora.

Os pacotes de navegador da Web mais recentes (o Netscape Communicator e Microsoft Internet Explorer), têm aplicativos de e-mail (Netscape Messenger e Microsoft Outlook Express), dessa forma, os Certificados Digitais obtidos através desses pacotes podem ser utilizados tanto para o e-mail como para a Web. Se você está utilizando um aplicativo de e-mail diferente do Netscape Messenger ou do Microsoft Outlook Express, deve obter seu Certificado Digital através do fornecedor de seu programa de e-mail.


Como se usa as chaves de Certificado Digital?


Os usuários devem ser capazes de obter seu Certificado Digital com segurança, para que possam lhe enviar e-mails criptografados. Do mesmo modo, você precisa de uma forma para pesquisar os Certificados Digitais deles. Você pode enviar uma mensagem de e-mail assinada digitalmente para as pessoas de quem deseja receber mensagens criptografadas. E também pode fazer com que elas lhe enviem mensagens assinadas para que você possa obter seus Certificados Digitais.

Além disso, é possível pesquisar Certificados Digitais em diversos diretórios. O Centro de Certificação Digital contém um recurso de pesquisa que lhe permite localizar Certificados Digitais que pertencem a você e a outras pessoas em sua organização.


O que acontece quando uma chave perde a validade?


Para obter proteção contra um ataque à força bruta, toda chave tem um ciclo de vida, após o qual ela não poderá mais será usada. A data de validade é armazenada na chave pública de um Certificado Digital. Todo navegador ou aplicativo de e-mail verifica a validade de um Certificado Digital, certificando-se de que a data em que você receber o Certificado Digital (e as informações que ele está protegendo) consta das datas válidas. Isto significa que, quando sua própria chave vence, tudo que você assinou com ela não será mais válido.

Uma vez expirado o ciclo de vida, você precisará renovar seu Certificado Digital através do Centro de Certificação Digital.


O que é um algoritmo hash?

Uma função hash é uma equação matemática que utiliza texto (tal como uma mensagem de e-mail) para criar um código chamado message digest (resumo de mensagem). Alguns exemplos conhecidos de funções hash: MD4 (MD significa message digest), MD5 e SHS.

Uma função hash utilizada para autenticação digital deve ter certas propriedades que a tornem segura para uso criptográfico. Especificamente, deve ser impraticável encontrar:

  • Texto que dá um hash a um dado valor. Ou seja, mesmo que você conheça o message digest, não conseguirá decifrar a mensagem.
  • Duas mensagens distintas que dão um hash ao mesmo valor.

A capacidade de descobrir uma mensagem que dê um hash a um dado valor possibilita a um agressor substituir uma mensagem falsa por uma mensagem real que foi assinada. Permite ainda que alguém rejeite de forma desleal uma mensagem, alegando que, na realidade, ele ou ela assinou uma mensagem diferente, dando um hash ao mesmo valor e violando assim a propriedade de não-repúdio das assinaturas digitais.

A capacidade de descobrir duas mensagens distintas que dêem um hash ao mesmo valor possibilita um tipo de ataque no qual alguém é induzido a assinar uma mensagem que dá um hash ao mesmo valor como sendo outra mensagem com um conteúdo totalmente diferente.


O que é um resumo de mensagem (message digest)?

Um resumo de mensagem (message digest) é o resultado obtido com a execução de um texto (tal como uma mensagem de e-mail) por meio de um algoritmo hash. Em resumo, um message digest representa uma mensagem ou documento de maior extensão. Você pode pensar em um message digest como a "impressão digital" de um documento maior. Ele é usado para criar uma assinatura digital que será exclusiva de um determinado documento.

Um message digest não revela o conteúdo de um documento. Isto é, mesmo que você consiga visualizar o message digest, não será capaz de imaginar o que a mensagem original contém.

MD2, MD4 e MD5 (MD significa Message Digest) são funções hash, destinadas especificamente ao uso criptográfico. Elas geram digests de 128 bits.


O que implicaria o uso de um certificado “wildcard”?

Um certificado digital não é apenas uma forma de proteger os dados em transações na Internet. É também uma identificação digital de sua empresa. Quando você utiliza um certificado "wildcard" emitido para uma outra organização, o cliente que for fazer uma transação com a sua empresa não terá a garantia de estar realmente enviando as informações para a empresa correta. Isso faz com que muitas pessoas, ao verificarem que foram redirecionadas para um outro domínio, onde o nome da organização listado no certificado não é o da organização com quem estão lidando, fiquem inseguras e desistam da transação.

A própria Microsoft não aprova a utilização destes certificados, pois em muitas versões do Internet Explorer o cliente recebe um erro ao tentar acessar um site com um certificado "wildcard".

2 comentários:

Raquel Ohashi disse...
Este comentário foi removido pelo autor.
Raquel Ohashi disse...

Olá, Prof Martim.
Eu trabalho com php e nós estamos querendo adicionar a assinatura digital num sistema feito todo em php que usamos aqui, para teste nós temos um cartão (e-cpf) e uma leitora de smartcard. Existe a possibilidade de fazer a autenticação via web e em php? Já pesquisei sobre isso, mas não encontrei muita coisa.