新着記事

2005年12月06日

ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRMを付加するものであると発覚した

Hidden Feature in Sony DRM Uses Open Source Code to Add Apple DRMより。

ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRMを付加するものであると発覚した

2005/12/05 J. Alex Halderman

何週間にもわたり、blogコミュニティはソニーのXCPコピープロテクトシステムにまつわる悪巧みの話題で騒然としてきた。 その中で最も奇妙なものといえば、XCPそれ自体がいくつものオープンソースソフトウェアプロジェクトの著作権を侵害しているという新事実である。 具体的な事例をひとつ挙げるなら、Sam Hocevarが決定的な証拠をつかんだ、 XCPのコードの一部がDRMSと呼ばれるプログラムからコピーされたものであるということだ。 問題のコードは彼が共同開発者としてDVD JonとともにGPLオープンソースライセンスのもと公開したものである。 この発見を殊更物見高いものにしているのは、DRMSの目的がApple社のiTunes Music Storeから購入した楽曲のコピープロテクトを破ることである事実だ。 他者のDRMを無効化する目的のコードを、XCPは何故盗用する必要があったというのだろう?

答えはこうだ。XCPはDRMSコードを、Apple社のDRMを除去するためではなく、付加するために活用している。 私は、XCPがDRMS由来のコードをiTunesおよびiPodとの互換性を提供する隠し機能のため使っているという事実を発見した。 この機能は出荷されたほぼ全てのXCP採用CDが有するが、決して有効になることはなく、また同様に、 XCPユーザーインターフェイスに姿を現すことも決してない。 活動こそしないけれども、問題のコードは完全に機能し、最初のXCP採用CD群がリリースされた時点での最新版iTunesに対応しているように見える。 これは、DRMSコードの著作権侵害がXCP開発者、First4Internetによって故意に行われたことを強く示唆する事実である。 コピープロテクトシステムの他機能で使われるようなより汎用的なメディアライブラリをうっかり組み込んでしまったのとは、話が違うのだ。

他社がApple社のDRMとの互換性を持とうとしたのは、これが初めてのことではない。 Apple社のDRM、FairPlayと呼ばれるシステムは、iTunes Music Storeを通して購入された楽曲に制約を与えるべく利用される。 FairPlayというDRMと互換性を持つのは、あまりに有名なiPodだけであり、 これはApple社がライバル音楽販売業者にライセンス供与するのを拒み続けてきたゆえ、 ライバル企業が事実上iPodプラットフォームから閉め出された結果とも言える。 (ともかく、ライバル企業はずっとDRMを使いたいと強く求めてきたのだ) 2004年、RealNetworksはApple社に対処すべく、FairPlayをリバースエンジニアリングし、 Real PlayerによってiPodで使えるFairPlayファイルを作成できるようにしようと試みた。 Apple社は漠然とした法的驚異をちらつかせつつ、iTunesをアップデートすることでその互換性を廃した。 どうやらFirst4Internetの人々も自身でiPod互換システムを作りたかったらしいが、 あいにくFairPlayをリバースエンジニアリングするだけの時間がなく、 DRMSから重大なコードをコピーしてしまったようだ。GPL違反をも顧みず。

不思議なことに、XCPのFairPlay互換コードはXCP採用CDからのファイル変換に制限を設けていない。 さらにこのコードは、ファイルをFairPlay形式へその他広く様々な入力フォーマットから変換する機能さえサポートしているように見える。 XCPプロテクトCDに加えて、MP3ファイル、WAVファイル、RAW音楽ファイル、そして一般的なプロテクトなしの音楽CDである。 同じく奇妙なのは、FairPlay互換コードが出荷されているにもかかわらず、アプリケーションで使われるよう有効にはならないことだ。 XCPプレイヤーソフトウェア自身でさえ不可能なのである。 (技術的な話をすれば、コードが納められている共有ライブラリから、件のコードがエクスポートされていないということ) もしかすると、First4InternetはXCP採用CDが今まさに出荷されようとしているその土壇場でこの機能を削除することを決断したのかもしれない。

いずれにせよ、問題のコードは存在し、未だ以て機能する。 いくらかの基本的な設定を行った上で適切なメモリ位置にジャンプすることで、こいつを実行することが可能だ。 問題のソフトウェアを多角的に検証すべく、その方法を使ってみた。 以下は、XCPの隠し機能を使って普通のMP3ファイルから作ったファイルをiTunesで再生した様子を映したスクリーンショットである。

