Copyright © 2006-2011, Marlin Developer Community. All Rights Reserved.
Marlin Architecture Overview
THE MARLIN DEVELOPER COMMUNITY, INCLUDING, INTERTRUST, PANASONIC, PHILIPS,
SAMSUNG AND SONY MAKE NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED,
CONCERNING THE COMPLETENESS, ACCURACY, OR APPLICABILITY OF ANY INFORMATION
CONTAINED IN THIS DOCUMENT. THE MARLIN DEVELOPER COMMUNITY, INCLUDING,
INTERTRUST, PANASONIC, PHILIPS, SAMSUNG AND SONY DISCLAIM ALL LIABILITY OF ANY
KIND WHATSOEVER, EXPRESS OR IMPLIED, ARISING OR RESULTING FROM THE RELIANCE
OR USE BY ANY PARTY OF THIS DOCUMENT. THIS DOCUMENT IS PROVIDED TO YOU “AS IS”.
THE MARLIN DEVELOPER COMMUNITY, INCLUDING, INTERTRUST, PANASONIC, PHILIPS,
SAMSUNG AND SONY MAKE NO REPRESENTATIONS CONCERNING THE APPLICABILITY OF
ANY PATENT, COPYRIGHT OR OTHER PROPRIETARY RIGHT OF A THIRD PARTY TO THE
INFORMATION CONTAINED IN THIS DOCUMENT OR ITS USE. THE RECEIPT OR ANY USE OF
THIS DOCUMENT OR ITS CONTENTS DOES NOT IN ANY WAY CREATE BY IMPLICATION,
ESTOPPEL OR OTHERWISE, ANY LICENSE OR RIGHT TO ANY PATENT, COPYRIGHT,
TRADEMARK OR TRADE SECRET OF THE MARLIN DEVELOPER COMMUNITY, INCLUDING,
INTERTRUST, PANASONIC, PHILIPS, SAMSUNG AND SONY, WHICH ARE OR MAY BE
ASSOCIATED WITH THE IDEAS, TECHNIQUES, CONCEPTS OR EXPRESSIONS CONTAINED
HEREIN.
Copyright © 2006-2007, Marlin Developer Community. All Rights Reserved.
Table of Contents
1 Introduction ....................................................................................................................................... 3
1.1 Scope....................................................................................................................................... 3
2 Terminology and Conventions ..........................................................................................................3
2.1 Classification............................................................................................................................3
2.2 Abbreviations ...........................................................................................................................3
2.3 Terms and Definitions .............................................................................................................. 4
2.4 Conventions ............................................................................................................................. 5
3 Marlin Specifications ......................................................................................................................... 6
3.1 Incorporated Technologies ...................................................................................................... 7
3.2 Octopus DRM ..........................................................................................................................7
3.3 NEMO Framework ................................................................................................................... 7
4 Marlin Entities and Objects ...............................................................................................................8
4.1 Actors.......................................................................................................................................8
4.1.1 Users ...................................................................................................................................8
4.1.2 Service Providers.................................................................................................................8
4.1.3 Content Providers................................................................................................................ 8
4.2 Marlin Objects .......................................................................................................................... 8
4.2.1 Content Objects and License Objects ................................................................................. 9
4.2.2 Node and Link Objects ........................................................................................................9
4.2.3 A Note about “Nodes”........................................................................................................11
4.3 Targeting and Binding............................................................................................................11
4.4 Functional Components .........................................................................................................11
4.4.1 Marlin Client....................................................................................................................... 12
4.4.2 Domain Manager ...............................................................................................................12
4.4.3 Registration Service...........................................................................................................12
4.4.4 License Service ................................................................................................................. 12
5 Content Acquisition Use Cases....................................................................................................... 13
5.1 Simple Purchase or Rental ....................................................................................................13
5.2 Subscription ........................................................................................................................... 14
5.3 Subscription Renewal ............................................................................................................ 16
6 Domains ..........................................................................................................................................17
6.1 User-based Domains ............................................................................................................. 17
6.2 Marlin Common Domain Model ............................................................................................. 19
7 Portability Use Cases...................................................................................................................... 20
7.1 Simple Portability Example .................................................................................................... 20
7.2 Multi-user / Multiple Domain Portability Example...................................................................21
7.3 Sharing and Superdistribution................................................................................................ 22
7.4 Superdistribution ....................................................................................................................22
7.5 Sharing................................................................................................................................... 23
8 Alternate Delivery Scenarios........................................................................................................... 24
8.1 Mobile Delivery using OMArlin...............................................................................................24
9 Summary......................................................................................................................................... 27
10 References...................................................................................................................................... 27
Copyright © 2006-2007, Marlin Developer Community. All Rights Reserved. 3
Marlin Architecture Overview
1 Introduction
The Marlin architecture specifies technologies for building copy protection and digital rights
management (DRM) into consumer devices and services in a manner that is friendly to end users.
Marlin technology allows users to acquire content through multiple distribution channels and to access it
on any device that is part of their home domain. In order to accomplish this, Marlin defines both client
capabilities and a service architecture so that the capabilities of consumer electronics devices can be
powerfully enhanced by services provided over both local and wide-area networks.
1.1 Scope
The purpose of this document is to provide an introductory-level overview to the Marlin DRM
architecture and its application to common implementation use cases. This document is best suited to
technical implementers or developers who are beginning to read the Marlin specifications and who seek
a high-level context with which to understand the detailed specifications. Other readers who may benefit
from this document are technically-oriented business planners or project managers who wish to gain a
deeper technical understanding of how Marlin can be used to execute common business scenarios.
2 Terminology and Conventions
2.1 Classification
This document is classified as INFORMATIVE, and therefore is not intended to provide testable Marlin
requirements. If any differences or discrepancies exist between the information contained in this
document and that included in the normative Marlin specifications, the Marlin specifications shall take
precedence in all instances.
2.2 Abbreviations
DRM
Digital Rights Management
HTTP
Hypertext Transfer Protocol
MCD
Marlin Common Domain
MCS
Marlin Core System
NEMO
Networked Environment for Media Orchestration
OMA
Open Mobile Alliance
PC
Personal Computer
PVR
Portable Video Recorder
TBD
To Be Defined
URL
Uniform Resource Locator
XML
Extensible Markup Language
Copyright © 2006-2007, Marlin Developer Community. All Rights Reserved. 4
2.3 Terms and Definitions
The following table lists a number of frequently used terms and their definitions as used in this
document. When defined terms appear in the definitions of other terms, they appear capitalized.
Term
Definition
Action Token
An XML-encoded document that directs a Marlin Client to perform a sequence of
actions, such as obtaining a Node from a Registration Service or acquiring a
License from a License Service. An Action Token specifies how to get service
location information, and includes information necessary to make Marlin protocol
requests for communicating with the specified services. An Action Token is issued
by a Web Store or an e-commerce system, for example, after a User requests
purchase of a particular piece of Content.
Binding a License
to a Node
Making Content cryptographically accessible for a system entity (such as a User)
by encrypting the Content Key with either the public key or the symmetric secret
key associated with the Node representing the entity.
Content
(Marlin Content)
Digital media (such as a music or video file) encrypted with a Content Key and
packaged into a Marlin file format.
Content Key
A symmetric cryptographic key used to encrypt and decrypt an instance of
Content. The encrypted Content Key is stored in the License corresponding to the
Content.
ContentKey
object
An Octopus object that is part of a License and that includes an encrypted Content
Key.
Deregistration
A protocol used to invalidate a Link, e.g., a Link between a Personality Node
(representing a Device) and a User Node.
Device
A self-contained hardware component or software application capable of hosting a
Marlin Node with specific Marlin Roles.
Domain
A collection of Devices.
Domain Manager
A Role for managing the Registration and Deregistration of Devices with a Domain,
according to a Domain Policy.
Domain Policy
The set of rules and conditions for forming Domains, for registering and
deregistering Devices to and from Domains, and for managing relationships
between a Domain and its member Devices (Personality Nodes).
License
(License Bundle)
A set of Octopus objects that govern the use of Content and convey the conditions
necessary for allowing access to the Content Key used to encrypt the Content.
License Owner
A User who has acquired the rights to use the Content associated with a License.
License Service
A Marlin service handling the creation of Licenses.
Link
(Link Object)
An Octopus object that expresses a relationship between two Octopus Nodes.
Marlin Client
(Marlin DRM
Client)
A Marlin-compliant Device or application that is able to communicate with Marlin
services, e.g., to acquire and evaluate a License that governs access to an
instance of Content. A Marlin Client is represented by a Personality Node.
Copyright © 2006-2007, Marlin Developer Community. All Rights Reserved. 5
Term
Definition
Membership
A relationship between a Device and a Domain. A Device becomes a member of a
Domain by registering with it.
Node
(Octopus Node)
In the context of this document, a Node refers to an “Octopus Node.” An Octopus
Node is an object representing a Marlin DRM System entity . For example, a
Personality Node represents a Device, a User Node represents a User, and a
Subscription Node represents a Subscription. An Octopus Node includes a
public/private key pair or a symmetric key that can be used to bind Licenses to the
Node.
Octopus
A general-purpose DRM architecture.
Principal
A system entity whose identity can be authenticated.
Proximity
A measure of distance between Devices.
Registration
A protocol by which a Device establishes a membership relationship with a
Domain. Membership in a Domain is represented by a Link from the Personality
Node representing the Device to the Domain Node (which, currently, in Marlin
Broadband, is a User Node).
Registration
Service
A Marlin Service responsible for issuing Octopus Nodes and Links, and for
disassociating the relationship between two Nodes.
Role
A combination of client or service functions supported by a Device or by a services
implementation.
Service Provider
Entity that provides services, such as a License Service and a Registration
Service. Also a generic term used to describe the entity or organization
responsible for selling or distribution of digital media Content and associated
Licenses.
Targeting a
License to a
Node
A process by which an application running on a Device is allowed to access
Content only if the associated Marlin Client contains a valid set of Links to form a
path from the Personality Node (the Node representing the accessing Device) to
the Node(s) to which the License is targeted. A License may be targeted, for
example, to a User Node or a Subscription Node.
User
An individual or a group of people (such as a family) represented by a User Node.
Web Store
or
e-commerce
system
An entity that is the front end for all the operations that interact with the User. As a
result of such an interaction, a Marlin Client can be provisioned with an Action
Token that triggers the Marlin Client to contact a Marlin service.
Note that this entity is only used for illustration, as the same tokens could be
delivered via another mechanism without affecting the specifications.
2.4 Conventions
To be consistent with the objective as an overview, the UML sequence diagrams contained in this
document incorporate a necessary degree of abstraction. In particular, the term “Marlin Client” is used in
the sequence diagrams to refer to the combination of both the Marlin DRM Client and the host
application responsible for playback, communications, and user interaction. Where possible, a
distinction is made between steps that are included in the Marlin specifications (and are performed by