본문 바로가기

Network

네이트온 - 프로토콜

NATE ON 프로토콜 엿보기

 

NATE ON  현재(2009/12/27 13:44:13) 4.0 버전까지 나와 있다.

SK_Communications.png 에서 만들었음이 아닌가 추측해본다.

 

한국에서는 MSN 메신저를 추월했을 만큼 사용자들이 월등히 많다.

개발자 입장에서 네이트온 메신저를 요모조모 기술적인 관점에서 뜯어보기로 하겠습니다.

절대 해킹이나 나쁜 목적으로 게시하는 것이 아님을 사전에 말씀드리고 그런 용도로 참고하지 마시기 바랍니다.

 

이미 웹상에는 네이트온 메신저 프로토콜에 대해 많이 분석을 해놓았다.
NateOn Protocol Plugin for Pidgin : http://dev.haz3.com/trac/nateon/wiki

네이트온 메신저의 사용자 인증 메커니즘에 대한 취약점 분석(학술논문) :  http://www.reportshop.co.kr/kstudy/10883/D10882986.html

 

NATE ON 자동업그레이드 사용 안하기

바탕화면에 있는 바로가기는 "C:\Program Files\NATEON\BIN\NATEON.exe" 실행파일을 가리키고 있다.

실제 NATEON.exe가 하는 역할은 자동업데이트 기능이고
실제 메신저는 같은 폴더 내의 NateOnMain.exe가 주요 기능을 수행한다.

하지만 NateOnMain.exe를 바로 실행하면 바로 종료가 되어 버린다.

그 이유는 NATEON.exe가 NateOnMain.exe 프로세스를 시작할 때 특별한 인자를 주어 실행을 하기 때문이다.

바로 -ex 이다.

 

네이트온의 바로가기를 수정하여 자동업그레이드를 사용하지 말자. 뚱뚱한 버전은 싫어!

기존: "C:\Program Files\NATEON\BIN\NATEON.exe"

수정: "C:\Program Files\NATEON\BIN\NateOnMain.exe-ex

 

그러면 아래와 같은 다운로드 창없이 바로 메신저가 뜰 것이다.

 

NATE ON 메신저 시작시

네이트온 메신저를 가동할 때 새 버전이 나오면 자동업데이트가 실행이 된다. 사용자에게는 편리한 기능이다.

과연 어떤 식으로 작동이 될까? 참고로 내가 테스트 해본 버전은 아래와 같다.

 

 

<패킷 정보>

GET /Upgrade/Upgrade40.ipml HTTP/1.1

User-Agent: Microsoft Internet Explorer

Host: nateon.nate.com

Cache-Control: no-cache

Cookie: UVID=AQAECAQMCQkHDAcDAA0GCA==; UD2=364c6c5afa337382; LOGIN=savecid=&logincid=&id=21112366; pcid=126182896539011696; NateMain=NateOn=N&NcOpen=1

 

HTTP/1.1 302 Found

Date: Sun, 27 Dec 2009 04:35:47 GMT

Server: Apache

Location: http://211.234.239.48/Upgrade/Upgrade40.ipml

Content-Length: 228

Connection: close

Content-Type: text/html; charset=iso-8859-1

 

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="
here.http://211.234.239.48/Upgrade/Upgrade40.ipml">here</a>.</p>
</body></html>

<설명>

우선 네이트온이 실행이 되면 ("C:\Program Files\NATEON\BIN\NATEON.exe")

211.234.239.58으로 TCP 연결(소켓)을 하여 /Upgrade/Upgrade40.ipml 파일을 HTTP/1.1 GET 요청을 한다. (위에서 주황색)

하지만 이 자원의 주소가 바뀌었는지 302 에러를 리턴하고 (위에서 첫 번째 청색 단락)

주소가 http://211.234.239.48/Upgrade/Upgrade40.ipml로 바뀌었다고 알려준다. (위에서 두 번째 청색 단락)

