세션과 쿠키 (Session and Cookie)

컴퓨터과학·AI
한 줄 정의: 원래 사용자를 기억하지 못하는 웹 통신 방식에서, 로그인 상태나 사용자 정보를 유지하기 위해 서버가 "세션"을 만들고 브라우저가 그 열쇠를 "쿠키"로 저장해 두는 방식입니다.

쉽게 풀면

놀이공원에 입장할 때 손목에 도장을 찍어주면, 이후 다시 줄을 서서 표를 보여주지 않아도 도장만 확인하면 재입장이 가능합니다. 웹사이트도 비슷한 방식을 씁니다. 처음 로그인하면 서버는 "이 사용자는 로그인했다"는 정보를 서버 안에 저장해 두고(세션), 그 정보를 찾을 수 있는 열쇠 번호를 사용자의 브라우저에 넘겨줍니다(쿠키). 이후 사용자가 페이지를 이동할 때마다 브라우저는 이 쿠키를 자동으로 함께 보내고, 서버는 쿠키에 적힌 열쇠 번호로 세션을 찾아 "아, 이 사람은 로그인한 사용자구나"라고 알아보는 것입니다.

왜 중요한가

세션과 쿠키는 웹 애플리케이션에서 로그인 유지, 사용자 식별, 개인화 추천 등 거의 모든 상태 기반 기능의 토대가 되는 메커니즘입니다. 그래서 웹 보안 연구에서는 세션 하이재킹 방어 기법을, 사용자 행동 분석·추천 시스템 연구에서는 세션 단위 로그 처리 방식을, HCI 연구에서는 개인정보 및 프라이버시 이슈와 관련지어 이 개념을 다루는 등 여러 분야에서 반복적으로 등장합니다.

논문에서는 이렇게 쓰입니다

"사용자 행동 로그는 세션 쿠키에 부여된 고유 식별자를 기준으로 그룹화하여 동일 방문 내 클릭 흐름을 재구성하였다."

이 문장은 "쿠키에 저장된 세션 식별자를 이용해 같은 방문(세션) 동안 사용자가 클릭한 순서를 하나로 묶어 분석했다"는 뜻입니다. 웹 로그 분석, 사용자 행동 연구, 추천 시스템 논문에서 세션과 쿠키는 사용자 단위를 구분하는 기본 단위로 자주 쓰입니다.

"제안한 인증 프로토콜은 세션 고정(session fixation) 공격을 방지하기 위해 로그인 성공 시마다 세션 식별자를 새로 발급하도록 설계되었다."

공격자가 미리 알고 있는 세션 식별자를 사용자가 그대로 쓰게 만드는 공격을 막기 위해, 로그인할 때마다 새 식별자를 발급하는 방어 기법을 제안했다는 뜻으로, 웹 보안 연구에서 흔히 쓰이는 서술이다.

"실험 참가자에게는 서드파티 쿠키 차단 옵션이 사용자 행동 인식과 프라이버시 우려에 미치는 영향을 설문 형식으로 조사하였다."

브라우저의 쿠키 차단 기능이 사용자의 인식과 우려에 어떤 영향을 주는지 조사했다는, HCI·프라이버시 연구 맥락의 서술이다.

조금 더 깊게 보면

세션 식별자는 보통 무작위로 생성된 긴 문자열이며, 예측하기 어렵게 만드는 것이 보안의 핵심입니다. 쿠키에는 만료 시간, 접근 가능한 도메인/경로, HttpOnly(자바스크립트로 접근 불가)나 Secure(HTTPS에서만 전송), SameSite(다른 사이트에서의 요청 시 전송 제한) 같은 속성을 지정할 수 있는데, 이런 속성 설정이 세션 하이재킹이나 CSRF 같은 공격을 막는 데 중요한 역할을 합니다. 최근에는 쿠키 없이 토큰(JWT 등)을 이용해 상태를 유지하는 방식도 널리 쓰이며, 두 방식의 장단점을 비교하는 연구도 존재합니다.

주의할 점

쿠키에는 세션 식별자뿐 아니라 다양한 정보가 저장될 수 있는데, 이 값이 노출되면 공격자가 다른 사람의 세션을 가로챌 수 있습니다. 앞서 다룬 크로스사이트 스크립팅 공격이 사용자의 쿠키를 훔치는 대표적인 경로로 악용되는 이유가 여기에 있습니다.

관련 용어