XMPP 프로토콜과 통합 메신저로 행아웃 연동하기
XMPP
XMPP를 사용하는 대표적인 메신저 서비스는 행아웃이 아니고도 한 개가 더 있는데, 그것이 바로 Facebook Chat service 이다. 여러분들이 Facebook 홈페이지에서 혹은 Messages 앱을 사용하여 Facebook의 친구들과 채팅을 주고 받는 프로토콜 서비스 또한 이 XMPP로 이루어져 있다. 1999년에 개발되어 Jabber라는 이름을 갖고 있었으나 현재는 XMPP라는 이름을 사용하고 있고, 보안성과 플랫폼이 개방되어 있는 오픈 소스여서 현재 채팅 프로토콜 중에 가장 인기 있는 프로토콜 중에 하나다.
XMPP의 장점
그렇다면 XMPP가 이토록 인기리가 있는 가장 대표적인 메신저가 사용하는 이유는 무엇일까?
1. 분산 처리
바로 첫 번째가 분산 처리이다. 분산 처리라는 것은 무엇일까?
많이들 들어봤을 것이다. 분산처리라고 하는 것은 중/고급 프로그래머들이라면 다들 필수적으로 알고 있을 것이다. 자신이 가지고 있는 자원은 한정되어 있는데, 그것을 최대한 많은 사람들이 써야한다면, 분산에서 처리를 해야할 필요가 생긴다. XMPP는 중앙 서버가 없다. 그 말은 즉, 클라이언트가 서버가 된다는 서비스이다. 흔히 말하자면 Peer to Peer (P2P) 서비스와 동일한 통신 방식이다. 채팅을 통하여 메시지를 주고 받는 서비스에 별도의 자원 서버가 필요없어 많은 사람들이 접속하여 채팅을 사용하여도 네트워크에 부하가 걸리거나 하지 않는다. 회원을 연동하여 사용하는 행아웃이나 페이스북 채팅의 경우 회원 정보를 담는 DB나 채팅의 저장을 https 프로토콜로 전송하여 사용한다.
2. 개방형 프로토콜
개방형 프로토콜이라 하면 어떤 플랫폼에도 구애받지 않고 사용할 수 있다는 가장 큰 장점을 지니고 있다. 한국의 카카오톡 서비스의 경우 카카오만의 독점형 프로토콜을 사용하여 서비스하기 때문에 별도의 개발된 애플리케이션이 없으면 서비스를 사용할 수 없다. 예를 들자면 안드로이드폰이나 아이폰에서 카카오톡을 사용할 수 있는 반면, PC 버전의 카카오톡이 나오기 이전에는 PC나 Mac에서는 카카오톡을 사용할 수 없는 것과 동일한 것이다. 그러나 행아웃은 개방형 프로토콜을 사용하여 웹, 스마트폰, PC 등 어디서든지 인터넷만 사용할 수 있다면 어디서든지 사용이 가능하다.
3. 안전한 보안
TLS/SASL 인증을 사용하여 채팅의 내용을 암호화하고, 외부 유출에 위험이 없고, 별도의 사용자가 개발하여 비공개 사용자형으로 사용하여도 채팅이 기록이 남거나 외부로 전송되지 않아 패킷 스푸핑에 안전하고 원활한 채팅이 가능하다
XMPP의 단점
웹 언어 XML을 사용하여 개발된 XMPP도 단점이 존재한다. 과연 어떤 단점이 있을까?
* 강화된 암호화를 지원하지 않음
강화된 암호화하라고 표현하기엔 조금 부적절함(?)이 없지 않아 있지만... 여기서 강화된 암호화라고 하면 End to end Encryption을 얘기합니다. 이 암호화 방식은 종단간 암호화라고 불리며 한국의 카카오톡 비밀 채팅 서비스에서 사용되고 있는 암호화 기법입니다. 카카오톡의 경우 이 암호화 서비스를 적용하여 사용자 단말기에 해당 암호화를 복호화 할 수 있는 키(Key)값을 서버가 아닌 사용자 단말기에만 저장되어 외부의 서버 관리자나 해커가 단말기를 가지고 있지 않는 이상 유출하지 않도록 보호하는 암호화 서비스인데, XMPP는 이 서비스를 지원하지 않습니다. 좀 더 심화된 내용으로 얘기한다면 종단간 암호화 방식은 마지막까지 사용자가 내용물을 보지 않으면 열 수 없도록 구성된 암호화 기법으로 구글 크롬에 담겨져 있기도 하며 Gmail에서 최초로 사용되었고, 이를 사용하는 대표적인 소프트웨어는 "PGP"와 "GNUPG"가 대표적이며 일반 초/중급 프로그래머도 사용하기 어려운 소프트웨어여서 오픈 소스여도 잘 사용하지 않는 소프트웨어 암호화 기술이다. 그렇다보니 Google에서는 자사 소프트웨어에 이 암호화 기술을 사용하고, 해킹에 성공하면 상금까지 주겠다는 도전장을 발표하기도한 유명한 암호화 기법이기도 하다.
Hangouts를 Pidgin 메신저와 연동
Gtalk, Google Talk이라고 불렸던 이 서비스는 구글의 메신저 서비스입니다. 안드로이드 4.1 젤리빈 버전이 나왔을 무렵 그 이름을 행아웃(Hangouts)이라고 이름을 변경하였습니다.
행아웃은 구글 계정을 가지고 있는 모든 구글 고객이라면 Linux, Windows, Mac, Android, iOS 등 언제 어디서 음성, 영상, 문자가 가능한 구글의 통합 메시지 서비스입니다.
행아웃은 XMPP 라고 하는 오픈 소스 프로토콜과 호환이 매우 좋은 메신저입니다. 오픈 소스 프로토콜을 사용하여서 다른 통합 메신저와 연동이 쉽고, 플랫폼에 구애받지 않아 언제 어디서든지 사용이 가능하다는 장점이 있습니다.
피진 메신저는 MSN, Facebook, Hangouts 등의 채팅 서비스를 한 개의 메신저로 통합하기 위한 오픈 소스 메신저 소프트웨어로 리눅스, 윈도우 등 PC 플랫폼에 영향을 받지 않아 사람들이 많이 사용하고 있는 메신저 중에 하나다.
Pidgin 메신저를 다운로드 받고 설치하면 Add 버튼을 클릭하여 계정을 추가한다.
구글에서는 위와 같이 설명하면 행아웃이 연결된다고 하나 필자는 이와 같이 했더니 인증 실패라는 오류와 함께 작동이 되지 않았다.
이유는 강화된 보안으로 인하여 계정 설정에서 사용자의 동의 없이 서드 파티 소프트웨어를 통한 채팅 서비스를 제한시켰기 때문이다.
이럴 때는 구글 계정 페이지에서 자신의 보안 설정을 낮추면 된다. 아래의 버튼을 클릭하여 자신의 구글 계정을 설정하자
본인의 구글 계정에 들어가게 되면 왼쪽에 Sign-in & Security 버튼이 있는데, 해당 항목을 클릭해준다.
왼쪽에서 Connected apps & sites 항목을 들어가면 아래에 Allow less secure apps : OFF로 되어 있을텐데, 이를 ON으로 바꿔준다. 참고로 필자는 영어를 사용하여서 영어로 뜨지만 한국어로 사용하는 구글 사용자는 한국어로 뜰겁니다. ^^
설정을 바꾸고 다시 Pidgin에서 로그인을하면 로그인이 됩니다.
'Embedded Platform > Android' 카테고리의 다른 글
Google Cardboard 2.0 짤막한 후기 (0) | 2016.01.02 |
---|---|
Android Studio 외부 라이브러리 추가하기 (0) | 2015.11.08 |
Android의 SELinux, SEAndroid (0) | 2013.09.14 |
내가 다운로드 받는 앱은 악성 앱일까? 아닐까? (Sandbox) (0) | 2013.09.11 |
Android Device Manager - 안드로이드 기기 위치 찾기 (2) | 2013.08.10 |