[t:/]$ 지식_

session, cookie

2014/11/28

1. 개요. (너님들도 다 아는 거)

서버는 브라우저측에 쿠키를 생성하고 해당 쿠키 안에 세션 ID를 저장한다. 뭐 대충 세션 쿠키라고 부르면 될 것 같다.

PHPSES… JSES.. 언어나 플랫폼마다 이런걸 저장한다.

이후 서버측에서는 해당 ID에 매핑하는 정보를 파일이든 메모리든 저장해두고 쓴다.

HTTP는 본디 req/res 한 짝으로 단발성 프로토콜이지만 이렇게 세션을 통해 브라우저와의 약속으로 사용자의 동선동안의 정보가 트래킹된다.

2. 문제점 (거의 다 아는 거)

세션은 https를 사용하지 않을때 스니핑에 의해서 하이재킹가능하다.

쿠키를 파일로 떨구면 넘이 로그인한 정보를 내가 이용하여 로그인을 탈취할 수 있다.

또는 악성코드, 악성스크립트를 통해서 쿠키 파일 자체를 탈취할 수도 있다.

3. 어떤 해결책

네이버 세션을 까보니 JSE.. 가 있는데 리프레시 할 때마다 바뀐다.

OTP화 한 것이다. 들어올 때마다 바꾸고 이전 세션ID와 매핑시킨다. 이러면 탈취 당해도 다시 이용하려 들면 사용할 수 없다. 문돌이들이 마구 같다 쓰는 방식으로 따지면 양자역학과도 같다. 관측하지 않으면 바뀌지도 않는데, 관측하는 순간 바뀐다.

4. 기타

PHPS… 를 로컬 서버에서 까보니 그냥 바뀌지 않는다. 기본 언어가 제공하는 수준은 이 정도다. 서버가 stateful한 리소스를 가져가야 된다는 점에서 PHP같은 놈은 힘들다. 톰캣이라면 쉽게 구현 가능하다.

5. 플러스 알파.

OTP를 구현하기로 마음 먹었다면 다른 짓도 얼마든지 할 만하다. 비밀. 끗. ㅋㅋ









[t:/] is not "technology - root". dawnsea, rss