Back-End

23 jun, 2007

Criptografia de Dados – Parte 03 (Chaves Públicas, Segurança em E-mails e formas de ataques)

Publicidade

Bem-vindos, mais uma vez, amigos leitores do iMasters. Estamos de volta com a terceira e última parte dos nossos estudos sobre a Cifragem de Dados. Nessa altura dos nossos estudos podemos dizer que já conhecemos muita coisa sobre criptografia de dados. Aprendemos a origem, vimos os componentes, aprendemos também os termos técnicos, os níveis de criptografias, vimos algumas curiosidades e também já escrevemos a palavra Segurança de formas diferentes usando criptografias diferentes. Agora vamos falar sobre as estrutura de chaves públicas (Public Key Infrastructure), um pouco sobre a segurança na troca de mensagens eletrônicas e também sobre formas de ataque à cifragem de dados. Vamos começar?

Afinal de contas o que é uma Public Key Infrastructure?

Simples! Public Key Infrastructure é uma infra-estrutura composta de programas, procedimentos, protocolos de comunicação, políticas de segurança e mecanismos de criptografia de chave pública interagindo de forma a permitir que indivíduos dispersos possam se comunicar com segurança. A PKI provê autenticação, confidencialidade, integridade e não repúdio. É um sistema híbrido composto por algorítimos e métodos simétricos e assimétricos. Uma PKI é composta por autoridades de certificação(CA), autoridades de registro(RA), certificados digitais, chaves e usuários. Cada pessoa que queira participar de uma PKI precisa de um certificado digital.

Alguns conceitos:
  1. Autoridade Certificadora (CA) – É uma Organização confiável que mantém e emite certificados digitais.
  2. Autoridade Registradora (RA) – É a Organização que checa a veracidade das informações do solicitante do certificado e após confirmação, repassa para a CA.
  3. Certificado Digital – É uma das partes mais importantes da PKI. É a chave pública de um indivíduo com a “assinatura” de uma CA. É produzido seguindo o padrão X.509v3.

Segurança na troca de e-mails

Assim como funciona com cada ser humano que possui uma impressão digital única, a segurança na troca de e-mail também busca uma forma única de identificar cada usuário que envia ou recebe uma mensagem eletrônica. Esse sistema é chamado de One way hashing que é a função que a partir de uma infomação de tamanho variável produzir uma outra de tamanho fixo denominado hashing value ou message digest que representa a informação original. O objetivo é criar uma impressão digital da mensagem. Essa função é executada em uma única direção.

Existe também o Message Authentication Code ou simplesmente MAC. O MAC é o hashing da concatenação da mensagem com uma chave privada. O MAC provê integridade e autenticação sobre a origem mensagem. Em outras palavras é o MAC que nos garante que a mensagem que estamos recebendo veio mesmo de onde ela está dizendo que vem e que seu conteúdo entre a origem e o destino permaneceu integro. Vamos ao diagrama pra facilitar a visualização desse rolo todo.

Chegamos então à famosa Assinatura Digital é que como podemos ver o hashing value cifrado com a chave privada do remetente. Usando o modelo de diagrama acima temos o seguinte resultado:

Algoritmos de Hashing

Vamos falar sobre quatro modelos de algoritmos de hashing. São eles:

  1. MD4 – Desenvolvido por Ron Rivest, gera message digest de 128-bit e é implementado em software para computação de alta velocidade e otimizado para microprocessadores.
  2. MD5 – É a nova versão do MD4. Gera message digest também de 128-bit, mas o algoritmo é muito mais complexo provendo um nível maior de segurança.
  3. SHA(Secure Hash Algorithm) – Desenvolvido pelo NIST(National Institute of Standards and Technology) e a NSA para uso específico em assinatura digital, principalmente quando era requerido maior segurança em aplicações federais. Produz message digest de 160-bit.
  4. Haval – É uma modificação do MD5 onde o tamanho do hash value é variável e utiliza blocos com o dobro do tamanho do MD5, 1024-bit.

E aquele tal de S/MIME?

