맥에서 SugarSync로 몇 개의 폴더를 공유하고 있었다. SugarSync의 다른 계정을 사용하기 위해서 기존에 사용하던 공유를 해제했다.
수 일의 시간이 흘렀다.
내가 작업하던 중요한 프로젝트 파일이 보이지 않는다.
여기저기를 뒤져서 SugarSync Web Archive에 있는 것을 찾았다.
공유 폴더를 해제하면서 날라간 것 같다. Web Archive에서 있어서 다행이다.
더 이상 아무 디바이스도 폴더를 공유하지 않는 경우에는 Web Archive로 저장을 하나 보다.
그런데 왜 나의 맥에서는 사라졌을까? 그것이 기본 동작인가? 

클라우드를 사용할 때는 항상 이 부분을 조심해야 한다.
 
다운로드를 해서 복구는 할 수 있었다.
나의 문제인지 SugarSync의 문제인지는 시간이 흘러서 정확히 알긴 어렵지만 클라우드 서비스를 사용할 때는 이런 경우가 종종 발생한다.
iCloud를 사용하면서도 주소록이 꼬이는 경우가 있어서 애를 먹은 적이 있다.
편한 것은 가끔 엄청난 불편을 가져오는 경우가 종종 있는 것 같다.
공짜는 없다는 것을 다시 한 번 떠오르게 한다.
Posted by 블로장생
,

일반 가정에서도 누구나 약간의 시간만 투자하면 아이폰과 같은 자신의 스마트폰에서 왔다갔다하는 패킷을 직접 확인해 볼 수가 있습니다. 작성하고 보니 내용이 좀 많아 보이지만 실제로는 그리 복잡하지 않으니 한 번 해 보시는 것은 어떨까요? 3G 패킷을 캡쳐하기 위해서는 VPN 등을 이용해서 패킷을 우회시켜야 하는데 설정이 복잡한 편이라 여기서 다루지는 않도록 합니다.


최근의 아이폰 메신저 암호화 여부 테스트 이후 다른 메신저에 대한 결과도 종종 문의해 오시는 분들이 있다. 일일이 테스트하는 것도 쉽지 않은 일이라 네트워크 지식이 부족한 일반인도 직접 가정의 Windows PC로 패킷을 캡쳐해서 눈으로 직접 확인할 수 있도록 이 글을 준비한다.

PC에 Windows 대신에 Linux가 있으면 아주 편하지만 일반적인 환경을 고려해서 Windows를 이용하는 방법을 소개한다.

이 방법은 어디까지나 자신의 스마트폰 패킷을 확인하는 방법이며 Wi-Fi sniffing을 해서 다른 사람의 패킷을 몰래 볼 수 있는 방법은 아니다.

0. 요약

스마트폰에서 공유기를 거쳐 인터넷으로 나가는 패킷을 PC를 거쳐서 가도록 변경한 후에 PC에서 패킷 캡쳐 프로그램을 이용해서 패킷의 내용을 직접 확인한다.

