間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

B-CASカードの仕組み、技術と営業要求の狭間

https://www.facebook.com/koyhoge/posts/463995473614977

コンテンツはKsで暗号化されてるのは確かなのですがB-CASは3重カギと言いまして局毎にKwってのが決まっていて、Kwを使ってKsを暗号化して送る方式。で、Kwの更新にKmを使うのです。(中略)
技術が営業&運営にないがしろにされたのは、このKwはそれなりの頻度で更新されることを前提としていたはずが、「1週間無料視聴」って機能を実装するために事実上固定運用するしかなくなったという点です。それが本来のダメダメ点。
ちなみにKmもB-CAS IDからある関数で導出できるのですが、それもどうも件の台湾人は解析済みみたいですね。そういう意味で「暗号も」解けています。

暗号というかエンコードだな。

カード毎にIDが決まっており、IDが決まればKmが決まります。Kmは、契約情報に応じて局毎の有効期限を変えたり、Kwを配布・更新するためのものです。
(中略)
カードの中が解析されたので、各カードからKmを取り出す方法や、Kmを使って暗号化したKwを取り出す方法(EMMといいます)も漏れました。そして、最後のIDからKmを導出する関数も、件の人は6月に公開するといってます。

Kwは局つまりチャンネルで共通です。ある時期には全カード同じ。で、Kwが漏れる前に、その時点で有効なカードに対して順次Kmを使って新しいKwを配布、つまり更新するのが本来想定されていた運用
(中略)
ところが、買ってきたばかりの(つまり放送局にはKmが何かわからない)カードも1週間だけはKsを返す運用をすることを営業上求められた。(中略)その結果、Kwを固定、カードに焼き込んで配布する運用が始まった。
(中略)
これ以降事実上Kwを固定して運用するようになってしまった。だから今困ってるんです。今やるべき緊急避難策はKw更新ですが、これすると配布済みのカードでは無料視聴できない。

Ksはチャンネル毎に放送波に混ぜ込まれていて、カードは放送波を受けるとそれの中からKwを使ってKsを取り出してテレビに返します。テレビはそれを使って放送コンテンツを復号して再生します。
(中略)
Ksは秒単位で変えられますし実際コロコロかえてます。

今回本質的に痛かったのは、Kwが漏れたこともそうですが、B-CAS内の契約情報(有効期限)を自由に書き換える方法がバレちゃったことです。これはB-CASシステムそのものの脆弱性ではなく、B-CASカード(中略)の実装ミス、というか、バックドア残してる上にカギが脆弱すぎたのが問題です

http://www.catv.or.jp/jctea/spec/standard/pdf/STD001.pdf
P3

  • Ks スクランブル鍵
    • スクランブルのパラメータを変えて安全性を保つ
    • ブロック暗号の鍵又はPN系列発生器の初期値
    • 短時間(例:1秒程度)で更新
  • Kw ワーク鍵
    • ECM(Ksと番組の属性情報)を暗号化
    • 全受信機に共通(例えばCHごと)
    • 1ケ月〜1年程度で更新
  • Km マスタ鍵
    • EMM(Kwと契約情報)を暗号化
    • 各受信機(又はセキュリティモジュール)に個別
    • 鍵管理センターで管理

TS:Transport Stream
ECM:Entitlement Control Message
EMM:Entitlement Management Message

めも、未検証

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。