2003年11月23日 iTunesのコピープロテクト, オープンソースで破られる: DeCSS作者がソース公開
http://www.nanocrew.net/software/QTFairUse.tar.gz
パッチ適用後、 QuickTime で .mp4形式のMPEG4 AACを演奏すると、 ファイルの内容が、.aac形式で、 デスクトップに QTFairUse.aac としてダンプされるようになる。 iTunesで購入したコピープロテクト(暗号化)されたAACファイルでも、 「平文」のAACとして無劣化で取り出せるという。 手元では購入したファイルがないのでDRM解除についてはテストできないが、 一般のAACファイル(MP4)をQuickTimeで再生させて、 ストリームをデスクトップ上に「傍受」できること、 バイナリレベルでオリジナルどおりであることを確認できた。
リアルタイム再生で流れるストリームをDLLからダンプする方式なので一倍速であり、 ファイル&ソフトのDRMそれ自体をクラックできたわけではない。 QuickTime が正規の手順で暗号解除して平文に戻したAACを、傍受している。 言い換えれば「プロテクト外し」ではなく、プロテクトを外しているのは、あくまでQT自身だ。
状況を総合すると、ツールは、QuickTimeのモジュールを2か所、書き換えて、 再生時に November.dll を通させるようにし、 このモジュールは、通常の再生を妨害しない一方で、 DRM解除後のストリームを傍受して、デスクトップにファイルとして書き出すようだ。 November.dllとバイナリ書き換えに必要なパッチは、MinGWで簡単にコンパイルできる。
説明などに出る RAW AAC は「ADTSヘッダがない」という意味ではなく「MP4でない生のAAC」という意味。 デスクトップに出るAACをそのまま普通に再生できる(foobarなどのAAC対応プレーヤーや、AAC用のDSフィルターを使って、という意味。MP4プレーヤーでは再生できないが、必要ならAAC→MP4の再変換は容易)。
Patch適用はきわめて簡単
パッチの適用は1分もかからないが、QTやiTunesにもし副作用が出ても自己責任で。 すべてのMP4オーディオが変換できるかどうかの保証もない。 「このファイルは変換できないのですが」というタイプの質問には答えられない。
PyMusique はオープンソースの iTunes Music Store (iTMS)クライアントで、 Python で書かれている。
このソフトは Linux 上でも iTMS から楽曲を購入できるようにするものだが、 iTMS の DRM がクライアントサイドで行われていたため、 リバースエンジニアリングの過程で、偶発的に DRM も解除できるようになった。 (DRMの解除とは、購入した楽曲が公正に利用できることで、楽曲が無料になるわけではない。)
Apple は iTunes 4.7 で PyMusique のアクセスを阻止したが、PyMusique 0.4 は iTunes 4.7 に対応した。
Hackers build back door into iTunes
QTFairUse の続編。別記事「iTunesのコピープロテクト破られる: DeCSS作者がソース公開」
PyMusique は Apple の iTunes Music Store のアクセス・コントロールを解除することに成功したが(既報)、 Apple はこれを製品のバグとして扱い「修正」した。
もちろん問題の本質はコントロールの欠陥の有無ではなく、 コントロールそれ自体の是非だ。
iTunes Music Store を Linux 上でも利用できるようにした PyMusique について、 Apple側はバージョンアップでブロックを図ったが、 PyMusique 0.4 はこの Apple 側の対応に対応、再び iTunes Music Store を Linux 上でも利用できるようにした。 論点があいまいにならないように Windows版の提供は中止した。
このソフトは、ミュージック・ストアを利用できる(つまり音楽を購入できる)ようにするためのものであり、 音楽を無料でダウンロードするものではない。購入後の音楽に、iTunes は DRM をかけるが、 PyMusique はかけない。基本的に QTFairUse と同じ発想にある。 Project Statement for PyMusique参照。
PyMusique 0.4いわく、
PyMusique 0.4 was released today. This version uses the crypto from iTunes 4.7 to allow it to work again.
This version also doesn’t have support for Windows. Now, before you start assuming why we did this, let me make it clear. Jon had Python linking issues (now that PyMusique needs its own C module) If people want a Windows version enough, I’m sure someone will figure out what he’s doing wrong and release it, but we won’t release an official Windows version any longer.
Now, go buy music!
「さあ音楽を買いに行きましょう」とお金を持って店に向かう音楽ファンに、店側が待ったをかけることの意味が、 このDRM問題の核心だ。
nanocrew.net が現在ダウンしているため、状況は確認できない。 QTFairUse のときも、公開後数日で nanocrew.net は一時的に接続できない状態になった。
ミラー(キャッシュ)で、
「Latest Release: Source Code: pymusique-0.4.tar.gz
New in 0.4: Tagging support. Uses iTMS 4.7 protocol.
」という記述を確認できる。また、このミラーからソースをダウンロードすることもできた。
Jon Lech Johansen は自分のブログ「So sue me」のエントリ iTMS 4.7 (mirror)に、22日23:02 CET(日本時間23日9時02分)付けで、こう書いている。
The iTunes Music Store recently stopped supporting iTunes versions below 4.7 in an attempt to shut out 3rd party clients. I have reverse engineered the iTMS 4.7 crypto which will once again enable 3rd party clients to communicate with the iTMS.
/***************************************************************************** * itms.c: iTMS 4.7 support ***************************************************************************** * Copyright (C) 2005 Jon Lech Johansen * * Author: Jon Lech Johansen <jon@nanocrew.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/
わずか300行のシンプルなコードだ。 リバースエンジニアリングでこれを復元したのは偉業だが(とくに、 本質的な鍵にあたる tables.h が壮観)、 やっている暗号化は基本的には陳腐に見える。 急きょ対応したので仕方ないのかもしれないが。
追記: cnet でもこの事実を報じている。 'DVD Jon' reopens iTunes back door
関連記事 Johansen Creates DRM-Free Interface to iTunes
作者はこうコメントしているという。
PyMusique is an interface to the iTunes Music Store that lets you preview songs, sign up for an account and buy songs. It is somewhat interesting from a DMCA/EUCD perspective. The iTunes Music Store actually sells songs without DRM. While iTunes adds DRM to your purchases, PyMusique does not. Another difference is that signing up for an account using PyMusique does not require you to sign/click away any of your rights.
Neowin は、PyMusique開発者の一人 Cody Brocious (17歳、学生)にインタビューした。 それによると、このプロジェクトは Linux 用の iTMS クライアント開発を目的として始まり、 DRM解除は目的ではなかった。 サーバサイドでDRMが行われているのなら、いじらなかっただろうが、 クライアントサイドで行われていた。つまり、ダウンロード購入された楽曲はもともと DRMフリーで、 iTunes側でDRMをかけていた。 PyMusique はダウンロード購入を目的としていたので、わざわざDRMの部分までエミュレートしなかっただけで、 そこは本質と関係ない。「アクセスコントロールを破った」という報道は本質と異なるという。
Cody は「自分としては、iPod も持っているので、DRMがあってもいい。 Apple が Linux 版の開発を認めてくれるのなら、DRM の部分も自分で書いてもいい」とさえ述べ、 DRMを外したいわけではなく、要するに Linux 上でも iTMS を使えるようにしてほしい、という単純な希望だとした。
正規の代金を払ってダウンロード購入を行うクライアントであり、 iTMS から無料で音楽を持ってくるようなハックではない、ということも改めて強調した。
Neowin Interview With PyMusique Coder Cody Brocious
Wikipedia にも項目ができた。 PyMusique