보안 메신저 – OTR+Pidgin

OTR (Off-the-record)은 인스턴트 메시지나 채팅 프로그램의 이용자가 비밀스러운 대화를 갖도록 해주는 프로토콜이다. 이 가이드에서는, 윈도 PC용 자유/오픈소스 인스턴트 메시징 프로그램인 Pidgin을 이용하여 OTR을 어떻게 사용하는지 배운다.

  • 다운로드 위치 :

https://pidgin.im/download/


  • 컴퓨터 요구사양 : 인터넷 연결, 윈도 XP이상 컴퓨터, XMPP(Jabber) 계정 (XMPP 계정이 필요하다면, https://www.xmpp.jp/signup?lang=en 에서 등록하는 법에 대한 무료 서버와 안내를 제공한다)
  • 이 가이드에서 사용한 버전 : 윈도 7 Ultimate; Pidgin 2.10.9, pidgin-otr 4.0.0-1
  • 라이선스 : 자유 소프트웨어; 자유 소프트웨어; 라이선스 혼합
  • 참고 자료 : https://pidgin.im/cgi-bin/mailman/listinfo/support
  • 수준 : 초보자
  • 소요시간 : 20 분

OTR이란 무엇인가?

OTR (Off-the-record)은 사람들이 자신이 원하는 메시징 프로그램을 이용해서 비밀스러운 대화를 나눌 수 있도록 해주는 프로토콜이다. OTR는 아래와 같이 보안을 제공한다.

  • 대화의 암호화
  • 대화 상대방이 진짜 그 사람인지 확인하는 방법의 제공
  • 대화에 접근하지 못하도록 서버에 로그를 남기지 않도록 함

윈도에서 OTR을 이용하는 몇 가지 방법이 있지만, 가장 일관되고 사용하기 쉬운 프로그램은 pidgin-otr 플러그인을 포함한 Pidgin 채팅 프로그램이다.

윈도의 인스턴트 메시징 프로그램인 Pidgin은 자동으로 대화를 기록하도록 기본 설정되어 있다. 그러나 당신은 이 기능을 끌 수 있다. 다만, 당신과 채팅하고 있는 사람을 당신이 통제할 수 없다. 즉, 당신이 대화 기록을 껐어도, 상대방은 그것을 기록하거나 스크린샷으로 남길 수 있다.

왜 Pidgin과 OTR을 이용해야 하는가?

구글 행아웃이나 페이스북 채팅으로 대화를 할 때에는, 그 대화는 HTTPS로 암호화된다. 즉, 대화의 콘텐츠는 전송 중에 해커와 제3자로부터 보호된다. 그러나 구글이나 페이스북으로부터 보호되지는 않는다. 그들이 당신 대화의 열쇠를 가지고 있으며, 그것을 정보기관에 넘길 수 있다.

Pidgin을 설치한 후, 당신은 여러 개의 계정으로 동시에 로그인할 수 있다. 예를 들어, 구글 행아웃, 페이스북, XMPP를 동시에 이용할 수 있다. 또한, Pidgin은 OTR 없이도 이런 프로그램을 통해 대화할 수 있도록 한다. OTR는 대화 쌍방이 그것을 이용해야만 작동하며, 상대방이 OTR을 설치하지 않았어도 Pidgin을 이용해서 여전히 대화를 나눌 수 있다.

Pidgin을 이용하기 전에 기존의 인스턴트 메시지 계정을 갖고 있어야 하며, Pidgin에 등록해야 한다. 예를 들어 구글 계정을 갖고 있으면, Pidgin으로 구글토크 서비스를 이용할 수 있다. 기존의 인스턴트 메시지 계정의 상세 정보가 Pidgin에서 등록하고 접근하는데 이용된다.Pidgin은 다음과 같은 인스턴트 메시지 서비스를 지원한다. AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MXit, MySpaceIM, SILC, SIMPLE, Sametime, Yahoo!, Zephyr, 그리고 XMPP 메시징 프로토콜로 운영되는 모든 인스턴트 메시지 프로그램(예를 들어, Jit.si)

또한 Pidgin은 당신과 대화하고 있는 사람이 진짜 그 사람인지, 아니면 MITM 공격(제3자가 대화자를 가장하여 공격하는 것)을 받고 있는 것인지 확인하기 위해, 외부적(out-of-band) 확인 기능을 제공한다. 모든 대화에 대해 당신과 상대방의 키 지문을 보여주는 기능이 있다. “키 지문”은 “342e 2309 bd20 0912 ff10 6c63 2192 1928,”와 같은 일련의 문자인데, 긴 공개키를 검증하는데 이용된다. 트위터 DM이나 이메일과 같은 다른 채널로 당신의 지문을 교환하여, 다른 누군가 대화에 몰래 끼어드는지 확인할 수 있다.

한계 : 언제 Pidgin+OTR을 쓰면 안되는가?

프로그램이나 기술이 외부의 공격에 취약할 때를 의미하는 기술자들의 용어가 있는데, 커다란 “공격 표면(attack surface)”을 가지고 있다고 말한다. Pidgin은 큰 공격표면을 가지고 있다. 그것은 복잡한 프로그램인데, 보안을 최우선 고려사항으로 두고 만들어진 것이 아니다. 그것은 분명 버그를 가지고 있고, 그 중 일부는 정부나 큰 기업들이 컴퓨터에 침투하기 위해 이용될 수 있다. 대화를 암호화하기 위해 Pidgin을 이용하는 것은 모든 사람의 인터넷 대화를 감시하려는 무차별적인 저인망식 감시를 막는데는 효과적이지만, 당신이 (정부와 같이) 자원이 많은 공격자에 의해 개인적으로 목표물이 되었다고 생각한다면, PGP 암호화된 이메일과 같은 더 강력한 수단을 고려해야 한다.

Pidgin 받기

Pidgin 다운로드 페이지에서 설치파일을 다운로드 할 수 있다.

3.4_01

녹색 ‘Download Now’ 버튼을 클릭하지 마라. 왜냐하면, 다른 설치 파일을 선택할 수 있다. Pidgin의 기본 설치 파일은 작은데, 모든 정보를 갖고 있는 것이 아니라, 파일을 다운로드하기 때문이다. 이것이 때때로 실패할 수도 있는데, 그래서 모든 필요한 설치 자료를 가지고 있는 “오프라인 설치파일”을 이용하는 것이 좋다. “오프라인 설치파일(offline installer)” 링크를 클릭하라. “Sourceforge” 제목의 새 페이지가 나오고, 몇 초 후에 작은 팝업이 뜨면서 파일을 저장할 것인지 물을 것이다.

Pidgin의 다운로드 페이지는 “HTTPS”를 이용하며 그래서 공격으로부터 상대적으로 안전하지만, 윈도 버전 Pidgin을 다운로드하도록 당신이 이동하는 웹사이트는 현재 Sourceforge이며, 그곳은 암호화되지 않은 “HTTP”를 이용하고 있기 때문에 보호되지 않는다. 즉, 당신이 다운로드 받은 소프트웨어가 다운로드 되기 전에 공격당했을 수도 있다.

이러한 위험은 대부분 당신을 개인적으로 감시하려고 지역의 인터넷 인프라에 접근하는 누군가(예를 들어, 악의적인 핫스팟 제공자)에 의해서, 혹은 감염된 소프트웨어를 많은 이용자에게 배포하려는 정부에 의해 발생한다. HTTPS Everywhere 확장 프로그램은 Sourceforge의 다운로드 URL를 HTTPS로 다시 써주기 때문에, 어떤 소프트웨어를 다운로드하기 전에 HTTPS Everywhere를 설치할 것을 권고한다. 또한, 우리의 경험으로는, Sourceforge는 종종 이용자들이 원하지 않는 프로그램을 설치하도록 속이는, 혼동을 유발하는 전체 페이지 광고를 다운로드 페이지에 가지고 있다. 이러한 혼동을 유발하는 광고를 피하기 위해서는 다른 소프트웨어 설치 전에 광고 차단 프로그램을 설치할 수 있다. 보호되지 않는 웹사이트에서 파일을 다운로드 받기 전에 당신의 위협 모델을 생각해야 한다.

어떤 브라우저든, 진행하기 전에 우선 파일을 저장하는 것이 가장 좋다. “저장(Save)” 버튼을 클릭한다. 대부분의 브라우저는 기본 설정으로 다운로드 받은 파일을 다운로드 폴더에 저장한다.

OTR 받기

OTR 다운로드 페이지에서 설치파일을 다운로드하여, Pidgin의 OTR 플러그인인 pidgin-otr을 받을 수 있다.

3.4_02

“Downloads” 탭을 클릭하면, 이 페이지의 다운로드 섹션으로 이동한다. “Win32 installer for pidgin” 링크를 클릭한다.

3.4_03

어떤 브라우저든, 진행하기 전에 우선 파일을 저장하는 것이 가장 좋다. “저장(Save)” 버튼을 클릭한다. 대부분의 브라우저는 기본 설정으로 다운로드 받은 파일을 다운로드 폴더에 저장한다.

Pidgin 설치

윈도 탐색기를 열어 pidgin-2.10.9-offline.exe를 더블클릭하면, 이 프로그램을 설치할지 물을 것이다. “(Yes)” 버튼 클릭. 언어를 선택하라는 작은 창이 열린다. 한국어는 지원하지 않는다. “OK”버튼 클릭.

3.4_04

설치 과정 개요를 보여주는 창이 뜬다. “Next” 버튼 클릭.

3.4_05

이제 라이선스 개요를 보여준다. “Next” 버튼 클릭.

3.4_06

이제 어떠한 요소들을 설치할 지를 보여준다. 설정을 변경하지 말고, “Next” 버튼 클릭.

3.4_07

Pidgin이 어디에 설치되는지 보여준다. 변경하지 말고, “Next” 버튼 클릭.

3.4_08

설치 과정을 보여주는 텍스트가 스크롤된다. “Completed”가 나오면, “Next” 버튼 클릭.

3.4_09

이제 Pidgin 설치의 마지막 창이다. “종료(Finish)” 버튼 클릭.

3.4_10

pidgin-otr 설치

윈도 탐색기로 돌아와 pidgin-otr-4.0.0-1.exe를 더블클릭한다. 이 프로그램을 설치할 것인지 물으면, “Yes” 버튼 클릭. 설치 과정에 대한 간략한 개요를 보여준다. “Next” 버튼 클릭.

3.4_11

라이선스 개요가 나온다. “동의(I Agree)” 버튼 클릭.

3.4_12

pidgin-otr이 어디에 설치될 지 보여준다. 이를 변경하지 말고, “설치(Install)” 버튼 클릭.

3.4_13

마지막으로 마지막 창이 보이면, “종료(Finish)” 버튼 클릭.

3.4_14

Pidgin 설정

시작 메뉴로 가서, 윈도 아이콘 클릭. 메뉴에서 Pidgin을 선택한다.

3.4_15

계정 추가

처음 Pidgin이 실행되면, 아래와 같은 환영 창이 뜨면서 계정을 추가할 수 있도록 한다. 아직 설정한 계정이 없으면 “추가(Add)” 버튼을 누른다.

3.4_16

이제 “계정 추가(Add Account)” 창이 뜰 것이다. Pidgin은 많은 채팅 프로그램과 작동할 수 있지만, 우리는 XMPP(이전에는 Jabber라고 알려졌다)에 초점을 맞출 것이다.

  • 프로토콜 항목에는 “XMPP” 선택.
  • 아이디(Username) 항목에는 XMPP 아이디 입력.
  • 도메인 항목에는 XMPP 계정의 도메인 입력.
  • 비밀번호 항목에는 XMPP 비밀번호 입력.

“비밀번호 기억하기(Remember password)” 박스에 체크하면, 당신의 계정에 쉽게 접근할 수 있다. 그러나 이것을 체크하면, 당신의 비밀번호가 컴퓨터에 저장되고, 당신의 컴퓨터를 쓰게 된 다른 사람도 이에 접근할 수 있음을 유의하라. 이것이 우려된다면, 이 박스를 체크하지 않는 것이 좋다. 그럼 Pidgin을 시작할 때마다 XMPP 비밀번호를 입력해야 한다.

3.4_17

친구 추가하기

이제 채팅할 친구를 추가한다. “친구들(Buddies)” 메뉴에서 “친구 추가(Add Buddy)”를 선택한다. “친구 추가(Add Buddy)” 창이 열린다.

3.4_18

“친구 추가(Add Buddy)” 창에서, 당신이 채팅하고 싶은 사람의 아이디(username)를 입력한다. 다른 이용자가 같은 서버에 있을 필요는 없지만, 같은 프로토콜(예를 들어, XMPP)을 사용해야 한다.

“친구의 아이디(Buddy’s username)” 항목에서, 친구의 아이디와 도메인 네임을 입력한다. 이는 이메일 주소처럼 보인다.

“(선택)별명((Optional)Alias)” 항목에서, 당신의 친구를 뜻하는 아무 이름이나 선택해서 입력한다. 꼭 넣어야 하는 것은 아니지만, 대화 상대방의 XMPP 계정이 기억하기 힘들 경우 도움이 된다. “추가(Add)” 버튼 클릭.

3.4_19

“추가(Add)” 버튼을 클릭하면, 보리스는 당신에게 자신을 추가할 권한을 줄 것인지 묻는 메시지를 받게 될 것이다. 보리스가 이를 승인하면, 그는 당신의 계정을 추가하고, 당신 역시 같은 요청을 받는다. “허가(authorize)” 버튼을 클릭한다.

3.4_20

OTR 플러그인 설정

이제 안전하게 대화하기 위해 OTR 플러그인을 설정해보자. “도구(Tools)” 메뉴를 클릭하고 “플러그인(Plugins)”을 선택한다.

3.4_21

“비밀 메시지(Off-the-Record Messaging)”까지 스크롤을 내려서 박스에 체크한다. “비밀 메시지(Off-the-Record Messaging)” 항목을 클릭하고 “플러그인 설정(Configure Plugin)” 버튼을 클릭한다.

3.4_22

“비밀 메시지(Off-the-Record Messaging)” 설정창이 보일 것이다. “현재 키가 없습니다.(No key present.)”가 보일 것이다. “생성(Generate)” 버튼을 클릭한다.

3.4_23

작은 창이 열리고 키를 생성한다. 이것이 끝나면, “OK” 버튼을 클릭한다.

3.4_33

새로운 정보가 보일 것이다. 8글자씩 5개 그룹으로 나눠진, 40자 텍스트열이다. 이것이 OTR 지문이다. “닫음(Close)” 버튼을 클릭한다.

3.4_25

플러그인 창의 “닫음(Close)” 버튼을 클릭한다.

안전하게 채팅하기

이제 보리스와 채팅할 수 있다. 둘 모두 메시지를 보내고 받을 수 있다. 그러나, 아직 안전하게 채팅할 수 있는 것은 아니다. XMPP 서버에 연결되어 있어도, 당신과 보리스 사이의 연결을 몰래 엿보는 것이 가능하다. 채팅창을 보면 오른쪽 아래에 빨간 색으로 “비밀 아님(Not private)”이라고 되어 있을 것이다. “비밀 아님(Not private)” 버튼을 클릭한다.

3.4_26

메뉴가 열릴 텐데, “친구 승인(Authenticate buddy)”를 선택한다.

3.4_27

3.4_28

창이 열리고 “친구를 어떻게 승인하시겠습니까?(How would you like to authenticate your buddy?)”라고 묻는다. 3가지 선택지가 있다.

공유된 비밀

공유된 비밀은 당신과 대화 상대방이 미리 동의한, 한 줄의 텍스트이다. 상대방과 직접 만나서 이를 공유해야 하며, 이메일이나 스카이프와 같은 안전하지 않은 채널로 교환하지 않아야 한다. 당신과 친구는 함께 이 텍스트를 입력한다. “승인(Authenticate)” 버튼을 누른다.

3.4_28

공유된 비밀 인증은 당신과 친구가 나중에 채팅하기로 이미 약속했지만, 당신의 컴퓨터에서 OTR 지문을 생성하지 않았을 경우 유용하다.

지문 확인

지문 확인은 당신이 친구의 지문을 가지고 있고 현재 Pidgin과 연결되어 있을 때 유용하다. 당신의 친구가 컴퓨터를 바꾸었거나 새로운 지문을 생성했다면 사용할 수 없다. 당신이 받은 지문이 스크린 상의 지문과 일치한다면, “가지고 있음(I have)”를 선택하고 “승인(Authenticate)” 버튼을 클릭한다.

3.4_29

질의와 응답

질의와 응답 확인은 당신이 친구와 공유된 비밀이나 지문을 공유하지 못했을 때 유용하다. 이 방법은 당신과 친구가 함께 가지고 있는 어떤 것(예를 들어, 어떤 행사에 함께 참여했다든가)이 있을 때, 그것을 기반으로 인증한다.

당신이 묻고 싶은 질문을 입력한다. 상대편이 쉽게 추측할 수 있을 정도로 너무 간단하게 하면 안된다. 그렇다고 불가능한 질문을 던져서도 안된다. “미네아폴리스에서 저녁 먹으로 어디에 갔었지?”와 같은 것은 좋은 질문이다.

답변이 정확하게 일치해야 한다. 질문에 대한 답을 선택할 때 유념해야 할 것이 있다. 대소문자를 구별해야 한다. 그래서 (예를 들어, use capitals, lower case)와 같이 괄호로 알려줄 필요도 있다.

질문과 답을 입력하고 “승인(Authenticate)” 버튼을 클릭한다.

3.4_30

당신의 친구는 질문이 보여지는 창이 열리고 답변을 요구받을 것이다. 친구가 답변하고 “승인(Authenticate)” 버튼을 클릭한다. 그러면, 승인이 성공적인지 알려주는 메시지를 받을 것이다.

3.4_31

3.4_32

친구가 승인 절차를 마치면, 승인이 성공적임을 알려주는 창이 뜰 것이다.

3.4_24

친구 역시 당신의 계정을 확인해야, 쌍방이 안전하게 대화할 수 있다. 아래는 Akiko와 Boris 에게 어떻게 보이는지를 보여준다. 채팅창의 오른쪽 아래에 녹색 “비밀(Private)” 아이콘이 보일 것이다.

3.4_34

다른 소프트웨어로 작업하기

상대방이 진짜임을 확인하는 방식은 Jitsi, Pidgin, Adium, Kopete 과 같은 서로 다른 채팅 소프트웨어 사이에서도 작동해야 한다. XMPP와 OTR로 채팅하기 위해 같은 소프트웨어를 쓸 필요는 없다. 그러나 때때로 소프트웨어 에러가 발생하기도 한다. 맥 OS X의 채팅 소프트웨어인 Adium은 질문과 답변 인증 과정에서 에러가 발생한다. 질문과 답변 인증을 할 때 인증에 실패하는 경우, 상대방이 Adium을 쓰고 있는지 확인하고 다른 인증 방법을 사용해야 한다.

Tactical Tech Collective는 Pidgin과 함께, Jitsi를 추천한다. Jitsi는 XMPP 프로토콜을 사용하는 다른 Pidgin 이용자와도 안전하게 인스턴트 메시지를 교환할 수 있을 뿐만 아니라, 다른 Jitsi 이용자와 안전한 음성 및 영상 통화도 가능하다. 윈도용, GNU/리눅스용, 맥 OS용이 있다. (Jitsi에 대한 자세한 사용법은 ‘Security-in-a-box’를 참고하라)

OTR을 지원하는 또 다른 윈도용, 다중 프로토콜 인스턴트 메시지 프로그램으로는 미란다(Miranda IM)가 있다. 맥에서는 Adium을 이용할 수 있다.

이 글은 EFF의 How to: Use OTR for Windows(2015년 2월 10일 마지막 업데이트)를 기초로 한 것입니다. 또한 Tactical Tech Collective의 Security-in-a-box ‘PIDGIN WITH OTR FOR WINDOWS – SECURE INSTANT MESSAGING’(2014년 8월 8일 마지막 업데이트) 역시  참고하였습니다.