The Digital Media Project Source GA08 Date 2005/10/07 Title Approved Document No. 7, Draft 3.0 – No. 0547/GA08 Technical Specification: Reference Software Approved Document No. 7, Draft 3.0 Technical Specification: Reference Software NOTICE Use of the technologies described in this DMP Approved Document may infringe patents, copyrights or intellectual property rights of DMP Members or non-members. Under no circumstance shall DMP be held responsible for identifying any or all such rights Neither DMP nor any of its Members accept any responsibility whatsoever arising out of or in connection with the use of this DMP Approved Document and the information contained herein for damages or liability, direct or consequential. This DMP Approved Document supersedes all previous versions and is subject to change without notice. DMP is a non profit organisation registered in accordance to the laws of Switzerland. Copyright © 2005 – The Digital Media Project Table of Contents Table of Contents ............................................................................................................................ 2 1 Introduction ............................................................................................................................. 3 2 Software policy ....................................................................................................................... 3 3 Reference Software – Tools .................................................................................................. 17 4 Reference software – Models .................................................................................................. 3 4.1 Content Creation Device ................................................................................................. 3 4.1.1 Architectural Model ................................................................................................ 3 4.1.2 Communication Analysis ........................................................................................ 4 4.2 eXternal Device ............................................................................................................... 6 4.2.1 Architectural Model ................................................................................................ 6 4.2.2 Communication Analysis ........................................................................................ 7 4.3 Content Consumption Device ......................................................................................... 6 4.3.1 Architectural Model ................................................................................................ 9 4.3.2 Communication Analysis ........................................................................................ 9 4.4 Domain Manager ........................................................................................................... 11 4.5 License Provider ............................................................................................................ 11 Annex A – The BSD License ........................................................................................................ 13 Annex B – Copyright disclaimer ................................................................................................... 15 Annex C – CVS ............................................................................................................................. 16 2 1 Introduction 2 Software policy Currently DMP considers 4 types of sources for its Technical Specifications to each of which it applies a specific reference software policy Technology or specification Technology that has been declared by the proponent to be unencumbered by IP Technology for which the proponent has declared to be possibly/definitely encumbered by IP his availability to license the IP at RAND terms Specification developed by another body with reference software. Specification developed by another body without reference software. 3 Reference software License according to Annex A License according to Annex B Existing license, if compatible with the licenses in Annex A or Annex B License of Annex A or, if this is not possible, license in Annex B Reference software – Models The Reference software should enable the implementation of the following Devices: 1. 2. 3. 4. 5. 6. 7. 8. Content Creation Device (CCD) eXternal Device (XD) Content Consumption Device (PAV) Content Consumption Device (SAV) Content Identification Device Content Provider Device License Provider Device Device Identification Device Architectural Models have been developed for 1. Content Creation Device (CCD) 2. eXternal Device (XD) 3. Content Consumption Device (PAV) 4. Content Consumption Device (SAV) For each of the three Models the document analyses which modules implementing a Tool talk to which modules and how (secure communication or not). 3.1 Content Creation Device 3.1.1 Architectural Model 3 Fig. 1 – Architecture Module of Content Creation Device Note that blue boxes represent modules that are internal to the Device and green boxes modules that are external to the Device. Red boxes represent storage. Only some of the more obvious connections between modules are indicated. 3.1.2 Walkthrough Creator activates an application on his CCD. The application shows a user interface displaying a series of steps that the Creator will follow: 1. 2. 3. 4. 5. 6. 7. 8. 9. Selects the DCI from a number of available DCI templates Gets Resources from outside the CCD Obtains a Resource Identifier Has the option to Encrypt Resources Fills the Metadata template for each Resource Has the option to obtain Metadata Identifier Selects a License from a number of available License templates Obtains a License Identifier Has the option to Store the License on a License Provider Device or to Bundle the License within the DCI 10. Obtains a Content Identifier 11. Creates a DCF 12. Stores the DCF on a Content Provider Device 3.1.3 Module list Module name Get Resource Description Gets Resources (e.g. audio and video as file) in the CCD 4 Encrypt Resource Identify Resource Create Metadata Identify Resource Create License Identify License Create DCI Identify Content Create DCF Store Content User Interface DRM Timer SAC Binary XML Parser Storage Manager Storage 3.1.4 Receives a clear text Resource and provides an Encrypted Resource Request an Identifier to the Resource Identification Device of a Registration Agency Provides a user interface to input Resource Descriptions Request an Identifier to the Metadata Identification Device of a Registration Agency Provides a user interface to select and input data to Create a License Request an Identifier to the License Identification Device of a Registration Agency Provides a user interface to select a DCI template (e.g. for music, for documentaries etc.) and input data (e.g. Content Elements just Created) to Create the DCI Request an Identifier to the Content Identification Device of a Registration Agency Create DCF from DCI Upload DCF to Content Provider Device Provides user interface for the different steps of Content Creation Accurate time code generation for use in Create License Secure Authenticated Channel (between modules) Parses binary XML Handles requests to Store Data to and retrieve Data from storage Memory area Storing Data Communication Analysis CCD Module Get Resource Identify Resource Encrypt Resource Create Metadata Identify Metadata Communicates with User Interface (Resource source) Encrypt Resource Create DCF User Interface Get Resource Resource Identification Device User Interface Get Resource Create DCF User Interface Create DCI User Interface Create Metadata Metadata Identification Device 5 Create License Identify License Store License Create DCI Identify Content Create DCF Store Content User Interface User Interface DRM Timer Identify License Create DCI Store Licence User Interface Create License License Identification Device User Interface Create License License Provider Device User Interface Get Resource Create Metadata Create License Identify Content Create DCF Storage Manager User Interface Create DCI Content Identification Device User Interface Create DCI Encrypt Resources Storage Manager User Interface Create DCF Content Provider Device Get Resources Identify Resource Encrypt Resources Create Metadata Identify Metadata Create License Identify License Create DCI Identify Content Create DCF Store Content 3.2 eXternal Device 3.2.1 Architectural Model 6 Fig. 2 – Architecture Module of External Device Note that blue boxes represent modules that are internal to the Device and green boxes modules that are external to the Device. Red boxes represent storage. Only some of the more obvious connections between modules are indicated. 3.2.2 Walkthrough Get Content 1. End User connects his XD to a Delivery System, e.g. Memory module, the Internet or a Broadcast channel 2. End User activates a browser 3. End User selects the Service 4. End User select the Content (without a License Bundled within it) 5. End User Stores the selected Content in the XD 6. End User plugs his PAV in the XD 7. End User Accesses the License 8. XD Bundles the License within the Content 3.2.3 Module list Module name User Interface Access Content Access License Create DCI Create DCF Description Provides user interface for the different steps of Content and License Access to XD, internal Storage and Delivery to PAV Gets Content from Content Provider Device or external Storage (without License Bundled within) Gets License from License Provider Device Takes Accessed DCI and License, Creates new DCI with new Identifier Makes a DCF out of the Created DCI 7 XD to PAV Communication SAC Binary XML Encoder Storage Manager Storage 3.2.4 Request PAV Identifier, Copy/Move selected DCF to PAV and request Use Data Secure Authenticated Channel (between modules) Converts XML documents to binary format Handles requests to Store Data to and retrieve Data from storage Memory area Storing Data Communication Analysis CCD Module Manage Domain Access Content Access License Create DCI Create DCF Parse License XD to PAV Communication User Interface Storage Manager Communicates with User Interface (SAC for UN/PW) Manage Domain Device XD to PAV Communication (SAC) Storage Manager (SAC) User Interface Content Provider Device Create DCI XD to PAV Communication (SAC) Storage Manager (temporary storage) (SAC) User Interface License Provider Server Create DCI (SAC) XD to PAV Communication User Interface Parse License (SAC) DRM Timer (SAC) Access Content Storage Manager Access License (SAC) Create DCF (SAC) Create DCI Storage Manager (SAC) XD to PAV Communication (SAC) Create DCI (SAC) User Interface Create DCF (SAC) Storage Manager (SAC) Manage Domain (SAC) Access Content (SAC) Access License (SAC) Manage Domain (SAC) Access Content Access License Create DCI XD to PAV Communication Manage Domain (SAC) Access Content (SAC) 8 Create DCF (SAC) XD to PAV Communication (SAC) 3.3 Content Consumption Device (PAV) 3.3.1 Architectural Model Fig. 3 – Architectural Model of Consumption Device (PAV) Note that blue boxes represent modules that are internal to the Device and green boxes modules that are external to the Device. Red boxes represent storage. Only some of the more obvious connections between modules are indicated. 3.3.2 Walkthrough Get Content 1. 2. 3. 4. 5. End User plugs his PAV to the XD End User activates an application on the XD that connects the XD to the PAV The application displays a list of the DCFs on the XD that are available for Use on the PAV End User selects the DCFs of his liking End User activates Move/Copy of those DCFs from XD to the PAV Secure Storage Module Use Content 1. End User activates the User Interface 2. User Interface a. Reads the files in the Secure Storage 9 b. For each file activates Parse DCF and Parse DCI to get the necessary Metadata to create a user-friendly list 3. End User selects DCF 4. Parse DCF Parses the DCF 5. Parse DCF delivers the DCI to Parse DCI 6. Parse DCI extracts a. License b. Metadata c. Resource 7. Parse License a. Interprets Rights Expression b. Extracts DRM Information 8. User Interface dispays the list of Functions that can be executed and Metadata 9. User selects the Function 10. Decrypt Resource a. Decrypts the Resources 11. Decode & Render a. Decodes the Resources b. Stores the Resources on the Temporary Secure Storage c. Delivers them to Presentation Device 3.3.3 Module list Module name User Interface PAV to XD Communication Secure Storage Manager Secure Storage Parse DCF Parse DCI Process License Decrypt Resource Decode & Render Temporary Secure Storage 3.3.4 Description Provides user interface for selecting a DCF and selecting the Functions to be executed on the selected DCF Provides communication capabilities for the XD to Copy/Move DCFs to the PAV and for the XD to obtain from the PAV its Device Identifier and the Use Data Handles requests to Store Data to and retrieve Data from a Secure Storage Memory area for Storing Data securely Parses DCFs to Deliver the Parsed Data to Parse DCI Parses DCIs to Deliver License, Metadata and Resources to the appropriate modules Parses Licenses to Deliver Rights Expressions to User Interface, receives and checks for consistency with the Rights Expressions Users inputs, maintain Content Use Data and Delivers Keys to Decrypt Decrypts Resources Converts Resource to a form suitable for Presentation and Renders Memory area for Storing Decrypted Resources that are frequently used Communication Analysis CCD Module PAV to XD Communication Communicates with XD 10 Parse DCF Parse DCI Process License Decrypt Resource Decode & Render User Interface SStorage Manager SStorage Manager Parse DCI Parse DCF Process License Storage Manager (Encrypted Resource and Metadata) Binary XML Parser Parse DCI (SAC) SStorage (Use Data) (SAC) DRM Timer (SAC) Decrypt Resource Binary XML Parser Process License (SAC) Storage Manager Decode & Render Decrypt Resource (SAC) Temporary Storage Manager (scrambling) SStorage Manager Parse DCF Parse DCI Process License (SAC) 3.4 Domain Manager The following figure represents the “Manage Domain” module in the Domain Manager. It has to be extended with other components 3.5 License Provider The following figure represents the “Manage Domain” module in the License Provider. It has to be extended with other components 11 12 Annex A– The BSD License Copyright (c) 2005, DMP - Digital Media Project All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the DMP - Digital Media Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The PHP License version 3.0 Redistribution and use in source and binary forms, with or without modification, is permitted provided that the following conditions are met: 1. 2. 3. 4. 5. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The name "DMP – Digital Media Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact members@digital-media-project.org. Products derived from this software may not be called "DMP – Digital Media Project", nor may " DMP – Digital Media Project " appear in their name, without prior written permission from members@digital-media-project.org. You may indicate that your software works in conjunction with DMP by saying "Foo for DMP" instead of calling it "DMP Foo" or "dmpfoo" The DMP - Digital Media Project may publish revised and/or new versions of the license from time to time. Each version will be given a distinguishing version number. Once covered code has been published under a particular version of the license, you may always 13 6. continue to use it under the terms of that version. You may also choose to use such covered code under the terms of any subsequent version of the license published by the DMP Digital Media Project. No one other than the DMP - Digital Media Project has the right to modify the terms applicable to covered code created under this License. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes DMP, freely available from <http://www.dmpf.org/>". THIS SOFTWARE IS PROVIDED BY THE DMP DEVELOPMENT TEAM ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE DMP DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------This software consists of voluntary contributions made by many individuals on behalf of the DMP - Digital Media Project. The DMP - Digital Media Project can be contacted via Email at group@php.net. For more information on the DMP - Digital Media Project please see <http://www.dmpf.org>. 14 Annex B – Copyright disclaimer If this is not possible to develop reference software with the license of Annex A, the reference software should bear the following copyright disclaimer: < DMP Approved Document > should be replaced by the appropriate DMP Approved Document <FN> = First Name, <LN> = Last name, <CN> = Company Name "This software module was originally developed by <FN1> <LN1> (<CN1>) and edited by <FN2> <LN2> (<CN2>), <FN3> <LN3> (<CN3>), … in the course of development of the <DMP Approved Document>. This software module is an implementation of a part of one or more < DMP Approved Document > tools. DMP gives users of the <DMP Approved Document> free license to this software module or modifications thereof for use in products claiming conformance to the < DMP Approved Document >. Those intending to use this software module in products are advised that its use may infringe existing patents. The original developer of this software module and his company, the subsequent editors and their companies, and DMP have no liability for use of this software module or modifications thereof. Copyright is not released for non < DMP Approved Document > conforming products. <CN1> retains full right to use the code for its own purpose, assign or donate the code to a third party and to inhibit third parties from using the code for non < DMP Approved Document > conforming products. This copyright notice must be included in all copies or derivative works. Copyright © 199_". You can access the CVS in two ways: using the appropriate CVS client tool (mandatory to get and upload code), or via Web-browser (just to browse the repository). 15 Annex C – CVS Username: dmp_guest Password: dmpatad 1) To browse the CVS: http://lablin2.adetti.iscte.pt/cgi-bin/viewcvs.cgi/ADETTI/DMP/ 2) To get code use the appropriate CVS client tool e.g. TortoiseCVS (for Windows only, but integrates nicely with the Windows Explorer) http://www.tortoisecvs.org SmartCVS (in Java, for both Windows and Linux platforms) - http://www.smartcvs.com/ To use one of these tools you will need to configure the CVSROOT variable in a correct way. CVSROOT = :pserver:dmp_guest@lablin2.adetti.iscte.pt:/home/cvs/DMP 3) To upload code, send it to: Carlos Serrão (carlos.serrao@iscte.pt) 16 Annex D – Reference Software – Tools Currently DMP has Technical specifications for the following Tools. Reference software is needed as indicated in the table below (bold means that software has been provided, italic means that software has been promised): Category 1 Represent Tool Status 1.1 Content MPEG21 SW MPEG21 SW ? Hendry (ICU) NCA NCA ? ? Sang-ug Kang Sang-ug Kang 3.1 Content as file MPEG21 SW Hendry (ICU) 4.1 Access License ADETTI SW Carlos Serrão ? Carlos Serrão 1.2 Rights Expressions 1.3 Represent Keys 2 4 5 Content License Device Domain Package Access Authenticate 5.1 Authenticate Device 6 7 Hendry (ICU) Identify 2.1 2.2 2.3 2.4 3 Provider Manage 6.1 Manage Domain JVC SW Joji Naito (client) Carlos Serrão (server) 7.1 Process: Encrypt 7.2 Process: Binarise XML 7.3 Process: Parse Openly available MPEG21 SW MPEG21 SW ftp://ftp.franken.de/pub/crypt/cryptlib/cl32.zip Process 17 ? ?