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 | |
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 방어
보안관련 세부항목별 내용은 첨부파일을 참고하세요.
...