Protezione dei file con DRM versione 7 o successiva
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Per proteggere i file con WINDOWS Media DRM versione 7 o successiva, usare il metodo IWMDRMWriter dell'oggetto writer::SetDRMAttribute per impostare attributi DRM. Poiché la versione DRM 7 e versioni successive abilitano licenze univoche per ogni file protetto o set di file, l'interfaccia IWMDRMWriter include anche metodi per la creazione di chiavi. Questi metodi vengono forniti solo per praticità.
Per proteggere i file ASF usando DRM versione 7 o successiva, seguire questa procedura:
Collegare a WMStubDRM.lib e, se necessario, annullare il collegamento di wmvcore.lib.
Chiamare la funzione WMCreateWriter per creare il writer DRM. Il primo argomento è riservato e deve essere impostato su NULL.
Impostare un profilo per il writer da usare chiamando IWMWriter::SetProfile o IWMWriter::SetProfileByID. È necessario impostare un profilo nel writer prima di impostare eventuali attributi DRM. DRM è supportato solo per i profili che usano i codec Windows Media Audio o Windows Media Video
Ottenere l'interfaccia IWMDRMWriter dell'oggetto writer.
Chiamare IWMDRMWriter::SetDRMAttribute e impostare Use_Advanced_DRM su TRUE.
Se è necessario generare un nuovo seeding della chiave, chiamare IWMDRMWriter::GenerateKeySeed. Nella maggior parte dei casi si riuserà un seeding della chiave generato in precedenza. Questo valore deve rimanere segreto; non viene scritto nel file.
Chiamare IWMDRMWriter::GenerateKeyID per creare un ID chiave, ovvero il secondo valore usato per creare la chiave effettiva. A differenza del seeding della chiave, l'ID chiave è pubblico e viene scritto nel file nell'intestazione DRM in chiaro. Creare un nuovo ID chiave per ogni nuovo file creato.
Chiamare IWMDRMWriter::GenerateSigningKeyPair se necessario per generare una chiave pubblica e privata che verrà usata per firmare l'oggetto DRM ASF Header avanzato. Per altre informazioni su queste chiavi, vedere IWMDRMWriter::GenerateSigningKeyPair.
Se necessario, ottenere i valori per popolare l'oggetto firma digitale dell'intestazione DRM. Se non si dispone di una versione funzionante di Windows Media Rights Manager installata nel sistema, è necessario configurare l'oggetto firma digitale dell'intestazione di file ASF specificando i quattro attributi seguenti, che tutti devono essere ottenuti da Microsoft:
Se windows Media Rights Manager è installato, non è necessario impostare questi attributi nell'applicazione. Il componente DRM recupera questi attributi e li userà per firmare automaticamente l'intestazione. Se si dispone di una versione attivata di Windows Media Rights Manager in un altro computer e si desidera riutilizzare i valori dell'oggetto firma digitale, è possibile trovarli nel Registro di sistema. Il certificato del server di licenza viene archiviato in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert1 e il certificato radice viene archiviato in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert2. Quando si proteggono i file con DRM versione 7, è necessario usare i valori di queste chiavi del Registro di sistema. Per la proprietà DRM_LASignaturePrivKey, usare GenerateSigningKeysEx (tramite Windows Media Rights Manager SDK) o riutilizzare il valore installato da Windows Media Rights Manager in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server:Info_Cert0. Per la proprietà DRM_LASignatureCert , usare GenerateSigningKeysEx (tramite Windows Media Rights Manager SDK) oppure il valore installato da Windows Media Rights Manager in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert0.
Chiamare IWMDRMWriter::SetDRMAttribute quante volte necessario per configurare l'oggetto writer, che imposta gli attributi di intestazione DRM necessari in base alle esigenze. Queste proprietà vengono mantenute per la durata dell'oggetto writer o fino a quando non vengono reimpostate con un nuovo valore. Non è necessario reimpostare ogni nuovo file creato.
Le proprietà seguenti sono necessarie dall'oggetto writer:
Le proprietà seguenti sono facoltative:
È inoltre possibile specificare attributi di file DRM definiti dall'utente direttamente usando l'attributo di base DRM_DRMHeader . È possibile aggiungere qualsiasi attributo aggiuntivo desiderato, ad esempio "DRMHeader.RequireSAP", come modo per comunicare informazioni aggiuntive che verranno usate dal server di licenza nella creazione della licenza. Il server di licenza deve essere consapevole in anticipo di eventuali proprietà aggiuntive aggiunte. Non è possibile individuare proprietà sconosciute a livello di codice.
Scrivere il file usando i metodi di interfaccia IWMWriter come descritto altrove in questa documentazione. Per creare un flusso DRM live, è sufficiente scrivere in un sink di rete. È anche possibile scrivere in un sink push.
Se necessario, creare una licenza per il file usando Windows Media Rights Manager. Questa attività può essere eseguita anche da un server di licenza di terze parti. Per gli scenari DRM live, gli utenti finali dovranno ottenere una licenza prima dell'inizio del flusso oppure al momento in cui tentano di connettersi.
Nota DRM non è supportato dalla versione basata su x64 di questo SDK.
Argomenti correlati