<두 번째 연결>

GET /Upgrade/Upgrade40.ipml HTTP/1.1

User-Agent: Microsoft Internet Explorer

Host: 211.234.239.48

Cache-Control: no-cache

Connection: Keep-Alive

 

HTTP/1.1 200 OK

Date: Sun, 27 Dec 2009 04:35:47 GMT

Server: Apache

Last-Modified: Tue, 22 Dec 2009 08:50:32 GMT

ETag: "73e-4c70c600"

Accept-Ranges: bytes

Content-Length: 1854

Connection: close

Content-Type: text/plain; charset=euc-kr

그러면 다시 이 주소(211.234.239.48)로 HTTP/1.1 GET 요청을 한다. (위에서 주황색)

그러면 서버(211.234.239.48)은 impl 파일을 네이트온이 설치된 클라이언트에 전송을 시켜준다.

impl가 업그레이드 설치 스크립트 정보라고 보면 된다.

 

그럼 Upgrade40.ipml에는 무슨 정보가 있나?

INI 파일과 같은 형태로 되어 있다. INI에서 정보구성은 섹션(section)과 이름(name), 값(value)로 되어 있다.

섹션이란 대괄호로 쌓여있다. 이름과 값은 키와 값(K,V)의 쌍과 유사하다고 보면된다.

ipml 파일은 크게 4개의 섹션으로 구성되어 있다. (Upgrade Info,  Patch Files, UI Info, Secure Info)

Upgrade Info

업그레드에 대한 개괄적인 정보가 들어가 있다.

중요한 것은 serial과 patch serials 인데 전자는 현재 설치되어 있는 버전(빌드 버전)이고 후자는 패치를 할 대상이다.

description url는 업데이트 후 나오는 메시지이다.

Patch Files

대상(target)에 대한 패치를 파일의 위치 정보가 들어가 있다.

[Upgrade Info]에서 patch serials에 대한 것은 url숫자로 대응이 되고 그 이외는 default URL이 대응된다.

UI Info

'네이트를 시작페이지로 설정', '네이트를 즐겨찾기에 추가', '네이트를 기본검색공급자로 지정', '네트워크 환경 및 악성코드 검사', '네이트온 간단 메일 저장 설치 및 업그레이드' 등의 정보를 담고 있다.

Secure Info

INI에서 주석은 세미콜론(;)으로 대체 되었지만 아직까지 #기호를 주석으로 사용하는 것도 있는 것으로 보인다.

주석처리가 되었기에 특별히 사용되는 것 같지 않다.

 

네이트온 메신저의 트래픽 양은?

메신저에 로그인해놓고 있으면 상대방이 말을 걸면 대화창 팝업이 올라오고 메일(네이트온/싸이 메일)이 올경우 즉각즉각 알려준다.

거의 실시간이라고 볼 수 있는데, 그렇다면 네이트온은 접속을 계속 유지하고 있는 것인가?

결론부터 이야기하면 "맞다"이다.

 

IP 주소(공인) 참고

211.234.239.48 => http://nateonweb.nate.com

211.234.239.49

211.234.239.50 (←nateonweb.nate.com)

211.234.239.53

211.234.239.54

211.234.239.55

211.234.239.57

211.234.239.58 (←nateon.nate.com) => http://nateonweb.nate.com

211.234.239.59

211.234.239.62

120.50.132.111 (←www.nate.com)

  1. => : location.replace('http://nateonweb.nate.com/'); 를 말함
  2. ← : dns에 의해 ip주소로 변환이 됨을 의미함


'Network' 카테고리의 다른 글

FTP(File Transfer Protocol)  (0) 2012.09.21
DNS(Domain Name System)  (0) 2012.09.21
Active Directory(액티브 디렉터리)  (0) 2012.09.21
LDAP  (0) 2012.09.21
UTP(랜케이블) 커넥터 만들기  (0) 2012.09.21