- Argon2 알고리즘
1. saltLength (바이트 단위):
- 해시에 사용되는 salt의 길이를 지정합니다.
- salt는 임의의 데이터이며, 암호 해싱 공격을 방지하는 데 중요한 역할을 합니다.
- 일반적으로 128 바이트 길이의 salt를 사용하는 것이 좋습니다.
2. hashLength (바이트 단위):
- 생성된 해시의 길이를 지정합니다.
- 해시 길이는 암호화된 비밀번호의 출력 길이를 나타냅니다.
- 일반적으로 256 바이트 길이의 해시를 사용하는 것이 좋습니다.
3. parallelism:
- 병렬 처리 수준을 지정합니다.
- Argon2는 병렬 처리가 가능하여 해싱 속도를 높일 수 있습니다.
- 하드웨어 성능에 따라 적절한 값을 설정해야 합니다.
- 일반적으로 1에서 4 사이의 값을 사용하는 것이 좋습니다.
4. memory (KB):
- Argon2 알고리즘에 의해 사용되는 메모리 양을 지정합니다.
- 메모리 요구 사항은 공격자가 해시를 깰 때 필요한 리소스 양을 결정합니다.
- 하드웨어 성능과 보안 요구 사항에 따라 적절한 값을 설정해야 합니다.
- 일반적으로 1024에서 16384 사이의 값을 사용하는 것이 좋습니다.
5. iterations:
- 해시를 계산하는 데 사용되는 반복 횟수를 지정합니다.
- 반복 횟수가 많을수록 해싱 속도는 느려지지만 보안 강도는 높아집니다.
- 하드웨어 성능과 보안 요구 사항에 따라 적절한 값을 설정해야 합니다.
- 일반적으로 3에서 10 사이의 값을 사용하는 것이 좋습니다.
참고:
- Argon2 알고리즘은 BCrypt 알고리즘보다 느리므로 인증 성능에 영향을 미칠 수 있습니다.
- Argon2PasswordEncoder는 Spring Security 5.5 이전 버전에서는 사용할 수 없습니다.
- Bcrypt 알고리즘
Spring Security 5.3 버전 이하는 BCrypt 알고리즘의 솔팅 방식이 SHA1PRNG 요건데,
5.3 버전 이상의 SecureRandom 보다 안전하지 못하다.
Spring security 5.0 이상 부터는 setSaltSource를 이용해 솔팅 방식을 변경해줄 수 있다.
떄문에 5.0 이상이라면 setSaltSoruce를 통해 SecureRandom으로 바꿔주는 것이 더 안정적.
'Java > Spring' 카테고리의 다른 글
RedisUtil (get, set 설정) (0) | 2024.04.16 |
---|---|
RedisRepositoryConfig 설정 (0) | 2024.04.16 |
@RequestParam과 @PathVariable의 차이점 (페이지 변화) (1) | 2024.03.30 |
Redis로 ttl 설정해보기 (0) | 2024.03.18 |
[에러] SLF4J: Class path contains multiple SLF4J bindings (0) | 2024.03.18 |