I am lucky enough to get a chance to implement DRM for continuously two projects in CIGNEX.  One for music portal for a Singapore based Telecommunication Company and another one is for US based Paramount Pictures!!  It was a nice experience to integrate Drupal and Magento with Microsoft based features.  Let me explain you the implementation in more detail...

What is DRM and why is it used?

DRM stands for Digital Rights Management. DRM is a technology used by content providers, such as online stores, to control how the digital media files you obtain from them are used and distributed.

The purpose of DRM technologies is to control use of digital media by preventing access, copying or conversion to other formats by end users.

A file that is protected with DRM requires media usage rights to be delivered with the file. The media usage rights define how the protected file can be used. For example, a right may give you the permission to play the file on your computer (a play right), burn the file to an audio CD (a burn right), or sync the file to a portable device (a sync right).

Each right can have certain qualities, such as the following:

  • The right to play a file on your computer an unlimited number of times.
  • The right to sync a file to two portable devices five times per month.
  • The right to burn a file to an audio CD twice

How to access DRM protected content? 

To access DRM protected data, license of the particular file needs to be written on client's machine. Normally this license is stored under DRM folder on your machine. Using JavaScript we can write DRM license to client's machine.

1. Retrieve the Client Player information using an embedded ActiveX control: 

<object classid="clsid:A9FC132B-096D-460B-B7D5-1DB0FAE0C062" height="0" id="GetLicenseObj" width="0">
 <embed mayscript type="application/x-drm-v2" hidden="true">
 </object>
 
var clientInfo = GetLicenseObj.GetSystemInfo();
The GetSystemInfo method retrieves the Windows Media Rights Manager system information from the client's computer.
Parameters
This method takes no parameters.
Return Values
This method returns a String containing a string identifying the system information. If it fails, it returns a number in the error object. 


2. Using this client info retrieve license of DRM protected file:

We need to pass the ClientInfo to the web server by calling web service where DRM protected files are stored to fetch license for file.

3. Write license to machine:

GetLicenseObj.StoreLicense(licString);
The StoreLicense method will write license on client's machine for particular file.
Parameters
License that we get from web service call and needs to be written on client's machine.
Return Value
This method doesn't return any value.

Summary

In the world of e-commerce, data security is becoming more and more important. DRM is one of the ways to provide such robust security. DRM is essentially important in the business environment where the data should be locked for those who are not supposed to use it. We must leverage Open Source frameworks to implement DRM strategy.
 
Your comments would be greatly invited.
 
- Khyati Yagnik
  Consultant at CIGNEX, India Office