※ PC가 노트북처럼 무선랜카드가 있고 유선을 통해 인터넷을 사용하고 있다면 Windows에서 무선 Ad-hoc 네트워크를 구성(참고 : http://othersunther.tistory.com/22한 후에 아이폰을 연결하면 캡쳐 프로그램 실행만으로 패킷 캡쳐를 할 수 있습니다. 아래의 3,4,5번 과정은 필요없게 됩니다.

1. 테스트 환경

다음의 장치로 테스트를 했지만 다른 스마트폰이나 다른 Windows 버전에서도 동일하게 동작할 것이다.

  • 스마트폰 : 아이폰4
  • PC : Windows 7 64 bits

2. 테스트 네트워크

일반 가정의 대부분은 다음과 같은 유무선 공유기(혹은 공유기 기능이 있는 인터넷 전화)를 통해 PC와 스마트폰을 연결해서 사용할  것이다.
각 IP는 테스트에 사용한 IP 주소이며 대부분의 가정도 이와 유사한 번호의 사설 IP 주소로 설정되어 있을 것이다. 인터넷으로 나갈 때 내부의 모든 사설 IP는 인터넷 공유기에 할당된 하나의 공인 IP로 변경이 되게 되는데 이 과정을 NAT(Network Address Translation)라고 부른다.

앞으로의 모든 설명은 아래의 구성을 바탕으로 진행하도록 하겠다. 테스트는 각 가정의 현재 IP 주소에 맞추어 진행하면 된다. 이 그림대로 IP 주소를 설정해서는 안 된다.

3. 아이폰 : 라우터(디폴트 게이트웨이) 주소 수동으로 설정하기

일반적으로 Wi-Fi 접속 환경에서의 IP 주소는 DHCP라는 프로토콜을 통해 공유기가 자동으로 할당을 하게 된다. 이 때 IP 주소 이외에 라우터(게이트웨이) 주소, DNS 주소 등도 같이 받아서 설정을 하게 된다.

PC에서 패킷 캡쳐를 하기 위해서는 라우터 주소를 공유기(192.168.10.1) 대신에  PC(192.168.10.2)로 변경해야 한다. 모든 인터넷 패킷의 최초 경유지가 공유기에서 PC로 변경이 되는 것이다.
아이폰의 경우에는 아래 그림과 같이 수동으로 설정을 해 준다. 라우터 이외에는 자동으로 받아온 기존 설정을 그대로 적어준다.(테스트가 끝난 후에는 DHCP로 복구해서 네트워크가 되지 않는 일이 없도록!)

 

4. PC : 라우터로 동작하도록 만들기

기본적으로 Windows는 최종 목적지가 자신이 아닌 패킷은 조용히 잡아먹는다. 아이폰에서 도착한 패킷이 다시 공유기로 전달(forward)되도록 하기 위해서는 다음의 레지스트리 값을 0에서 1로 변경해야 한다. (테스트 이후에 0으로 복원한다.)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 의 IPEnableRouter

리부팅을 해야 변경 내용이 동작하는 것 같다.

참조 : http://www.wisdia.com/questions/how_to_enable_ip_packet_forwarding_windows_nt_2000_xp.aspx

이 방법은 나가는 패킷에 대해서만 PC를 경유하게 된다. 들어오는 패킷의 경우에는 PC를 거치지 않고 공유기에서 바로 아이폰으로 가게 된다. 들어오는 방향에 대해서도 PC를 경유하도록 하기 위한 여러 가지 방법(PC에서 NAT 설정하기, 공유기의 라우팅 테이블 변경하기 등)이 있지만 약간 수준이 높아서 다루지 않도록 한다.

 

5. PC : ICMP Redirect 보내지 않도록 자체 방화벽으로 차단하기

PC가 아이폰에서 온 패킷을 받고 보니 굳이 자신을 통하지 않고 바로 공유기로 가는 것이 좋다는 것을 알게 된다.(동일 LAN 세그먼트니까) 이 경우 PC는 아이폰에게 “나 한테 보내지 말고 직접 공유기에게 보내도록 하시오”라는 의미의 ICMP Redirect 패킷을 보내게 된다. 이 메시지를 받은 아이폰은 고분고분 말을 듣고 패킷을 PC로 보내지 않게 될 수가 있다.

이러한 ICMP Redirect 메시지를 PC가 보내지 않도록 막을 필요가 있다. Windows 방화벽을 통해서 막을 수 있다. (레지스트리 변경을 통해 할 수 있으면 좋겠지만 방법을 찾지는 못 했다.)

Windows7의 경우에는 아래 그림과 같은 과정으로 방화벽 설정을 할 수 있다. 다른 버전의 Windows도 비슷하게 할 수 있을 것이다.

먼저 제어판 > Windows 방화벽 > 고급 설정을 선택한다.

아웃바운드 규칙을 선택하고 새 규칙...을 클릭하여 새 아웃바운드 규칙 마법사를 선택한다.

규칙 종류에서 사용자 지정을 선택한다.

프로토콜 및 포트에서 ICMPv4를 선택하고 ICMP 설정: 사용자 지정...을 클릭한다.

특정 ICMP 종류에서 리디렉션을 선택한다.

다음으로 진행하면서 작업은 ‘연결 차단’으로 되어 있는지 확인하고 이름을 ‘ICMP Redirect 차단’과 같은 적당한 이름을 준 후에 마친다.

 

6. PC : 캡쳐 프로그램 설치하기

패킷을 캡쳐하려면 프로그램이 필요하다. 아주 좋은 프로그램을 소개한다. 개인적으로도 제일 맘에 들어하는 캡쳐 프로그램이다. Microsoft Network Monitor 이다. 현재 3.4가 최신 버전이며 무료다. 당당하게 다운받아 설치하면 된다.

설치 후에 리부팅을 해야 캡쳐 드라이버가 동작하는 것 같다.

 

7. PC : 패킷 캡쳐하기

Network Monitor를 실행시킨 후 자신의 네트워크 카드가 좌측 하단의 Select Networks에 선택이 되었는지 확인하다.

메뉴 하단의 ‘New Capture’를 선택하고 ‘Start’를 선택하면 패킷 캡쳐가 시작이 된다. (‘Stop’이나 ‘Pause’를 클릭하면 캡쳐가 중단됨) 수 많은 패킷이 세션별로 자동 분류된다는 것이 Network Monitor의 큰 장점이다.

아이폰으로 메시지 등을 보내면서 패킷을 관찰한다. 아래 그림은 Whatsapp으로 보낸 메시지의 평문이 패킷에 그대로 노출되는 것을 확인한 모습니다.

패킷이 너무 많아서 보기 어려울 경우에는 Display Filter 창에 필터링 표현식을 적어준 후에 Apply 버튼을 눌러주면 된다. 왼쪽의 Network Conversations에서는 All Traffic을 선택해야 전체 패킷을 대상으로 적용된다. 아이폰 주소가 들어가는 패킷에 대해서만 보고 싶은 경우에는 다음과 같은 표현식을 사용할 수 있다.

ipv4.Address == 192.168.10.20

 

8. 마무리

이제 여러 가지 앱을 사용하면서 중요한 메시지가 그대로 노출이 되는 경우는 없는지 직접 확인하면 된다.

Posted by 블로장생
,

아이폰용 메신저 암호화 여부 테스트 3탄입니다.

카카오톡 테스트 이후에 whatsapp(왓츠앱)은 어떤지 궁금해 하시는 분이 계셔서 평소 사용하지 않던 whatsapp을 구매하여 테스트를 진행합니다.

결론은 아쉽지만 Wi-Fi에서도 암호화되지 않습니다. 3G는 굳이 테스트하지 않아도 될 것 같아서 테스트하지 않았습니다.

보안에 취약하다고 생각한 카카오톡이 오히려 다른 2가지 메신저에 비해 보안 강도가 높네요.

실험 환경

  • 날짜 : 2011년 3월 7일
  • 스마트폰 : 아이폰4
  • WhatsApp 버전 : 2.6.2
  • 인터넷 연결 : Wi-Fi(인터넷 공유기)

테스트 절차

  • 패킷 경로 변경 : Linux 서버를 경유하도록 라우팅 설정
  • 패킷 켭쳐 : 세션별로 캡쳐해서 저장해 주는 tcpflow 유틸리티 활용
  • 메시지 전송

테스트 결과

아래와 같이 송신 메시지가 암호화되지 않은 상태로 전달. 포트는 443번을 사용하지만 암호화되어 있지는 않습니다.

<message to="<생략>@s.whatsapp.net" from="<생략>@s.whatsapp.net/iPhone-2.6.2-443" type="chat" id="<생략"><body>이것은 테스트 메시지, 무시하세요.</body><notify xmlns="urn:xmpp:whatsapp" name="<생략>"/><request xmlns="urn:xmpp:receipts"/><x xmlns="jabber:x:event"><server/></x></message>

Posted by 블로장생
,