
Hacking iPod Games: How Apple's DRM Works
Saturday, September 16, 2006
필자는 "
새로 나온 애플의 듀얼프로세서 게임콘솔"에서 아이포드용 게임을 다룬 바 있다. 이번 글에서는 아이포드와 아이포드용 새 게임의 잠재성과 여러가지 면모를 보고, 아이튠즈가 왜 핵심인지도 알아보겠다.
Authorize Me
첫 번째 게임을 구입한 다음에, 필자가 첫 번째로 맞닥뜨린 수상한 점은 아이튠즈가 이 게임을 아이포드로 업로드시키를 거부했다는 사실이었다. 게임이 인증이 안됐다는 이유에서였다. 하지만 필자의 아이포드와 아이튠즈는 필자 아이튠즈 라이브러리의 모든 것을 자연스럽게 일치하고 있었다.
애플은 어떠한 것을 인증하라며 귀찮게 굴지 않는다. 다만, 왜 게임이 싱크가 안되는지 설명을 해 준다.
알려진 바에 따르면, 음악과 게임의 인증은 별개이어야 한다. 게임을 인증받으려면, 아이튠즈로부터 게임을 오른쪽 클릭한 다음, 아이튠즈의 계정 정보를 적어 주어야 한다. 이상하지 않나? 사용자들에게 혼란을 낳을 수도 있다. 하지만 여기에 대해서는 잠시 뒤에 설명해 드리겠다.
이 점을 깨닫기 전에, 필자는 아이포드 인증에 뭔가 잘못된 점이 있잖나 의심했었다. 그래서 필자의 아이포드를 지운다음 복구까지 시켰었다. 필자의 30GB 짜리 아이포드에는 노래가 가득차 있었기에, 시간도 오래 걸렸다. 우선 애플의 지원 페이지를 확인했어야 했다. 그러나 애플은 자동적으로 사용자들에게 인증하라는 신호를 보낸다.
아이튠즈 스토어의 콘텐트와는 별개로 게임을 따로 인증해야 한다는 점은 직관적이지가 못하다. 다른 의문점도 있다. 소프트웨어와 영화, 단편, 오디오북까지 팔아서인지, 아이튠즈 뮤직스토어가 아이튠즈 스토어로 바뀌었다는 점이다.

iTMS라고 일일이 타이핑치는 것은 정말 곤란했다. 하지만 iTS도 곤란하다. 누군가 iTMS의 M이 "미디어"라고 지적해주지 않는 한, 필자는 일단 iTS라고 쓸 작정이다. 현재 iTS는 그저 스토어일 따름이라, 애플은 어쩌면 온라인스토어를
필자의 파인더스토어로 만들 생각을 하는지도 모르겠다.
Sync Your Purchases
집의 데스크톱과 아이포드에 새 게임을 싱크시키는 방법을 깨닫고나자, 이번에는 필자의 맥북프로와 아이포드의 싱크를 궁리해야 했다. 아이튠즈 7에 새로나온 기능인데, 싱크구매(sync purchases)라고 있다. 똑같은 아이튠즈 계정을 갖고 있는 다른 머신에게 아이포드에 있는 콘텐트를 옮길 수 있도록 해주는 기능이다.
여기서 이상한 점은, 아이포드 싱크시키기가 일방향으로 남게된다는 데에 있다. 물론 일방성은 아이포드 디자인의 핵심이랄 수 있다. 여기에 대해서도 좀 나중에 설명드리겠다.
맥북프로로 게임 두어 가지를 더 산 후, 필자는 이제 아이포드에 있던 게임(데스크톱에서 구매하였다)을 맥북프로에서 구입한 게임으로 교체해버리겠냐, 아니면 아이포드에 있는 게임을 랩톱과 싱크시키겠냐는 선택을 맞닥뜨리게 되었다.
우선은 원래 있던 게임을 맥북프로에 싱크시켰다. 싱크구매 기능 덕분이다. 그리고는 선택적으로 게임을 랩톱과 아이포드 간에 다시 싱크시켰다.
그렇다면 같은 계정일지라도 인증이 두 번이다. 이상했다. 아이포드는 이제 여러 대의 맥에 콘텐트를 서로 다르게 싱크시킬 수가 있게 되었다. 맥 한 대에서는 음악, 다른 맥에서는 게임, 주소록도 별다른 맥에서 가능한 것으로 보인다. 이 변화때문에 아이튠즈가 게임과 음악 계정을 별개로 요구한 것이다.
그러나 아이포드의 모든 콘텐트를 일률적으로 여러 대의 컴퓨터에 싱크시킬 수는 없다. 즉, 구매와는 별개로 싱크는 여전히 일방통행인 것이다. 달리 말해서, 여러대와의 싱크를 시키면 기존의 아이포드 콘텐트는 지워지고 새 컴퓨터로부터 콘텐트가 채워지게 된다.
DRM and the iPod
그렇다면 아이포드가 양방향으로 싱크된 적이 있었던가? 글쎄다. 아이포드는 일종의 "돌아다니는 아이튠즈"다. 간단한 디바이스로서 아이포드의 능력은 제한적이고, 아이튠즈의 다른 기능을 재생시키거나 목록을 받아올 뿐이다. 아이포드 디자인의 포인트는 아이튠즈에서 모든 일을 해 놓은 다음, 단순히 그것을 아이포드로 옮겨간다는 데에 있다.
이런 제한덕분에 아이포드는 더 단순해질 수 있었다. 하지만 이렇게 하면 DRM도 더 쉽게 관리할 수 있게된다. 비밀? 아이포드는 실질적으로 어떠한 DRM도 구사하지 않는다. 그 담당은 아이튠즈다.

