sexta-feira, 19 de dezembro de 2008

HASH e Assinatura Digital

Pela teoria, HASH é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações, essa transformação é realizada através de um algoritmo de dispersão e representada na forma hexadecimal. O hash é utilizado para identificar alguma informação digital, pode ser ela um arquivo, uma mensagem, uma chave ou até mesmo um arquivo, ou seja, qualquer informação digital de forma única. É um método para transformar dados algo (quase) exclusivo, outra característica do hash é determinada pelas funções criptográficas utilizadas, através do hash não é possível obter a informação original.

Baseado nesses conceitos uma função hash deve ter as seguintes características: o valor de entrada pode ter qualquer tamanho, porém a saída tem tamanho fixo que pode ter 16 bytes, no caso dos algoritmos MD­2, MD­4 e MD­5 e 20 bytes no caso do algoritmo SHA­1, mas pode ter até 512 bytes; o algoritmo deve ser fácil de ser computado para qualquer informação; ser impossível de retornar a informação original a partir do hash; e ser livre de colisão, ou seja, deve garantir uma probabilidade mínima de que o hash criado a partir de informações diferentes, sejam iguais, assim, qualquer modificação na informação de entrada, mesmo de um único bit, deve afetar de forma significativa o valor de saída.

O conceito de assinatura digital é bem simples, consiste em criar uma hash da informação que se deseja assinar, em seguida com uma chave privada cifrar o hash e enviar a chave pública junto com a informação assinada. Quem recebe a informação assinada deve, com a chave pública do emissor, decifrar o hash, calcular novamente o hash da mensagem, e, se o hash enviado e o calculado forem iguais, significa que a assinatura é válida e que a mensagem não sofreu nenhuma alteração.

Divirtam-se
Allan

Tipos de Criptografia

Atualmente podemos destacar os seguintes tipos de criptografia: a de chave simétrica, de chave assimétrica e a combinação desses.

A criptografia de chave simétrica é a mais simples, pois tanto o emissor e o receptor cifram e decifram a mensagem com a mesma chave em poder das partes. Logo antes de enviar a mensagem o emissor deve enviar primeiramente a chave utilizada a cifragem da mensagem. Podemos destacar alguns algoritmos que fazem uso da chave simétrica: DES (Data Encryption Standard – IBM, 1977 – 56 bits), RC (Ron’s Code ou Rivest Cipher – Ron Rivest, 1987 – 8 a 1024 bits), IDEA (Internacional Data Encryption Algorithm - Massey e Xuejia Lai, 1991 – 128 bits), 3DES (IBM, 1978 - 168 bits), entre outros. Esses algoritmos são mais rápidos, quando falamos em velocidade de processamento computacional, do que os algoritmos de chave assimétrica, porém alguns problemas na utilização de chave simétrica devem ser destacados, como a necessidade constante da troca de chaves e a impossibilidade de serem usados para autenticação devido ao fato de que a troca de chaves pode acontecer de uma forma insegura e ser interceptada.

A criptografia de chaves assimétricas se utiliza de um par de chaves, uma pública e uma privada. O emissor quando deseja receber uma mensagem, primeiramente, envia uma chave para o receptor (pública), o emissor a seguir cifra a mensagem com a chave recebida e a envia ao receptor, a mensagem cifrada só pode ser decifrada com a chave que ficou em poder do receptor (privada). Dessa forma as chaves públicas têm que ser disponibilizadas amplamente, o que deu início a criação de repositórios de chaves públicas, ao contrário das chaves privadas que necessitam estar em poder do emissor de uma forma segura. A criptografia de chaves assimétricas tem um custo computacional maior do que o de chaves simétricas, fazendo com que sua utilização seja inviável em uma comunicação intensa. Com isso, uma combinação dos dois tipos de chave é amplamente utilizada. São exemplos de algoritmos de chaves assimétricas: RSA (Rivest, Chamir e Adleman, 1977), El Gamal (Taher ElGamal – 1987).

Baseado nas vantagens e desvantagens dos dois métodos, em comunicação intensa, uma combinação dos dois tipos é utilizada atualmente. Os protocolos de comunicação SSL (Secure Socket Layer) e o TLS (Transport Secure Layer) são produtos dessa combinação. Para resolver o problema enfrentado no envio de uma chave simétrica, esse envio é realizado utilizando-se criptografia de chave assimétrica. Uma vez que as partes têm a chave simétrica, o resto da comunicação é realizada utilizando a criptografia de chave simétrica, reduzindo sensivelmente o custo computacional da comunicação realizada entre as partes.

