T 2013. 10. 26. 20:21

iMessage

얼마 전까지도 가장 강력한 보안을 가진 메시지 통신이라고 각광받았던 iMessage. 2013년 10월 18일, QuarksLab이 발표한 바로는 애플이 사용자의 메시지를 읽을 수 있다고. 그것은 곧 따로 기록할 수 있다는 것이고 정부의 요구에 따를 수도 있다는 사실.

말레이시아에서 열린 HITB Securiy Festival 2013에서 유명 해커 pod2g인 Cyril Cattiaux와 gg라고 불리는 Quarkslab의 크립토그래피 전문가가 발표한 내용을 ※추후 첨부하고 다른 한 파일도 첨부한다.

발표는 이제 많은 사람이 잊어가고 있는 스노든 (Edward Snowden)에 관한 것부터 시작되었다. 스노든은 NSA가 PRISM (US-984XN)이라 불리는 자국의 감시 프로그램이 수많은 사찰데이터를 마이닝 했고 이는 자국회사와의 동맹으로 가능했다고 한다. 데이터는 글, 이메일은 물론 사진 등 모든 것을 망라했다. 외국인들 또한 잠재적인 목표였고 실제로 그랬다는 것이 만천하에 드러났다. 다만 파장이 크지 않았고 잊혀가는 것이 문제지만.

워싱턴포스트가 PRISM에 관한 프레젠테이션을 폭로했고, 이것엔 PRISM 프로그램에 대한 대가가 $ 20m per year임이 나타나 있을 뿐 아니라, 2007년부터 MS, Yahoo, Google, Facebook, Paltalk, Youtube, Skype, AOL이 합류해왔고 2012년 Apple도 이 대열에 끼었다고 했다.

애플이 전해봤자 가장 강력한 보안이며 end-to-end방식인 iMessage 내용에 대한 정보는 제공할 수 없을 것으로 생각했다. 실제로 애플은 아무런 정보도 제공하지 않았고 정부 또한 요구하지 않았다고 밝혔다. 또한 애플은 고객의 개인적인 데이터나 수많은 개인적인 세부사항을 모으지 않았다고 한다. 또한 end-to-end방식의 iMessage나 FaceTime의 패킷을 수신자와 전송자 말고는 볼 수 없다고 한다. 여기에 애플 또한 이 데이터를 복호화할 수 없다고 덧붙였다.

SSL 서버에서 보증받는 PUSH Client의 보증서는 무려 1024 bit 암호화가 되어 있다. iMessage의 암호화 키 또한 1280 bit이다. 한국의 대부분의 보안이 128 bit에 주목하라. iMessage의 ECDSA[각주:1] 키 또한 256 bit이다. 키는 모두 오픈소스 보안 프레임워크에서 만들어진다. 여기까진 좋다. 하지만 PUSH와 iMessage에 모두 Certificate Pinning이 없다.

한편 iMessage 인증 과정은 상당히 복잡한데 요새 널리 널리 쓰이는 White Box Cryptography[각주:2]와 Challenge-Response 인증(OTP와 비슷한 방식으로 1회용 Hash를 사용한다.)을 쓰기 때문이다. 또한, API를 안 까서 서드파티 iMessage 클라이언트가 없다는 것도. 하지만 SSL 상에서 애플아이디의 비밀번호가 해쉬화되지 않은 평문 채로 돌아다닌다는 게 문제다.

위와 같은 이유로 가짜 CA[각주:3]를 만들어 키체인에 추가하거나 보증서를 얻을 수 있다. 이 때문에 애플아이디 비밀번호가 유출되거나 PUSH나 iMessage 서버를 흉내낼 수 있다. 이는 해커가 할 수도 있지만 MDM 관리자나 설정 파일을 이용해 누구나 할 수 있다.

iMessage는 PUSH 프로토콜 (TLS, server port 5223)을 지나온다. 이것은 521 bit ECDH-RSA 암호화가 되어있으며 도메인은 rand(0,255)-courier.push.apple.com이고 이때 client 보증서에 대한 인증이 되어 있다. 나머지 프로토콜은 HTTPS (server port 433)에서 구동되며 도메인은 *.ess.apple.com이다. 이 애플 ESS 서버에서 iMessage의 인증과 관리, key 보존을 하며 이는 2048 bit RSA방식으로 암호화가 되어있다.

Messages.app이나 SDK 시뮬레이터에서 데몬 (APSD[각주:4]나 imagent)을 사용하는 클라이언트는 1024 bit RSA 암호화가 되어있고 클라이언트는 ESS 서버와 PUSH 서버에 연결된다.


  1. DSA를 변형한 것으로 미국 전자서명 표준중 하나. [본문으로]
  2. 암호키가 암호 알고리즘 사이에 섞여있다. [본문으로]
  3. Certificate Authority [본문으로]
  4. APNSD라고도 한다. Apple Push (Notification) Service Daemon의 준말. [본문으로]

'T' 카테고리의 다른 글

동북아 공동 역사 교과서?  (0) 2013.11.15
Parhelion  (0) 2013.10.21
Quamtum Cryptography  (0) 2013.10.12
,
TOTAL 3.141592653589 TODAY 2.718281845904