SpringSecurity 미션 #2

텐저린티·2023년 8월 2일
0

데브코스

목록 보기
36/41
post-thumbnail

Security Filter 정리

AnonymousAuthenticationFilter

  • 해당 인증 필터에 도달할 때까지 사용자가 인증 미완(사용자 = null)이면, 익명 사용자로 처리
  • SecurityContextHolder 에 인증 개체가 없는지 감지하고 필요한 경우 하나로 채웁니다.

ExceptionTranslationFilter

  • 요청 처리 도중 발생 가능한 예외에 대한 라우팅, 위임 처리
  • 필터 체인 내에서 발생한 모든 AccessDeniedExceptionAuthenticationException을 처리.
  • Java 예외와 HTTP 응답 간의 브리지를 제공.
  • 사용자 인터페이스 유지 관리에만 관심.
  • 실제 보안 적용을 수행하지 않음.
  • AuthenticationException이 감지되면 필터는 authenticationEntryPoint를 실행.
  • AbstractSecurityInterceptor의 하위 클래스에서 발생하는 인증 실패의 일반적인 처리가 가능.
  • AccessDeniedException이 감지되면 필터는 사용자가 익명 사용자인지 여부를 결정.
    • 익명 사용자인 경우 authenticationEntryPoint가 시작됩니다.
    • 익명 사용자가 아닌 경우 필터는 AccessDeniedHandler에 위임합니다.
  • 기본적으로 필터는 AccessDeniedHandlerImpl을 사용합니다.
  • 이 필터를 사용하려면 다음 속성을 지정해야 합니다. authenticationEntryPointAuthenticationException이 감지된 경우 인증 프로세스를 시작해야 하는 핸들러를 나타냅니다.
  • SSL 로그인을 위해 현재 프로토콜을 http에서 https로 전환할 수도 있습니다.
  • requestCache는 사용자가 인증한 후에 요청을 검색하고 재사용할 수 있도록 인증 프로세스 중에 요청을 저장하는 데 사용되는 전략을 결정합니다.
  • 기본 구현은 HttpSessionRequestCache입니다.

AccessDeniedException 예외에 대한 핸들러 설정이 가능함

  • 기본 구현은 org.springframework.security.web.access.AccessDeniedHandlerImpl 클래스
  • HttpSecurity 클래스의 exceptionHandling() 메소드를 통해 사용자 정의 핸들러를 설정함
    • 접근 거부 요청에 대한 로깅 처리
    • HTTP 403 응답 생성

대칭키 암호화, RSA 암호화

대칭키 암호화

  • 송/수신 똑같은 키
  • 암호화, 복호화에 같은 키 사용 (대칭키)
  • 대칭키를 안전하게 교환하는 게 중요

비대칭키 암호화

  • 암호화, 복호화에 다른 키 사용
  • 공개키
    • 공개된 키
    • 암복호화에 사용
  • 개인키
    • 나만 아는 키
    • 암복호화에 사용
  1. 공개키로 암호화하는 경우
    • 복호화는 개인키
    • 특정 사용자에게 보내는 경우
    • 컨텐츠 보호가 중요한 경우
  2. 개인키로 암호화하는 경우
    • 복호화는 공개키
    • 수신자가 중요한 경우 (공개키로 열리면 -> 아! 누구누구구나!)
    • 정보 생상자 신원 정보가 중요한 경우

RSA 암호화

  • 비대칭키 암호화에서 사용
  • 서버 개인키로 암호화 + 클라가 서버 공개키로 복호화 시 필요
  • 주고받는 http 메시지 보호를 위해서 RSA 필요
  • '큰 수의 인수분해는 어렵다'
profile
개발하고 말테야

0개의 댓글

관련 채용 정보