2012-05-22
■ b-casカード不正改造問題の本質はカードの交換を不可能にしたこと
b-casカードの不正改造問題が騒がれているが、「カードがクラックされた」ということではなく「カードが交換できない」ということが問題の本質で、この点がクローズアップされるべきだと思う。
鍵を盗まれたのかアルゴリズムに欠陥があったのか?
2ちゃんねるでは「b-casカード完全解析」とか「b-casカード終了」とか言われているが、暗号化アルゴリズムが破られたわけではない。
「暗号化アルゴリズムが破られた」という言葉は、鍵無しで暗号文を復号する方法が発見された時に使うべきだ。暗号化アルゴリズムが知られても、鍵が無ければ破れない暗号はたくさんある。というか、本来は、暗号化アルゴリズムは公開され(てレビューを受け)るべきもので、中身を知られてから暗号文をどれだけたくさん集めて研究されても、鍵無しでは絶対に(現実的な計算時間では)復号されないということがアルゴリズムの役割である。
今回のクラッキングは、「鍵無しで有料放送を見られた」ということではなく「鍵を盗まれてしまった」という問題である。だから、鍵を盗まれた経路を塞げば、アルゴリズムはそのまま使える。
b-casシステムでは、いくつかの鍵が使われているが、一番重要なのはカード固有キー(Km)である。Kmはカードごとに個別の鍵が使用され、カードの中に記憶されている。ICカードは記憶装置ではなく小さなコンピュータで中のデータを直接見ることはできない。外部からのコマンドを中のソフトが解釈して応答する。応答する内容は、カード内部に記憶された情報そのもののこともあれば、それを元に中のソフトが計算した結果であることもある。
b-casの役割は「放送局の指示に従い契約情報を管理して、映像視聴に必要な鍵を正規の利用者だけに渡すこと」だ。そして、重要な前提条件として「テレビを信用してはいけない」ということがある。b-casカードはテレビの中でテレビから電源をもらい、必要な指示もテレビを通して受け取る。しかし、その「テレビ」は実際にはパソコンであることもあり、パソコンであればソフトもハードも改造されている可能性がある。100%完全なアウェイで仕事をするわけだ。
テレビが嘘をついて「この人はWOWOWを契約しました」とか言ってきても信じてはいけない。放送局から電波で届いた本物の指示だけを処理しなくてはいけない。
その識別に暗号が使われる。Kmはカード自身と放送局しか知らないので、Kmを知っている人からの指示であれば信じて処理する。テレビが嘘をついてもカードにはそれがわかるのでカードは無視する。
ここが誤解されがちな所だが、テレビ本体も暗号に関わる処理をしている。つまり、映像ストリームそのものの復号はテレビが行ない、そのための鍵(Ks)はテレビに渡される。しかし、Ksの計算のために必要な鍵(Km)はカードの中にあって、テレビと関係なくカードの中だけで計算に使われる。
だから、Ksを使う暗号アルゴリズム(映像ストリームの暗号化アルゴリズム)やカードとテレビの通信方法(プロトコル)は変更できないが、そこはクラッキングとは関係ない。そして、KmからKsを計算するカード内の処理にも問題はなく、KmなしでKsを計算する方法は知られていない。少なくとも現在のクラッキングのツールでは使われていない。
今回のクラッキングは、暗号を破ったわけではなく、鍵(Km)を盗んだというのが第一のポイントである。
鍵を盗まれるという「あってはならないこと」レベル1
b-casカードはコンピュータであるが、カードの中のソフトにいくつかの欠陥があった。その欠陥の詳細は省略するが、ポイントは、テレビの中で動くために必要な処理には、欠陥が無かった(少なくとも現状では見つかってない)ということである。おそらく製造時に使うものだが、テレビの中では必要ない機能がカードのソフトには含まれていて、そこに欠陥があった。
だから、欠陥を無くす変更は比較的簡単であり、直したカードを現状のテレビの中で動かすことには何の支障もない。
もちろん、セキュリティ製品の欠陥はどういうものであれ「あってはならないこと」であり、今回のクラッキングで利用された欠陥は、かなりひどいものである。ロットごとに欠陥の内容は違うが、カード内の情報を外部から自由に書き換えられる欠陥もあるようで、このカードを使っている限りは「b-cas完全終了」というのは正しい。
しかし、これは想定外のことではない。
暗号を使っている限り、鍵が盗まれるというのは全て想定の範囲でなくてはいけない。鍵は単なるデジタルデータであり、どれだけ厳重に管理しても内部からのリークで漏洩することはあり得る。また、通常のカードリーダではない特殊な装置で情報を読み取ることもできる。どちらもできる人間が限られているので、簡単にできることではないが、社会的な自爆テロのようなことは起き得る。
ポイントは、鍵を盗まれた時にその鍵を(妥当なコストで)入れ替えられるかどうかである。鍵交換の時必要なコストと鍵を守るためにかけるコストの釣り合いである。
もし、Kmの管理方法を変えて欠陥を直した時に、カードとテレビの間の通信方法が変更になるとしたら、b-casには基本設計のミスがあったということになるだろう。しかし実際は、Kmに関する処理はカードの中に閉じているので、カードのソフトを変更して新しいカードを作れば、テレビの改造は必要ない。
「Kmをカード内に秘匿し、Kmによって契約情報を管理し、契約情報とKmによってKsの出力をコントロールする」つまり、テレビを信用しないで、見せてよい放送だけを見せる、というb-casの仕組みそのものには問題がない。
鍵を変えられないという「あってはならないこと」レベル2
b-casが、有料放送の視聴制限のためのカードであれば、今回のようにクラックされても、カードの総入れ替えで対処できる。入れ替えの為の顧客管理はできているはずだし、その費用も視聴料金の一部をあてることができる。
それが現実的に可能なようにb-casは設計されている。つまり、カードとテレビのセキュリティに関する役割分担は適切にできている。設計上の不具合は無かったといってよいと思う。
しかし、b-casは、用途を拡大し無料放送の管理にも使われてしまい、そのために実質的に交換不可能なカードになってしまった。
その結果「交換不可能な部品にセキュリティの根幹を頼る」という別の大きなミスをおかしてしまった。
ここが問題の本質である。
「鍵を盗まれる」というのは軽い「あってはならないこと」であって、挽回可能なミスである。しかし、「交換不可能な部品にセキュリティの根幹を頼る」というのは、それよりずっと重大な「あってはならないこと」である。
技術的には、現状でも、有料放送をb-casから切り離し、有料放送だけ新しいカードに切り替えるという選択肢は存在する。しかし、それはb-casの枠組みそのものが崩壊するということなので、政治的には実行不可能ではないかと思う。
なぜ重大な「あってはならないことが」起きたのか
それは、私にはよくわからない。
ただ言えるのは、無料放送を含めるという前提条件の大きな変更があった時に、技術者の反対の声が無視されたのだろうということである。
その経緯は調べてないが、「交換不可能な部品にセキュリティの根幹を頼る」という、セキュリティの原則に反する重大な問題に技術者が強硬に反対しなかったとは思えない。
そして、それが無視された状況は容易に想像できる。
私なりの言葉で言えば、それは「無数の相対性のすりあわせの中での絶対性の無視」ということだ。
b-casカードというのは、行政の仕事としては大変な力作なのだと思う。相反する多くの関係者の利害関係をすりあわせるという作業を果てしなく繰り返して、無数の調整を通して構築された複雑怪奇なシステムだ。
その中で、セキュリティを危惧する技術者の意見は無視されたのではなく、数多くの相対性の一要素として矮小化された、のではないかと思う。
日本の意思決定システムには「絶対的な原理原則」というものの入る余地がない。言い方を変えると「外部」の入る余地がない。犯罪者や外国や物理法則は、空気の読めない「外部」であり、「外部」は空気の読める内部の代弁者を通してしか、意思決定に関与できない。そしてのその代弁者も原理原則に固執しすぎると意思決定の場から排除される。
そのように、すりあわせの連鎖の中で行なわれた意思決定には責任者がいないので、問題が起きた時の対策も取れないし、再発を防ぐこともできない。
福島第一の電源喪失リスク、東電に06年指摘 : 科学 : YOMIURI ONLINE(読売新聞)も全く同じ構造ではないだろうか。
当ブログの関連記事
一日一チベットリンク→中国の核心的利益、その実態を解き明かす 世界ウイグル会議総会の東京開催〜中国株式会社の研究(163)
(5/23 追記)
あわせて読みたい → http://www.facebook.com/koyhoge/posts/463995473614977
私は、Kwの話はHowであり、省略してもWhatの話をできると考えました。
私がこのエントリで言いたかったのは、「b-casの(当初の)基本構想には問題がないし破綻もしてない」ということですが、そのためには、「b-casカードとは何をするものか?」というWhatをできるだけシンプルに言う必要があります。私はそれを「放送局がカードのKS出力を暗号技術でコントロールする」ととらえました。
そして、「放送局」=「Kmを知っている者」という識別方法である以上、カードの交換は想定内であるはずだと推測し、その対策を中心に書きました。
「暗号技術でコントロールする」のHowを詳しく(正確に)知りたい方は、上記を参照してください。
Kw更新という対策は、Kmが知られている以上(他人宛のEMMを解読されてしまうので)一時しのぎにしかならないと思いますが、それが機能しないことは、b-casシステムの基本構想の不備ではないので、あえて書きませんでした。(Kw更新をできない営業的な理由があることは上記ポストを見てはじめて知りました)。
- Twitter / @hata_nonta
- Twitter / @zzr_ike
- Twitter / @zawameki24
- Twitter / @mapoyon
- Twitter / @shunsuke_sasaki
- Twitter / @Kabkin_
- Twitter / @orimaj
- Twitter / @henachokodoumei
- Twitter / @tlo_
- Twitter / @nominz
- Twitter / @noriro_08
- Twitter / @tab_z
- Twitter / @zincwhite
- Twitter / @grimrose
- Twitter / @toiro
- Twitter / @Sinfulblue
- Twitter / @nakag_3d
- Twitter / @ogapon1043
- Twitter / @z_n_c_890_P
- Twitter / @ghostduster
- Twitter / @mentyan2
- Twitter / @yata_crow
- Twitter / @yonjin
- Twitter / @sagasumi
- Twitter / @shiria001
- Twitter / @trac_light
- Twitter / @sebas_dz
- Twitter / @yukiusa_nyan
- Twitter / @wapkanyu
- Twitter / @tminoc
- Twitter / @dobusarai
- Twitter / @migratory_bird
- Twitter / @tkshnt
- Twitter / @prptl
- Twitter / @kamixyz
- Twitter / @kamijizy
- Twitter / @nisimaki
- Twitter / @rbnx_y7
- Twitter / @nrglog
- Twitter / @dkusunoki
- Twitter / @marchin13
- Twitter / @ozawatetsu
- Twitter / @level_7g
- Twitter / @bangyan2
- Twitter / @the_wild_hunt
- Twitter / @waidottowai
- Twitter / @d6rkaiz
- Twitter / @Maina_Tougi
- Twitter / @kimomen2d
- Twitter / @atmosfere
- Twitter / @mayohigayuki
- Twitter / @MomijiManjuin
- Twitter / @naokyr1008
- Twitter / @gb7k
- Twitter / @raku2_tp
- Twitter / @atmosfere
- Twitter / @TrinityT
- Twitter / @cabina90
- Twitter / @saruto
- Twitter / @wogu
- Twitter / @sgs510
- Twitter / @maruyaso
- Twitter / @tamanyo
- Twitter / @falcon_yuta
- テツオザワの色んなところから - 2012年05月22日のツイート
- Twitter / @ogaki_noritoshi
- Twitter / @chico2ri_ta
- Twitter / @kswmochi
- Twitter / @masa_590
- Twitter / @shibaqn
- Twitter / @tokitamonta
- Twitter / @The_NULLPO
- Twitter / @Gogamix
- Twitter / @mituyama
- Twitter / @nanaaki_77th
- Twitter / @4koma_fan_JOE
- Twitter / @dentsu
- Twitter / @jagatala
- Twitter / @tetsunotsuki
- Twitter / @keychro
- Twitter / @tambosofa
- Twitter / @uedayou
- Twitter / @daiginjo88
- Twitter / @sobakikuya
- Twitter / @yutoni
- Twitter / @torshim
- Twitter / @shinchanwigulu
- Twitter / @rockbat258
- Twitter / @kudokoo
- Twitter / @wata_z
- Twitter / @kleza
- Twitter / @koga1ife
- Twitter / @Divine__Wind
- Twitter / @roshian
- Twitter / @sinabamorotomo
- Twitter / @akina2go
- Twitter / @guttinao
- Twitter / @s_tano
- Twitter / @kuroneko_mikan
- Twitter / @masugata
- Twitter / @piadra_
- Twitter / @2478gpum
- Twitter / @hidewo_h
- Twitter / @mitsu_at3
- Twitter / @ekunn
- Twitter / @filho
- Twitter / @7mencho
- Twitter / @kotaro0828
- Twitter / @wave892
- Twitter / @m_yusei
- Twitter / @ashiyu
- Twitter / @kousuke_1112
- Twitter / @kuro_washi
- Twitter / @keisuke9498
- Twitter / @dotthx
- Twitter / @goroh_kun
- Twitter / @nomizut
- Twitter / @tatsu_i
- Twitter / @KaguraZR
- Twitter / @guribow
- Twitter / @jeyarl
- Twitter / @tamuhiro
- Twitter / @mumeishi
- Twitter / @enpon_bonpon
- Twitter / @cogya2
- Twitter / @ityuki
- Twitter / @beekarii
- Twitter / @tag01p
- Twitter / @ja1elq_hardler
- Twitter / @futi2988
- Twitter / @Neducchi_Nakgwa
- Twitter / @aramotokei
- Twitter / @kuma_256bit
- Twitter / @mototon
- Twitter / @hatsunenegi
- Twitter / @yanjing
- Twitter / @jimjim2006
- Twitter / @yuta__jp
- Twitter / @htntbass
- Twitter / @youten_redo
- Twitter / @kouhee
- Twitter / @teracy
- Twitter / @pzt
- Twitter / @Nkzn
- Twitter / @13Hexen
- Twitter / @yuki1002
- Twitter / @motanb
- Twitter / @motanb
- Twitter / @motanb
- Twitter / @motanb
- Twitter / @motanb
- Twitter / @gomikass05
- Twitter / @motanb
- Twitter / @datsuns
- Twitter / @seizel
- Twitter / @dos_jp
- Twitter / @skychibi
- Twitter / @EN03
- Twitter / @a1102011
- Twitter / @Ripplemark1103
- Twitter / @kichiiiiii
- Twitter / @Gogamix
- Twitter / @964carrera2
- Twitter / @trickart412
- Twitter / @mistakah
- Twitter / @aqmachu
- Twitter / @Bossborot
- Twitter / @sayless2
- Twitter / @about518
- Twitter / @Office373
- Twitter / @letsspeak
- Twitter / @watarumito
- Twitter / @yoshikatu79
- 2974 http://www.henjinkutsu.net/
- 2575 http://www.facebook.com/l.php?u=http://d.hatena.ne.jp/essa/20120522/p1&h=iAQEVlDtsAQGP2XNG7usSnAIQaJH57aQfFeJttnxEeWavBQ
- 2096 http://b.hatena.ne.jp/
- 2077 http://t.co/9wxu4znq
- 1722 http://b.hatena.ne.jp/hotentry
- 1570 http://search.yahoo.co.jp/search?p=b-casカード改造&aq=-1&oq=&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 1513 http://www-ig-opensocial.googleusercontent.com/gadgets/ifr?exp_rpc_js=1&exp_track_js=1&url=http://www.hatena.ne.jp/tools/gadget/bookmark/bookmark_gadget.xml&container=ig&view=default&lang=ja&country=JP&sanitize=0&v=a9ee9e3a7c11a670&parent=ht
- 1390 http://www.google.co.jp/url?sa=t&rct=j&q=b-casカードの不正改造&source=web&cd=10&ved=0CHQQFjAJ&url=http://d.hatena.ne.jp/essa/20120522/p1&ei=bGS7T9aBDYahmQWp4sz-Aw&usg=AFQjCNE9ZLMfTG41Hs-P
- 1201 http://search.yahoo.co.jp/search?p=b-cas&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=b-cas
- 1190 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=10&ved=0CG8QFjAJ&url=http://d.hatena.ne.jp/essa/20120522/p1&ei=vFa7T8_rDNGYmQXQvvGHAQ&usg=AFQjCNE9ZLMfTG41Hs-PQ8RC7OxKPuzNcA