2016/06/11(土)少年が逮捕されたB-CASソフトの件を調べてみた

逮捕容疑は昨年6月23日、同カードがなくても有料デジタル放送が無料で視聴できるプログラムを独自に開発し、自身のホームページ上に無料で公開して不特定多数の人が閲覧、入手できる状態にしたとしている。

(中略)

ネット上に公開された数百ページにわたるデジタル放送の仕組みが書かれた仕様書を読み込み、独自でプログラムを開発したという。プログラムをダウンロードすれば、ネットの掲示板などに投稿されている「ワークキー」と呼ばれる暗号をパソコンに入力することで放送を視聴できるようになるという。

<不正プログラム>TV無料視聴をネット公開、少年逮捕

「なんで公開されているソフトウェア仕様を実装しただけで逮捕されてるんだ?」というのが、これを読んだ時の正直な感想だったのですが、よくよく調べて記事にまとめてみました。

問題の背景

まず、現在日本国内でデジタル放送を受信する際は、すべからくB-CASカードというものが必要になります。これは、デジタル放送が暗号化されているためです。

まず、テレビの放送を受信した装置は、B-CASカードに対して「この放送(チャンネル)の暗号を解くための鍵を計算してください」と放送データの暗号に関する一部をカードに渡します。カードはそれ自体が小さいコンピューターのようなものになっており、カードは渡されたデータからその暗号を解くための「鍵」を計算して受信装置に渡します。

過去にあったBLACKCAS事件

BLACKCASと呼ばれる事件が起きます。2012年頃、BLACKCASなどと呼ばれる「すべてのテレビ局(有料放送を含む)が永久に視聴できるB-CASカード」がネット上で販売されるようになりました。

ほぼ同時期に、なんと間抜けなことに地デジ用を含めほぼすべてのB-CASカードには、あらゆる放送局の暗号を解除するための暗号鍵が記録されており、B-CASカードは「カード内に記録された各放送局ごとの有効期限の欄を参照して、その日時まで暗号を解けるようになる」という仕組みで動作していること、しかもそのB-CASカードのセキュリティーが甘々で中身を容易に書き換えられることが判明します。

例えば有料放送の場合は、受信契約をしないと有効期限が過去に設定されていて、視聴できないという仕組みです。

つまりカードの各放送局の有効期限を書き換えて、設定限界の2038年に有効期限を伸ばしてあげると、あらゆる放送局のデジタル放送を受信できるようになってしまいます。これがいわゆる2038年化です。

当時市販されていたBLACKCASは、大量に流通していたB-CASカードに対して有効期限を設定する書き換えを行ったものでした。

しかしもちろんすぐ問題になり、B-CASカード書き換えや解析していたサイトは警察かどこかに怒られたのかその手の情報を一斉削除。その後、書き換えたB-CASカードを販売していた人が何人も逮捕される事態となりました。

今回の事件

それから何年かして。

B-CASカードの動作を解析し、B-CASカードの動作をエミュレートするソフトが誕生しました。SoftCASといいます。ソースコード付きだったようで、すぐ公開が停止されたみたいですが、一度公開されたが最後、大量にコピーされて未だにネットの海をさまよっています。

検索した情報をまとめると、SoftCASは以下のとおりです。

  • B-CASカードをエミュレートするソフトで、このソフトを使うとB-CASカードが不要になる。
  • 有料放送を含めたあらゆる放送局のKW(ワークキー)を持っている

どう考えてもアウトです(笑)

さて、その後FreeCASというソフトが開発されました。これが今回の事件で捕まった人が作成したソフトのようです。このFreeCASとは一体何なのか?

  • B-CASカードをエミュレートするソフトで、このソフトを使うとB-CASカードが不要になる。
  • 無料放送のKW(ワークキー)を持っている。
  • 有料放送のKWを別途入力すると、有料放送を受信できるようになる。

つまり、SoftCASよりも性能が悪いわけです。なんでこんな意味のないことをしているのかと言う疑問には、作者の物と思われる次のテキストが答えてくれます。

