[Codestates] 2021. 8. 2~4
[인증/보안] 기초
- 암호화와 hashing, salting 등의 개념을 이해할 수 있다.
- 암호화 : 데이터를 암호화하여 전달하므로 중요한 데이터가 유출될 가능성을 낮춤
- hashing : 임의의 연산을 적용하여 다른 문자열로 전환하는 것
- salting : 별도의 값을 추가하여 해싱하는 것
- HTTP와 HTTPS의 차이점을 이해할 수 있다.
- https : HTTP 통신을 하는 과정에서 내용을 암호화하여 데이터를 전송하는 방법
- 권한 부여(Authorization)와 인증(Authentication)에 대해 이해할 수 있다.
- 쿠키의 작동 원리를 이해할 수 있다
- HTTP의 Stateless(무상태성)을 거슬러 정보를 유지하기 위해 사용
- 서버가 클라이언트에 전달하는 데이터
- 클라이언트에서 서버로 쿠키를 전송하는 것도 포함
- 세션 및 쿠키 / 토큰 / OAuth를 통해 인증 구현을 할 수 있다.
- 세션 및 쿠키
- 서버에서 세션아이디를 만들고 암호화하여 쿠키에 담아 전송한다. DB에 저장된 세션 아이디와 일치하는지 확인한 후 인증
- 토큰
- 주로 JWT (JSON Web Token)을 사용. 서버에 요청할 때 헤더로 토큰을 담아서 서버에 요청하여 인증
- OAuth
- Authorization code와 Access token을 이용하여 인증
- 클라이언트, 서버, 데이터베이스의 전체 동작을 이해할 수 있다.
- 회원가입 및 로그인 등의 유저 인증에 대해 구현하고 이해한다.
- 서비스의 보안과 관련된 방법을 알아보고 원리 및 장점 및 단점을 이해한다.