아이포드는 아이튠즈를 통해 재생가능한 음악만을 받아들이기에, 아이포드는 인증받지 못한 음악을 싱크할 수 없다. 아이튠즈 자신이 업로드를 거부하기 때문이다. 즉, 아이포드는 DRM이니 관리키이니 뭐니를 다룰 필요가 없다. 자기가 받아들인 노래만 돌리면 그만이다. 다른 담당은 모두 아이튠즈다.
이때문에 애플은 아이튠즈를 오픈소스로 제공하지 않는다. 아이포드용 다른 소프트웨어로 허용하지 않는 이유도 이와 같다. 아이튠즈가 전적으로 아이포드를 통제하지 못한다면 아이포드는 스스로의 DRM을 장비해야 할 것이다.
자폭하는 구독형 미디어를 지원하는 것도 아이포드가 직접 DRM을 다뤄야 가능할 것이다.
말인즉슨, 아이포드에는 DRM이 없다. 그 일을 시스템이 다 해놓고 인증도 시스템이 받으며, 아이포드에 올려놓는 담당도 시스템이다.
덕분에 애플은 아이포드 사용에 있어서만은 무제한을 허용할 수 있다. 각 아이포드는 사용자 계정이 있는 컴퓨터 다섯 대까지만 부착시킬 수 있기에, 아이포드 인증 기록을 남겨둘 필요도 없다. WMA 플레이어들은 기록도 남기고 한다.
아이포드가 여러가지 아이튠즈 라이브러리와 싱크할 수 있다면, 애플은 어디서 곡을 구했는지 추적해야 하고, 인증이 맞는지 확인해야 하는 기능을 덧붙여야 할 것이다. 이래서야 너무 복잡하다.
다만 기존 디자인으로 사용자가 다중의 아이튠즈 계정을 만들 수는 있으며, 다중의 보호된 트랙을 업로드시킬 수도 있다. 가령 필자는 영국 아이튠즈 계정도 만들어서, 영국 스토어에서 나오는 무료 다운로드 곡을 받곤 한다.
필자의 아이튠즈 데스크톱 머신은 두 계정 모두에서 인증을 받았기 때문에, 아이포드로 노래를 올릴 수가 있다. 아이포드 자신은 무엇이 어디에서 왔는지 구분하지 않는다. 그저 재생시키기만 할 뿐이다.
DRM in iTunes
물론 아이튠즈나 아이포드에 꼭 DRM을 쓸 필요도 없다. 사용자는 iTS 콘텐트 구입을 안하고, CD나 다른 MP3 스토어에서 구입한
MP3나 AAC, 혹은 무손실 압축파일을 돌릴 수 있다.

