2012-06-08 2 views
12

password leak of LinkedIn은 안전하게 암호를 해시하는 것이 얼마나 중요한지를 입증했습니다. 그러나 해시가 초당 2300 만 건의 해시 (무차별 대입)를 계산할 수있는 속도에 최적화되어 있기 때문에 소금을 사용하여 암호를 해싱하는 것조차도 '일반'해싱 알고리즘 (MD5 및 SHA 제품군)으로 보안되지 않습니다..NET 해싱 알고리즘 중 암호 해시가 안전 할만큼 안전한 해싱 알고리즘은 무엇입니까?

PBKDF2, Bcrypt, PBMAC 및 scrypt과 같이 훨씬 더 계산 집약적이므로 해싱 알고리즘이 사용하기에 안전합니다. 그러나 이러한 해시 알고리즘은 .NET Framework에 포함되어 있지 않은 것 같습니다.

.NET Framework에는 성능 집중적 인 해싱 알고리즘이 포함되어 있습니까?

대답 : PBKDF2는 프레임 워크와 this site shows how to use it properly에 포함됩니다.

+1

흥미로운 질문, 내가 있기 때문에 같은 이유로 같은 일을 궁금 해서요. :) – pyrocumulus

+3

"보안"이 없습니다. 보안을 위해 선택하는 항목은 속도, 메모리 사용량, CPU 사용률 등과 같은 다른 요구 사항과 항상 상충됩니다. "충분히 안전하다"고 생각하는 것은 제공하지 않은 * 요구 사항을 기반으로합니다. –

+0

@PeterRitchie : 그래서 "더 안전한 해시 알고리즘"을 추천합니다. 그게 바로 질문에 대한 것입니다. – Steven

답변

-1

해시 알고리즘이 100 % 안전합니다. linkedin 해킹은 해시 알고리즘보다 인프라/코드 보안으로 인해 더 많이 발생했습니다. 모든 해시를 계산할 수 있으며, 해싱 알고리즘이 복잡할수록 시간이 오래 걸립니다. 충돌 공격과 같은 일부 공격은 실제로는 더 복잡한 해시에서 수행하는 것이 훨씬 느립니다.

나는 암호를 해시하고 (암호화하지 않고) 항상 서버에 대한 액세스를 제한합니다. 모든 개발자는 적어도 보안 (SQL 주입, 오버 플로우 등)의 기초를 이해하고 내가 작업하는 중요한 프로필 사이트는 펜 테스트를 거쳤습니다.

+5

스티븐은 보안 해싱 알고리즘을 선택하면 해킹으로부터 그를 보호 할 것이라고 생각하지 않는다고 생각합니다. 그러나 DB 액세스가 손상되는 경우에 그를 보호합니다. LinkedIn은 소금없이 SHA1 (!!) 해시를 사용했습니다 (!!); 그건 믿을 수 없을만큼 나쁘다. Steven은보다 안전한 알고리즘을 선택하려고하며 그렇게 할 권리가 있습니다. 100 % 확실한 보안은 없습니다. 당신은 해시가 가능한 시간 내에 강제적으로 강요당하는 것을 거의 불가능하게 만들려고 노력할 수 있습니다. – pyrocumulus

+0

글쎄, 실제로 웹 사이트에서 공개적으로 내 사용자 목록에 액세스 할 수있게하고 해독 된 암호를 포함시켜야합니다. 아무도 암호를 해독 할 수 없기 때문입니다. 아니, 물론 농담이지 .-P. @ 클라우드는 절대적으로 맞지만 잘못은 내게있다. 나는 내 질문에이 사실을 알았을 때 더 잘 했어야했는데 이것은 분명히 잊어 버리기 쉽다. – Steven

+1

그러나 링크드 인과 비교할 때 알맞은 해시를 공격하는 것은 적어도 10 억의 요인으로 인해 더 비쌉니다. – CodesInChaos