mariotoledo / nparty-connect

A Player Hub for Nintendo fans made with C# .NET
0 stars 0 forks source link

Usar uma função de hash melhor para as senhas #6

Closed agarie closed 8 years ago

agarie commented 10 years ago

MD5 é um algoritmo já quebrado. Não faz sentido correr riscos deixando algo assim solto no código, sendo que alguém mal-intencionado poderia quebrar isso sem gastar muitos recursos. Claro, não há informações potencialmente perigosas no sistema, mas aposto que muitos usuários usam a mesma senha em outros lugares, e.g. Facebook e GMail.

Estava dando uma olhada no código e acredito que se modificarmos este código para:

string pwdHash = EixoX.CryptoHelper.Sha1Hash(password);

Devemos melhorar a situação, pois SHA1 é um pouco mais complicada de quebrar. Entretanto, sugiro estudarmos como usar bcrypt no sistema, que é o mais próximo de strong security que devemos conseguir chegar sem pagar um PhD em criptografia. :)

Há um port para C# que parece bem desenvolvido, mas aí vem a dúvida: será que não vale mais a pena implementar isso logo no EixoX.CryptoHelper?

Enfim, esse issue não é prioridade, mas quis deixar um lugar para postar ideias e possíveis futuras discussões acerca disso.

Achei este post que fala várias coisas interessantes e pode servir de justificativa para essa mudança.

Cheers :D

mariotoledo commented 10 years ago

Concordo :D. Acho super justo fazer algo mais complexo. A criptografia que eu uso é de uma classe própria, em CriptographyHelper, que eu que fiz. Lá tem o método de criptografar e descriptogragar.

Em 20 de janeiro de 2014 23:14, Carlos Agarie notifications@github.comescreveu:

MD5 é um algoritmo já quebrado. Não faz sentido correr riscos deixando algo assim solto no código, sendo que alguém mal-intencionado poderia quebrar isso sem gastar muitos recursos. Claro, não há informações potencialmente perigosas no sistema, mas aposto que muitos usuários usam a mesma senha em outros lugares, e.g. Facebook e GMail.

Estava dando uma olhada no código e acredito que se modificarmos este códigohttps://github.com/mariotoledo/CampeonatosNParty/blob/master/Models/Cookie/Cookie.cs#L72para:

string pwdHash = EixoX.CryptoHelper.Sha1Hash(password);

Devemos melhorar a situação, pois SHA1 é um pouco mais complicada de quebrar. Entretanto, sugiro estudarmos como usar bcrypt no sistema, que é o mais próximo de strong security que devemos conseguir chegar sem pagar um PhD em criptografia. :)

Há um port para C# http://bcrypt.codeplex.com que parece bem desenvolvido, mas aí vem a dúvida: será que não vale mais a pena implementar isso logo no EixoX.CryptoHelper?

Enfim, esse issue não é prioridade, mas quis deixar um lugar para postar ideias e possíveis futuras discussões acerca disso.

Achei este posthttp://throwingfire.com/storing-passwords-securely/#notpasswordhashesque fala várias coisas interessantes e pode servir de justificativa para essa mudança.

Cheers :D

— Reply to this email directly or view it on GitHubhttps://github.com/mariotoledo/CampeonatosNParty/issues/6 .

Mario Toledo | Diretor Técnico http://www.nparty.com.br http://www.nparty.com.br/

_twitter: @Mario_Toledo http://www.twitter.com/Mario_Toledo_ facebook: http://www.facebook.com/mariotoledo12 skype: mario.toledo5 telefone: (11) - 9-8278-2341