DRMにおいて知っておくべき事項

DRMのことを多少理解すると無駄なことで悩まずに済む。

1 : PC上で動作するDRMは全て現実的な時間で破られる

なぜならPCはオープンプラットフォームであるため。
これに関しては例外を十分に理解する必要がある。いわゆる"Trusted Computing"は、この原則から逃げることを可能にする。この文脈での"Trusted"はユーザ自身ではなく、コンテンツのプロバイダがPCを信頼することを指す。
例 :

  • DVDはPC上で動作する再生ソフトウェアの解析によって破られた
  • BDの復号鍵はPC上で動作する再生ソフトウェアから抽出されつづけている

2 : オープンなDRMは存在しない

原則 1と同様の理由。そして同様にTrusted Computing配下ではオープンなDRMを考えることが出来る。
暗号鍵を隠すための仕組みが存在するならば、DRMプロトコルを公開しても機能する。例えばB-CASの仕様は公開されており、カードさえ手に入れることが出来れば誰でも受信機を作ることが(原理的には)できる。逆に暗号鍵を隠せないシステム(セキュアプレイヤでない部分で実行されるシステム)はプロトコルを公開するととたんに脆弱になってしまう。PC向けのDRMは全てプロトコルを秘匿することが安全性の一部になっている。

3 : 世の中のプレーヤはセキュアプレイヤとそうでないものに分けられる

セキュアプレイヤは僕の造語で、Trusted Computingのような言葉を使わないために別の言葉を当てている。
セキュアプレイヤの例 :

そうでないプレイヤの例とその理由 :

  • iPhone
    • いわゆる"脱獄"によりセキュアプレイヤではなくなった
  • (普通の)PC
    • 当然。
  • Wii, PS2, Xbox, ...
    • いわゆるHomebrewが動作するゲーム機はほぼ全てセキュアプレイヤではない。

セキュアプレイヤとは、要するに、"良心を強制する仕組みを持ったプレーヤ"。そうなるためには、ユーザがプログラムを書き換えたりすることを何らかの方法で防がなければならない。Homebrewが動作すると言うことは、なんらかの方法で書き換えたソフトをHomebrewとして動作させることができるということに相当する。
ただ、実行ファイルを暗号化しておけば、ソフトを書き換えることそのものを防ぐことはできる。

4 : 暗号鍵を隠す仕組みがあり、世間的に信頼されている

プレイヤそのものがセキュアでなくても、DRMを実装する仕組みがある。
B-CASを考える。
B-CASのカードには暗号鍵とCPUが搭載されており、カード内部で暗号処理を行えるようになっている(一般にスマートカードと呼ばれる)。このため、放送波を復号するための鍵をカードに問い合わせて受け取ることで、放送波の復号が可能になる。
そして、B-CASカードは"良心的な"人にだけ発行することで、システムを保つことが出来る。そして、B-CASカードの暗号はまだ破られていない。
B-CASカードの暗号化が破られる とは、B-CASカードを分解して、カード内のメモリに記録されているであろう暗号鍵を取り出すことを言う。当然、この手の攻撃に対する耐性は必要な要件でありそれなりに考慮されている(少なくとも、ソフトウェアのリバースエンジニアリングよりは難しいだろう)。
このような仕組みは社会で広く用いられている。

  • Trusted Computingで出てくるようなTPMも、同様に暗号鍵を内蔵して暗号処理を行うことができる。
  • SuicaとかEdyで使われているようなFeliCaも、同様の暗号化によるセキュリティを実現している。
    • 例えば、Suicaを分解して暗号鍵を取り出せば残額は書き換え放題となる。

もっとも、カードを分解され、暗号鍵を取り出されてしまった事例も存在はする。また、(B-CASも含め)暗号鍵を取り出されてしまったときの対策が盛り込まれているシステムも多い。

5 : DRMは暗号を使う

事実上全てのDRMは暗号に依存している。だから、DRMシステムを考察するときは、どこに暗号鍵や復号鍵を格納しているのか、そして、公開鍵暗号なのか共通鍵暗号なのかに関して考察する必要がある。
先のように、暗号化を(PC以外の)安全なところで行うという方法論もある。
暗号は正確に設計/運用しなければDRMを構成できない。