서버 인증
2019.09.20. 김단비
3주차세미나
1
2
목차 서버인증의필요성
서버인증방식
a. 계정정보를요청헤더에넣는방식
b. 쿠키방식
c. 세션방식
d. JWT 방식
2
1. 서버인증의필요성
서버인증의필요성
4
1
프론트엔드관점
• 사용자의로그인, 회원가입과같이사용자의도입부분
백엔드관점
• 모든 API 요청에대해사용자를확인하는작업
서버인증의필요성
5
1
서버인증을하는이유
→ HTTP(HyperText Transper Protocol) 의특징이자약점을보완하기위해서사용
StatelessConnectionless
서버인증의필요성
6
1
HTTP
인터넷에서데이터를주고받을수있는프로토콜
HTTP의특징
• 비연결지향(Connectionless)- 클라이언트가요청(request)을서버에보내면서버는클라이언트응답(response)을하면서서로접속을끊는특성
• 무상태(Stateless)
- 연결을끊는순간클라이언트와서버의통신이끝나며서버가상태정보는유지하지않는특성
클라이언트
<HTTP 요청/응답 >
서버인증의필요성(계속)
7
1
통신종료시어떠한상태도남지않게됨
각각의 HTTP 요청에는주체가누구인지정보필수적
<무상태 특징예시>
2. 서버인증방식
9
서버인증방식(a. 계정정보를요청헤더에넣는방식)
10
2
인증방식1. 계정정보를요청헤더에넣는방식
• 계정정보를 Request에담아보내는방식
• 장·단점
• 사용사례 – 개발단계
장점 • 빠른속도
단점• 보안취약• 요청이올때마다인증필요
서버인증방식(b. 쿠키방식)
11
2
인증방식2. 쿠키방식
• 쿠키(Cookie) 방식
- 쿠키: 웹서버가브라우저에게지시하여클라이언트측(브라우저)에서관리되는기록정보파일
- 파일에담긴정보는인터넷사용자가같은웹사이트를방문할때마다읽히고수시로새로운정보로변경가능
• 쿠키의구성요소
- Domain: 쿠키를전송할도메인
- Name: 각각의쿠키를구별하는데사용되는이름
- Value: 쿠키가갖고있는값
- Date: 쿠키의유지시간< 쿠키구조 >
서버인증방식(b. 쿠키방식)
12
2
1. 사용자 요청
5. 응답(+ 쿠키)
2. 쿠키 생성
• 쿠키프로세스
4.4. 또다른 데이터 요청 + 쿠키
3. 응답+ 쿠키
클라이언트
서버인증방식(b. 쿠키방식)
13
2
• 장·단점
• 쿠키사용예시
- 자동로그인체크
- 팝업에서 "오늘더이상이창을보지않음" 체크
- 쇼핑몰의장바구니
장점 • 서버추가적인공간불필요
단점• 보안취약• 쿠키용량제한(개당 4KB이하, 최대 300개)
서버인증방식(c. 세션방식)
14
2
인증방식3. 세션방식- 쿠키의보안적이슈를해결하기위해등장
• 세션방식
- 일정시간동안같은브라우저로들어오는일련의요구를하나의상태로보고그상태를유지하는기술
- 클라이언트는 HTTP Session id를쿠키로저장된형태로보유
- 메모리에저장하기때문에브라우저가종료되면소멸
서버인증방식(c. 세션방식)
15
2
• 세션프로세스
클라이언트
1. 사용자 요청
6. 응답(+ 쿠키)
4.6. 또다른 데이터 요청 + 쿠키
5. 응답 (+ Sessin ID)
서버인증방식(c. 세션방식)
16
2
• 장·단점
• 세션사용예시
- 로그인같이보안상중요한작업을수행할때사용
장점
• 쿠키보다보안향상• 용량제한없음• 브라우저의존도낮음• 네트워크부하낮음
단점 • 서버에추가적인공간필요
서버인증방식(d. JWT 방식)
17
2
인증방식4. JWT
- 최근모바일, 웹등다양한환경에서서버와통신하면서 Web Token 기반인증방식등장
• JWT
- Json Web Token
- Json으로보내는방식으로사용
- 보호할데이터를토큰으로치환하여원본데이터대신토큰을사용하는기술
- JWT 토큰을 HTTP 헤더에실어서버로요청
*Json: 서로다른프로그래밍언어간에데이터를전달하기위해사용하는언어
서버인증방식(d. JWT 방식) 방식
18
2
• JWT 구조
- Header 해당 Token에대한유형과알고리즘에대한정보
- Payload 서버에서보낼데이터
- Signature Base64 방식으로인코딩한 Header, Payload와 SECRET KEY를더한후서명
* BASE64: 8비트바이너리데이터(ex 실행파일, ZIP파일등)를문자코드에영향을받지않는공통 ASCII 영역의문자로만이루어진일련의스트링으로바꾸는인코딩방식
<JWT 구조>< Header 구성> < Payload 구성>
서버인증방식(d. JWT 방식)
21
2
• JWT 프로세스
클라이언트
1. 사용자 요청
7. 응답(+ 요청 데이터)
5. 또다른 데이터 요청 (+ JWT)
4. 응답 (+ Access Token)
서버인증방식(d. JWT 방식)
22
2
• 장·단점
• JWT 사용예시
- OAuth
장점• 별도의저장소의관리불필요• 토큰기반으로하는다른인증시스템에접근이가능
단점• Payload 정보제한적• 토큰의길이가늘어날수록네트워크부하
*OAuth: 웹, 앱서비스에서제한적으로권한을요청해사용할수있는키를발급해주는것
감사합니다
23