2012-05-20

B-CASカード技術的なことをしらべてみた

B-CASカードお祭り状態なので技術的なことをネットに転がっている情報から調べてみました。

もし間違いがありましたら後学のため教えてください。。

B-CASカードによる暗号の仕組み

http://gigazine.net/news/20120518-b-cas-card/

ここを読むと全体像がつかめます

B-CASカードにはKm(マスターキー)というカード毎固有の暗号鍵が含まれている

・放送波から流れてくるTS(トランスポートストリーム)にはEMMとECMというというパケットが含まれている

・EMMは各B-CASカードに向けて投げられるパケット

ECMはすべてのB-CASカードに向けて投げられるパケット

・EMMには契約情報とKw(ワークキー)が含まれている。

 - 契約情報にはチャンネルごとの契約情報が入っている

   BS-NHK契約を促す警告表示してね

   スカパーのどのチャネル契約してます

  みたいな

 - この情報B-CASカード内にあるRAMエリア契約情報」にコピーされる ★1

 - KwはECMパケットを解く暗号

 - EMM自身にはB-CASカードID(6Byte)が非暗号化されて入っている

  これによりどのB-CASカードに向けてのパケットかわかる

 - EMMパケット暗号化されていてKmによって復号される

ECMには日時情報Ks(スクランブルキー)が含まれている

 - ECM暗号化されておりKwにより復号化される

 - 日時情報と上記「契約情報」でACL(アクセスコントロール)を行なっている ★2

 - KsTS映像情報を復号できる

と、いうことで★1と★2において★1の契約情報を偽造できればたとえばwowwow契約していないのに

契約できていることになりそうです。ただ問題は★1の部分はEMMで更新されるということ。

単純にB-CAS内のRAMエリアを書き換えても時間がたてばEMMで元に戻りそうです。

参考:

http://oshiete.goo.ne.jp/qa/3456801.html

http://blog.goo.ne.jp/ikedanobuo/e/8b59ccca2dac45f02a5ae15815fb4a75

http://www.marumo.ne.jp/db2012_5.htm#12

http://www.marumo.ne.jp/db2007_c.htm

p.24-p.36 にEMMのフォーマットが書いてある。

EMMデータには暗号化されていない部分にカードID番号(6Byte)

http://www.arib.or.jp/english/html/overview/doc/2-STD-B25v5_0.pdf

B-CASカード内「契約情報エリア改竄

知らなかったのですがB-CASカード内にはCPUが入っているそうです。

そのCPUがEMM/ECMパース暗号の復号、「契約情報エリア管理を行なっているようです。

今回は特定のB-CASカードに含まれるそのCPUが特定され、ファームを書き換えられるようにしたそうです。

ファームを書き換えさえすればEMMの「契約情報」をRAMエリアの「契約情報」にコピーさせる処理を

やめさせ、改竄された「契約情報」のまま使うことができます

よって今回突破されたことをまとめると、

・特定のB-CASカードにはRAMエリア書き換え、CPUファームを書き換えるバックドアが設けられていた

・特定のB-CASカード内の「契約情報」の場所を特定した

・特定のB-CASカード対応の改造版ファームを作る猛者がいた

ということのようです。

以下は興味。

■EMMのなぞ(データ量について)

B-CASカード宛てにパケットを送るなんて現実的じゃないよね?どうやってるんだろう?

と思っていましたが、関連する特許を見つけました。

特開2000-125272 【発明名称】放送システムでのメッセージ伝送方法

http://www.j-tokkyo.com/2000/H04N/JP2000-125272.shtml

TSにはハッシュキーのみ含み、データB-CAS内に予め保持しておくそうです。

確かに契約パターンはそんなに多くはないだろうからこれでいけそうですね。

EMMもひとつTSパケット中に何個か含めることができるそうです。

■Video側だけで暗号解除はできないのか?(昔から思っていた疑問)

KsB-CAS内で処理されるので無理ですね。

トラックバック - http://anond.hatelabo.jp/20120520150244