DRM Individualization with Windows Media Player and Windows Presentation Framework

May 10, 2011
Agustin Camino

Part 2

Doing Individualization for a Windows Presentation Framework (WPF) application using the Windows Media Player (WMP) API for content that requires DRM (Digital Rights Management) can be very challenging.

Microsoft documentation http://msdn.microsoft.com/en-us/library/ms867216.aspx and examples on the internet show obsolete code examples mainly because those examples needs to use Windows Media Format 11 SDK (WMF11SDK) for example http://msdn.microsoft.com/en-us/library/dd757084, it means if I want those examples work the computer must have WMF11SDK already installed, otherwise it doesn’t works, in other words in portability terms it is not a reliable solution, I mean I should check if WMF11SDK is installed before to perform the individualization or include the installation of WMF11SDK as a prerequisite for application installation, this will all 32 Mb to the size of the installer.
I’m writing a few posts here to demonstrate what I’ve learned in the last 6 months building this for one of our clients.


I just want to start describing the process involved on the DRM individualization, so let's start.

The DRM Individualization stuff

Every time we try to play protected content I mean encrypted wma files the Windows Media Player Digital Rights Management (DRM) system fires up the Individualization, that process is pretty simple, because it is leveraged by downloading a simple file IndivBox.key from secure Microsoft server the very first time an user plays DRM encrypted file.

The information for the individualization is stored in a hidden folder, to find the folder location we only need to do the following:

1. Click Start, Click Run and then type regedit in the Open box
2. Expand the HKEY_LOCAL_MACHINE\Software\Microsoft\DRM key
3. In the pane on the right, double-click DataPath


    So we can check the file IndivBox.key and the files related to the license storage, it’s pretty important to know this folder location, just to check if the individualization has been done properly.




    We have diferent ways to fires up the individualization, the first one was described above, put differently just to play an encrypted wma file.

    Other common way to fires up the individualization is to use a Microsoft web Page, so I'm going to list a couple of them without flaws:

    http://drmlicense.one.microsoft.com/Indivsite/en/indivit.asp
    http://drmlicense.one.microsoft.com/crlupdate/en/crlupdate.html

    These web pages look like this one, by the way is very important to mention the listed links only works on Internet Explorer.