FreeCASは無料の地上波しか見てない人向けというわけではないですが「有料放送部分のキーを含まなければ提訴の理由となる具体的な損害は発生し得ず、事実上訴訟リスクを回避できる」という発想のSoftCAS

法律に違反するか?

最初のYahooの記事だと「正規の受信プログラムを作っただけ」にしか読めなかったのですが、よくよく調べてみるとB-CASカードのエミュレーターだということが分かりました。

不正競争防止法違反ということですが、

デジタルコンテンツのコピー管理技術やアクセス管理技術を無効にすることを目的とする機器やプログラムを提供する行為を、営業上技術的制限手段を用いている者に損害を加える目的で行った者

が刑事罰の対象になるようです。

有料放送を受信しようがしまいが、B-CASカードのエミュレーター(技術的保護の回避装置)という時点でアウトなのかと思ったのですが、きちんと法律を読むと営業上技術的制限手段を用いている者に損害を加える目的が刑事罰の必須条件です*1ので、有料放送のKWを含まないFreeCASは法律的に難しい判断になるような気もします。

別角度から無料放送をB-CASなしで見られることによる損害を立証するのもまた難しそうですし。法律家の判断を聞いてみたいですね。

法律、ちなみに

ちなみに、法律には「装置(当該装置を組み込んだ機器及び当該装置の部品一式であって容易に組み立てることができるものを含む。)若しくは当該機能を有するプログラム(当該プログラムが他のプログラムと組み合わされたものを含む。)」ともありますので、プログラムを分割したり、キット化して組み立てる装置とかにしてもアウトみたいですね。

*1 : 例えば、HDMIの暗号化をたまたま解いてしまうHDMIスプリッタが普通にAmazonで売られているのも、目的がHDMIの暗号化を解くことではないということだと思われます。

まとめ

  • B-CASカードは完全にクラックされてる(笑)
  • 地デジ(無料放送)の暗号化なんてやるからこんなことになる。*2

こういう正規の利用者ばっかり損するシステム止めませんかね。例えばHDDレコーダーで録画したデータを、モバイル機器やPCで再生するのすら一苦労なのに*3、不正規の利用者によって放送データを抜いてネット上で山ほど公開されている矛盾。

*2 : 大量にB-CASカードが世の中に出回る → 出回った数だけクラックされる機会が増える

*3 : 本当に本当に不便極まりない。

2016/02/10(水)銀行のRSAワンタイムキーを分解

よくあるやつです。電池切れのがありますので分解してみました。

jnb-rsa01.jpg

接着されてるかなと思ったのですが、意外や両面テープでした(液晶のまわりのみ)。それでも十分外しにくかったですけど……。

jnb-rsa02.jpg

表面。ほとんど液晶。半透明の樹脂で全体が固められていて容易に分解できないようになっています。これ以上の分解は諦めました。分解するとチップかどこか壊れるように仕組んでありそうですね。

jnb-rsa03.jpg

裏面をみると端子が生えていて、ここからシリアルナンバーなどを焼きこむ仕組みだと推測されます。

固めてある分だけ、思ったよりもコストかかってそうですね。

2016/02/07(日)抵抗ノイズを測定したかった

抵抗のパラメーターを「抵抗値」と「消費ワット数」しかないと思ってる人が多そうなので、昔からの課題にしている「抵抗による音質の差を目で見える形にする」って方法がないかよく考えたりしてました。

それで最近組んでみたのがこんな回路。

noise_amp.jpg

音声信号を抵抗(R2,R3)に流したとき、どのような差が出てくるか約100倍に拡大して表示してみようという回路です。R10には実際には可変抵抗を使い、最後の抵抗2つで元信号との差を取って見てみようという回路でした。


しかし実際に測定してみると、差が小さすぎてぜんぜん拉致があきません(汗)。仕方ないので以前製作した差動プリアンプを使ってさらに100倍に増幅して観測。ようやくオシロスコープ表示できるように。

でもゲイン誤差やオペアンプによる歪のほうが大きいのか、カーボン抵抗とLGMFS(音質の良い金皮)で比べても観測できる誤差はありませんでした。