スクリーンショット

これらの発見は答えよりむしろ新たな疑問を提示するものであるとさえ思える。 果たして問題のコードはどこに由来するものだろう? XCP採用CD以外の音楽ソースをサポートするのに、First4Internetは他社からライセンス供与を受けたのか? ソニーはコードを無効化しておきながら、なぜ問題のコードを出荷し続けたのだ? iTunesとの互換性がソニーの総体的なコピープロテクト戦略にいかに適合するというのか? DRMプラットフォームの非互換性とGPL違反はどちらがより邪悪なのか? 将来Edがこれらの謎を解明すべく参戦するであろうその日にも、また注意を払っておこう。

この記事の残りの部分は、XCPがいかにDRMSのコードを利用しているかについての技術情報である。 そういった詳細に興味がなければ、ここで読むのをやめてもらっても差し支えない。

XCPがいかにDRMSからのコードを利用しているのかを理解するには、FairPlayに関するいくつかの基礎知識が必要だ。 iTunes Music Storeから楽曲を購入すると、FairPlayで暗号化された音楽ファイルを受信することになり、 それはApple社によって割り当てられた秘密のキーを知っている者のみが再生できるものとなる。 iTunesはこのキーをApple社のサーバから取ってきて、Apple社へのログインIDとパスワード入力を促すわけだ。 ユーザーキーはハードディスクドライブに暗号化されたキーデータベースとして格納されている。 (このファイルはSC Info.sidbというやつである) 再び楽曲を再生するか、iPodにコピーしようとすると、iTunesはサーバに再接続する代わりにこのデータベースからキー情報を読み出す。

FairPlayの安全性は、Apple社以外のあらゆる者が解読困難なこの暗号化キーデータベースを前提とするものなのである。 ゆえにそれは独自仕様の暗号化手法およびシステム依存の秘密のキーによって保護されている。 (セキュリティ専門家の予見によれば、このプロテクトは速やかに破られるであろうとのことだった。 今日、DRMSはFairPlayを破ることができる。DVD Jonが苦心してiTunesのデータベース暗号化コードをリバースエンジニアリングしたからだ。) iTunesはキーデータベースを2つの段階的なプロセスで暗号化する。 まず、プレーンテキストのデータベースと、システム依存の種を利用した疑似乱数生成機構(PRNG)の出力の排他的論理和をとる。 次にシステム依存のキーを用いてAES暗号化処理を施すのだ。 こういった設計ゆえに、ファイルの暗号化も復号化もまったく同一のPRNGコードを使うことになる。 復号化の際、iTunesはAES暗号を復号し、それから同一のPRNG出力との排他的論理和をとるわけだ。 これは、問題のDRMSコードの一部―とりわけDoShuffleと呼ばれるPRNG出力を計算する関数―がいかに有用であるかをも示す物だ。 本来の目的である暗号化はもちろん、復号化についてもである。

この複雑な独自仕様のPRNGをリバースエンジニアリングするのは非常に難しいことである。 どうやらXCPの開発者は、自身で努力することより、DoShuffleのコードをDRMSから文字通り盗むことを選んだと見える。 XCPはこのコードをiTunesのFairPlayプロテクトの施されたキーデータベースを処理するために使っている。 暗号化されていない音楽ファイル、例えばプロテクトCDの1トラックから始まって、XCPは音楽をメモリ上に圧縮する。 そしてそれをFairPlayと同一のアルゴリズムを用いて暗号化するのだ。 Apple社の割り当てるユーザーキーの代わりに、XCPは新たなユーザーキーをランダムに生成し、 DRMSコードの力を借りて、それをiTunesのキーデータベースに追加する。 こうすればその音楽ファイルが作られたコンピュータ上では少なくとも確実に使えるようになるわけだ。