A criação de repositórios de chaves públicas surgiram para facilitar a disponibilização das chaves, se hoje “João” deseja enviar uma mensagem para “José”, mesmo sem conhecê-lo, basta procurar a chave de “José” em um dos repositórios públicos, por exemplo, pgp.mit.edu que é um deles, cifrar a mensagem com a chave obtida e enviar a mensagem. Porém, um outro problema surgiu dessa solução: Será que a chave de “José” encontrada no repositório é mesmo dele? Será que realmente foi “José” que a criou? Dessa forma foi necessário criar uma forma de associar a chave de “José” ao próprio “José”, a melhor alternativa surgiu com os Certificados Digitais.

O certificado digital é um documento assinado digitalmente por uma terceira parte confiável, que relaciona uma chave pública ao seu proprietário, para que seu conceito seja entendido, antes deve-se entender o conceito de assinatura digital e hash.

Divirtam-se
Allan

Criptografia e PKI - Introdução.

Estima-se que a criptografia tenha surgido imediatamente após, ou juntamente até, com a necessidade humanda de se comunicar. Porém os primeiros ensaios criptográficos de que temos conhecimento datam da Antiga Grécia com um instrumento chamado "Scytale". O Sctytale era um "bastão" de madeira, de base circular (cilindro) ou poligonal (geralmente com 4, 6 ou 8 lados) no qual se enrolava uma tira de papel na qual a mensagem seria escrita na forma longitudinal. Imediatamente o papel era desenrolado e a mensagem enviada, o receptor só consiguiria decifrar a mensagem sabendo o tamanho e forma do bastão. Para as pessoas da época é uma forma bastante segura de garantir a confidencialidade das messagens naquela época.

Depois disso não posso deixar de citar os "Princípios de Kerckhoffs" ou "Leis de Kerckhoffs". Foram publicados no final do século XIX pelo Prof. August Kerckhoffs. Um deles afirma que a segurança de um sistema encriptado não residia no processo de encriptação em si, mas sim na chave que era utilizada.

No começo da primeira guerra mundial a criptografia das cominucações era uma necessidade imediata, assim os Alemães aperfeiçoaram um modelo comercial de um dispositivo chamado "Enigma" a famosa "Enigma G". Uma reação imediata dos aliados foi adquirir uma "Enigma" para decrifrar as mensagens inimigas, mas foi só na segunda guerra, com a evolução da computação, que os Americanos desenvolveram o "Colossus", que era utilizado massivamente para decifrar as mensagens dos Alemães.

A partir daí a criptologia (criptologia = Criptografia+Criptoanálise) se tornou uma ciência matemática. Podemos considerar um marco da Criptologia a publicação de dois artigos:

- W. Diffie and M. Hellman, New Directions in Cryptography, IEEE Trans. on Information Theory, 1976.

- C. Shannon, A Mathematical Theory of Communication, Bell System Technical Journal, vol. 27, pp. 379-423 and 623-656, July and October, 1948.


PKI/ICP- infra-estrutura de chaves públicas

ICP é o acrônimo de Infra-estrutura de Chaves Públicas. Uma Infra-Estrutura de Chaves Públicas é um órgão ou iniciativa pública ou privada que tem como objetivo manter uma estrutura de emissão de chaves públicas, baseando-se no princípio da terceira parte confiável, oferecendo uma mediação de credibilidade e confiança em transações entre partes que utilizam certificados digitais. A principal função do ICP é definir um conjunto de técnicas, práticas e procedimentos a serem adotados pelas entidades a fim de estabelecer um sistema de certificação digital baseado em chave pública. A infra-estrutura de chaves públicas do Brasil, definida pela Medida Provisória Nº 2.200-2, de 24 de Agosto de 2001, é denominada Infra-Estrutura de Chaves Públicas Brasileira, ou ICP-Brasil.

Divirtam-se
Allan

0pen source security

Esse sítio tem o objetivo de divulgar conhecimento, informação sobre segurança computacional, e infra estrutura de sistemas utilizando de programas com licença GPL (http://www.gnu.org/licenses/licenses.pt-br.html).

Divirta-se!