완료됨
session & cookie

이름=드림이 (cookie) 는 가로챌 수 있는데 ticket=98b96a 는 못가로채나요? cookie만 있을 때 위험한 게 cookie가 탈취된 상황이라면, serverside의 session에 대응되는 key가 cookie에 저장되면 session이 프로세스에 추가되어도 보안이 더 강화된 게 아니지 않나요? 제가 어떤 점을 놓치고 있는 것 같아요.

#웹해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 2
avatar
whysw
워게임 풀이: 20

쿠키를 가로채지는 못하는 상황으로 가정해주세요.

만약에 쿠키에 이름=드림이를 쓰면 드림이 계정으로 로그인이 될 때의 문제점은, 드림이라는 이름은 누구나 알 수 있기 때문에 아무나 드림이를 흉내낼 수 있게 되는 것입니다. (로그인을 수행하지 않아도 로그인한 척할 수 있다)
강의자료에도 나와있지만 session을 사용하게 되면 드림이 계정의 비밀번호를 인증해야만 받을 수 있는, 유추할 수 없는 랜덤 문자열 키를 이용하기 때문에 해당 사용자만 접근할 수 있음을 보장할 수 있습니다.

2020.10.20. 13:33
Kerz
워게임 풀이: 20

쿠키와 세션의 차이점을 정리하고 싶네요.

쿠키는 사용자의 추가, 수정, 삭제 행위가 가능하고 클라이언트단에서 관리됩니다.

세션은 중요정보는 서버에 저장되고, 서버단 언어를 통해 세션 관련 정보를 쿠키의 session 변수를 통해 관리됩니다.

  1. 질문에서 가로채다라는 의미는 안전하지 않은 프로토콜 (HTTP, FTP, SMTP and so on), 즉 암호화되지 않은 프로토콜으로 정보가 전송될 때 발생 됩니다. 공격자가 같은 대역대나 스니핑이 가능한 환경에서 쿠키 값을 가로챌 수 있습니다. 이 때 세션이 포함된 쿠키도 가로채게 될 수도 있습니다. 다만, IP 체크라던지 다른 보안 방어 메커니즘으로 공격자는 가로챈 쿠키를 사용할 수 없을 수도 있습니다.

  2. 세션이 쿠키보다 안전하다는 것을 말하기 위해서는 웹 서비스의 특정 권한을 사용자가 변경할 수 없게 세션을 사용하는 것 입니다. 예를 들자면, 쇼핑몰에서 만약 금액을 저장하는 변수가 cookie 로 관리된다면, 사용자는 임의로 금액 변경이 가능하고, 쇼핑몰 운영자는 손해를 보겠습니다.

그 밖의 세션의 장점은 검색을 통해서 확인이 가능할 듯 합니다.

2020.10.28. 18:19