| Últimas 20 atualizações de PAULO ALESSANDRO DEL BIANCO GONÇALVES |
|
|
Em meu artigo anterior, " Segurança da informação para desenvolvedores", expliquei a vocês a base de segurança da informação e os pilares que a sustentam. A ideia dos próximos artigos é a implementação dos controles lógicos que citei, a saber, Criptografia, Assinatura Digital, HASH e Autenticação.
Para a implementação de hoje vou explicar o funcionamento dos dois principais algoritmos de HASH usados em linguagens modernas, SHA-1 e MD5, como implementar em C# e JAVA e demonstrarei o uso prático deles.
Conforme já citei de forma bem resumida no artigo anterior, funções HASH são algoritmos matemáticos que permitem transformar uma grande quantidade de dados em um identificador único, menor (bem menor), que não apresente colisão, ou seja, para determinado dado só há um único identificador e cuja entropia permita que não seja possível reverter o dado digerido (DIGEST) de volta ao dado em claro.
A geração de um HASH está intimamente ligada com PRNGs, do inglês, “Pseudo Random Number Generation” ou Geração de números pseudorrandômicos.
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Façamos uma viagem ao passado, muito distante. Vamos à descoberta da escrita por volta de 3.500 anos antes de Cristo próximo à mesopotâmia. Deste dia em diante, toda informação propagada por este meio passou a registrar valor humano de uma forma intangível. Deste momento para o futuro, a cada dia, a informação passou a ser mais e mais valiosa.
Nos tempos da Roma antiga, uma mensagem podia significar a queda de todo um império. Os inimigos de Roma de posse de informações que iam do General ao Imperador poderia formar um contra-ataque que poria os planos de todo o reino a perder.
Desta época, temos notícia das primeiras incursões humanas no campo da criptografia. As famosas cifras de César, simples sistemas de substituição de algarismos, era o que permitia que um informante carregasse informações de uma parte a outra e, caso fosse interceptada, não poderia ser lida por quem não tivesse a chave de tradução.
Mas nem só de proteção lógica, como é o caso da criptografia, vive a segurança da informação. A Segurança física é de igual importância para que um deter
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Uma das coisas mais legais do .NET em relação a outras linguagens é que a Microsoft se preocupou em integrar no framework .NET implementações da Microsoft CryptoAPI de modo que a maioria dos algoritmos e funções criptográficas de mercado estão inclusas nativamente.
Isto facilita demais o trabalho do desenvolvedor que necessita implementar níveis de segurança para garantir sigilo em suas aplicações. Infelizmente para cada bem vem um mal e a implementação da Microsoft para determinados algoritmos difere em algum ponto das demais implementações que encontramos por aí. Um exemplo disto é a utilização de Padding para correção de blocagem de cifras em alguns algoritmos. Isto, felizmente, pode ser corrigido.
O AES ou Advanced Encryption Standard (do inglês), também chamado de Rijndael, é um algoritmo de cifragem de blocos adotada pelo Governo dos Estados Unidos desde 2001 e foi criado para se tornar um padrão em criptografia. Por se tratar de um algoritmo de criptografia simétrica, a mesma chave usada para criptografar, também é usada para decriptografar uma informação.
Maiores informações sobre este algoritmo em português pode ser encontrado
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
| |
|