예전에 싸이월드에서 쿠키를 너무나도 정직하게 사용하던 시절이 있었다.

당시에 미니홈피 주인과 나와의 관계를 degree 라는 쿠키에 저장했는데, 값이 1이면 일촌이라는 의미였다. 바꾸어 말해 degree=1 이면 일촌이므로 누군가 능력이 되는 사람이 쿠키를 수정한다면 모르는 사람과도 일촌이 될 수 있었다. 실제로는 이 쿠키를 수정하면 일촌이 아니더라도 일촌인 것으로 인식해서 일촌공개 사진을 보여주었다.

그렇다면 쿠키를 수정하는 방법은 어렵고 복잡했을까? 해커만 가능했을까?
문제는 절대 그렇지 않았다는 점이다.

웹브라우저 주소창에

javascript:document.cookie='degree=1'

만 복사해 넣으면 누구나 가능할 정도로 쉽다. 허무하지 않은가? 보고 싶은 연예인 미니홈피의 일촌공개 사진. 헤어진 옛 애인의 일촌 공개 사진이 저렇게 단순하게 보여진다는 상황이. 아울러 나의 숨기고 싶은 일촌공개 사진들도 누구나 쉽게 볼 수 있다는 상황이...
(참고로 위의 방식이 문제가 되어 바로 수정되었다)

아직도 많은 사이트가 위와 같은 방식을 사용하고 있다. 말하자면 쿠키의 위험 에 노출되어 있다.

쿠키 보안의 최선의 방법은 쿠키를 사용하지 않고 세션으로 처리하는 것이다. 하지만 세션의 여러가지 단점으로 인해 쿠키를 사용하고 있다. 대형사이트는 성능상의 이유로 필연적으로 쿠키를 사용해야 한다.

쿠키를 사용해야 하면서도 보안을 유지하려면 어떻게 해야 할까? 답은 '암호화' 이다. 내용이 뭔지 모르게 복잡하게 만드는 것이다. 쿠키는 누구든지 간단하게 조회하고 수정할 수 있다. 어차피 노출 될 수밖에 없으니, 노출되더라도 무슨말인지 알아 볼 수 없게 만드는 것이다.

id=ibecky :누구든지 알 수 있다.
id=sru3489ruo387r : 이게 무슨 말이지??

쿠키 값을 암호화하면 쿠키를 보더라도 무엇을 의미하는지 알 수 없다. 물론 id 라는 변수가 있으니 ibecky를 암호화한 값이 sru3489ruo387r 라는건 눈치챌 수 있다. 그럼 tistory 를 암호화한 값은???

모르면 찍어야 하는데 무작정 찍다가는 수 십년은 족히 걸린 듯 하다. 이것이 바로 암호화를 사용해야 하는 이유이다.

한줄요약: 쿠키를 암호화하자.

이올린에 북마크하기(0) 이올린에 추천하기(0)