In the following article we will see the high level call flow of Media DRM.
Please note that the implementation might vary depending upon the DRM system which you are using.
Initialization:
The flow starts with initialization part where the media player or program sets up the relevant configurations, including the kind of DRM and the URL of the license server, and initializes the DRM library.
Secure key establishment:
To get the DRM related keys from network, a secure channel must before that.
- Using secure HTTPS, the media player or application creates a secure communication channel with the license server.
- The media player or program gets the encrypted content and decrypts it using the keys provided by the license server.
Request for a license to play the content:
Before playing the content the device should verify itself as an authorized one i.e. it will be made sure that the device is not tampered and a valid one to play the content.
- The media player or application submits a request to the license server. The request contains details about the device and the user, including the ID for the content.
Licensing validation:
If the license request is legitimate, the license server verifies it and provides back a license. The license outlines the user’s rights and the guidelines for using the content.
Media player or application license storage:
After fetching the license from the server, it will stored in a secure file for later use.
- This license file contains the crucial info such as decryption keys and etc..
Playback:
To decrypt the content and play it again, the media player or program uses the decryption keys from the license.
Renew or refresh license:
To make sure the user still has access rights to the content, the media player or application may periodically check and update the license with the license server.
Revocation:
In the case that the license is revoked by the user or the license server, the media player or application must detect and handle the situation.