본문 바로가기

Spring Security

(5)
[Spring Security] OAuth OAuth Open Authorization 의 약자로 인증을 위한 개방형 프로토콜입니다. 대표적으로 구글, 페이스북, 카카오, 네이버 등에서 간편 로그인을 제공합니다. 역할 OAuth는 아래 4개의 역할이 각자의 임무를 수행합니다. 이름 역할 Resource Owner Third-Party Application 에 회원가입이 되어있는 일반 사용자를 생각하면 됩니다. Client가 제공하는 어플리케이션을 사용합니다. Client Resource Owner의 개인정보를 토대로 Authorization Server에 접근 요청을 합니다. Authorization Server 권한을 관리해주는 서버입니다. 클라이언트의 권한을 파악하여 접근을 통제하고 Access Token을 발급하여 권한을 부여합니다. Res..
[Spring Security] 보안 알고리즘 서버의 Security를 이해하려면 기초적인 보안 알고리즘을 아는 것은 필수입니다! 정보보안의 3요소 기밀성 (Confidentiality) 정보를 오직 인가된 사용자에게 허가합니다. ex) Snopping, 해킹에 의한 내부정보 노출 무결성 (Integrity) 비정상적인 변경이나 파기없이 완전하게 보존합니다. ex) 악성코드로 인한 파일 회손 가용성 (Availablity) 권한이 있는 사용자가 원할 때 바로 접근과 사용합니다. ex) DOS, DDOS로 인한 서비스 불능 대칭암호 암호화를 할 때 사용하는 키와 복호화를 할 때 사용하는 키가 동일한 암호 알고리즘입니다. 특정 키를 통해 단순한 방법부터 복잡한 방법까지 잘 활용해가며 평문을 변화시키는 것이라 이해하면 좋습니다. 예를들어 가장 단순한 방법..
[Spring Security] Sql Injection SQL Injection 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL문을 주입하고 실행되게하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위입니다. 공격종류 Error based SQL Injection 논리적 에러를 이용한 SQL Injection SELECT * FROM User WHERE id = 'INPUT1' AND password = 'INPUT2' INPUT1 => ' OR 1=1 -- SELECT * FROM User WHERE id = '' OR 1=1 위의 형태와 같이 주석과 OR연산을 통하여 모든 아이디 비밀번호를 조회하여 악의적인 행동을 이어갑니다. Union based SQL Injection Union이라는 키워드를 이용한 SQL Injection SELE..
[Spring Security] Cors Cors SOP(동일 출처 정핵)으로 인해 다른 출처의 리소스접근이 막힌 것을 풀어주는 "다른 출처간에 리소스를 공유할 수 있도록 해주는 정책"입니다. 왜 이런게 있을까 제가 착한닷컴이라는 사이트를 사용한다 가정합니다. 저는 착한닷컴에 정책에따라 쿠키나 토큰등을 사용합니다. 그런데 어느날 정체모를 링크를 눌러 나쁜닷컴의 리소스를 저의 크롬에 받아드립니다. 그렇게되면 나쁜닷컴의 코드들이 저의 쿠키나 토큰등을 악용할 목적으로 가져가게됩니다. 그럼 나쁜닷컴의 운영자들은 저의 쿠키나 토큰을 통해 나쁜짓을 마음껏 할 수 있는 상황이 발생합니다. 그렇기에 동일 충처(Origin)에서 온 요청만을 처리하도록 규제하는것이 sop입니다. 사용방법 setAllowCredentials : 내 서버가 응답을 할 때, json..
[Spring Security] Security Session 인증 사용자의 신원을 검증하는 행위 ex) 로그인 인가 사용자에게 특정 리소스나 기능에 액세스할 수 있는 권한을 부여하는 행위 ex) USER, MANAGER, ADMIN.. 사용이유 Http 프로토콜은 기본적으로 Stateless한 특징을 지니고있어 서버 디자인이 간편합니다. 하지만 Stateless 하기에 사용자에게 매번 인증에 관한 절차를 묻게됩니다. 이를 위해 Cookie나 Session을 사용해서 사용자의 불편함을 덜어줍니다. Spring Security Spring Security란 Spring기반의 어플리케이션의 인증과 인가를 담당하는 프레임워크입니다. Spring Security는 Filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 관리할 수 있고, Session-Cooki..