it-swarm-korea.com

비밀번호를 안전하게 해시하는 방법?

암호를 데이터베이스에 저장하기 전에 해시하면 다른 사람이 암호를 복구하지 못하도록 충분합니까?

이것은 데이터베이스에서 직접 검색하는 것과 만 관련이 있으며 응용 프로그램의 로그인 페이지, 클라이언트의 키 로거, 및 rubberhose cryptanalysis 와 같은 다른 유형의 공격은 아닙니다. (또는 현재는 " Chocolate Cryptanalysis ")라고합니다.

물론 어떤 형태의 해시라도 이러한 공격을 막을 수는 없습니다

850
AviD

bcrypt는 GPU에서 속도가 느려서 강제 실행 속도가 느려집니다. 그러나 컴퓨터 하드웨어가 발전함에 따라 특정 하드웨어에서 특정 해싱 알고리즘을 구현하기가 어려울뿐입니다.

오히려 일부 해시 함수가 지원하는 "가변 작업/비용 요소"(때때로 "라운드"라고도 함)를 사용하여 해시 무차별 대입 비용을 임의로 늘릴 수 있습니다. 그중에는 bcrypt와 SHA-512가 있습니다.

Glibc의 crypt() 함수는 일부 해시 알고리즘에 대한 라운드 지정을 허용합니다. 예를 들어 SHA-512의 비용 요소 100000는 bcrypt의 비용 요소 08보다 약 4 배 느리게 해시를 생성 (따라서 무차별 강제 적용)합니다. 이것은 hashcat과 같은 해시 해결 프로그램을 사용하여 확인할 수 있습니다.

어느 시점에서 비밀번호 해시와 소금이 도난 당하고 공격자가 ASIC 하드웨어를 사용하여 무차별 적으로 사용한다고 가정 할 경우, 작업 요소를 증가 시켜서 너무 비싸게 만들 수 있습니다. 정기적 인 사용자 인증으로 서버의 CPU를 오버로드하지 않습니다.

그럼에도 불구하고 길고 임의의 암호의 중요성이 적용됩니다.

방금 세부 사항에 대해 블로그 게시물 을 썼습니다.

0
Michael Franzl