Condividi tramite


Sviluppo di un packager PlayReady

Prima di iniziare a incorporare PlayReady nel packager per proteggere il contenuto, è necessario esaminare diverse considerazioni. Si noti che lo sviluppo di un packager che consente la protezione PlayReady per il contenuto che desideri crittografare:

  • Non richiede un contratto di licenza da Microsoft.
  • Non sono previsti costi a Microsoft associati all'inserimento di PlayReady nei contenuti.
  • Non sono previsti pagamenti di royalty a Microsoft applicabili a codificatori o pacchetti PlayReady.

Pertanto, non è necessario allocare tempo o budget per questi elementi.

Annotazioni

Alcuni partner Microsoft PlayReady possono sviluppare un packager PlayReady per la tua azienda se non vuoi svilupparlo manualmente.

Panoramica dello sviluppo

Il tempo di sviluppo per l'incorporazione della funzionalità PlayReady nel packager dipende dallo sviluppo e dal test dei componenti seguenti:

  • Generatore di chiavi: genera il valore della chiave usato per crittografare il contenuto (insieme al keyID associato). Se si utilizza il meccanismo KeySeed, questo generatore deve implementare la funzione come definito nella specifica PlayReady Key Seed.

  • Generatore di intestazioni PlayReady: genera l'oggetto PlayReady (inclusa l'intestazione PlayReady e/o un archivio licenze incorporato). Questa intestazione PlayReady include l'KeyID o l'elenco di KeyID, l'URL predefinito del server licenze PlayReady e qualsiasi valore personalizzato richiesto per il contenuto protetto. La funzione deve rispettare i requisiti delineati nella specificazione dell'intestazione PlayReady.

  • Packager: crea un pacchetto del contenuto usando il valore della chiave fornito dal generatore di chiavi e l'oggetto PlayReady creato dal generatore di intestazioni PlayReady.

  • Sistema di gestione delle chiavi: archivia il valore della chiave e il relativo KeyId associato (non obbligatorio se si usa il meccanismo KeySeed).

Sviluppo di un packager PlayReady

Se si è deciso di sviluppare un packager PlayReady personalizzato, sarà necessario decidere come si vuole che il packager funzioni, in base alla modalità di archiviazione e distribuzione del contenuto. L'elenco seguente fornisce i passaggi necessari per aggiungere la funzionalità PlayReady al pacchetto.

  1. Scegliere il formato di crittografia. Diversi tipi di crittografia vengono usati per proteggere il contenuto. I sistemi Microsoft PlayReady usano l'algoritmo a chiave simmetrica Advanced Encryption Standard (AES). A partire dalla versione 4.0, i sistemi PlayReady supportano chiavi AES 128 in modalità CBC (Cipher Block Chaining) e CTR (Counter Mode), come definito nello standard ISO/IEC 23001-7. I meccanismi di crittografia usati per proteggere il contenuto vengono incapsulati in un contenitore, in modo che i file possano essere esplorati e decrittografati in modo efficiente in un'ampia gamma di piattaforme.

    Qualsiasi formato di crittografia che usa chiavi AES-128 usate in modalità CTR o CBC è consentito dalle regole di conformità per i prodotti PlayReady. Per altre informazioni, vedere Modalità di crittografia del contenuto PlayReady.

  2. Scegliere come crittografare il contenuto. Per altre informazioni, vedere Uso delle chiavi di crittografia.

  3. Scegliere se si vuole decrittografare il contenuto usando solo PlayReady o se si desidera supportare più drms. Per altre informazioni, vedere Uso degli strumenti di crittografia.

  4. Scegli come intendi generare e archiviare le chiavi di contenuto (Valore chiave e ID chiave).

    Il packager deve includere un tipo di generatore di chiavi che crea il valore della chiave usato per crittografare e decrittografare il contenuto. Il generatore di chiavi deve associare un ID chiave al valore della chiave. Il valore chiave rimane un segreto e l'ID chiave è pubblico e viene inserito nell'intestazione PlayReady nel contenuto. Se il packager non include un generatore di chiavi, è necessario svilupparne uno o crearne uno separatamente.

    Sarà necessario sviluppare un sistema di gestione delle chiavi per archiviare più valori chiave e i relativi ID chiave associati o una licenza di terze parti. Il sistema di gestione delle chiavi può essere un database o qualsiasi altro tipo di sistema di archiviazione, ma deve essere sicuro per impedire a chiunque di accedere ai valori della chiave senza autorizzazione. Microsoft non fornisce un sistema di gestione delle chiavi con PlayReady. In alternativa, è possibile usare il meccanismo KeySeed fornito con PlayReady al posto del sistema di gestione delle chiavi (il meccanismo KeySeed deve essere incorporato nel packager e nel server PlayReady che fornisce le licenze per decrittografare il contenuto).

  5. Scegli come inserire un oggetto PlayReady (inclusa l'intestazione PlayReady e/o l'archivio licenze incorporato) nel contenuto crittografato. Per altre informazioni, vedere Come generare un'intestazione PlayReady.

  6. Scegliere come fornire i valori di chiave e gli ID chiave a un server PlayReady, che distribuirà quindi i valori della chiave ai client PlayReady.

    È possibile sviluppare il proprio server licenze PlayReady (richiede una licenza da PlayReady, ma non vengono raccolte commissioni o royalties da Microsoft per lo sviluppo o l'uso di un server PlayReady) oppure è possibile usare un server PlayReady fornito o gestito da terze parti. Se si sviluppa un server PlayReady o il server PlayReady viene fornito o gestito da terze parti, è necessario essere in grado di comunicare i valori della chiave e gli ID chiave al server in modo tempestivo per consentire al client di riprodurre il contenuto in modo efficiente.

  7. Scegliere il modo in cui i client contattano il server licenze PlayReady per acquisire le chiavi di crittografia del contenuto. Le app client devono essere a conoscenza dell'URL del server licenze PlayReady (noto anche come URL acquisizione licenze o URL LA) quando devono acquisire una licenza. Le app client possono essere programmate per impostare il valore hardcoded dell'URL LA o recuperarlo in modo dinamico dal server. Se l'app client non dispone di questo valore LA URL, userà il valore LA URL trovato nell'intestazione PlayReady del contenuto, che è l'URL LA predefinito. Anche se non è obbligatorio, è molto comune che i servizi includano un valore predefinito di URL LA nell'intestazione PlayReady del contenuto in fase di creazione del pacchetto.

Vedere anche

Contenuto del test PlayReady