IT/Network

웹 세션 (Web Session) - 세션 토큰이란?

김반장님 2022. 8. 25. 21:57
반응형

1. Cline Side Validation

- 웹페이지 입력폼(Input Form)에서 잘못된 내용이 있을 때 클라이언트 측의 소스코드 안에서 검증하게 된다. 이 때, 클라이언트의 소스코드를 변경해서 우회를 할 수 있는 방법이 존재하게 된다.

: 이에 서버에서 이 사항을 다시 검증하는 방법을 취하는 것이 필요하다. 하지만 서버의 퍼포먼스를 이유로 많은 사이트에서 적용하지 않고 있는 경우가 많다.

 

2. 웹 세션(Web Session)

가. TCP Session

  • - TCP는 Sequence Num. 과 Ack Num.을 통해 연결이 계속 유지될 수 있다.
  • - 클라이언트와 서버를 동기화 시키는 과정.

 

나. 웹 세션 (Web Session)

  • Web은 TCP 연결을 포기하고 Login을 사용하려 한다고 알고 있으나, 실제로 Login은 session, TCP와 분리시킬 수 없는 개념이므로 Web Session을 다시 만들게 된다.
  • 웹 세션은 Session으로 이루어져 있으며 Session Token은 단순한 문자열 형태 (string + binary[hash]의 조합)
  •  token (어떤 구간을 통과하기 위한, 일종의 통행료)
  • 모든 웹페이지는 "인증"을 통해서만 접근이 가능하다. (홈페이지의 메인 페이지는 우리가 따로 인증 값을 입력하지 않았지만 "익명 인증"으로 접근해서 볼 수 있는 것이다)
  • 기존의 session token은 웹페이지가 변경될때 session token 재발행 or 기존 토큰의 권한 상승을 유도하였다. 현재에는 session token을 로그인 후 재발행을 해서, 로그인 아이디에 합당한 권한을 준다.

 

다. 세션 토큰의 조건

  • Server / Client에 있는 세션 토큰이 동일하게 저장되어 있어야 한다.
  • 모든 Request에 첨부되어야 한다
  • 세션 토큰은 쿠키에 저장함.
  • 위 조건이 위배되는 경우 세션 토큰을 다시 요청하도록 한다.

 

라. 쿠키 저장 방식(2가지)

  • 쿠키는 일반 텍스트로 되어 있고, 암호화 X.
  • 쿠키에 "만료기간"이 있으면 HDD에 저장. "만료기간"이 없으면 메모리에 저장한다.
  • 쿠키는 "개인정보", "사용자의 행위 분석", "팝업 설정", "세션 토큰" 등을 저장함.

 

마. 메모리에 쿠키 저장

  • - 쿠키 값을 전달받은 프로세스의 메모리 영역에 저장 (필자의 경우, Internet Explorer 프로세스 ---> iexplorer.exe)
  • 세션 토큰은 만료 기간이 없기 때문에, 해당 프로세스의 메모리에 저장된다.(세션 토큰 = 권한)
  • client 측에서 해당 프로세스(iexplorer)가 종료되더라도, 서버에서 세션 토큰을 일정 시간 유지하기 때문에, 탈취한 세션 토큰으로 victim과 같은 권한을 유지할 수 있다. (client 측에서 idel 되자마자, 서버에서 세션 토큰을 정리해 버린다면 세션 하이재킹을 방지할 수 있을 것으로 생각된다)
  • http의 request 메시지에 해당 세션 토큰이 있으면, 해당 사용자의 권한으로 접근할 수 있게 된다.

 

바. HDD에 쿠키 저장

  • 개인정보, 사용자의 행위 분석(접근 웹페이지 등), 팝업 설정은 HDD에 저장 된다.

 

반응형