Article
Getting Started with XML Security
Digital Rights Management: eXtensible rights Markup Language (XrML) 2.0
Purpose and Benefits
Digital Rights Management (DRM) refers to controlling the use of content to conform to license policies, such as allowing single use, repeated use, no sharing with others and so on. Uses of DRM include control over movies, books, software and other electronic media. The general mechanism is to include usage rules with the content and then to enforce these rules in the applications that allow use of the content. This control mechanism is designed to be effective regardless of who is using the content, dynamically adjusting to the user. As a result, controls remain in place for copies and also adjust for content that is moved in a workflow among multiple users.
Digital rights management technology is an emerging technology. Use of a common language for rules would not only enable interoperability among "viewers" but also allow content to be passed through a workflow with multiple participants and applications. An emerging XML language for digital rights management is XrML 2.0, the extensible rights Markup Language [ XrML ]. This language is based on the Xerox PARC's Digital Property Rights Language (DPRL), first introduced in 1996 and converted from LISP to XML in 1999 and championed by ContentGuard.
Features
XrML defines a framework and language for expressing rights, a definition of terms (a common set of meanings), and a set of processing rules.
Key Concepts
Core concepts defined in XrML include the following:
Principal
A unique authenticated individual. Any authentication mechanism specified in the XrML principal definition may be used. One mechanism is to authenticate by demonstrating possession of a private key, by creating an XML Digital Signature.
License
Collection of grants giving certain rights to specified resources to certain principals under certain conditions as well as license issuer information.
Grant
A right issued to a principal against a resource under specified conditions
Right
An action a principal may perform against some resource under certain conditions. XrML defines actions, including read, write, delete, modify, install, play, transfer, and others.
Resource
An object that can be granted a right. Examples include digital works such as movies, books, images, audio as well as services such as email and transactions or other information (such as a name).
Condition
A condition is the terms and obligations that must be met to execute a grant against a resource. One condition may require other conditions as prerequisites. Example conditions include time, time period, use counters and viewer information
XrML uses XML Schema to define types and to provide for extensibility. XrML uses XML Namespaces to avoid name conflicts. XrML also uses XML Digital Signature to create signed licenses.
Examples
Here is an example from the XrML use cases document where the consumer pays $5.99 to play an eBook for one year and print up to 5 copies. In this example, detailed conditions are stored in a Web Services directory (UDDI) and referred to by a unique identifier(UUID):
<license xmlns:dsig='http://www.w3.org/2000/09/xmldsig#'>
<inventory>
<!-- PRINCIPAL specified by public key here -->
<keyHolder licensePartId="issuedToParty">
<info>
<dsig:KeyValue> specify public key </dsig:KeyValue>
</info>
</keyHolder>
<!-- RESOURCE specified by URI -->
<cx:digitalWork licensePartId="eBook">
<cx:locator>
<nonSecureIndirect
URI="http://www.contentguard.com/sampleBook.spd" />
</cx:locator>
</cx:digitalWork>
</inventory>
<!-- collection of GRANTs including general conditions on all -->
<grantGroup>
<keyHolder licensePartIdRef="issuedToParty" />
<sx:fee>
information about the fee, including type, amount,
currency, etc</sx:fee>
<grant>
<!-- RIGHT to play, for the validity interval
of 1 year (CONDITION) -->
<cx:play />
<cx:digitalWork licensePartIdRef="eBook" />
<sx:validityIntervalFloating>
validity interval, possibly unique identifier
</sx:validityIntervalFloating>
</grant>
<!-- RIGHT to print, for 5 times (CONDITION) -->
<grant>
<cx:print />
<cx:digitalWork licensePartIdRef="eBook" />
<sx:exerciseLimit>
Define use limit, possibly unique identifier
</sx:exerciseLimit>
</grant>
</grantGroup>
<issuer>
<dsig:Signature>
XML Digital Signature of issuer of license
</dsig:Signature>
<!-- issue time could be XML property within signature
but handled as part of <issuer> here -->
<details>
<timeOfIssue>2001-11-15T04:03:02</timeOfIssue>
</details>
</issuer>
</license>
Example 19 - XrML Digital Rights Definition