INTERNATIONAL ORGANISATION FOR STANDARDISATION ORGANISATION INTERNATIONALE DE NORMALISATION ISO/IEC JTC 1/SC 29/WG 11 CODING OF MOVING PICTURES AND AUDIO ISO/IEC JTC 1/SC 29/WG 11 MXXXXX Drested, DE – April 2010 Source: Title: Status Source 1 Systems Proposal for Protocol to Authenticate Device Proposal Jianping Chen, Tiejun Huang (Peking University) Terms and definitions Authentication: make sure that a content is used in an intended device in the specified system. 2 Symbols and abbreviated terms 3 Namespace conventions Table 1 — Namespaces and prefixes 4 Prefix Corresponding namespace mxmadp urn:mpeg:mpegB:schema:authenticateDeviceProtocol:2010 System overview Figure 1- Sequence diagram of Authentication Messages exchange The protocol listed above composes two step: Negotiation step and Authentication step. The negotiation step has message InitAuthentication and MutualAuthentication, and the authentication step has the message MutualAuthentication. If negotiation successes, the authentication step will be going. This protocol is related to Device Identification Device, for each device will has a device identification before authentication. In this protocol, the identification is a certificate. 5 Authenticate and Authorize Device Protocols The Authenticate Device Protocols is used to authenticate a device to make sure it is intended. 5.1.1 Protocol specification This protocol specifies how to authenticate a device to check whether this device can use the governed content in this system. The protocol is as follows: 1. Negotiation Step. 1) The originator device send an InitAuthentication message to challenged device 2) The challenged device then send a MutualAuthentication to request negotiation with the originator device which is executed by specifying the authentication protocol. 3) Originator device will send the challenged device the negotiation result. 2. Authentication Step. 1) If negotiation successes, the challenged device will send MutualAuthentication message to the originator device to begin authentication. The MutualAuthentication message contains the device’s certificate. 2) The originator device will authenticate the received message and then send a MutualAuthentication message(the originator device’s certificate) response to the challenged device. 3) The last process is that the challenged device authenticate the received message and response the authentication result. 4) Authentication end. 5.1.2 Protocol data format The subclasses specify the messages exchanged between two devices when they execute authentication process. 5.1.2.1 InitAuthentication <element name="InitAuthentication" type=" mxmadp:InitAuthenticationType" substitutionGroup=" mxmadp:Data_BaseClass"/> <complexType name="InitAuthenticationType"> <complexContent> <extension base=" mxmadp:Data_BaseClassType"> <sequence> <element name="ContextID" type="anyURI" minOccurs="0"/> <element name="AuthType" type=" mxmadp:AUTType"/> <!--Context ID of the logical instance of the Tool with which mutual authentication is to be performed--> </sequence> </extension> </complexContent> </complexType> Figure 2: The mxmadp:InitAuthentication Message The mxmadp:InitAuthentication Message shall be employed by an entity to initialise the mutual authentication process with another. 5.1.2.2 MutualAuthentication <element name="MutualAuthentication" type=" mxmadp:MutualAuthenticationType" substitutionGroup=" mxmadp:Data_BaseClass"/> <complexType name="MutualAuthenticationType"> <complexContent> <extension base=" mxmadp:Data_BaseClassType"> <sequence> <choice> <element name="requestNegotiation" type=" mxmadp:requestNegotiationType"/> <element name="successNegotiation" type=" mxmadp:successNegotiationType"/> <element name="failedNegotiation" type="boolean" fixed="true"/> </choice> <element name="authenticationData" type="hexBinary" minOccurs="0"/> <element name="authCodes" type=" mxmadp:AuthCodesType" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> Figure 3: The mxmadp:MutualAuthentication element The mxmadp:MutualAuthentication is employed by two entities (e.g. the DRM Processor and a DRM Tool) for the purpose of: 1. 2. 3. 5.1.2.3 negotiating the Authentication protocol carrying out the agreed upon protocol negotiating how the secured communication channel has to be used. requestNegotiationType <complexType name="requestNegotiationType"> <sequence> <element name="candidateAlgorithms" type=" mxmadp:AlgorithmDescriptorType"/> </sequence> </complexType> Figure 4: The mxmadp:requestNegotiationType complex type The mxmadp:requestNegotiationType complex type conveys the list of Authentication algorithms supported by means of the mxmadp:candidateAlgorithms element. 5.1.2.4 AlgorithmDescriptorType <complexType name="AlgorithmDescriptorType"> <sequence> <element name="algoID" type="anyURI" maxOccurs="unbounded"/> <element ref=" mxmadp:opaqueData" minOccurs="0"/> </sequence> </complexType> Figure 5: The mxmadp:AlgorithmDescriptorType complex type Each of the supported Algorithms are characterised by an Identifier of type xsd:anyURI. Optionally, mxmadp:opaqueData containing related data to the algorithm can be conveyed. 5.1.2.5 successNegotiationType <complexType name="successNegotiationType"> <sequence> <element name="agreedAlgorithms" type=" mxmadp:AlgorithmDescriptorType" maxOccurs="unbounded"/> </sequence> </complexType> Figure 6: The mxmadp:successsNegotiationType complex type The mxmadp:successNegotiation element is sent by the entity initiating the mutual Authentication process in reply to a mxmadp:MutualAuthentication message proposing a list of candidate algorithms. The mxmadp:agreedAlgorithms element conveys the list of the Authentication algorithms supported, among the ones proposed by the entity that was challenged. 5.1.2.6 AuthCodesType <complexType name="AuthCodesType"> <sequence> <element name="certificates" type="dsig:KeyInfoType" maxOccurs="unbounded"/> <element name="trustData" type="hexBinary" minOccurs="0"/> </sequence> </complexType> Figure 1: The mxmadp:AuthCodesType complex type The mxmadp:authCodes element conveys` a number of certificates and/or trust data belonging to the entity involved in the Authentication process (optional) trust and security data, mostly used when Mutual Authentication involves DRM Tools. Annex A (informative) Protocol Description Schemas <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:mpeg:mpegB:schema:authenticateDeviceProtocol:2010" xmlns="http://www.w3.org/2001/XMLSchema" xmlns: mxmadp ="urn:mpeg:mpegB:schema: authenticateDeviceProtocol:2010" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" attributeFormDefault="unqualified"> <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsi g-core-schema.xsd"/> <!-- Abstract Base Type from which both DRM Message Containers and DRM Messages inherit --> <complexType name="IPMPBaseType" abstract="true"/> <!--Data_BaseClass--> <element name="Data_BaseClass" type=" mxmadp:Data_BaseClassType" abstract="true"/> <complexType name="Data_BaseClassType" abstract="true"> <complexContent> <extension base=" mxmadp:IPMPBaseType"> <sequence> <element name="dataID" type="unsignedInt"/> </sequence> </extension> </complexContent> </complexType> <!-- AUTHENTICATION MESSAGES --> <!--InitAuthentication--> <element name="InitAuthentication" type=" mxmadp:InitAuthenticationType" substitutionGroup=" mxmadp:Data_BaseClass"/> <complexType name="InitAuthenticationType"> <complexContent> <extension base=" mxmadp:Data_BaseClassType"> <sequence> <element name="ContextID" type="anyURI" minOccurs="0"/> <element name="AuthType" type=" mxmadp:AUTType"/> <!--Context ID of the logical instance of the Tool with which mutual authentication is to be performed--> </sequence> </extension> </complexContent> </complexType> <simpleType name="AUTType"> <annotation> <documentation> "01" - No Authentication Required "02" - No ID verify, Do secure channel "03" - Do ID verify, No secure channel "04" - Do ID verify, Do secure channel </documentation> </annotation> <restriction base="integer"> <enumeration value="01"/> <enumeration value="02"/> <enumeration value="03"/> <enumeration value="04"/> </restriction> </simpleType> <!--MutualAuthentication--> <element name="MutualAuthentication" type=" mxmadp:MutualAuthenticationType" substitutionGroup=" mxmadp:Data_BaseClass"/> <complexType name="MutualAuthenticationType"> <complexContent> <extension base=" mxmadp:Data_BaseClassType"> <sequence> <choice minOccurs="0"> <element name="requestNegotiation" type=" mxmadp:requestNegotiationType"/> <element name="successNegotiation" type=" mxmadp:successNegotiationType"/> <element name="failedNegotiation" type="boolean" fixed="true"/> </choice> <element name="authenticationData" type="hexBinary" minOccurs="0"/> <element name="authCodes" type=" mxmadp:AuthCodesType" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <complexType name="requestNegotiationType"> <sequence> <element name="candidateAlgorithms" type=" mxmadp:AlgorithmDescriptorType"/> </sequence> </complexType> <complexType name="AlgorithmDescriptorType"> <sequence> <element name="algoID" type="anyURI" maxOccurs="unbounded"/> <element name="opaqueData" type="base64Binary" minOccurs="0"/> </sequence> </complexType> <complexType name="successNegotiationType"> <sequence> <element name="agreedAlgorithms" type=" mxmadp:AlgorithmDescriptorType" maxOccurs="unbounded"/> </sequence> </complexType> <complexType name="AuthCodesType"> <sequence> <element name="certificates" type="dsig:KeyInfoType" maxOccurs="unbounded"/> <element name="trustData" type="hexBinary" minOccurs="0"/> </sequence> </complexType> </schema> Figure A.1 — The mxmadp schema