본문 바로가기

전체 글

(122)
[Spring Boot] Security6 PasswordEncoder 활용 BCryptPasswordEncoder 소개BCrypt 해싱 알고리즘: 1999년에 발명된 알고리즘으로, 지난 20년 동안 광범위하게 사용되며 주기적으로 업데이트됨.패턴: 해시 텍스트는 $2a, $2y, $2b와 같은 패턴을 가짐.기본 설정: Spring Security는 기본적으로 $2a 버전을 사용하며, 필요에 따라 버전을 변경할 수 있음.BCryptPasswordEncoder 설정빈 생성자: 기본 생성자를 호출하면 -1 값으로 초기화되고, 기본적으로 버전 $2a와 작업량 10을 사용함.커스터마이징: 버전, 강도, SecureRandom 값을 전달하여 커스터마이즈할 수 있음. SecureRandom 값은 무작위 솔트를 추가하여 해싱 과정을 더욱 안전하게 만듦.BCryptPasswordEncoder 사..
[Spring Boot] Security6 PasswordEncoder의 주요 구현체 Spring Security에서 다양한 PasswordEncoder 구현체를 사용할 수 있습니다. 1. NoOpPasswordEncoder설명: 비밀번호를 아무런 해싱, 인코딩, 암호화 없이 일반 텍스트로 저장합니다.추천 사용 환경: 데모 애플리케이션, 비운영 환경운영 환경 사용 여부: 사용하지 않음이유: 비밀번호가 평문으로 저장되므로 보안에 취약합니다.2. StandardPasswordEncoder설명: SHA-256 해싱 알고리즘을 사용하여 비밀번호를 해싱하며, 시스템 전체 비밀 값을 추가적으로 사용하여 보호합니다.추천 사용 환경: 레거시 애플리케이션운영 환경 사용 여부: 사용하지 않음이유: 사용이 중단(Deprecated)되었으며, 보안성 측면에서 더 이상 안전하지 않습니다.3. Pbkdf2Pass..
[Spring Boot] Security6 DaoAuthenticationProvider DaoAuthenticationProvider 클래스는 Spring Security에서 사용자 인증을 처리하는 데 사용되는 주요 클래스 중 하나입니다. 이 클래스는 AuthenticationProvider 인터페이스를 구현하여 사용자 정보를 로드하고 인증을 수행합니다. 1. additionalAuthenticationChecks 메서드이 메서드는 인증 과정에서 추가적인 검사를 수행합니다. 여기서는 사용자가 입력한 비밀번호가 데이터베이스에 저장된 비밀번호와 일치하는지 확인합니다.입력된 비밀번호 확인: authentication.getCredentials()를 사용하여 입력된 비밀번호를 가져옵니다.비밀번호 비교: passwordEncoder.matches()를 사용하여 입력된 비밀번호와 데이터베이스에 저장된..