Microsoft DRM digital copyright protection development entry (figure)
This article is a direct translation of Microsoft DRM 7.0 SDK official help documents. Due to the rush of time, mistakes and omissions are inevitable. I only hope to save some time for your development. You can use Microsoft's Windows Media copyright management 7.0 Development Kit programming to manage encrypted content and Copyright licenses. Describes the procedure.
Displays interactions between content packaging programs, copyrighted distribution programs, Windows Media licensing services, and users requesting a specific unauthenticated Windows Media File. The items listed below correspond to the step numbers shown in the figure:
The content package uses a license key seed and a key identifier to generate a key. The license key seed is the secret shared between the content package program and the License book distributor. It is a random value not less than 5 bytes long. The key ID is a globally unique identifier.
The content package uses a key to encrypt the content, and places the key ID and Internet address used for copyright license distribution into the content header. The content package program then packs the Content Header and encrypted content together into a Windows Media File.
The content package program passes the Windows Media File to the user.
The user's player requests the Windows Media copyright management server to determine whether the requested Windows Media file can be played.
The Windows Media copyright management server searches for the copyright library to obtain a legal copyright license for the playback content.
If the Windows Media copyright management server fails to search for the required copyright license, it will apply for a copyright license from the copyright license distributor. Challenge is used to request Copyright licenses contained in the Content Header and information related to the user's computer.
The license distributor uses the shared copyright license key and Key Identifier to generate the same key as the one generated by the content package in step 1. Then the copyright permit distributor encrypts the key.
The copyright license distributor generates a copyright license, adds the encrypted content key to the copyright license, and then adds a certificate obtained from the Windows Media License Service, then, use the public key in the certificate to sign the copyright license.
The license distributor transfers the signed copyright license to the Windows Media copyright manager on the client's computer.
The Windows Media copyright manager verifies the signature and places the license in the license library.
The Windows Media copyright manager decrypts and sends the requested multimedia content package to the player.
The following figure shows the objects you must use to package windows media files. To package the content into a Windows Media File that can respond to user requests, you must create a header containing version 7, Version 1, and encrypted content.
When a client sends a playback request, you must create a file header containing the following items. Databases are used to store these projects.
Project |
Description |
Obtain the authorized network link |
Links used by websites to issue licenses |
Versions |
This is an optional parameter, indicating that the client version is required to play the content on the client's computer. |
Content ID |
Optional string, used to uniquely identify the content. We strongly recommend that you include content IDs. |
Key ID |
A string used by both the content package and license issuing program to generate a key |
Attribute |
An optional group of naming values can be used to identify the content owner, author's name, and content type. Attribute is strongly recommended. |
The following items are not included in the header.
Project |
Description |
Key |
Value used to encrypt the content |
License key Seed |
Secrets shared between the content package and the licensed distributor. The seed and key ID are used to generate the key. |
Private signature key |
The private signature key is used by the content package program to sign the header. |
Public signature key |
The Public Key is generated by the content package and handed over to the license distributor for header verification. |
You can use the wmrmkeys object to create keys, key identifiers, license keys, content identifiers, private signature keys, and public signature keys. You must use the wmrmheader object to obtain the required items and create and sign a content header. Signature is required. |
You must use the wmrmprotect object to encrypt the original content and package it together with the headers of version 1 and version 7. |
Displays the objects that need to be used to create and distribute licenses.
To obtain a license, the client's computer player sends a question instruction to the license issuing program. A question consists of Version 7 Content headers, user computer information, request behavior lists, and an optional version 1 question. These items must be obtained using the wmrmchallenge object.
In the current Windows Media copyright management version, only the permission to play encrypted content is contained in the question request behavior list. The content package can specify additional copyrights through the wmrmrights object. If the content package and the copyright license distribution program do not belong to the same person or organization, the license issuance program must tell the content package program what permissions to grant along with the certificate.
To create a license, the license issuer needs to request a certificate from the Windows Media license server. The certificate contains a public key that must be used by the license issuer to sign the license.
After obtaining the question and specifying the permission, you must use the wmrmlicgen object to create and sign a license. The license contains the key used to encrypt the content, specific permissions, information of the Client Computer, optional attributes, optional priority numbers, and certificates of the license issuing program.
You must use the wmrmresponse object to create a response string for the permission sent to the client Windows Media copyright manager.
The Windows Media copyright management SDK supports the scripting language. It supports the following objects.
Object |
Description |
Wmrmchallenge object |
Process license requests |
Iwmrmcoding Interface |
Convert text and binary strings |
Wmrmheader object |
Manage content Headers |
Wmrmkeys object |
Manage encryption keys and license key Seeds |
Wmrmlicgen object |
Create a license |
Wmrmprotect object |
Encrypted File |
Wmrmresponse |
Submit the license to the client |
Wmrmrights object |
Permission to use encrypted content |
Licensegenerator object |
Create version 1 license |
Rmgetlicense object |
Allow clients to obtain permission |