최적의 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
'Development Tip' 카테고리의 다른 글
Java JVM 프로파일 링, 스레드 상태- "모니터"상태는 무엇을 의미합니까? (0) | 2020.10.12 |
---|---|
Reactive Extensions 사용의 좋은 예 (0) | 2020.10.12 |
TFS2010에서 MSBUILD를 통해 MSDEPLOY를 실행하려면 어떻게해야합니까? (0) | 2020.10.12 |
컨테이너가 빌드 된 후 서비스 추가 (0) | 2020.10.12 |
GitHub에서 분기 시각화 (0) | 2020.10.12 |