XCPのFairPlay互換コードはECDPlayerControl.ocxと命名されたファイルに含まれており、 このファイルはXCP採用CDを最初に再生した際にインストールされる。 ここで述べるのは、問題のDRMSコードが残りのライブラリ群とどのように結びついているかということである。 (他の調査者の一助となればと、各関数のデバッガオフセットを供することにした。) DRMSのDoShuffleサブルーチン(0x10089E00)はたかだか2つの場所から呼ばれている。 ひとつはiTunesのキーデータベースを暗号化する関数(0x1008A0C0)、もうひとつは復号化する関数(0x1008A300)だ。 両方の関数はたったひとつの他のルーチンから呼ばれているのみである。 そのルーチンは、キーデータベースを読み取り、復号化し、必要とあらばXCPユーザーキーをデータベースに加え、 再び暗号化された形式で書き出すというものだ。(0x1008A470) このルーチンは、音楽ファイルをFairPlayでプロテクトされたAACファイルに変換するより高レベルな関数(0x10027D20)から呼ばれている。 これらの関数は、比較的最初のほうにあるルーチンにジャンプすることで実験できる。 (見たところ、0x10010380が音楽をiTunesに転送する筋道の開始点のようだ。) あらかじめ多少の単純な初期化は必要ではあるが。本格的な調査者にとり、この粗雑なサンプルコードと注意書きが役に立ったとすれば、幸いである。

私の実験において、XCPのFairPlay互換コードはiTunesバージョン4.8に至るまで正常動作した。 2005/06/28にリリースされたiTunes 4.9にて、FairPlayとは関係のない変更があり、それによりXCPのコードは機能しなくなったようだ。 なお、この日時以降にリリースされたXCP採用CDにおいても、問題のコードの更新版は含まれていないようである。

posted by 7mm MG at 12:51| Comment(1) | TrackBack(10) | 和訳 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
 こんばんはー、ホイヤーです。じっくり よましていただきますねー・・。
Posted by アンクル・ホイヤー at 2005年12月07日 22:23
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/10280331

この記事へのトラックバック

ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRM...
Excerpt: 最近お世話になっている、Teary 7mm MGさんのエントリーでまたまた。 ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRMを付加するものであると発覚した Hid..
Weblog: ふっかつ!れしのお探しモノげっき
Tracked: 2005-12-06 14:53

Sony BMGのXPCはAppleのFairPlayになんかしようとしてました!
Excerpt: …… MediaMaxの交換回収なんてことになったらいくら損するんでしょうねぇ。
Weblog: 趣味の問題2
Tracked: 2005-12-06 20:10

ソニーDRMの隠し機能はApple DRMを付加する
Excerpt: Teary 7mm MG: ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRMを付加するものであると発覚した Teary 7mm MGさんからいただいたトラックバックに有っ..
Weblog: 林檎の歌
Tracked: 2005-12-07 01:40

rootkit入り音楽CD――それでもコピープロテクトはなくならない
Excerpt: この比較対象表はなかなか良いですね! ソニーBMG:悪意のあるソフトウェア特徴比...
Weblog: 音楽配信ジャーナル
Tracked: 2005-12-07 10:50

米でiTunesでのビデオ配信番組増加中
Excerpt: 愛チュン一人勝ちでソニンの行方は…。 ■iTunesでのビデオ配信が加速--NB
Weblog: Sex
Tracked: 2005-12-07 11:56

ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRMを付加するものであると発覚した
Excerpt: これは、AppleがSONYを訴える可能性が出てきたと言うことか・・・...
Weblog: Computer U Relax
Tracked: 2005-12-07 12:22

アーティストの知的財産権を守るためにオープンソースのルールを破るSONY BMG
Excerpt:  2件続けてSONY BMGの記事になりますが、XCP rootkitにはオープンソースのコードが含まれているということが判明しています。彼らは自分たちの著作権保護のために他者の著作権を踏みにじ??
Weblog: 新聞記事・ニュース批評@ブログ
Tracked: 2005-12-07 16:00

ウォークマンを売るの諦めてたんかいね?
Excerpt: ○ソニーDRMの隠し機能は、オープンソースコードを使いApple社のDRMを付加するものであると発覚した  一言で言えば「盗人猛々しい」といった感じ。企業体質からして元からかも知れんが。  ま..
Weblog: Delenda est age.
Tracked: 2005-12-07 21:53

これはイイ!ガジェッター御手洗大祐の自腹レビュー 第4回:やは...
Excerpt:  こん○○は、ホイヤーです。本日は 「話題の新型ウォークマンAはどこですか?(爆)」と「これはイイ!ガジェッター御手洗大祐の自腹レビュー 第4回:やはり買ってしまった!iPod(Video)の満足度は..
Weblog: Macとえいちやin楽天広場
Tracked: 2005-12-07 22:12

黙って盗んで土足で踏み込み似て非なる物
Excerpt: Hidden Feature in Sony DRM Uses Open Source Code to Add Apple DRM 和訳していただいたものを読み読み ソニーDRMの隠し機能は、..
Weblog: ッフォ覚え書き
Tracked: 2005-12-08 12:30
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。