Computer Science/Security & Auth 3

Auth / 세션, 쿠키, 토큰 개요

1. 세션, 쿠키가 필요한 이유 우리가 통신에서 가장 많이 쓰고 있는 http 방식은 stateless 속성을 갖는다. 이것은 클라이언트와 서버가 한번의 요청-응답 과정을 거친 후 연결을 끊게되며, 이전 통신에 대한 정보를 전혀 갖지 않게된다. 다시 말해, 다음 번의 통신때는 이전 통신에 의한 정보가 없다는 것이다. 클라이언트(유저)가 서버에 요청을 보낼 때, Header 부분에 유저에 대한 정보를 포함시키고, Body부분에 요청내용을 포함시켜서 보낸다. 특정 유저의 정보를 전달해주기 위해서 서버는 유저를 구분해야된다. 그렇기 때문에 인증(Auth)이 필요한 것이다. Header에 유저의 ID와 PW를 담아서 보내면 인증이 되겠지만, 이렇게 하면 보안에 매우 취약하게 된다. 또한 서버에서 매 신호마다 유..

Auth / Authentication vs Authorization(인증과 인가의 차이)

Authentication & Authorization 구분 Authentication(인증) : 각 유저가 누구인지 구분하는 과정 Authorization(인가, 권한) : 인증된 유저에게 특정 리소스에 대한 접근 권한을 부여하는 과정 Authentication(인증) 인증은 주로 아이디와 비밀번호, One-time pins, Authentication apps(인증앱), Biometrics(생체인증) 방식을 통해 진행되며 ID/PW 방식이 가장 일반적이고 많이 쓰인다. 보안의 강도를 높이기 위해서는 여러가지 방식을 중첩하는 것이 효과적이다. Authorization(권한) 권한은 인증 후에 진행되는 절차로, 각 유저가 인증 후에 접속한 곳에서 가질 수 있는 권한을 부여하는 것이다. 인증의 ID/PW가..

Web Arch. / Browser Security : CORS, XSS, CSRF

1. 브라우저 보안의 필요성 브라우저는 클라이언트와 서버 간 통신을 하며 서버의 데이터, 클라이언트의 사용자 정보 등을 전달하고 표현하는 역할을 하기 때문에, 해커들로부터 공격받기 쉽다. 특히, 브라우저가 자바스크립트를 구동하기 때문에 해커가 사용자의 웹페이지를 조작하거나, 사용자의 정보를 빼돌릴 수 있다. 2. 브라우저를 공격하는 대표적인 2가지 방법, XSS, CSRF XSS : Cross Site Scripting 클라이언트가 서버를 신뢰해서 발생하는 문제이다. XSS는 해커가 서버의 데이터에 특정 태그를 서버의 데이터 상에 올려놓고, 다른 사용자가 그 데이터를 서버의 응답으로 받게되면 그 사용자가 받은 데이터에 태그가 있기 때문에 웹페이지에서 DOM을 변경하게 되어 피해를 입게 되는 방식이다. 기..