Protección de archivos con DRM versión 7 o posterior
[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Para proteger los archivos con la versión 7 o posterior de DRM de Windows Media, use el método IWMDRMWriter::SetDRMAttribute del objeto de escritura para establecer atributos DRM. Dado que drm versión 7 y versiones posteriores habilitan licencias únicas para cada archivo protegido o conjunto de archivos, la interfaz IWMDRMWriter también tiene métodos para crear claves. Estos métodos solo se proporcionan para mayor comodidad.
Para proteger los archivos ASF mediante DRM versión 7 o posterior, realice los pasos siguientes:
Vínculo a WMStubDRM.lib y, si es necesario, desvincule wmvcore.lib.
Llame a la función WMCreateWriter para crear el sistema de escritura DRM. El primer argumento está reservado y debe establecerse en NULL.
Establezca un perfil para que el escritor lo use llamando a IWMWriter::SetProfile o IWMWriter::SetProfileByID. Debe establecer un perfil en el escritor antes de establecer los atributos DRM. DRM solo se admite para perfiles que usan los códecs de audio de Windows Media o Vídeo de Windows Media
Obtenga la interfaz IWMDRMWriter del objeto de escritura.
Llame a IWMDRMWriter::SetDRMAttribute y establezca Use_Advanced_DRM enTRUE.
Si necesita generar una nueva inicialización de clave, llame a IWMDRMWriter::GenerateKeySeed. En la mayoría de los casos, reutilizará una inicialización de clave que se generó anteriormente. Este valor debe permanecer secreto; no está escrito en el archivo.
Llame a IWMDRMWriter::GenerateKeyID para crear un identificador de clave, que es el segundo valor que se usa para crear la clave real. A diferencia de la inicialización de clave, el identificador de clave es público y se escribe en el archivo en el encabezado DRM sin cifrar. Cree un nuevo identificador de clave para cada archivo que cree.
Llame a IWMDRMWriter::GenerateSigningKeyPair si es necesario para generar una clave pública y privada que se usará para firmar el objeto de encabezado ASF de DRM avanzado. Para obtener más información sobre estas claves, vea IWMDRMWriter::GenerateSigningKeyPair.
Si es necesario, obtenga los valores para rellenar el objeto de firma digital del encabezado DRM. Si no tiene instalada una versión funcional de Windows Media Rights Manager en el sistema, debe configurar el objeto de firma digital del encabezado de archivo ASF especificando los cuatro atributos siguientes, que todos deben obtenerse de Microsoft:
Si tiene Instalado Windows Media Rights Manager, no es necesario establecer estos atributos en la aplicación. El componente DRM recuperará estos atributos y los usará para firmar el encabezado automáticamente. Si tiene una versión activada de Windows Media Rights Manager en otro equipo y desea reutilizar esos valores de objeto de firma digital, puede encontrarlos en el Registro. El certificado del servidor de licencias se almacena en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert1 y el certificado raíz se almacena en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert2. Al proteger archivos con DRM versión 7, debe usar los valores de estas claves del Registro. Para la propiedad DRM_LASignaturePrivKey, use GenerateSigningKeysEx (a través del SDK de Windows Media Rights Manager) o vuelva a usar el valor instalado por Windows Media Rights Manager en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server:Info_Cert0. Para la propiedad DRM_LASignatureCert , use GenerateSigningKeysEx (a través del SDK de Windows Media Rights Manager) o bien el valor instalado por Windows Media Rights Manager en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WM Rights Manager\License Server\Certs:cert0.
Llame a IWMDRMWriter::SetDRMAttribute tantas veces como sea necesario para configurar el objeto writer, que establecerá los atributos de encabezado DRM necesarios según sea necesario. Estas propiedades persisten durante la vigencia del objeto writer o hasta que se restablecen con un nuevo valor. No es necesario restablecer para cada archivo nuevo que cree.
El objeto writer requiere las siguientes propiedades:
Las siguientes propiedades son opcionales:
Además, puede especificar atributos de archivo DRM definidos por el usuario directamente mediante el atributo base DRM_DRMHeader . Puede agregar cualquier atributo adicional que desee, como "DRMHeader.RequireSAP", por ejemplo, como una forma de comunicar información adicional que usará el servidor de licencias para crear la licencia. El servidor de licencias debe tener en cuenta con antelación las propiedades adicionales que agregue. No hay ninguna manera de detectar propiedades desconocidas mediante programación.
Escriba el archivo mediante los métodos de interfaz IWMWriter tal y como se describe en otra parte de esta documentación. Para crear una secuencia drm en directo, basta con escribir en un receptor de red. También puede escribir en un receptor de inserción.
Si es necesario, cree una licencia para el archivo mediante Windows Media Rights Manager. Esta tarea también se puede realizar mediante un servidor de licencias de terceros. En escenarios de DRM en directo, los usuarios finales tendrán que obtener una licencia antes de que comience la secuencia o, de lo contrario, en el momento en que intenten conectarse a ella por primera vez.
Nota DRM no es compatible con la versión basada en x64 de este SDK.
Temas relacionados