XML Schema for Fair Contract Signing Protocol

Date: 2004-10-28.

XML Schema for Fair Contract Signing Protocol, defined in the Trusted Mobile Platform Protocol Specification Document (Revision 1.00), pages 75-79. See the news story "Trusted Mobile Platform Specifications Released for Industry Review."

From Section 6 'Fair Contract Signing Protocol': "...Reliable and atomic transaction is one of the key requirements for TMP. In the e-Ticket scenario described in the Phase 0 document, when the user purchases an electronic ticket using a mobile device, the paying event and the ticket receiving event must be atomic and inseparable; either they both occur or neither one occurs. Although this is a general requirement for virtually any network-based transactions, TMP has identified that this is a much more serious problem for mobile devices because wireless network connections are less reliable especially when the clients are moving... This section defines the TMP Fair Contract Signing Protocol, which allows exchanging signatures in an atomic way. The protocol uses the idea of Optimistic Fair Contract Signing recently proposed by Asokan, Shoup, and Waidner..." See literature references



<xsd:schema
targetNamespace="http://schemas.trusted-mobile.org/protocol/2006/06/ofcs"
xmlns:ofcs="http://schemas.trusted-mobile.org/protocol/2006/06/ofcs"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/secext"
schemaLocation="wss.xsd"/>
<xsd:element name="Commitment">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Initiator"/>
<xsd:element ref="ofcs:Responder"/>
<xsd:element ref="ofcs:Broker"/>
<xsd:element ref="ds:Signature" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="CommitmentID" type="ofcs:IDType"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Contract">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Initiator"/>
<xsd:element ref="ofcs:Responder"/>
<xsd:element ref="ds:Signature" minOccurs="1" maxOccurs="2"/>
</xsd:sequence>
<xsd:attribute name="ContractID" type="ofcs:IDType"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="AbortedContract">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:CommitmentRef"/>
<xsd:element ref="ds:Signature"/>
</xsd:sequence>
<xsd:attribute name="ContractID" type="ofcs:IDType"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="CommitmentRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Commitment"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CommitmentResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Commitment"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ContractRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Contract"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ContractResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Contract"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AbortRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Commitment"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AbortResponse">
<xsd:complexType>
<xsd:choice>
<xsd:sequence>
<xsd:element ref="ofcs:Contract"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element ref="ofcs:AbortedContract"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="ResolveRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ofcs:Commitment" minOccurs="2" maxOccurs="2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ResolveResponse">
<xsd:complexType>
<xsd:choice>
<xsd:sequence>
<xsd:element ref="ofcs:Contract"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element ref="ofcs:AbortedContract"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="Initiator">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ds:Reference"/>
<xsd:element ref="wsse:SecurityTokenReference"/>
<xsd:element ref="ofcs:CommitmentRef" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Responder">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ds:Reference"/>
<xsd:element ref="wsse:SecurityTokenReference"/>
<xsd:element ref="ofcs:CommitmentRef" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Broker">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="wsse:SecurityTokenReference"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CommitmentRef">
<xsd:complexType>
<xsd:attribute name="RefID" type="ofcs:IDReferenceType"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="IDType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="IDReferenceType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:schema>

Copyright Notice

(c) Copyright IBM Corporation, NTT DoCoMo, Inc. and Intel Corporation 2003, 2004. All rights reserved.

Permission to copy and display this "Hardware Architecture Description", "Software Architecture Description" and "Protocol Specification" ("this Specification"), in any medium without fee or royalty is hereby granted, provided that you include the following on ALL copies of this Specification, or portions thereof that you make:

1. A link or URL to this Specification at this location. (ie, the TMP spec site) [http://www.trusted-mobile.org/]

2. This Copyright Notice as shown in this Specification.

THIS SPECIFICATION IS PROVIDED "AS IS". IBM CORPORATION, NTT DOCOMO, INC. AND INTEL CORPORATION (COLLECTIVELY, THE "COMPANIES") MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, TITLE AND ALL STATUTORY WARRANTIES REGARDING THIS SPECIFICATION. WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, THE COMPANIES MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, THAT THE CONTENTS OF THIS SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. THE COMPANIES WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES INCURRED BY YOU ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS SPECIFICATION. No other rights, including intellectual property rights, are granted by implication, estoppel or otherwise.