[TIL] OSI 7 layer, 세션 기반 인증과 토큰 기반 인증의 차이 23.09.05

이상훈·2023년 9월 5일
0

[내일배움캠프]

목록 보기
65/68

OSI 7 Layer란?

OSI 7 계층은 네트워크 통신을 구성하는 요소들을 7개의 계층으로 표준화 한 것임
통신이 일어나는 과정을 단계별로 파악할 수 있어 문제 발생 시 해당 문제를 해결하기 좋음

  • 7 계층 (Application Layer, 응용 계층) : 사용자에게 통신을 위한 서비스 제공, 인터페이스 역할
  • 6 계층 (Presentation Layer, 표현 계층) : 데이터의 형식을 정의하는 계층 (코드 간의 번역 담당)
  • 5 계층 (Session Layer, 세션 계층) : 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층
  • 4 계층 (Transport Layer, 전송 계층) : 프로그램과 프로그램의 연결, 최종 수신 프로세스로 데이터의 전송을 담당하는 계층(단위 : Segment, ex. TCP, UDP)
  • 3 계층 (Network Layer, 네트워크 계층) : 패킷을 목적지까지 가장 빠른 길로 전송하기위한 계층 (단위 : Packet, ex. Router ICMP IP APR)
  • 2 계층 (Datalink Layer, 데이터링크 계층) : 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층 (단위 : Frame, ex. 이더넷, mac)
  • 1 계층 (Physical Layer, 물리 계층) : 데이터를 전기 신호로 바꿔주는 계층 (단위 : bit, 장비 : 케이블, 리피터, 허브)

세션 기반 인증 vs 토큰 기반 인증

세션 기반 인증은 클라이언트로부터 요청을 받으면 클라이언트의 상태 정보를 저장하므로 Stateful한 구조를 가지고, 토큰 기반 인증은 상태 정보를 서버에 저장하지 않으므로 Stateless한 구조를 가짐.

세션의 경우 Cookie 헤더에 세션ID만 실어 보내면 되므로 트래픽을 적게 사용하지만 JWT는 사용자 인증 정보와 토큰의 발급, 만료시작, 토큰의 ID등 담겨있는 정보가 세션보다 많아 훨씬 더 많은 트래픽을 사용함.

세션의 경우 모든 인증 정보를 서버에서 관리하기 때문에 토큰 보다 보안 측면에서 조금 더 유리함. JWT의 특성상 토큰에 실린 Payload가 별도로 암호화 되어있지 않으므로 누구나 내용을 확인할 수 있고 토큰이 한 번 탈취되면 해당 토큰이 만료되기 전까지는 피해를 입을 수 밖에 없음.

그러나 세션에 비해 토큰 기반 인증은 확장성이 높음. 일반적으로 웹 어플리케이션의 서버 확장 방식은 수평 확장을 사용함. 즉, 한 대가 아닌 여러대의 서버가 요청을 처리하게 되는데, 이 때 별도의 작업을 해주지 않는다면, 세션 기반 인증 방식은 세션 불일치 문제를 겪게 됨. 하지만 토큰 기반 인증 방식의 경우 클라이언트가 저장하는 방식을 취하기 때문에 이런 문제로부터 자유로움.

마지막으로 세션 기반 인증 방식은 서비스가 세션 데이터를 직접 저장하고, 관리함. 따라서 세션 데이터의 양이 많아지면 많아질수록 서버의 부담이 증가.

profile
코린이

0개의 댓글