390 likes | 580 Views
MPEG-21 Part4: IPMP ISO/IEC JTC 1/SC29/WG11 N4269 (Committee Draft). Multimedia Security. Outline. Overview of the IPMP framework Framework architecture Walkthrough Standardized processes Messaging infrastructure. ISO/IEC 21000-4.
E N D
MPEG-21 Part4: IPMPISO/IEC JTC 1/SC29/WG11 N4269 (Committee Draft) Multimedia Security
Outline • Overview of the IPMP framework • Framework architecture • Walkthrough • Standardized processes • Messaging infrastructure
ISO/IEC 21000-4 • An MPEG-21 IPMP framework, referred to as “IPMP Extensions”, is specified in this part of MPEG-21 • The MPEG IPMP Extensions are designed so that they can be applied to any MPEG multimedia representation • Specific mappings of the MPEG IPMP Extensions should be defined as amendments to the MPEG-n standard
C-interoperability • The major focus of MPEG in general • A consumer centric approach • Content protected by one IPMP vendor will play on any given Terminal M-interoperability • IPMP Tools from different vendors will be able to integrate into the • same Terminal implementation concurrently • An IPMP System is able to comprise IPMP Toolsmade by one or more • vendors • Goal: to simplify the design of tool and terminal interfaces such that • the integration and interoperation of these tools and terminals may be • more widespread and economical Interoperability • Two types of interoperability are defined Consumers’ Point of View Manufacturers’ Point of View
Terminal-IPMP Tool Communications IPMP Tool 1 … IPMP Tool n Framework Architecture Missing IPMP Tools Content Obtain missing IPMP Tool(s) IPMP Tool List IPMP Tool Manager Content Request IPMP Tool ID(s) Terminal Alternate IPMP Tool ID(s) Message Router Parametric Tool Description(s) Content Delivery Terminal-Tool Message Interchange Interface IPMP Tool Elementary Stream IPMP Information
Content Request IPMP Tool Manager Terminal Terminal-Tool Message Interchange Interface Walkthrough:(1) User Requests Specific Contents • The manner in which content is requested is out of scope • Recommendations about the order in which different parts of the content are received and used • IPMP requirements on the Terminal should be placed with or before media requirements on the Terminal • Access information and/or restrictions should precede Content Stream download information Missing IPMP Tools Content IPMP Tool List IPMP Tool ID(s) Alternate IPMP Tool ID(s) Message Router Parametric Tool Description(s) IPMP Tool Elementary Stream IPMP Information IPMP Tool 2 … IPMP Tool 1
Access the IPMP Tool List IPMP Tool Manager Terminal Receiving IPMP Tools Description Terminal-Tool Message Interchange Interface IPMP Tool 2 … IPMP Tool 1 Walkthrough:(2) IPMP Tools Description Access • The Terminal access the IPMP Tool List • Using the IPMP Tool List, the Terminal determines the IPMP Tools required to consume the content Missing IPMP Tools Content IPMP Tool List IPMP Tool ID(s) Alternate IPMP Tool ID(s) Message Router Parametric Tool Description(s) IPMP Tool Elementary Stream IPMP Information
Obtaining Missing IPMP Tool(s) Content IPMP Tool List IPMP Tool Manager IPMP Tool ID(s) Terminal Obtaining Missing IPMP Tool(s) Alternate IPMP Tool ID(s) Parametric Tool Description(s) Terminal-Tool Message Interchange Interface IPMP Tool Elementary Stream All Required IPMP Tools Received Locally Available IPMP Tools IPMP Information IPMP Tool 2 … IPMP Tool 1 IPMP Tool 1 … IPMP Tool n Walkthrough:(3) IPMP Tools Retrieval • Sources of IPMP Tools • Locally available IPMP Tools • Missing IPMP Tools carried in Content itself • Missing IPMP Tools that need to be obtained remotely Missing IPMP Tools Message Router IPMP Tool 1 …
Content IPMP Tool List Accessing Content IPMP Tool Manager IPMP Tool ID(s) Terminal Alternate IPMP Tool ID(s) Providing Initial IPMP Information Parametric Tool Description(s) Terminal-Tool Message Interchange Interface IPMP Tool Elementary Stream Inter-Tool Communication IPMP Information IPMP Tool 1 … IPMP Tool n Instantiations Walkthrough:(4) Instantiation of IPMP Tools • The Terminal instantiates the IPMP tools • The instantiated Tools are provided with the initial IPMP information from the Content • IPMP Tools may use IPMP information to • Determine security requirements for content access • Monitor and facilitate the establishment and maintenance of the security requirements in inter-Tool communication Missing IPMP Tools Message Router
Content IPMP Tool List Content Consumption IPMP Tool Manager IPMP Tool ID(s) Terminal Alternate IPMP Tool ID(s) Parametric Tool Description(s) Terminal-Tool Message Interchange Interface IPMP Tool Elementary Stream IPMP Info. Routing IPMP Information Walkthrough:(5) IPMP Initialization and Update - in Parallel with Content Consumption • Content consumption if allowed • IPMP Information routing • The whole walkthrough can be requested again Missing IPMP Tools Message Router IPMP Tool 1 … IPMP Tool n
Consumption Query and Permission IPMP Tool List IPMP Tool Manager IPMP Information Routing Terminal Tools in the Content Terminal-Tool Message Interchange Interface Mutual Authentication IPMP Information Instantiation of IPMP Tools Illustration of Normative Elements Missing IPMP Tools Content Obtain missing IPMP Tool(s) IPMP Tool List Content Request IPMP Tool ID(s) Alternate IPMP Tool ID(s) Message Router The Parametric Infrastructure Parametric Tool Description(s) Content Delivery IPMP Tool Elementary Stream Terminal-IPMP Tool Communications IPMP Information IPMP Tool 1 … IPMP Tool n
Normative Elements • IPMP Tool List • IPMP Tool ID • Parametric Infrastructure • Tools in the Content • Instantiation of IPMP Tools • Mutual Authentication • IPMP Information • IPMP Information Routing • Consumption Query and Permission
The class describing a logical IPMP Tool required to access the content The container for the Tool List IPMP_ToolListDescriptor IPMP_Tool bit(8) IPMPToolListDescriptorID; bit(8) numTools; IPMP_Tool ipmpTool[numTools]; bit(1) isAltGroup; bit(1) isParametric; bit(6) reserved=0b111111; bit(128) IPMP_ToolID; If (isAltGroup) { bit(8) numAlternates; bit(128) Alt_IPMP_ToolIDs[numAlternates]; } else if(isParametric) { IPMP_ToolParametricDescriptor toolParamDescr; } • A vendor-specific IPMP Tool specified by IPMP_ToolID Container for a parametric description of an IPMP Tool required to access the content • One of a list of alternate IPMP Tools IPMP_ToolParametricDescriptor ByteArray parametricDesc; • An IPMP Tool specified by a parametric description IPMP Tool List • For the case of a list of alternate IPMP tools, the Terminals shall select an IPMP Tool from the list • For the case of a parametric description of the IPMP Tool, the Terminal shall select an IPMP Tool that meets • the criteria specified in the parametric description
IPMP Tool ID (1/2) • The IPMP_Tool_ID identifier • 128-bits long • Platform-independent • A registration authority for IPMP Tools that use a unique ID is required • An association of the download URLs for various implementations of the given tool for various platforms shall be maintained.
Parametric Infrastructure • Cases in which the tools required may not be unique • Tools are based on popular public algorithms • A wide variety of equivalent implementations are available • Computationally intensive tools leading to platform-specific optimized implementations form a wide variety of venders • A set of parameters and values are to be identified and standardized to support a specific class of functionality • Parametric Representation • Parametric Description • Parametric Aggregation
Parametric Description • Definition • Information that enables a Terminal to choose a specific Tool implementation that will support all functionalities required by a presentation • No specific schema for any specific Tool type is attempted to be defined now • It is anticipated that such definitions will be added over time to develop an optimal schema • Only a basic framework is outlined in the current version of the specification
Current Parametric Description Framework • Version of parametric description syntax • Class of Tool • e.g. Decryption, Right Language Parser • Sub-class of Tool • E.g. for Decryption: DES, Camellia • E.g. for Rights Language Parser: XrML, ODRL • E.g. for Protocol Parser: Bluetooth, SmartCard • Sub-class-specific information • E.g. for DES: number of bits, block decipher capability • E.g. for Rights language Parser: version
Parametric Aggregation • Definitions • Information to aggregate different IPMP Tools in a given configuration under a single entry-point IPMP Tool • Goals • To configure existing IPMP Tools into new combinations, enabling different types of protection schemes
Current Parametric Aggregation Framework • Version of parametric aggregation syntax • Entry-point Tool • Input and output pin specification • The ID of the entry-point tool is not required • List of member IPMP Tools (aggregation units) • A 128-bit IPMP Tool ID • One or more Input and output interface codes • No duplication of interface codes to avoid ambiguity • Sequential links can be established • Opaque information, specific to the entry-point tool • Optional signal information
Assigned by a Registration Authority Assigned by a Registration Authority Delivery of Tools via Content • One or more Binary Representations of IPMP Tools may be carried directly or by reference in an MPEG presentation • Required information • IPMP_Tool_ID • Tool_Format_ID • The Binary Representation of the Tool • E.g. Platform Dependent Native Code, Java Byte Code • Tool_Package_ID • The details of the packages of the tool • E.g. CAB, Winzip self-install executable • Signature and Certification data
IPMP Tool Instantiation • Upon instantiation of an IPMP Tools, all IPMP Tools already instantiated by the Terminal must be notified such instantiation • The newly instantiated IPMP Tool may request to be informed of other IPMP Tools running on the Terminal • The process of instantiation • Establish a context for the Tool being instantiated • Establish a link between the Message Router and the Tool instance • Establish a link between the Tool instance and the Message Router
Events Triggering IPMP Tools Instantiation • Sources and requirements • The Content • The syntax and context that trigger instantiation • The scope of protection • The relationship of one IPMP Tool with another IPMP Tool in the same scope of protection • Another IPMP Tool • Clear method of creation of a context for such instantiation
IPMP Information Routing • Addressing • Normative addressing methods are used • Addressee of a specific message is implicit either by bit-stream context or by process context • Message router • Handling the physical routing of information, synchronous/asynchronous delivery issues, and context resolution • Abstract all platform-dependent issues • Both interfaces between the Message Router and the IPMP Tools and the behavior of the Message Router are normative
Mutual Authentication • IPMP Tools may be required to communicate with one another or the Terminal. • Execution of mutual authentication • The tool that initiates mutual authentication with another tool determines the conditions of trust to be achieved by such authentication • E.g. integrity protected communication or fully-secured communication • Both tools engaged in message exchange to determine which authentication protocol will be used
Credentials • Used by an IPMP Tool or Terminal for identification, verification, mutual authentication, and similar security process. • Information about the identity and implementation of IPMP Tools (see the recommended schema) • A means of identifying the integrity and validity of the credential info • Trust and security metadata • Opaque information
Permission for Consumption • Permission for an intent on protected media in a presentation should be requested from and explicitly granted by all IPMP Tools protecting that media, prior to processing such intents. • Permission is granted in true-false form by each IPMP Tool.
IPMP Tool Manager • A conceptual entity in a given IPMP Terminal • Parsing IPMP Tool List • Retrieving IPMP Tools • Processing parametric descriptions • Resolving alternative tools • Receive binary Tools that arrive in the content
Message Router • All IPMP Tool messages are routed through the Terminal • The Message Router (MR) connects and communicates with supported IPMP Tools, and thus abstracts the physical interface of one IPMP Tool from other IPMP Tools that wishes to communicate with it.
Message Infrastructure • Normative components of the IPMP Tool Interaction Framework • Interaction (communication) is realized via “messaging” • The generic functional interface is normative • The messages (syntax and semantics) are normative • The process of message routing is normative
Message Interchange Interface IPMP_ToolMsgStatus IPMP_ReceiveMessage( [in] short Sender, //sender context ID [in] short Recipient, //recipient context ID [in] long MsgSize, //size of message in bits [in] octet Msg[], //payload [in] IPMP_MsgMode, //sync/async [in] long MsgID) //message ID, included in response message IPMP_ToolMsgStatus An enumerated status returned by the Terminal (MR) to the message originator IPMP_MSG_STATUS_MSG_POSTED IPMP_MSG_STATUS_INVALID_SENDER_ID IPMP_MSG_STATUS_INVALFID_RECIPIENT_ID IPMP_MSG_STATUS_MSG_MODE_NOT_SUPPORTED IPMP_MSG_STATUS_GENERIC_ERROR
IPMP Tool Messages (I) • Instantiation and Notification • IPMP_CreateNewToolInstance/IPMP_ToolInstNotification • IPMP_RequestInstTools/IPMP_ToolInstNotofication • IPMP_AddToolInstNotoficationListener (IPMP_ToolInstNotofication) • IPMP_RemoveToolInstNotoficationListener • IPMP_RequestToolContextID/IPMP_SupplyToolContextID IPMP Information Delivery • Data Processing Functions (between terminals and tools) • IPMP_ProcessData/IPMP_ProcessDataReturn • Intent and Permission • IPMP_IntentRequest/IPMP_IntentResponse • IPMP_IntentTerminate • IPMP_IntentRevoke
IPMP Tool Messages (II) • ToolToUserMessage (defined as a class) • languageCode: three character language code • titleText: Title of dialog display • displayText: Text to be displayed to the user • promptText: Text to be displayed to the user to indicate the purpose of text input field • optionText: text to be displayed indicating purpose of option selection • SMIL: SMIL file to be displayed • UserToToolMessage (defined as a class) • replyText: text entered by user • optionResult
IPMP Tool Messages (III) • Mutual Authentication Messages • IPMP_InitAuthentication • Context ID • Authentication Types • No authentication required • No ID verify, do secure channel • No ID verify, no secure channel • Do ID verify, do secure channel
Get Tool List Tool List IPMP Data Locate Tool Establish Channel Acquire IPMP Tool Instantiate Tool Mutual Authentication IPMP Data Allow Consume Content Get Content Content IPMP Tool Acquisition Content Terminal IPMP Tool Provider IPMP Tool
Get Tool List Tool List IPMP Data Locate Tool Establish Channel Acquire IPMP Tool Instantiate Tool Mutual Authentication Failed IPMP Tool Validation Content Terminal IPMP Tool Provider IPMP Tool Failed Authentication: Consumption Terminates
Get Tool List Tool List IPMP Data Locate Tool Establish Channel Acquire IPMP Tool Instantiate Tool Mutual Authentication IPMP Data Disallow Content Consumption Denied User Permission Content Terminal IPMP Tool Provider IPMP Tool