ゲインを変更 2016/02/09

測定したい抵抗で101分の1(1K/10)に落としてからオペアンプで101倍して、反転した信号と抵抗+半固定抵抗で合成して差を作り、それを更に100倍する回路に変更しました。

noise-amp.jpg

うまく行ったわけではないので回路図は省略します(苦笑)

ここに100Hzのsin波を入れてやります。

NA-sin100.png

これを半固定抵抗で調整してゲイン誤差を最小にします。

NA-sin2.png

これで測定準備完了。試しにホワイトノイズを再生してみます。

NA-white.png

実際に測定してみる

高周波ノイズが多すぎて大変なので、オシロスコープで2.9kHzフィルタをかけた状態で測定しました。

曲冒頭(秋月カーボン)

test1-r1.png

曲冒頭(LGMFS)

test1-r2.png

15秒ぐらい(秋月カーボン)

test2-r1.png

15秒ぐらい(LGMFS)

test2-r2.png

画像を重ねて切り替えてみると、少し秋月のほうがノイズが多いかなと思えなくはないですが、測定方法を考えると残念ながら有意な差とはいいにくいレベルです(苦笑)

いい方法思いついたら続報書きますが、このままお蔵入りの線が濃厚です(汗)

最近の調べ物

Raspberry PiのI2Sまわりを調べてるんですが、記事にして技術情報を公開している人少ないですね。アンプ系とかでもそうですけど。実物あります、売ってます。うーん、そりゃ商売としては正しいでしょうけども……。みんなケチだな(個人の感想です)。*1

頒布物は、基本的に基板ぐらいしか価値がないと思ってるので、このブログは技術情報はむしろ積極的に公開していくスタイル。その方がいろんな反応あって面白いので!(笑)

でも最近は、そもそも泥臭いことするエンジニア減ったよなーと思う今日この頃だったりもしました。

*1 : とはいえ、中にはものすごく泥臭い情報を記述している方もいて、とても参考になってありがたい限り。

2012/08/19(日)こて先交換

メインで使うハンダごでのコテ先が崩壊してたので交換しました。

kotesaki_01.jpg

25Wハンダゴテにつけて、DIP品からSSOPまでほとんど何でもこれで付けて居るのですが、交換したらハンダ付けしやすいのはもちろん、熱伝導もよくなりました。90円しかしないならもっと早くから交換すればよかった。

ヤスリ等でこて先を削ってハンダを垂らしてコーティングって作業を定期的にやっていたのですけど、ここまでボロボロだとたかが知れてるというか……。今回は、こて先のネジ切りが崩壊してこてに固定できなくなったので買い換えましたが、今度からはもっと早く変えます(汗)

その他のハンダゴテ

DFNなどの面実装品や、SSOPなどを多量にハンダ付けする場合(キットとか)は、CXR-41PX-60RT-5Kというナナメでかつ平型のコテ先を付けて作業しています。

kote_PX-60RT-5K.jpg
kote_cxr-31.jpg

DFNはそもそも平型以外でハンダ付けするのは至難の業ですし、SSOP28などは1本1本ハンダ付けすると日が暮れてしまいますので、ハンダを流し込んで余計なハンダをコテ先の表面張力で吸い取るようにしてハンダ付けします。


もう1本はKS-40Rという一般用40Wハンダゴテです。コネクタなどの大きな部品をたくさん付けるとき*1や、部品をたくさん外すとき(特に熱が逃げやすい場所で外すとき)、熱量の大きい部品を付けるときなどに使用します。

こちらのこて先は削れて悲惨なことになってたので交換しようと思ったら、こて先を固定するネジが崩壊してネジ頭だけ取れてしまったので、今度新品を購入してきます(苦笑)

*1 : たくさんでなければ最初のハンダごてで済ませてしまう

戯言

少し前にこのブログの古い記事読み返してたらもっとくだらないことで更新してたなーと思って、ちょっとした出来事の記事です。いつの間に「技術的にまとまった内容」じゃないと更新するのはマズいかと勝手に思い込んでたんだろうか(苦笑)

OK キャンセル 確認 その他