PlayReady Secure Stop
PlayReady バージョン 3.0 で導入された PlayReady Secure Stop は、PlayReady デバイスが、特定のコンテンツに対してメディア再生が停止したメディア ストリーミング サービスに自信を持ってアサートするための手段を提供する機能です。 この機能により、メディア ストリーミング サービスは、特定のアカウントのさまざまなデバイスに対する使用制限を正しく適用し報告することができるようになります。
Secure Stop の概要
メディアの再生が停止したとき、またはユーザーがメディア プレゼンテーションを途中で停止したために、Secure Stop イベントがクライアントによって Secure Stop Server に報告されます。 Secure Stop イベントが報告され、Secure Stop イベントが記録された時点で、PlayReady クライアントはコンテンツ キーがメモリから消去されることを確認します。 セキュア ストップは、前のセッションが予期せず終了したときにも報告されます (たとえば、システムまたはアプリケーションのクラッシュが原因)。
Note
Secure Stop は、非永続的なライセンスにのみ適用されます。
セキュア ストップ チャレンジを送信する主なシナリオは 2 つあります。
- メディア再生が最後に停止したとき、またはユーザーがメディア プレゼンテーションを途中で停止したため。
- (システムまたはアプリのクラッシュなどにより) 前回のセッションが予期せずに終了した場合。 アプリは、起動時またはシャットダウン時に、未処理の Secure Stop セッションに対してクエリを実行し、他のメディア再生とは別にチャレンジを送信する必要があります。
UWP アプリでのセキュア ストップの詳細については、PlayReady DRM に関する記事の「セキュリティで保護された停止の追加」セクションを参照してください。
セキュア ストップ 2
PlayReady バージョン 4.2 以降、 PlayReady Secure Stop 2 は、セキュリティ レベル 3000 の信頼された実行環境 (TEE) でクライアントにセキュア ストップ機能を適用することで、より多くのセキュリティを提供します。
サービスでは、SecureStop 機能を使用して、同じユーザー アカウントに属する複数のクライアント間で再生を強制できます。 そのユーザー アカウント内の特定のクライアントの構成に応じて、サービスはクライアントから若干異なるメッセージを受信します。
次の表に、さまざまなクライアント セキュリティ レベルと Secure Stop バージョンのサーバー アプリ ロジックを示します。
クライアントのバージョン | SecureStop サーバー ロジック | 保全性 |
---|---|---|
PlayReady バージョン 2.0 以降 SL2000 |
サーバーは、クライアントから SecureStop メッセージを受信しません。 これを行うには、アプリ ロジックを使用します。 | 低 |
PlayReady バージョン 3.0 以降 SL3000 (例: Windows 10 アプリ) |
サーバーは、クライアントから SecureStop1 メッセージを受信します。 攻撃に対するこのメッセージの堅牢性は、単純なアプリ ロジックよりも高くなります。 |
Medium |
PlayReady バージョン 4.2 以降 SL3000 |
サーバーは、クライアントから SecureStop2 メッセージを受信します。 このクライアントからの悪意のある SecureStop2 メッセージでは、クライアントの信頼された実行環境 (TEE) で攻撃が必要になります。 攻撃に対するこのメッセージの堅牢性は SecureStop1 よりも高くなります。 |
高 |
Secure Stop 2 機能を利用するには、サーバー アプリケーションで次のように機能を有効にする必要があります。
- Secure Stop でライセンスを発行するときに、MediaLicense クラスの SecureStop2AESKey プロパティを設定します。 (これは、クライアントが Secure Stop 2 をサポートしているかどうかに関係なく実行できます)。
- ISecureStop2Handler インターフェイス (他のハンドラーと同様) を実装するクラスを作成します。これにより、特定の KID に対して、その KID で MediaLicense で SecureStop2AESKey プロパティを設定するときに使用されたのと同じキーが返されます。
- GetSecureStopData を呼び出した後、SecureStopDataChallenge クラスの SecureStop2VerifiedSession プロパティに対してクエリを実行します。 Guid.Empty に設定されている場合、クライアントは SecureStop1 メッセージを送信しました。 他の Guid に設定されている場合、クライアントは SecureStop2 メッセージを送信しました。 返される Guid は、SecureStop2 チャレンジ内の単一セッションのセッション ID です。これは、悪意のない (クライアントの信頼された実行環境 (TEE) が正常に攻撃されなかったと仮定して) 確認できます。