관리 메뉴


Kinesis´s Open Document

진단항목 : 안전한 인증 및 세션 관리 - 보관과정 #02 본문

기획 시리즈/보안 : 진단항목 이해하기

진단항목 : 안전한 인증 및 세션 관리 - 보관과정 #02

Kinesis 2016. 6. 29. 14:16


※ 최대한 이해하기 쉽게 서술하고자 하였으나 보안 지식은 기초라 할지라도 일반적인 기초 과정보다 높은 수준을 필요로 합니다.

※ 본 내용은 초안이며, 저작권은 저 Kinesis(Hae Kwang, Kim) 에게 있으므로 무단으로 펌하여 재배포하는 것을 금지합니다. (단, 본 게시물의 일부만을 발췌하여 출처 주소를 남겨 본 게시물에 접근할 수 있는 링크를 남기는 경우는 허용합니다. 이는 제가 여러분들을 믿고 양질의 게시물을 작성하고 여러분들은 접할 기회를 제공받기 위한 서로의 배려입니다.)


※ 본 내용은 보안 기초를 학습하는 사람이나, 개발자들에게 유용할 수 있습니다


최종본 바로보기

보관과정에서 고려해야 할 두 번째 이슈암호화 처리를 통한 보관에 대한 이슈다. 보통 자동로그인이나 로그인과정 자체를 편하게 제공하기 위해 아이디 및 패스워드를 보관하는 등의 기능을 구현하는 경우가 있다. 이 경우 아이디 및 패스워드를 보관하기보다는 앞서 첫 번째 이슈에서 말 했듯이 인증처리 된 세션식별자를 발급받아 해당 식별자를 보관하는 것이 좋다. 


비 전공자를 위한 추가 서술

거듭 설명하지만 가급적 정보는 클라이언트측에 전송이 되지 않도록 하는 것이 바람직하다. 이는 접근하는 클라이언트측에 데이터를 노출하는 결과를 초래하고 공격자가 공격할 수 있는 여지를 만들어 줄 수 있어 공격의 가능성을 높이게 되는 결과를 가져오기 때문이다.


또한 물리적 장치에 해당 데이터를 보관해야 하는 경우, 클라이언트 자체에 암호화 및 복호화 기능을 이용하기보다는 서버측에서 별도의 알고리즘에 의해 처리되는 암호화를 통해 서버로부터 발급받은 데이터를 보관하는 것이 공격자의 공격 가능성을 낮추는데 도움이 된다. 이는 어떠한 방식을 사용하든 클라이언트측에서 암호화 및 복호화를 거치게 되는 경우에는 역분석 등의 과정을 통해 복호화 및 암호화 알고리즘이 노출되어 이를 활용한 변조 공격이 발생될 수 있기 때문이다.


비 전공자를 위한 추가 서술

물리적 장치 즉 하드디스크나 USB 메모리 등 어떠한 저장장치에 저장한 다는 것은 노트나 메모장 등에 기록을 하는 것과 같아서 만약 노트나 메모장이 놓여있는 공간을 다른 제 3자가 접근할 경우 해당 공간을 뒤적이거나 살펴보다가 노트 또는 메모가 노출될 가능성이 있는 상황이 발생할 수 있다.


자 그렇다면 이 경우 노트에 적어놓은 메시지 또는 정보가 어떠한 용도로 사용되는지 추정할 수 있다면 상대방은 습득한 유용한 메시지나 정보를 악용하지 않으리라고 장담할 수 있을까? 더욱이 해당 정보가 출입을 위한 일련의 비밀번호이고, 그 장소를 안다고 가정한다면 상대방은 그 정보를 습득해 감으로서 해당 장소를 출입할 수 있는 권한을 얻은 것과 같아진다. 


이러한 경유에 대비하기 위해서는 메모에 작성되는 내용을 암호화 하거나, 자신만 알아볼 수 있는 형태의 메시지로 바꾸어 놓는 것이 안전하다. 근데 해당 내용을 다시 풀어내기 위한 방법을 기억하지 못할 경우를 고려하여 집안의 또 다른 노트에 자신이 적은 메시지를 복원하는 방법을 기술해 놓는다면 유능한 도둑(공격자)은 자신이 작성해놓은 복호화 메시지를 발견해 비밀번호를 습득할 수 있게 된다. 


이때 클라이언트가 집안이 되는 것이고 메모가 클라이언트 내부의 코드에 해당된다고 추상화하여 이해할 수 있는데 이러한 사유로 클라이언트에 복호화를 위한 코드를 포함하지 않고 서버측에서 이미 암호화된 값만을 받는 방향으로 조치하길 권고하는 것이다.



Comments