Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Smart Framework 9.1 기준으로 적용된 보안 관련 내용 중  주요 기술에 대해서 기술합니다.

 

2021.08.04 시점 security-context.xml에 있는 filter관련

Filter 명해당 Filter 설명상세 페이지
decrytRequestFilter

데이터 복호화 요청 필터

- cipherUtil을 참조(aesKeyGenerator, ivParameterGenerator), AES 암,복호화 처리

※AES 암복호화?

 - 양방향 암호화 기법으로 대칭키 암호화를 사용한다.

개발자 가이드(데이터 암호화, 복호화)

xssRequestFilter

크로스사이트스크립트(xss) 요청 필드
- 헤더, 쿠키, 폼 필드, 숨겨진 필드 등과 같은 모든 파라미터들이 악의적인 스크립트가 실행되지 않도록 필터링 처리

Cross-site Scripting(XSS)
concurrencyFilter중복 로그인 방지 필터중복로그인 방지
sessionInvalidateFilter

로그인 세션을 관리하는 필터

  - 로그인, 로그아웃 시 세션 무효화 처리 필터

 
customAuthenticationProcessingFilters

spring security의 필터 FORM_LOGIN_FILTER는 로그인 시도가 왔을 경우 성공/실패와 무관하게 기본적으로 뒤에 오는 필터를 실행 하지 않고 리턴하지만,

before로 지정하여 로그인 시도 이전에 뒤에 오는 필터 처리

 - defaultLoginAuthenticationProcessingFilter
 - ssoAuthenticationProcessingFilter
 - certificateAuthenticationProcessingFilter

 
defaultLoginAuthenticationProcessingFilter

기본 로그인 인증을 처리하는 필터

 
ssoAuthenticationProcessingFilter외부 로그인 인증을 처리하는 필터 외부에서 URL을 통한 특정 화면호출 (SSO)
certificateAuthenticationProcessingFilter협력사 공인인증서 로그인 인증을 처리하는 필터 협력사 공인인증서 로그인

 

2021.08.04 시점 security-context.xml에 패스워드 암호화 로직

  • 패스워드 추측 공격 재한
    • defaultAuthenticationProvider(bean)에서 passwordEncoder-ref로 passwordEncorder 설정.

    • 현재 솔루션 내 passwordEncoder(bean)는 ProxyPasswordEncoder 클래스로 PasswordEncoder(spring-security 인터페이스)를 상속받아 주입된 PasswordEncryptor 구현체를 이용하여 암호화된 패스워드를 비교 로직을 구현.

    • PasswordEncryptor 는 단방향 패스워드 암호화 인터페이스로 솔루션 내에 해당 인터페이스를 상속받아 생성된 ShaPasswordEncryptor, BCryptPasswordEncryptor, SCryptPasswordEncryptor가 존재(해당 부분은 passwordEncoder(bean)에 constructor-arg 값으로 세팅)

    • 상세페이지 : 패스워드 암호화

 

  • CSRF 
    • 사이트 간 요청 위조(Cross-site request forgery)
    • 웹 어플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 보안에 취약하게 하거나, 수정, 삭제 등의 작업을 하게 하는 공격 방법
    • 상세페이지 : CSRF 방어

 

보안관련 세부항목별 내용은 첨부파일을 참고하세요.

...