하지만 iTS에서 구입한 콘텐트일 때는, 애플 서버에 아이튠즈가 보안연결을 하여, DRM이 들어가있지 않은 단순한 AAC 파일을 다운로드한다.
즉, 실질적인 FairPlay 잠금장치는 아이튠즈가 사용자 컴퓨터에서 행한다. 이때문에 애플은 써드파티나 오픈소스 소프트웨어가 아이튠즈 스토어에서 다운로드를 못받게 막고 있다.
아이튠즈 스토어 다운로드곡의 DRM을 우회했던 경우도 위와 같다. 자신이 아이튠즈인양 속인다음 애플로부터 보호받지 않은 순수한 AAC 파일을 다운로드하는 것이다.
애플도 그 방법을 알고 있다. 따라서 애플은 새 버전의 아이튠즈를 내놓으면서, 아이튠즈와 스토어 서버 간에 보안 확인을 하기 시작했다.
아이튠즈 자신이 FairPlay 보호버전의 트랙을 암호화시키는 임무를 맡았기에, 애플 서버는 사용자가 이미 구매한 노래들을 일일이 다 다시 보호를 입힐 필요가 없다. iTS는 그저 순수한 AAC 파일만 갖고 있으며, 개별 파일의 보호/해제는 사용자의 컴퓨터가 행하게 된다.
아이튠즈가 모든 DRM을 맡는 이 디자인덕분에 애플 스토어와 아이포드는 더 간단해질 수 있었다. 오히려
열라고 떼쓰는 사람은 줄어들고 있다.
DRM in Games
FairPlay가 음악과 비디오용으로 암호화를 제공하긴 하지만, 아이포드 게임은 단순한 단일 파일도 아니기에 보안 모델이 완전히 다르다.
게임을 아이튠즈에서 구매하면, ~/Music/iTunes/iPod Games 폴더에 게임이 들어가게 된다. 이 게임은 .ipg 확장자를 가지며, 실질적으로는 ZIP 압축 아카이브이다.
파인더상에서 이 파일을 .zip 확장자로 고친 다음,
BOMArchiveHelper같은 것으로 콘텐트를 열면, 게임 리소스 파일을 볼 수 있다. 아래에 설명해 놓았다.
어떤 게임은 PopCap이나 EA 브랜드도 있긴 하지만, 작업 자체는 애플이 상당히 담당한 것으로 보인다. 그러나 수상하게도 각 게임은 다르게 만들어져있다.
iPod Game Components
각 게임은 다음의 파일을 갖는다.
- manifest.plist XML 파일로서 게임 플레이를 위해 필요한 파일을 규정한다.
- manifest.plist.p7b 바이너리 파일로서 보안인증을 받는다. 애플의 FairPlay Certificate Authority 사인이 생겨나면, 아이튠즈가 어떤 파일을 수정해야할지 말해줄 수 있다.
- iTunesArtwork 게임의 JPEG 스크린샷이다. 이 파일은 아래의 데이터와 같이 쓰인다...
- iTunesMetaData 아이튠즈 게임 디렉토리의 목록을 보여준다.
- *.raw.lcd5 또다른 바이너리 게임 스크린샷으로서, 아이포드상에서 게임이 시작될 때 표시된다.
- Executable 디렉토리는 *.bin(~600K)와 *.sinf(4K) 파일이 들어있는 디렉토리로서, 실질적인 게임코드이다.
- Resources 디렉토리에는 11 개의 로컬라이징 파일이 위치한다. 각 언어마다 XML 파일과 그림 파일이 들어있다. 여기에는 게임의 디스플레이와 함께, 게임사용법도 포함한다.
개별 게임에는 다음의 파일도 있다.
- audio 디렉토리에는 게임의 사운드 효과 wav 파일이 들어있다.
- 표준 AAC 오디오파일은 게임의 사운드트랙이다.
- 바이너리 서체나 그래픽 파일은 아이포드 전용 포맷이다.
- 로컬라이징 텍스트 스트링은 여러가지 언어로 게임 메세지를 보여준다.
각 파일은 이름과 크기에 따라 manifest에 목록화되어 있다. 이때문에 애플은 게임 편집을 상당히 까다롭게 하였다.
애플이 만약 게임을 위해 아이포드 API를 공개한다면, 아이포드용 게임이 봇물을 탈 것이 분명하다. 그러나 애플은 아이튠즈 스토어로 게임을 팔거나 배포해야 할 것이므로, 결국은 아이튠즈와 아이포드를 외부 콘텐트에 개방시켜야 한다. 그렇다면 아이튠즈 보안모델 전체가 흔들릴 수 있을 것이다.
또한 아이포드에게 인증받지 못한 코드를 허용시켜버리면 테스트를 받지 않은 게임이 아이포드를 충돌시키거나, 하드디스크 복구를 하게 할지도 모른다. 이는 애플에게 있어서 지원 문제를 불러일으킬 것이다.
따라서 애플은 개발 플랫폼으로서 아이포드를 개방시키지 않을 것이다. 득보다 실이 더 크기 때문이다. 아이포드는 과연 중요한 게임 플랫폼이 될 수 있을까? 그렇다면 게임이 우후죽순 생기도록 게임 플랫폼으로 육성시켜야 할까? 흠.
The Games
필자는 게임을 그리 즐기지 않지만, 몇몇 게임은 중독적이면서 재밌다. "비디오 게임"으로서 최소한의 기능만을 포함시킨 Pac Mac은 최악이었다. 터치휠로 Pac Mac을 즐기기란 정말 어렵다. 그래도 다른 게임들은 터치휠로 할 만하다. 특히나 Vortex나 Zuma와 같은 게임에서 그러하다.
헤드폰을 통한 게임 오디오는 필자 생각보다 아이포드를 자연스러운 게임용 디바이스로 생각나게 만들었다. 처음에 Zuma를 할 때는 거의 새벽 네 시까지 즐겼었다.
물론 새벽 두 시까지는 춤추러 나갔었기 때문에, 이 게임이 필자의 밤을 모조리 차지해버리지는 않았다. 밤에 잠을 안 자는 분이라면, 침대에서 아이포드갖고 뒹굴기 전에 수면제라도 복용해야 하잖을까? 필자는 더 많은 게임을 다운로드해보았다. 지금까지 필자가 살 만하다 꼽은 게임의 점수는 다음과 같다.
PacMan: D
향수어린 사운드 효과가 있지만, 게임은 화면의 2/3 만을 사용하고, 아이포드의 컨트롤러가 이 게임에 역부족이다.
즉, 왼쪽이나 오른쪽, 위나 아래로 버튼을 누르면 움직이는 것이 아니라, 휠을 돌려서 움직여야 한다. 거의 게임을 즐기기가 불가능하다.
PacMan을 하는 큰 이유는 조이스틱때문이다. 만약 애플이 휠을 돌리기보다 그냥 위아래로 누르게 해 준다면야 B 정도 점수는 따놓은 당상일 테지만, 그렇게 되면 너무 게임에 중독되진 않을까? 일단 이 게임에 대한 5 달러는 아껴 두시길.
Vortex: A
이 게임은 재밌고 빠르다. 폭풍우가 휘몰아치는 3차원 실린더 안에서 공장에서 나온 것 같은 벽돌을 빠르게 움직이는 게임이다.
비행기에서 영화를 보는 대신, 혹은 대중교통수단에 올라탔을 때의 대안으로 쓸 만한 게임이다. 물론 여러분이 운전자라면 해서는 아니 된다.
이 게임의 음악은 샌프란시스코 출신 블루스 밴드인
DB Walker Band가 작업하였다. 이들은 포함된 AAC 파일의 메타데이터에 이름이 올라와 있기도 하다.
Zuma: B
Vortex처럼, 이 게임도 터치휠 컨트롤에 잘 어울리는 게임이다. 다만 사운드트랙이 별로 다양하지 않다. 이런 아이포드 게임에 음악을 따로 넣을 수 없음이 통탄스러울 따름이다.
음악을 따로 넣을 수 없음이 게임 자체의 한계인지, 아니면 아이포드 하드웨어가 그런 기능을 할 수 없는 것일 뿐인지는 필자도 모르겠다. 물론 여러분은 사운드트랙 없이도 게임을 즐길 수 있다. 어느 경우에서건 Zuma때문에 필자는 잠을 잘 수가 없었다. 놓을 수가 없어서였다.
iPod 2600
아이포드에 있으면 정말 멋질 기능이 하나 있다. 텔레비전으로의 게임 출력이다. 기술적인 제한이 있는지, 혹은 아이포드를 단순한 게임 콘솔로 쓰고싶어한다는 생각을 애플이 안할 뿐인지는 필자도 잘 모르겠다. 실제로 게임 콘솔로 아이포드를 쓴다면, "케이블 독"이 필요할 터이고, 그 번잡성때문에 그것을 지원하지 않을 수도 있겠다.
우선 아이포드를 보통의 비디오 독에 올려넣고 게임을 즐기기란 분명 불가능하다. 물론 애플 리모콘으로 어떻게 할지를 애플이 알아내줬으면 좋겠다.
옛날의 아케이드 게임을 다시 포장해서 텔레비전도 볼 수 있는 조이스틱 제품으로 그 게임을 할 수 있다 함은, 아이포드 또한 비슷한 기능으로 5세대 아이포드 사용자 수 백만 명을 위한 또다른 (시시하다 할지라도) 시장을 목표로 잡을 수 있다는 의미다.
다른 아이포드 게임도 확인해 보겠다. 아이포드 게임에서 어떤 트릭이나 해킹, 혹은 다른 뉴스를 발견한다면 공유해주시기 바란다.
I really like to hear from readers. What do you think? Leave a comment or email me with your ideas.
Hacking iPod Games: How Apple's DRM Works