2010-12-13 2 views
15

나는 Gawker 사건에 대해 읽었으며 암호는 해시 암호에만 bcrypt을 사용하는 것과 관련하여 몇 가지 기사를 작성했으며 해싱 메커니즘이 충분히 안전하도록하고 싶습니다. 다른 방법으로 전환하는 것을 피하십시오. 현재 응용 프로그램에서는 sha2-512 및 최소 1000 회 반복을 사용하여 PBKDF2 구현을 선택했습니다.암호 암호화 : PBKDF2 (sha512 x 1000 사용) 대 Bcrypt

PBKDF2 대 Bcrypt 사용에 대한 의견 및 변경 사항을 구현해야하는지 여부를 물어볼 수 있습니까?

답변

27

PBKDF2를 잘 사용하면 bcrypt로 이동할 필요가 없습니다.

2000 년에 1000 번의 반복을 사용하도록 권장되었지만 이제는 더 많은 것을 원할 것입니다. bcrypt를 사용하는 경우

또한, 당신은 더 많은주의를 기울여야한다 :

또한 bcrypt 암호의 대부분의 유형에 대한 PBKDF2보다 더 강한 동안, 그것은 긴 암호 구를위한 뒤에 떨어질 것을 주목할 필요가있다; 이것은 bcrypt가 암호의 첫 번째 55 문자 이상을 사용할 수 없기 때문에 발생합니다. 예상 비용과 NIST가 있습니다. 패스 프레이즈 엔트로피 추정에 따르면 bcrypt의 55 자 제한은 현재 이 아니므로 bcrypt를 사용하는 시스템의 구현자는이 제한을 피하기 위해 (예 : "prehashing" 암호를 55 문자 한도로 맞추기 위해) 또는 에 대한 조치를 취하여 사용자가 56 번째 이후의 문자에 너무 많은 암호 엔트로피를 배치하지 못하게합니다 (예 : 웹 사이트의 사용자에게 입력에 암호를 입력하도록 요청) 55 자만 공백이있는 상자). 말했다 From scrypt paper [PDF]

scrypt있다.

모든 비교는 위에서 언급 한 scrypt 용지에서 테이블없이 불완전 할 것이다 : PBKDF2 - HMAC-SHA256에 대한

Estimated cost of hardware to crack a password in 1 year.

반복 수는 86,000 및 4,300,000가 사용된다.

+5

"웹 사이트의 사용자에게 55 자의 공백 만있는 입력 상자에 암호를 입력하도록 요청했습니다." 미안하지만 현실 세계에 어떻게 적용 할 수 있습니까? 나는 거의 8 자의 암호를 생각해 낼 수 없다. – m33lky

+6

나는 훌륭한 체스 게임 시퀀스를 암호로 사용하는 사람을 안다. 그는 선수, 날짜, 경기장 등의 이름으로 서열을 염색합니다. 나는 서사시의 구절을 고의적 인 실수로 소개 한 다른 사람을 알고 있습니다. 구제용 긴 암호를 얻는 방법은 많습니다. – Cheeso

+1

scrypt paper에 오류가 있었고 bcrypt의 실제 알고리즘 차단은 72 자임을 유의해야합니다. 그래서 컷오프가 있지만 128 비트의 엔트로피가 있습니다. 어느 것이 매우 중요합니다. – ircmaxell

-7

코멘트 (재 : 제목) : 당신은 MUST하지 않는

  • 암호를 저장하기 위해 암호화 (가역)를 사용하지 마십시오.
  • 대안으로 해싱 (되돌릴 수 없음) 옵션을 제시 했으므로 가역성을 필요로하지 않는다고 가정합니다. 나는 변경을 구현해야하는지 여부를

Bcrypt 대 PBKDF2를 사용하는 방법에 대한 의견과 ?

내 의견 : Bcrypt 이상

사용 PBKDF2. (아무 이유없이 SHA에 대한 믿음이 더 있습니다.)

'변경을 구현해야하는지'에 관해서는 당신이 무엇을 요구하는지 모르겠습니다.

암호화/해싱 토론과 내 기본 설정 w/r/t 알고리즘을 더 명확하게 구분하여 편집했습니다.

+0

"변경 구현"의미는 내 스크립트를 PBKDF2 algo 대신 bcrypt를 사용하도록 변환하는 것을 의미합니다. – buggedcom

+4

나는 bcrypt가 암호화라고 생각하지 않습니다. BLOWFISH에 기본 메커니즘을 해싱하는 편입니다. – buggedcom

+0

BCrypt *는 해싱 알고리즘입니다. –