Development Tip

최적의 bcrypt 작업 요소

yourdevel 2020. 10. 12. 08:16
반응형

최적의 bcrypt 작업 요소


암호 해싱에 이상적인 bcrypt 작업 요소는 무엇입니까?

10의 요소를 사용하면 랩톱에서 암호를 해시하는 데 약 0.1 초가 걸립니다. 우리가 매우 바쁜 사이트로 끝나면 사람들의 암호를 확인하는 작업으로 바뀝니다.

작업 계수 7을 사용하여 총 암호 해시 작업을 랩톱 로그인 당 약 .01 초로 줄이는 것이 더 좋을까요?

무차별 대입 안전과 운영 비용 간의 균형을 어떻게 결정합니까?


값은 비밀번호에 저장됩니다 $2a$(2 chars work)$(22 chars salt)(31 chars hash). 고정 된 값이 아닙니다.

부하가 너무 높으면 다음에 로그인 할 때 더 빨리 계산할 수 있도록 암호화하십시오. 마찬가지로, 시간이 지남에 따라 더 나은 서버를 얻을 수 있으며, 부하가 문제가되지 않으면 로그인 할 때 해시의 강도를 업그레이드 할 수 있습니다.

비결은 무어의 법칙과 함께 대략 같은 시간을 미래에 영원히 걸리게하는 것입니다. 숫자는 log2이므로 컴퓨터의 속도가 두 배가 될 때마다 기본 숫자에 1을 더합니다.

사용자의 암호를 강제로 강제하는 데 걸리는 시간을 결정하십시오. 예를 들어, 몇 가지 일반적인 사전 단어의 경우, 귀하의 계정 생성은 이미 암호가 약하다고 경고했을 것입니다. 예를 들어 1000 개의 일반적인 단어 중 하나이고 공격자가 각각을 테스트하는 데 0.1 초가 걸리면 100 개를 구매합니다 (글쎄, 일부 단어는 더 일반적입니다 ...). 사용자가 '공통 사전 단어'+ 2 개의 숫자를 선택하면 2 시간이 넘습니다. 암호 데이터베이스가 손상되고 공격자가 하루에 수백 개의 암호 만 얻을 수있는 경우 대부분의 사용자가 암호를 안전하게 변경하기 위해 몇 시간 또는 며칠 동안 구입 한 것입니다. 시간을 사는 문제입니다.

http://www.postgresql.org/docs/8.3/static/pgcrypto.html 에는 암호 크래킹을 고려할 때가 있습니다. 물론 그들이 나열한 암호에는 임의의 문자가 있습니다. 사전 단어 ... 실제로 암호가 12345 인 사람은 저장할 수 없습니다.

참고 URL : https://stackoverflow.com/questions/4443476/optimal-bcrypt-work-factor

반응형