PlayReady Secure Delete
PlayReady バージョン 4.0 で導入された PlayReady Secure Delete は、永続的なライセンスがクライアント上のアプリによって削除されたときに、サービス プロバイダーがセキュリティで保護された確認応答を受け取る機能です。 以前は、ライセンスが削除されたとき、削除が完了したときにサービス プロバイダーに通知されませんでした。 PlayReady Secure Delete では、次の操作が可能です。
サービス プロバイダーは、特定のクライアント コンピューターで、現在格納されているライセンスと削除されたライセンスを追跡できます。 サービス プロバイダーは、特定の数の永続的なライセンスをクライアントに発行し、そのクライアントのマシン上のライセンス数を追跡できます。 セキュリティで保護された削除機能は、2017 年 9 月に定義されている暗号化されたメディア拡張機能 (EME) 仕様要件も満たします。この要件では、ライセンスの削除時にライセンス削除のレコードをサーバーに送信する必要があることを指定します。
次の図は、セキュリティで保護された削除フローを示しています。
Secure Delete が発生する前に、アプリケーションまたはクライアントはまず PlayReady コンテンツ復号化モジュール (CDM) をインスタンス化し、サーバーから永続的なライセンスを取得します (上の図の手順 1 から 7)。
次に、PlayReady は、セッション識別子 (SessionId) と 1 つ以上のキー識別子 (KID) で構成されるライセンス セッション BLOB のレコードと共に、データ ストア (HDS、ハッシュ データ Storage) にライセンスを格納します。 アプリケーションまたはクライアントは、ライセンス削除要求を開始すると、適切な API を呼び出して、データ ストアから KID に関連付けられているライセンスを削除します。 セキュリティで保護されていない削除ライセンス削除プロセス中に、PlayReady はそれ以上の操作を行わずに、データ ストアからライセンスを削除します。 Secure Delete を使用すると、PlayReady は、データ ストアから KID に関連付けられているライセンスを削除するだけでなく、SessionId と KID を含む Secure Delete チャレンジも生成します (上の図の手順 12 から 13)。
その後、アプリケーションまたはクライアントが Secure Delete チャレンジを Secure Delete Server に送信し、そのチャレンジを処理します。
Secure Delete チャレンジを処理した後、Secure Delete サーバーは、Base 64 でエンコードされた SessionId を含む暗号化されていない署名されていない Secure Delete 応答をアプリケーション (またはクライアント) に送信します。
最後に、クライアントが Secure Delete 応答を受信すると、PlayReady は、Secure Delete 応答に含まれる SessionId が、Secure Delete チャレンジの生成に使用された SessionId と一致することを検証します。 検証が成功すると、PlayReady はデータ ストアからライセンス セッションのレコードを削除します。