HTML5にはDRMフレームワーク Encrypted Media Extensions (EME)があり、DRM企業はDRMで保護されたコンテンツを復号化するコンテンツ復号化モジュール(CDM)を作成できます。ブラウザは、サンドボックスを使用してCDMを実行する必要があります。これにより、コンピュータへのアクセスを許可するセキュリティホールは、DRMにFlashが使用されたときほど危険ではありません。さらにそれはプラグインの概念であり、より多くの企業がさまざまな形式のDRM用のモジュールを提供できるようにするため、競争が可能になります。
しかし、モジュールの標準化されたAPIがあり、モジュール自体がサンドボックスで実行されている(したがって、システムを変更して自分自身を保護する機能が制限されている)場合、出力ストリームをどのように保護できますか?サイトは暗号化されたデータを送信し、それがCDMに送られ、CDMはブラウザー内の標準APIを使用してビデオを再生します。ビデオを再生するのではなく、ストリームをディスクにダンプするようにAPIにパッチを適用することで、CDMはどのように回避しますか?
たとえば、Googleが提供するWidevine CDMはffmpegにリンクしているようです。誰かがffmpegライブラリーのデコーダーに入るデータを取得し始めるとどうなりますか?次に、攻撃者はビデオストリーム(おそらく何らかのMP4形式)を保存する可能性があります。別のオプションは、デコーダーの出力を取得し、生のビデオデータを保存することです。
CDMはその出力をどのように保護しますか?
フルHDのNetflixはこのメカニズムを使用していませんが、信頼できるメディアパスに依存しているため、Windows 10(セキュアブートで起動されたと思います)、最新のIntelプロセッサー、HDCP対応モニターが必要であることを認識しています。壊れることはありません。しかし、他のほとんどのDRMビデオは、一般的なCDMの1つでEMEを使用します。
アドオン自体が出力を保護する責任を負わない場合、実際のアドオンはブラウザが出力を保護することをどのように確認しますか?
私の知る限り、Widevineのようなアドオンは、Firefoxのオープンソースビルドで実行されます(つまり、Mozillaによって提供されるバイナリに制限されません)が、DRM保護された映画の大きなリークはありません。
たとえば、パッチが適用されたブラウザでCDMを実行し、復号化されたメディアストリームを抽出できる場合は、より多くのリッピングされたNetflix映画を期待します。
その結果、CMEの出力をEME APIを使用して抽出できれば、Netflixが標準を採用することはありませんでした。
仕様を読んだところによれば、これはEncrypted Media Extensionsが処理するように設計されている問題ではありません。ユーザーエージェントがメディアへのアクセスを許可され、メディアが復号化されていることが確認されると、CDMはそのメディアを無視します。そこからメディア保護を処理するのはユーザーエージェント次第です(たとえば、前述のWindows保護されたメディアパスを使用して)。