한국산학기술학회논문지 Vol. 11, No. 10 pp. 3942-3949, 2010 한군희 1, 신승수 2* 1 백석대학교정보통신학부, 2 동명대학교정보보호학과 A Implementation of Messenger using Hybrid Cryptosystem Kun-Hee Han 1 and Seung-Soo Shin 2* 1 Division of Information & Communication Engineering, Baekseok University 2 Dept. of Information Security, College of Information & Communication, Tongmyong University 요약기존네이트온은사용자의개인정보를서버의데이터베이스에저장을하기때문에내부자공격에취약하고, 사용자간의통신내용도그대로송 수신되었다. 이러한정보노출문제점을해결하기위한안전한메신저를구현하였다. 본논문에서제안한메신저에서는서버에게사용자의최소한의개인정보만을공개하고중요한개인정보는사용자만알고있는패스워드로암호화하여서버의 DB에저장한다. 서버관리자또는제 3자는악의적인의도로사용자의중요한정보를알수없다. 또한네트워크상에노출되었던통신내용도송 수신시암 복호화되어때문에안전하게통신을할수있다. Abstract Since existing Nate-on Messenger application stores users' personal information in the database of its server, it is extremely venerable to internal threats, not to mention the communication data being transmitted without any safety measures. To solve such problematic areas of the existing application, we have developed a safer messenger application. The messenger application proposed in this paper discloses only the least required personal information of its users and the rest of the personal information is safely encrypted in the database using private passwords. This protective measure prevents the administrator or a third party from misusing the information since he/she will not be able access the information. In addition, users will be able to freely and safely communicate using this new messenger since transmitted data will also be encrypted. Key Words : Messenger, Nate-on, ARIA, RSA, MD5, SEED, Expansion P-Box 1. 서론 메신저는실시간의사소통및파일공유를지원해주는소규모통신프로그램을의미한다. 기업내부에서사용되는인터넷메신저의상당수는해당기업내부 IT (Information Technology) 조직의정책적인지원과는상관없이직원개개인의선택과사용에의해운영되고있다. 인터넷상에서무료로배포되고쉽게설치및사용할수있다는편리함으로인하여많은사용자들로부터환영받고있다. 대부분의인터넷메신저사용자는기업내부에서업무상공유하는통신그룹보다외부의사용자와더 큰규모의통신그룹을유지하게된다. 이렇듯인터넷메신저는기업내 외부의다양한사람들과의주요통신수단으로자리잡고있다 [1]. 국 내외에서많이사용하는메신저로는 MSN 메신저, Yahoo 메신저, AOL 메신저, 네이트온메신저등이있다. 이들메신저의공통점은바이러스나악성코드의전파경로로활용될수있거나, 이미그러한피해사례가보고되고있다는것과사용자간의사소통에대해서별도의암호화를제공하지않기때문에도청에취약하다는것이다 [2]. 메신저를사용하는기업입장에서는다음과같은사항 * 교신저자 : 신승수 (shinss@tu.ac.kr) 접수일 10 년 09 월 01 일수정일 10 년 09 월 30 일게재확정일 10 년 10 월 15 일 3942
들에주의해야한다. 첫번째, 메신저에대해서는국제적으로제정된표준이없으며메신저제공업체가독자적으로설계및개발한프로그램을그대로사용한다는것이다. 두번째, 메신저는정보보호, 에러체크및재전송등에대한기능은대부분매우취약하다. 세번째, 기업내부의직원들이임의적으로사용하는메신저에대하여기업의정보시스템관리자들이이를모두파악하고관리하기가매우어렵다는것이다 [3]. 네이트온메신저프로그램은사용자 ID 해킹과각종금융사고로인하여다양한방법으로기능을추가하여현재는네이트온메신저 4.0을출시했다. 그러나네이트온메신저의보안문제점중하나는사용자가친구에게보내는쪽지정보가네트워크상에그대로노출되는문제점이있다. 본논문에서는이러한문제점을해결하기위해서클라이언트간의메시지를하이브리드암호시스템을이용하여메신저를구현하고클라이언트간의안전한메시지를교환하고자한다. 본논문의구성은다음과같다. 2장에서는기존메신저에대해서분석하고, 3장에서는안전한메신저를설계및구현을한다. 그리고 4장에서는구현한메신저에대하여분석한후, 마지막으로 5장에서결론을맺는다. 취약성들을보완하였다. 현재는이와같은방법으로는공격이불가능하다 [4]. 당시네이트온에서의사용자인증정보는 ID( 또는이메일주소 ) 와패스워드의조합에해시알고리즘 (MD5) 을적용한값이었다. 따라서해시값을분석하면사용자의패스워드를검출할수있다. 상용프로그램인 Passwordpro 를사용하여네이트온메신저패스워드를해킹할수있었다. 이후해당업체의네이트온메신저보안업그레이드를통해해당취약성이보완되었으며현재는이러한공격이불가능하다 [5]. 하지만재전송공격과패스워드의취약점이해결이되었지만네이트온메신저의보안문제는사용자간의통신내용이그대로드러나고있다는것이다. 사용자가네이트온메신저로친구에게쪽지나편지에관한통신정보를담은패킷을캡처프로그램인 Etherial Packet Capture 를사용하여네이트온메신저의패킷을분석했다. 분석한결과송신자의이메일주소, 수신자의이메일주소, 송신자의글꼴정보, 쪽지내용등이네트워크상에그대로송 수신되기때문에본논문에서는통신내용이그대로노출되는문제점을해결하기위해안전한메신저를설계하고구현한다. 2. 기존연구분석 국내에서많이사용하는메신저는네이트온, MSN, 버디버디, 다음터치순으로많이사용하고있다. 많은메신저중에서네이트온메신저는 SSO(Single Sign On) 기능을통하여사이월드와연동하여사용할수있는등의수많은서비스들을제공하고있다. 네이트온메신저의인증메커니즘은사용자의정보들이암호화되어전송되도록되어있다. 그러나인증정보를만들때동일한사용자에대해서항상동일한인증정보를생성하여공격자가자신의신분을위장하여호스트가보내는패킷들을공격자를통해서전송하게하거나공격대상서버가공격자를다른사용자로인식하도록하는스푸핑공격기법을이용한재전송공격, 중간자공격에취약점이있었다. 또한인증정보는아이디와패스워드를조합하여해시알고리즘을적용한값으로되어있다. 이는공격자가악의적인목적을가지고네트워크트래픽을도청하는스니핑공격기법을이용하면제3자가패스워드를추출해낼수있는문제점을가지고있었다. 이와같은문제점들은논문을통해서발표되었고이후, 업체에서보안업그레이드를통해해당 3. 메신저설계및구현 이장에서는네이트온메신저의보안문제중심각한클라이언트간의통신내용이노출되는문제점을해결하기위해메신저를설계하고구현한다. 3.1 메신저구조메신저는크게일반사용자가접하는메신저클라이언트와관리자가사용하는메신저서버로구성되며중앙에회원관리및로그인처리를담당하는서버가존재한다. 메신저클라이언트는유동 IP 주소를사용해도상관없지만메신저서버는가급적 IP 주소가변하지않는고정 IP 주소를갖고있어야하며, 회원가입 / 관리를위해 SQL 서버와연결되어있어야한다. 메신저서버는 4개의테이블을메모리에생성해놓고 SQL 파일에서데이터를읽어와채워넣는다. 만약, 클라이언트가접속한다면 Client 클래스의이벤트가발생되며로그인과회원가입기능, 메시지발송에관련된기능이수행된다. Client 클래스는 ClientGroup 클래스를통해제어된다. 그리고메신저클라이언트는회원가입, 로그인, 채팅, 쪽지보내기기능을담당한다. 3943
한국산학기술학회논문지제 11 권제 10 호, 2010 클라이언트는프로그램에접속하여회원가입을요청하고승인이나면회원정보를서버의 DB에저장한다. 이후클라이언트는로그인을하여로그인에성공하면서버의 DB에서회원가입시저장한정보를받는다. 그리고통신을위하여다른클라이언트의아이디를추가하기위해대화상대처리를요청하여클라이언트들은통신이가능하게된다. 다음그림 1은메신저의구성도이다. (2) 로그인클라이언트가로그인을요청하면서버는 TBL_ Member 테이블에서아이디 (user_id) 와패스워드값을로그인시입력한값과같은지비교한다. ID와 PW가일치하면 TBL_Group/TBL_Friend 테이블에서회원 ID에해당하는그룹번호와친구로등록된목록을가지고온다. 친구와그룹정보를이용해클라이언트에보낼문자열을작성한후로그인이성공한사용자 ID와로그인시사용된 IP주소, 로그인상태, 접속시간등을 TBL_Connect 테이블에기록한다. 이때서버에로그인한친구정보가있다면, 이값을적용해로그인을시도한클라이언트프로그램에친구 / 그룹정보를전송한다. [ 그림 1] 메신저구조클라이언트의 DB 테이블들은 TBL_ Member에서회원가입을처리하고요청하면 TBL_ Zipcode에서우편번호를검색하여주소를입력한다. 모든입력이완료되면 TBL_Member의테이블에저장한다. TBL_Connect 에서는로그인을담당하며로그인이완료되면 TBL_ Friend에서 TBL_Group의정보를불러와클라이언트에게정보를보내준다. (3) DB에서대화상대처리클라이언트가서버에게친구추가를요청하면 TBL_ Member 테이블에서추가할친구의 ID를검색해서 TBL_Group/TBL_Friend 테이블에추가하여친구 / 그룹정보를추가한다. (4) 통신클라이언트가로그인에성공하면상대방이채팅이나쪽지보내기를요청할수있도록 ChatServer 클래스에서소켓이작동한다. 만약상대방이통신을요청하면 ChatWnd 클래스가활성화되며상대방과의채팅, 쪽지보내기등이이루어진다. 3.2 프로토콜구현메신저는회원가입, 로그인, 친구추가및그룹추가, 정보 ( 난수 ) 교환, 이미지추출을통한세션키생성등의단계로진행된다. 그리고, 공개키암호알고리즘인 RSA, 대칭키암호알고리즘인 ARIA, 해시함수인 MD5, SHA -1, 난수생성기인 ANSI x9.17을이용하여신뢰성과안전성을높였고, 언어는 C# 으로하였으며세부 PC 환경은표 1와같다 [6]. [ 그림 2] 클라이언트데이터베이스 (1) 회원가입클라이언트가회원가입을요청하면, 서버는 SQL서버의 TBL_Member 테이블에서회원아이디가있는지검사한다. 만약회원아이다가없다면, 우편번호테이블 (TBL_Zipcode) 을참조해 TBL_Member 테이블에서회원정보를입력하여저장한다. 3.3 메신저구현기존네이트온의쪽지패킷정보에는사용자의 ID와 E-Mail 주소, 사용자간의데이터패킷등이노출되어송 수신되는것을볼수있었다. 이러한중요정보들을보호하고자안전한프로토콜을사용하여메신저를구현하고자한다. 클라이언트간의안전한통신을위해메신저구현을암호알고리즘인 ARIA를적용하여구현한다. 하이브리드암호시스템을이용한메신저설계및구현의환경은표 1과같다. 3944
O/S Messenger Server Windows Server 2003 R2 Messenger Client Windows Server 2003 R2 Process intel Pentium(R) 4 intel Pentium(R) 4 CPU 3.00GHz 3.00GHz HDD 80GB 80GB RAM SD 512MB SD 512MB.NET Framework D/B [ 표 1] 환경설정.net framework3.5 x86 vs2008 MS SQL 2005 Server SP1.net framework3.5 x86 vs2008 MS SQL 2005 Server SP1 3.2.1 메신저서버메신저의서버를시작하기위하여다음과같은절차에의해서진행되며구현한결과는그림 3과같다. 1 클라이언트로부터서버의공개키를요청받았다는메시지가나타난다. 2 클라이언트가요청한서버의공개키를송신되었다는메시지가나타난다. 3 클라이언트의로그인정보와공개키정보가서버의공개키로암호화되어수신되었다는메시지가나타난다. 4 서버는클라이언트의공개키로암호화된회원정보를클라이언트에게송신하였다는메시지가나타난다. 5 SQL Server Info라는박스안에있는서버의주소, IP, PW, DB명을입력하여서버의시작버튼을클릭하면초록색으로바뀌면서서버가시작이된다. 3.2.2 메신저회원가입단계메신저를사용하기위해서는회원가입이이루어져야하며, 다음은회원가입에대한절차이며구현한결과는그림 4와같다. 1 서버에접속하기위해사용자 ID의사용여부를확인하여중복되지않도록한다. 2 우편번호를검색하면사용자가입력한동을기준으로서버의 DB에등록되어있는주소를받아와사용자가선택한주소에상세주소를입력한다. 3 입력이완료되면회원추가버튼을클릭함으로써서버에저장된다. 4 사용자가입력한모든정보를지운다. 5 회원가입을취소할때창을닫기위하여사용된다. 6 회원이자신의신상정보를수정할때사용되며, 모든수정이완료되면회원정보변경버튼을클릭하여수정된내용을저장한다. 1 2 3 4 5 6 그림 4 회원가입및회원정보변경 3.2.3 메신저서버친구관리, 그룹관리친구추가는클라이언트간의채팅이나쪽지보내기같은통신을위해서선행되어야하는단계로먼저친구의 ID를입력하고서버에서검색하여있으면추가가된다. 그리고그룹추가는친구 ID 리스트들을조건에맞도록그룹화하여사용자가쉽게알아보기위한단계이다. 구현한결과는그림 5와같다. 5 [ 그림 3] 서버메인 그림 5 서버친구 / 그룹관리 3945
한국산학기술학회논문지제 11 권제 10 호, 2010 1 사용자가입력한친구의 ID를가지고 SQL Server 에접속하여동일한값을찾는다. 2 친구의 ID와같은값이있으면친구정보추가를클릭하여친구의 ID가추가된다. 3 친구의 ID를삭제하는버튼으로친구의 ID를선택하고친구정보제거를클릭하면친구의 ID가친구리스트에서제거된다. 후그림 7의 3처럼난수를입력하고메시지를작성하여암호화버튼 4를클릭하고전송하면상대방은암호화된메시지 5를받는다. 3.2.4 메신저클라이언트메신저를처음시작하기위해서클라이언트는회원가입을통하여 ID를생성하여야한다. 그리고회원가입을마치면서버의 IP와회원가입시생성한 ID와 PW를입력하여 Login버튼 1을클릭하여메신저를시작한다. [ 그림 7] 클라이언트간쪽지쓰기 [ 그림 6] 클라이언트메인다음은클라이언트의메인으로다음과같이진행된다. 1 서버 IP와사용자 ID, PW를입력하고 Login 버튼을클릭하면메신저가시작된다. 2 서버의공개키 와클라이언트의공개키, 개인키 이나타나고다른클라이언트측과채팅시난수공유가완료되면 OTP에나타난다. 3 클라이언트은서버에게자신의 IP, ID, PW를서버의공개키로암호화하여보내자신의인증을요청한다. 4 서버로부터인증이되면자신의개인키로암호화된자신의개인정보를받는다. 3.2.4 클라이언트간의쪽지보내기와채팅 crypto1이 crypto2에게쪽지를작성하고암호화하여전송하기위해공유된난수로 crypto1이이미지를생성한 crypto1이 crypto2에게쪽지를작성하고암호화하여전송하는절차는다음과같이진행된다. 1 쪽지를받는사람의 ID가나타난다. 2 사용자가입력한쪽지의내용을확인하기위해암호화되지않은상태로나타난다. 3 공유된난수를 Expansion P-Box를통과한값을 Seed값으로하여 ANSI x9.17에서뽑아낸난수를이미지로나타낸것으로, ARIA 암호알고리즘의키로사용되기때문에난수가입력되어야암호화를할수있다. 4 입력된난수의이미지값을키로 ARIA 암호알고리즘을이용하여암호화하는버튼이다. 5 입력된난수를키로 ARIA 암호알고리즘을이용하여암호화된쪽지를전송하는버튼이다. crypto2가 crypto1로부터받은쪽지를복호화하는절차는다음과같이진행된다. 1 쪽지를보낸사람의 ID가나타난다. 2 입력된난수로부터얻은이미지키로 ARIA 암호알고리즘을이용하여암호화된메시지를나타낸다. 3 공유된난수를 Expansion P-Box를통과한값을 Seed값으로 ANSI x9.17에서뽑아낸난수를이미지로나타낸것으로, ARIA 암호알고리즘의키로사용되기때문에난수가입력되어야복호화를할수있다. 4 입력된난수를키로 ARIA 암호알고리즘을이용하여복호화할때사용되는버튼이다. 5 복호화된메시지를나타내기위한창으로난수를 3946
입력하여복호화버튼을클릭하기전에는메시지의어떠한내용도확인할수없다. 다음은 crypto2의쪽지받기에대한설명이다. 그림 8 에서난수를이용하여이미지를생성한후 3처럼난수를입력하고복호화버튼 4를클릭하면메시지내용을확인할수있다. 1 채팅을할때상대방의 ID가표시된다. 2 평문과복호화된메시지가나타난다. 3 전송하기전의메시지를확인하기위하여사용된다. 4 공유된난수를이용하여박스에입력하여얻은이미지값을 ARIA 암호알고리즘의키로사용된다. 이때난수를입력하지않으면암호화된메시지는복호화를할수없기때문에메시지는나타나지않는다. 5 입력된이미지값으로 ARIA 암호알고리즘을이용하여암호화된메시지를나타낸다. 6 폰트버튼은메시지내용을표시할때글자모양과글자크기를지정할수있다. 7 파일전송버튼은상대방에게파일을전송할때사용되는버튼으로클릭하게되면보낼파일을찾아서메시지를전송할수있다. 8 창닫기버튼은채팅을종료할때사용된다. [ 그림 8] 클라이언트간쪽지받기다음은클라이언트간의통신을위하여 crypto1이채팅을신청하면그림 9과같이 crypto2에게난수가전달된다. 난수의공유가완료되면이난수는채팅을신청한 crypto1이난수보내기버튼 1을클릭함으로써난수가이미지로생성되어 crypto1과 crypto2의 4와같이나타난다. 그리고클라이언트들은나타난이미지를텍스트상자에입력한후메시지를입력하여전송하면왼쪽에는평문이오른쪽에는암호화된메시지데이터가나타나게된다. 4. 패킷분석및비교 본장에서는기존메신저와제안한메신저에대하여패킷을비교분석한다. 구현한메신저에서는회원가입시 5회의해시함수연산과 2회의지수연산이필요하다. 회원가입후사용자가로그인을하게되면서버의공개키를가지게된다. 로그인단계에서지수연산은 2회에 0.05 μs이다. 현대컴퓨팅기술에서는연산속도가큰영향을미치지않는다. 기존의네이트온은그림 10과같이클라이언트 Crypto1이 Crypto2에게쪽지를보낸다고하였을때그림 11과같이네트워크상에서쪽지내용이그대로노출되었다. [ 그림 9] 클라이언트간의채팅 crypto1과 crypto2간의채팅에대한절차는다음과같이진행된다. [ 그림 10] 쪽지전송테스트 3947
한국산학기술학회논문지제 11 권제 10 호, 2010 기존네이트온은메시지정보를그림 10과같이네트워크상에서패킷을캡처하여분석한결과그림 11과같이송신자의이메일주소, 수신자의이메일주소, 송신자의글꼴정보, 쪽지내용등이그대로노출되는것을확인할수있었다. 2 1 [ 그림 13] 메신저쪽지보내기원본 [ 그림 11] 네이트온패킷본논문에서제안한메신저는기존의네이트온과달리쪽지를전송하기전에메시지를암호화하여전송한다. 동일한패킷캡처프로그램을사용하여네트워크상의패킷을캡처하여도그림 12와같이자신의 ID와암호화된메시지만표시되기때문에통신내용을알수없다. 1 2 [ 그림 12] 메신저쪽지보내기패킷분석 기존메신저는악의적인의도를가진서버관리자가내부 DB에서사용자의주민등록번호, 집주소, 전화번호등을모두알수있었다. 하지만본논문에서제안한메신저는최소한의사용자정보만을서버에노출시키고중요한개인정보는사용자만이알고있는패스워드로암호화를하여전송되기때문에안전하다. 즉, 암호학적해시함수의일방향성때문에서버관리자라하여도사용자의패스워드나사용자의개인정보를알수없기때문에내부자공격에안전하다 [7]. 그리고타임스탬프 ( ) 를이용하여메시지의유효성을검증하고있다. 만약공격자가사용자의메시지를중간에서가로채저장하고있다가재전송할경우, 그메시지는처음단계인타임스탬프 ( ) 에대한검증을통과할수없다 [8]. 또한공격자가다른정보를변경하지않고타임스탬프만변경할경우두번째단계인무결성검증을통과할수없다. Crypto1과 Crypto2가통신할경우공격자는 Crypto1과 Crypto2의메시지를중간에서가로챌수있다. Crypto1은서버를통하여안전하게 Crypto2의난수를수신받기때문에중간자공격에안전하다 [9]. 본논문에서제안한메신저는이전에사용한공개키나세션키에대한정보를저장하지않고, 한세션마다서버를통하여클라이언트간의공개키를생성하고난수를분배하기때문에안전하다. 본논문에서제안한메신저는그림 13과같이쪽지를보내기전에메시지를암호화하여전송한다. 클라이언트간의안전한통신을위한메신저는쪽지를보내기전에이미지배열에서추출된이미지를 128비트의입력값을 Expansion P-Box를통해 256비트의확산된출력값을생성한다. 출력값을세션키로사용하고세션키를이용하여암호화되어전송되기때문에악의적인목적을가진제3 자로부터통신내용이안전하다. 5. 결론 기존의네이트온은클라이언트가쪽지를보낼때패킷을분석하면네트워크상에서그대로노출되었다. 또한네이트온은사용자의개인정보를서버의 DB에저장을하기때문에내부자공격에취약하고송신자의이메일주소, 수신자의이메일주소, 송신자의글꼴정보, 쪽지내용등이네트워크상에그대로노출되는것을확인할수있었다. 이러한심각한정보노출문제점을해결하기위해메 3948
신저를설계하고구현하였다. 본논문에서제안한메신저에서는서버에게클라이언트의최소한의개인정보만을공개하고중요한개인정보는사용자만알고있는 PW로암호화하여서버의 DB에저장한다. 클라이언트의개인정보는자신의 PW로암호화되기때문에서버관리자또는제3자는악의적인의도로사용자의중요한정보를알수없다. 또한네트워크상에노출되었던통신내용도암호화되기때문에안전하게통신을할수있다. 신승수 (Seung-Soo Shin) [ 정회원 ] 2001 년 2 월 : 충북대학교수학과 ( 이학박사 ) 2004 년 8 월 : 충북대학교컴퓨터공학과 ( 공학박사 ) 2005 년 3 월 ~ 현재 : 동명대학교정보보호학과교수 참고문헌 < 관심분야 > 암호프로토콜, 네트워크보안, USN, 스마트카드 [1] Grey, M., Love It or Hate It: Instant Messaging Invades the Enterprise, Gartner, 2001. [2] Beer, S., "Instant Mayhem", SMH, 2003. [3] Grey, M. Batchelder, R., "Free Instant Messaging: Taming the Wild Beast", Gartner, 2001. [4] 신동휘, 최윤성, 박상준, 김승주, 원동호. 네이트온메신저의사용자인증메커니즘에대한취약점분석, 정보보호학회논문지, pp. 67-80, 2007. [5] 전웅렬, 원동호, 김승주, 국내상용제품의취약성분석, 정보보호학회지, 제19권제4호, 2009. [6] 윤영준, 표경환, 신승수, 한군희, 사용자사이의안전한통신을위한메신저설계, 한국산학기술학회춘계학술대회논문집, 2010. [7] Behrouz A.Forouzan. Cryptography and Network Security, ( 주 ) 한국맥그로힐, 2008. [8] 임종인, 이동훈. 금융분야의안전한암호이용에대한연구, 2008. [9] 박해룡, 전인경, 이향진, 최은영, 강연정, 이환진, 신동휘. 암호이용활성화보고서, 한국정보보호진흥원, 2008. 한군희 (Kun-Hee Han) [ 종신회원 ] 2008 년 8 월 ~ 현재 : 백석대학교정보통신학부교수 < 관심분야 > 암호프로토콜, 네트워크보안, 영상처리 3949