とぷすけの書斎

障子を開けてみよ、外は広いぞ。

widevineとはどんな技術か

さて、今回のテーマはWidevineについてである。

サブスクリプションを契約し配信で映画を見るのが当たり前となった昨今でなくてはならない技術、それが「Widevine(ワイドバイン)」である。

Widevineのロゴ

この技術はNetflixなど著作権で保護された動画を再生するサービスで使われている。

さて、今回はこの技術の解説をしようと思う。

なぜ保護が必要なのか

まず、配信サイトで見るのになぜこのような技術がいるのかという話から入ろう。

前までは映画を見るのは映画館でしか見れなかった。その後、アナログテレビやVHSなどが開発され、家でも映像を楽しむことができるようになった。

その後、テレビのデジタル化によりより高画質で映像を楽しむことができるようになった。しかし、それによりコピーガードの重要性は高まることとなった。

テレビにはダビング10やコピーワンスによってコピー回数を制限しているし、HDMIなどにもHDCPと呼ばれる保護システムがある。(これらに関しても今度記事を書くかもしれない)

なお、これらは総じてDRM(デジタル著作権管理)と呼ばれることもある。

さて、スマホの進化により手のひらサイズの端末で映画を見れるようになった。そして、これらの端末で再生する時に保護する技術が必要であった。

その技術が今回の話のテーマである、Widevineである。

どんなサービスで使われているか

Widevine公式サイトより引用 これらは一例である

上記の画像を見てもらったらわかると思うが非常に多くのサービスで使用されている。

各種配信プラットフォームに加え、SamsungやNvidia、Playstationなどのデバイスを製造している企業においてもWidevineを使用していると記載されている。

これは次章で説明するが、Widevineがデバイスと紐づいた技術であるからである。

ちなみにここにiPhoneなどがない理由はAppleは独自の技術(FairPlay)を使用しているからである。

どのようにして保護するのか

Widevineは3つのレベルを決めている。L1,L2,L3という段階が存在し、数字が低い方が保護システムが強固で、より高画質の動画を見ることができる。

それぞれについて技術的な解説も含めて詳しく話そう。

最も強固で高画質なL1

L1は最も高画質で動画を見ることができる。これはハードウェアの専用領域(TEE)で処理するためである。

意外とこのような領域を設計している端末が多く、他の使用例であればiPhoneの顔認証や指紋認証にも専用領域を使うことで生体情報の抜き取りを防いでいる(実際、アプリ側では認証が成功したか失敗したかのみ知ることができ、生体情報にはアクセスできない。)

FaceIDのロゴ
さらに詳細な技術的解説

まず、WidevineはCPUがメインOSですらアクセス不能なレベルの暗号化された領域である、(Trusted Execution Environment:TEE)に対応しているかを確認し、その領域内でコンテンツの復号化および処理ができることを確認する。
そして実際に映像を再生する際はTEE内部で全て処理されるのでキャプチャなどで映像を抜き取ることができないようになっている
TEEは複数の企業が技術的実装をしている
(例:Arm:TrustZone,Intel:SGX/TDX,AMD:SEV-SNP)
がどれも根幹は同じでCPUの処理部分とRAMに暗号化された安全な領域を作成し、その内部で機密情報を処理する。

これらの領域で処理することでキャプチャされることを防ぎ、高画質で映像を提供できる。

なお、どれぐらいの画質で処理するかはサービスの実装で異なる。(ほとんどの場合、L1はHD以上の画質で再生できる。) 参考:netflixでHD以上の再生ができる端末一覧

補足だが、L1に対応していた端末でも脆弱性の発見などでライセンスが剥奪されることがある。

部分的な対応であるL2

L2はTEEがあるにもかかわらず、処理はTEEを使用せずにソフトウェア(もしくはTEEでないハードウェアエンコーダ)で行われる場合になる。

L2に関してほとんど目にすることはない(Widevineの実装初期に一部端末で使われた設定で、筆者も見たことない。)

最低設定だけどほとんどの端末で再生できるL3

さて、L3はほとんどの配信サイトで画質が制限されているがこれはTEEが存在せずソフトウェアで全てを処理するためである。

しかし、ほとんどの端末で再生できる(Google ChromeやFireFoxなどのブラウザ側で実装できるためである)

ちなみにnetflixのブラウザ別画質はこちらから確認することができる

もうちょい踏み込んだ解説

GoogleChromeなどのブラウザを使用した場合でもTEEが存在しOSが対応しているとL1が使える。ちなみにFirefoxはそのポリシーからプロプライエタリなプログラムを含むことができないが、拡張機能で対応している
また、MacのSafariではFairPlayを使用するが、そもそもFairPlayはネイティブ動作を使用する前提なので最高画質で再生できる。
同様にWindowsではPlayReadyを使用していて、EdgeではWidevineではなくPlayReadyによって処理されTEEの有無で画質が変わる。

タブレットを購入する際に注意

さて、対応サービスにハードウェアベンダーが含まれるのは、それらのチップやOSレベルでの実装をしなければ4Kを含む高画質で視聴できないからである。

PS5は4Kに対応していて、尚且つnetflixなどの配信においても4Kで見ることができるのはSonyがそのための実装を行なっているからである。

Amazonなどに売っている中華タブレットによくあるのだがこれらに対応していないとカスみたいな画質で見ることになる。最も、最近のタブレットは対応していることが多いし、Androidの場合はSoC(チップのこと。Snapdragonなど。)から対応していることがあるのでよほど怪しい物でもなければ引っかからないだろう。

まとめ

Widevineについて解説した。多少は噛み砕いて技術的解説を行なったが、このようなかげで動く重要な技術について興味が湧けば幸いである。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です