Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de Usuários
»Células Acadêmicas«
intcontpiada : 118
Vegetando
Você já está cadastrado e participa do grupo de usuários de sua cidade ? Se não, comente o porque.
 
 
Faça um pequeno teste com 10 questões de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programação com nosso treinamento on-line de lógica de programação
.:.
Veja nosso calendário de treinamentos
Gostou da Página?
Então

para um amigo!
 





Por Dennes Torres
dennes@bufaloinfo.com.br
Dennes Torres possui as certificações MCAD, MCSD,MCSE, MCDBA e MCT. Atualmente atua Como diretor da Búfalo Informática, líder do grupo de usuários DevASPNet no Rio de Janeiro e membro da liderança dos grupos getWindows e devSQL, também do Rio de Janeiro, podendo sempre ser encontrado na lista de discussão do grupo DevASPNet (devaspnet-subscribe@yahoogrupos.com.br) bem como nas reuniões do grupo. Mantém dois blogs em http://cidadaocarioca.blogspot.com

A Criptografia no Framework .NET

Pesquisa personalizada
Pesquisar Dicas:







A criptografia é um recurso fundamental para a proteção de informações durante a transmissão de dados em rede. Neste artigo começarei a explicar alguns conceitos fundamentais do uso da criptografia e como ela se aplica com o framework .NET

Primeiramente devemos imaginar um cenário no qual seja necessária uma troca segura de informações. Vamos imaginar que o José e o Joaquim desejam trocar informações de uma forma segura através da rede. Mas Maria deseja interceptar a troca de informações que está ocorrendo entre o José e o Joaquim.

Existem diferentes formas de violação da mensagem, veja :

Em alguns casos o que a Maria deseja é tomar conhecimento da mensagem trocada entre joaquim e josé e é exatamente isso que eles devem impedir.

Em outros casos, porém, a mensagem não tem teor confidencial, não importando se a Maria conhece seu conteúdo ou não. O importante nesse caso é que Maria não possa, de forma alguma, forjar uma mensagem falsa como se fosse do José ou do Joaquim.

Há casos, porém, em que ambas as questões são importantes : tanto impedir que a Maria possa ler a mensagem como também impedir que Maria possa falsificar a mensagem.

Existem várias técnicas de criptografia que podem resolver esses problemas. As principais são :

 

Hash

O objetivo do Hash não é garantir a privacidade da informação. O objetivo do Hash é apenas garantir que a mensagem não poderá sofrer adulteração.

A técnica de hash aplica um algorítimo sobre cada byte da mensagem e ao final gera um código como resultado, o código de hash.

O client poderá validar a mensagem e o hash, refazendo o algorítimo e comparando o resultado com o hash. Se a mensagem ou o hash houverem sido adulterados durante a transmissão o resultado não baterá e será possível identificar que a mensagem é falsa.

Porém se tanto o hash como a mensagem forem substituidos por uma nova mensagem, não será possível identificar a adulteração.

Hash com chave

Aumenta a segurança do algorítimo de Hash através do uso de uma chave. O algorítimo de hash, antes de fazer o cálculo do hash, adiciona a chave na mensagem e só então faz o cálculo do hash.

A mensagem e o hash, porém, são transmitidos sem a chave. O client precisa já conhecer a chave. Assim sendo, a chave precisa ter sido transmitida entre servidor e client através de algum outro canal seguro.

Se, portanto, mensagem e hash forem substituidos, ainda assim o interceptador não terá como forjar um hash correto, devido a falta da chave.

Algorítimos Simétricos

Os algorítimos simétricos são utilizados para proteção da transmissão dos dados. É utilizada uma chave de criptografia e um algorítimo para fazer a criptografia dos dados.

O client deverá utilizar a mesma chave e o mesmo algorítimo para realizar a descriptografia e desta forma ter acesso a informação.

Neste algorítimo, portanto, a chave de criptografia é especialmente importanto. O servidor e o client deverão ter trocado a chave de criptografia por um canal seguro antes da realização da transmissão.

Algorítimos Assimétricos

Os algorítimos assimétricos tanto permitem a proteção da informação como evitam sua adulteração. Ao invés de uma única chave este algorítimo utiliza duas chaves para realização da criptografia.

