Sviluppo di un packager PlayReady
È necessario esaminare alcune considerazioni prima di iniziare a incorporare PlayReady nel pacchetto per proteggere il contenuto. Si noti che lo sviluppo di un packager che fornisce la protezione PlayReady per il contenuto da crittografare:
- Non richiede un contratto di licenza di Microsoft.
- Non sono previsti costi per Microsoft associati all'inserimento di PlayReady nel contenuto.
- Non sono previsti pagamenti di royalty a Microsoft applicabili ai codificatori o ai pacchetti PlayReady.
Pertanto, non è necessario allocare tempo o budget per questi elementi.
Nota
Alcuni partner Microsoft PlayReady possono sviluppare un packager PlayReady per la tua azienda se non vuoi svilupparlo autonomamente.
Panoramica dello sviluppo
Il tempo di sviluppo per l'incorporazione della funzionalità PlayReady nel packager dipenderà 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 usa il meccanismo KeySeed, questo generatore deve implementare la funzione come definito nella specifica Di inizializzazione della chiave PlayReady .
PlayReady Header Generator : genera l'oggetto PlayReady (inclusa l'intestazione PlayReady e/o un archivio licenze incorporato). Questa intestazione PlayReady include l'ID chiave o l'elenco di KEYID, l'URL predefinito del server licenze PlayReady e qualsiasi valore personalizzato necessario per il contenuto protetto. Questa funzione deve seguire i requisiti descritti nella specifica 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, è 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 packager.
Scegliere il formato di crittografia. Diversi tipi di crittografia vengono usati per proteggere il contenuto. Microsoft PlayReady sistemi usano l'algoritmo AES (Symmetric Key Algorithm), 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.
Scegliere come crittografare il contenuto. Per altre informazioni, vedere Uso delle chiavi di crittografia.
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.
Scegliere la modalità di generazione e archiviazione delle chiavi simmetriche (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 sviluppare o generarne 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 da 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 delle chiavi 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).
Scegliere 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.
Scegliere come fornire i valori 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. Sia che si sviluppi il proprio server PlayReady o il server PlayReady sia 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.
Scegliere come i client contattano il server licenze PlayReady per acquisire le chiavi di crittografia del contenuto. Le app client devono essere consapevoli dell'URL del server licenze PlayReady (noto anche come URL di acquisizione delle licenze o URL di acquisizione delle licenze) quando devono acquisire una licenza. Le app client possono essere programmate in modo che il valore dell'URL LA sia hardcoded o lo recuperi dinamicamente dal server. Se l'app client non ha questo valore di URL LA, userà il valore dell'URL LA trovato nell'intestazione PlayReady del contenuto, ovvero l'URL di 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.