MIME significa Multipurpose Internet Mail Extension. Basicamente é uma especificação técnica que diz como dados multimidia e attachments são transferidos. Já o S/MIME, é um padrão para cifrar e assinar digitalmente e-mails. Os algoritmos de cifragem e hashing podem ser especificados pelo usuário. O padrão S/MIME utiliza os certificados X.509 da PKI vista acima.

Tipos de ataques em informações cifradas

Os ataques executados através de network sniffing e captura de dados são considerados ataques passivos que são mais difíceis de detectar. Sendo assim temos que usar de meios de prevenção mais do que tentar detectá-los e pará-los. Os ataques executados através da alteração de mensagens, modificação de arquivos, ou o atacante se fazendo passar por uma outra pessoa ou sistema, são chamados de ativos.

Vamos falar um pouco sobre cada tipo de ataque?

Um bom algoritmo de hashing, não deve produzir o mesmo valor de message digest para diferentes mensagens. Se isso acontecer, dizemos que ocorreu uma colisão. Se um atacante tiver uma amostra de uma colisão, ele terá grandes chances de quebrar o método criptográfico utilizado. Um ataque muito utilizado pra explorar esta falha é o birthday attack, que parte do princípio que é muito mais fácil se obter em uma amostra, duas mensagens com o mesmo hashing value, do que uma mensagem com o mesmo hashing value da mensagem que ele já possua.

Existe uma outra forma em que o atacante tem o texto cifrado de várias mensagens cifradas pelo mesmo algoritmo. O objetivo então é descobrir a chave que foi utilizada. É o ataque mais fácil de ser executado por ser fácil pegar o texto cifrado “sniffando” a rede, mas o mais difícil de ser bem sucedido pelo fato do atacante ter pouquíssima informação do processo de criptografia. Esse modelo é chamado Ciphertext-Only.

Já no Known-Plaintext o atacante usa palavras rotineiras em mensagens que junto com o texto cifrado capturado, vão lhe dar pistas para a quebra da chave de criptografia.

O atacante pode também, mandar um e-mail pra um individuo, induzindo que ele utilize um método de cifragem pra enviar pra uma outra pessoa. Neste caso o atacante captura este e-mail cifrado que junto com o original decifrado que ele haviado vão facilitar a quebra da chave. É o Chosen-Plaintext.

No Man-in-the-Middle, o atacante coloca-se no meio de uma troca de mensagens se passando por um dos indivíduos. Alguém aí sabe como evitar esse ataque? É só usarmos PKI e assinatura digital que vimos anteriormente lembram?

E por último temos o Dictionary Attack onde o atacante rouba um arquivo de senhas cifradas com um algoritmo de hashing. De posse de umas 100.000, ou até 1.000.000 de palavras que são utilizadas em senhas, ele executa o mesmo hashing do arquivo roubado e compara o resultado com as senhas cifradas do arquivo.

Bom pessoal, chegamos ao final do nosso estudo sobre Cifragem ou Criptografia de Dados. O objetivo principal desse artigo foi dar uma visão geral sobre os conceitos desse tipo de tecnologia, apresentar um pouco da linguagem técnica ligada à esse assunto, mostrar como podemos nos proteger na troca de mensagens, apresentar alguns tipos de ataques e então finalmente mostrar à importância da cifragem dos dados no mundo atual. Aprendemos também 3 formas diferentes de escrever a palavra SEGURANÇA de forma cifrada vocês lembram quais foram? Vamos relembrar:

a) Método Hebraico – SEGURANÇA = HVTFIZMXZ

b) Substituição – SEGURANÇA = VHJXUDQFD

c) Transposição – SEGURANÇA = EUSRGCANA

A demanda por segurança vem crescendo a cada dia, e cada vez mais teremos a necessidade de proteger nossos dados de forma rápida e segura.

Quero agradecer ao amigo Marcelo Belloni pelos ricos conhecimentos transmitidos sobre o assunto e que me permitiram publicar esse artigo.

Obrigado e até breve a todos! Um forte abraço!