이 질문은 BCrypt로 구성된 스프링 보안을 사용하는 프로덕션 Grails 앱용입니다.모든 비밀번호를 다시 인코딩하지 않고 Spring Security를 사용하여 라이브 Grails 애플리케이션의 BCrypt logrounds를 늘리는 것이 안전합니까?
서버의 CPU 속도를 계속 유지하려면 암호 해시가 오래 걸리고 공격 받기 쉽도록 grails.plugin.springsecurity.password.bcrypt.logrounds
속성 값을 늘리고 싶습니다.
처음에는 사용자가 로그인하거나 대대적 인 재 인코딩 및 사용자 정의 로그인 처리기로 약간의 접근이 필요한 어려운 작업이라고 생각했지만 실행 사이에 로컬로 시도 할 때 다른 변경없이 작동하는 것으로 나타났습니다 (비 로컬 배포를 시뮬레이트하는 영구 데이터베이스). logrounds 암호 해시에 저장되어 있기 때문에이 추측하고있어
은 다음과 같습니다 - 계정 때 logrounds 만든 로컬로 실행 사이의 20에 10에서 갈 때
$2a$10$i/PEPcvSj...
<을 다음과 같이 예를 들어, 암호를 찾아
-
: logrounds가 설정되었을 때 생성 된 계정 내가 테스트 한
- 오래된 계정은 여전히
- 오래된 계정 암호를 변경할 수 있습니다. 로그인 할 수있는, 새로운 해시는 새로운
logrounds
설정 - 새로운 계정을 생성 할 수 있습니다 사용하고
- 가 시도 예상대로 로그인 존재하지 않는 계정으로 로그인하면 예상되는 새로운 지연이 발생합니다.
20 -
'$2a$20$3GGujw6o...
< 10로 설정 변경 이전에 작성된 16,
변경을 계속할 이유가 있습니까? 어떤 식 으로든 생산 로그인을 방해하는 실수로 인해 매우 많은 비용이 들게되므로 매우주의해야합니다.
당신이 당신의 실사를 한 것처럼 들립니다. 당신이 무엇이든 살아 가기 전에 현재 암호를 가지고있는 테이블을 백업하십시오. –
'10 '에서'20 '으로 이동했는지 확인하십시오. 20 배는 길지는 않지만 2 배는 1024 배 길어집니다. 암호를 확인하는 데 1.5 분이 걸립니다. 이는 서버의 서비스 거부입니다. –