2017-11-10 8 views
0

이 질문은 BCrypt로 구성된 스프링 보안을 사용하는 프로덕션 Grails 앱용입니다.모든 비밀번호를 다시 인코딩하지 않고 Spring Security를 ​​사용하여 라이브 Grails 애플리케이션의 BCrypt logrounds를 늘리는 것이 안전합니까?

서버의 CPU 속도를 계속 유지하려면 암호 해시가 오래 걸리고 공격 받기 쉽도록 grails.plugin.springsecurity.password.bcrypt.logrounds 속성 값을 늘리고 싶습니다.

처음에는 사용자가 로그인하거나 대대적 인 재 인코딩 및 사용자 정의 로그인 처리기로 약간의 접근이 필요한 어려운 작업이라고 생각했지만 실행 사이에 로컬로 시도 할 때 다른 변경없이 작동하는 것으로 나타났습니다 (비 로컬 배포를 시뮬레이트하는 영구 데이터베이스). logrounds 암호 해시에 저장되어 있기 때문에이 추측하고있어

은 다음과 같습니다 - 계정 때 logrounds 만든 로컬로 실행 사이의 20에 10에서 갈 때

$2a$10$i/PEPcvSj... <을 다음과 같이 예를 들어, 암호를 찾아

    : logrounds가 설정되었을 때 생성 된 계정 내가 테스트 한

    20 -

    '$2a$20$3GGujw6o... < 10로 설정 변경 이전에 작성된 16,

  • 오래된 계정은 여전히 ​​
  • 오래된 계정 암호를 변경할 수 있습니다. 로그인 할 수있는, 새로운 해시는 새로운 logrounds 설정
  • 새로운 계정을 생성 할 수 있습니다 사용하고
  • 가 시도 예상대로 로그인 존재하지 않는 계정으로 로그인하면 예상되는 새로운 지연이 발생합니다.

변경을 계속할 이유가 있습니까? 어떤 식 으로든 생산 로그인을 방해하는 실수로 인해 매우 많은 비용이 들게되므로 매우주의해야합니다.

+2

당신이 당신의 실사를 한 것처럼 들립니다. 당신이 무엇이든 살아 가기 전에 현재 암호를 가지고있는 테이블을 백업하십시오. –

+0

'10 '에서'20 '으로 이동했는지 확인하십시오. 20 배는 길지는 않지만 2 배는 1024 배 길어집니다. 암호를 확인하는 데 1.5 분이 걸립니다. 이는 서버의 서비스 거부입니다. –

답변

0

모든 것이 예상대로 작동하므로 답은 예입니다. 해시를 생성하는 데 사용 된 loground가 해시에 내장되어 있기 때문에 기존 계정에 영향을주지 않고 logrounds를 변경할 수 있습니다. BCrypt의 좋은 특징