이제 연휴는 끝났다. 다시 회사일에 버닝해야 할 시간 ![]()
아무튼 며칠전 JaTeOn 멤버로 들어간 후 중간중간 kfmes님과 기술적인 대화 말고는 그다지 기여한 게 없어 가볍게 파일전송이나 넣어볼까 하는 마음으로 가볍게 ethereal님을 켰다.
우웃 제길슨! 언제부터 네이트온이 이런 새로운 feature를 넣었지? -- 네이트온의 모든 대화메시지가 암호화된다. 다행히 암호화 여부를 클라이언트가 선택할 수 있다.
MSN 용어로 Switchboard 에 참여할 때 이것을 클라이언트가 다음과 같이 보낸다.
ENTR 1 rath.myid.net ......... ......... 4F1C65A70BC4003F4C7300630BB1 UTF8 C
바로 'C' 다. C를 보내지 않거나 'P'를 보내면 메시지 전문을 평소처럼 plain/text로 다 까볼 수 있다.
그런데 C를 보내면.. 네이트온 서버로부터 BASE64로 인코딩된 Public Key를 받는다. (헤더가 4글자라 추측이 쉽네
)
PBLK 0 AAAAAQAAACIACAAAZhAAAGYPAABmDgAAp...XQMcYXpcD3z2IhnL08yLC3Ecoi/q/JKD49TTw==
그러나 알려진 툴들로 이것을 분석하는데는 실패했다. 이름이 PBLK 인것 그리고 내용에 NateOn Messenger, nateonmaster@nate.com, SK Communications, Seoul, KR 등이 포함된것으로 미루어 볼 때 인증서가 맞긴 맞는데.. openssl x509로 몇가지 옵션을 넣어봤지만 모두 다 실패했다. asn1parse로도 잘 안된다.
아무튼 서버의 PBLK는 이름에서 알 수 있듯이 항상 동일하지만 Handshake를 마치기 전 클라이언트에서 응답하는 패킷인 ESSK는 항상 바뀌는 것으로 보아 random generated 인듯하다.
ESSK 2 AAAAAQAAAAYAAQAAZhATGOcCbeUB+Lzq5wOPlB.....7r25YaDncg== RAW
인증서 내용 어떻게든 까야 publicKey 뽑아낼텐데.. 그리고 ESSK의 정체는 뭘까, Extended Super SK -_-? 아무튼 ESSK 이후로는 CRPT 헤더로 모든 패킷이 encrypt 된다. 길이들이 24, 104, 56, 72 인것으로 보아 block cipher 같다.
네이트온 대단하다. 대화 세션마다 PKI handshake를 하다니.. 아무튼 내일을 위해 이만 잔다.