O transmissor utiliza duas chaves, uma chave pública e uma chave privada. Por pública indicamos uma chave que deverá ser divulgada publicamente a todos os receptores. Enquanto que a chave privada fica apenas em poder do transmissor.

Primeiramente o par de chaves pode ser utilizado para realizar uma assinatura da mensagem, confirmando a autenticidade da mensagem. Para tanto o transmissor criptografa a mensagem utilizando a chave privada e envia.

O receptor pode então usar a chave pública para descriptografar a mensagem. O fato da chave pública conseguir descriptografar a mensagem garante a autenticidade da mensagem, como uma assinatura.

De fato, a criptografia utilizando a chave privada do transmissor não garante que a mensagem não será lida por outros a não ser o receptor. Isso porque a chave de descriptografia é a chave pública, que pode estar em poder de qualquer um.

Por isso a criptografia com a chave privada é usada para criptografar uma assinatura ao invés da mensagem como um todo. Podemos, desta forma, criar um hash da mensagem e criptografar o hash. Mesmo que ocorra a interceptação ninguém conseguirá adulterar a mensagem pois não conseguirão produzir um hash que seja descriptografado pela chave pública, garantindo assim a autenticidade da mensagem.

Neste exemplo acima mensagens enviadas do receptor para o transmissor podem ser protegidas. Se o receptor criptografar uma mensagem com a chave pública do transmissor, a mensagem só poderá ser descriptografada com a chave privada, garantindo que apenas o transmissor lerá seu conteúdo.

Considerando um para A e B desejando trocar mensagens entre si, imaginemos que ambos, tanto A como B, possuem uma chave pública e uma chave privada. "A" cria uma mensagem e gera um hash. Criptografa o hash com sua chave privada e em seguida criptografa tudo, mensagem e hash, com a chave pública de "B".

Apenas "B" poderá descriptografar a mensagem usando sua própria chave privada. Então, para confirmar a origem da mensagem, "B" descriptografa o hash usando a chave publica de "A", gera um hash da mensagem e compara o hash gerado com o hash recebido, determinando que a mensagem tenha sido realmente gerada por "A".

Invasões

Uma das formas de invasão comum é o ataque de força bruta, onde o invasor desta inúmeras chaves até encontrar a chave de criptografia correta.

Alguns algorítimos podem ser hoje intransponíveis com essa metodologia, devido ao grande tempo de processamento que isso demandaria. Porém com a constante evolução tecnológica isso pode mudar rapidamente.

Por isso os algorítimos de criptografia estão sempre em constante evolução.

Outra questão importante, para evitar a quebra da criptografia, é a troca constante da chave de criptografia. Se através do ataque de força bruta um invasor levaria um mês para descobrir a chave, se esta chave for trocada a cada 15 dias se torna inviável a invasão através deste método.



Envie seus comentários sobre este artigo

Nome :

E-mail :

Comentários :


Avise-me quando houverem novos comentários nesta página

Veja abaixo os comentários já enviados :

Nome : Igor E-Mail : igorvasconcelos@uol.com.br
Bom, eu sou aluno de Ciência da Computação e estou fazendo um trabalho sobre criptografia , gostaria saber se vc possuem mais artigos ou materias disponíveis.
Nome : Dennes Torres E-Mail : dennes@bufaloinfo.com.br

Aqui mesmo no site você encontra artigos sobre HASH e criptografia simétrica, com um passo-a-passo de montagem de aplicações que utilizem estes recursos. De uma procurada na área de artigos.

Nome : titer E-Mail : josesalomao.filho@bol.com.br
eu sou aluno de prc.de dados e eu gostaria de ter em meu computador o pograma que fas a quebra de senha atravéis da força bruta
Nome : Eliza E-Mail : Amigababi@yahoo.com.br
Parece ser muito bom e muito avançado tambem para quem faz curso tecnico e ainda esta no primeiro termo.
Se possivel colocar conceitos basicos para quem ainda esta no inicio ficaria muito agradecida.
Nome : Eduardo Videira Paulo E-Mail : eduardovideira@uol.com.br
Eu sou aluno de sistemas de informação e gostaria de saber se voce possuem algum artigo obre linguagem de programação
Nome : Tiago Martins Amaral E-Mail : tiagoviolista@gmail.com
Queria saber como formar um textos em cripitografia e saber mais sobre formar senhas.
E queria saber mais sobe o mesmo.

Obrigado!