FACULDADE DE TECNOLOGIA SENAC PELOTAS TRABALHO BIBLIOTECA MD5 Linguagens de Programação Eduardo Orestes Brum Análise e Desenvolvimento de Sistemas - 2013
Sumário 1 Introdução 31 2 Criptografia MD5 4 2. 1 Como funciona 4 2. 2 Como é executado 4 3. Cenários propostos 4 3.1 Primeiro Cenário 5 3.2 Segundo Cenário 5 3.3 Terceiro Cenário 6 4. Dificuldades Encontradas 6 5. Conclusão 6 Referências bibliográficas 7 2
Explorando bibliotecas JavaScript: Biblioteca MD5 André Moraes Faculdade de Tecnologia Senac Pelotas (SENAC) Caixa Postal 96015-300 Pelotas RS Brasil chameoandre@gmail.com Resumo. Este artigo tem como o objetivo descrever um estudo e aplicação da biblioteca MD5, desenvolvida para criptografar dados. No trabalho serão demonstradas as características da biblioteca, a forma de utilizar seus comandos, alguns cenários de uso da mesma. Ao seu final serão registradas as conclusões do autor sobre o desenvolvimento do trabalho. Abstract. This article is to describe the study and application of MD5 library, designed to encrypt data. No work will be demonstrated features of the library, how to use your commands, some usage scenarios of it. At its end will be recorded the author's conclusions about the development of the work.1. Introdução 1 Introdução O MD5 é de domínio público para uso em geral. A partir de uma mensagem de um tamanho qualquer, ele gera um valor hash de 128 bits; com este algoritmo, é computacionalmente impraticável descobrir duas mensagens que gerem o mesmo valor, bem como reproduzir uma mensagem a partir do seu digest. O algoritmo MD5 é utilizado como mecanismo de integridade em vários protocolos de padrão Internet (RFC1352, RFC1446, etc.), bem como pelo CERT e CIAC. Exemplo: SENAC - 75f88e8b8963ce3c62c318fb73d2cd79 senac - dcd32e316ca0dd502589c01ae56b8785 Se o MD5 não pode ser descriptografado, qual é então sua utilidade? Message Digests são funções hash que geram código de tamanho fixo, em uma única direção, a partir de dados de tamanho arbitrário. Esses códigos hash são extremamente úteis para segurança de senhas. Como ele não pode ser descriptografado, o código hash precisa ser re-gerado e comparado com a sequência disponível anteriormente. Se ambos se igualarem, o acesso é liberado. 3
2 Criptografia MD5 2. 1 Como funciona A API Java implementa dois algoritmos de Message Digest: o MD5 e o SHA-1. A API do Message Digest (java.security.messagedigest) Para que se possa gerar textos criptografados, é necessário seguir os seguintes passos. 1 - Obter uma instância do algoritmo a ser usado. 2 - Passar a informação que se deseja criptografar para o algoritmo. 3 - Efetuar a criptografia. Para se obter uma instância de um algoritmo de criptografia Message Digest, utiliza-se o método getinstance() da classe MessageDigest. MessageDigest md = MessageDigest.getInstance( MD5 ); Após a chamada a getinstance(), você possui uma referência a um objeto pronto para criptografar seus dados utilizando o algoritmo especificado. Neste caso o MD5. Finalmente, para gerar a chave criptografada, você chama o método digest(). 2. 2 Como é executado A criptografia é geralmente executada, quando um usuário pretende criptografar alguma senha, sendo armazenada em um banco de dados, para que outro usuário não possa descobrir o que foi digitado, ou seja, sua senha. 3. Cenários propostos Os cenários desenvolvidos utilizam programas da unidade curricular de Lógica de programação, ministrada pelo professor André Moraes da Faculdade SENAC. O primeiro cenário desenvolvido utiliza a introdução, contendo as funções da criptografia, o segundo cenário, possui o código necessário para a criptografia dos dados e no terceiro cenário, contém a função em execução da criptografia. 4
3.1 Primeiro Cenário MD5 - Introdução Imagem 1 Imagem 1 exibe a pagina contendo uma introdução sobre o conteúdo MD5, o qual se relaciona o trabalho. 3.2 Segundo Cenário MD5 - Código Imagem 2 5
Imagem 2 apresenta o código completo que é utilizado para a criptografia dos dados, de uma String para uma criptografia MD5; 3.3 Terceiro Cenário MD5 - Função Imagem 3 Imagem 3 possui um cenário, onde é executada a biblioteca MD5, criptografando os dados inseridos no campo (Converter para MD5:), e exibindo no campo (Código). 4. Dificuldades Encontradas Durante o desenvolvimento do trabalho foram encontrados problemas em localizar conteúdos em português relacionados a criptografia, pois é uma criptografia desenvolvida pela RSA Data Security Inc., empresa americana. 5. Conclusão Foi constatado que a segurança dos dados, hoje em dia, não está totalmente segura, pois a criptografia MD5, a qual se diz, não pode ser transformada novamente em texo, já foi quebrada, ou seja, já exite um algoritmo que transforma ela novamente em texto. Portanto, não podemos mais dizer que os dados estão totalmente seguros. 6
Referências bibliográficas JavaScript MD5, Paul Johnston, disponível por PajHome em http://pajhome.org.uk/crypt/md5/, acesso em junho de 2013. JavaScript MD5 Function, disponível por PHPJS em http://phpjs.org/functions/md5/, acesso em junho de 2013. The MD5 Message-Digest Algorithm, disponível por IETF em http://www.ietf.org/rfc/rfc1321.txt, acessado em junho de 2013. 7