Properties of
Secure Transaction Protocols

Douglas H. Steves - dhs@cs.utexas.edu
Chris Edmondson-Yurkanan - dragon@cs.utexas.edu
Mohamed Gouda - gouda@cs.utexas.edu

Department of Computer Sciences
The University of Texas at Austin
Austin, Texas 78712-1188

Abstract

Communication protocols are the computational basis for distributed electronic commerce systems, and thus the properties of these protocols define the forms of commerce possible in electronic systems.

Existing protocols used for electronic commerce focus primarily on security properties, including message integrity, privacy and non-repudiation, and on basic transaction properties, usually just atomicity; their structural properties are limited to supporting two-party transactions with fixed semantics. We believe that the properties provided by these protocols limit their use to simple forms of commerce.

In this paper we define the properties we believe are necessary for electronic commerce protocols. These include the security properties of existing protocols, and extend the transactional properties to include isolation and causality. Causality is a new property for transactions. It allows the order of the messages in a completed transaction to be independently verified, and thus inferences can be made about causal relationships between messages.

We also extend the structural properties to support scalability, layering and separation of roles. Scalable protocols allow several parties to join each transaction. Protocol layering enables arbitrary transaction semantics and greater system modularity. Separation of roles provides independent adjudication of disputes between transaction participants and allows the use of varied exchange media.

We term a protocol with the above properties a secure transaction protocol.

Lastly, we present a protocol that provides these properties. We believe that this protocol can be used to support more complex and extended forms of electronic commerce than existing protocols.

1. Introduction

There are many forms of commerce, ranging from simple, immediate exchanges of goods and services to long-term relationships defined by explicit contracts. The forms of commerce that can be effectively provided within an electronic commerce system are defined by the properties of the protocols used by that system, since these protocols are the underlying computational basis of the system.

Protocols with limited properties will have correspondingly limited application in electronic commerce. For instance, a protocol without privacy could not be used for a commercial transaction which must be kept secret. Similarly, a two-party protocol could not be used for a commercial transaction which involves three or more parties.

In this paper we explore the security, transaction and structural properties that can be incorporated into the protocols used for electronic commerce in order to increase the forms of commerce that can be performed electronically. Security properties enable access control and accountability;[4] transaction properties allow the definition and verification of the relationship between messages; structural properties define the relationship between protocols as well as the relationship between the processes executing those protocols.

1.1 Security Properties

Security properties are a component of many distributed applications, but were first widely used in electronic mail protocols such as Pretty Good Privacy (PGP) and Privacy Enhanced Mail (PEM)[9]. These protocols were used to exchange single messages, and defined the following properties:
privacy
The message data can only be observed by the sender and receiver.
integrity
The message data can only be altered by the sender without detection.
authentication
The receiver of a message can establish the unique identity of the sender.
non-repudiation
The receiver of a message can prove both message integrity and message authentication.

The initial electronic commerce protocols allowed for the exchange of multiple messages, and so extended these properties to define a session identifier and a session key which are used for all messages in the transaction. Examples of these protocols range from Secure Sockets Layer (SSL)[2] to Secure Electronic Transactions (SET)[16].

1.2 Transaction Properties

The secure message properties provided by these protocols, however, do not allow the relationship between messages in a transaction to be defined and verified. Important transaction properties include:
atomicity
Either all messages in a transaction may be referenced by the participants in that transaction or none may be.
isolation
Either all messages in a transaction may be referenced by other transactions, or none may be.
verifiable causality
The sender and receiver of a message can verify the sequence of messages transmitted between the two processes prior to that message.
Atomicity, discussed in [14] and [13] ensures either that all parties to a transaction receive their goods, or that none do. For instance, credit card transactions are not normally atomic, since the customer receives the merchandise before the merchant is paid. This lack of atomicity allows for fraudulent transactions. The NetBill protocol[11] is designed to provide atomicity in addition to the secure message properties.

Isolation prevents the goods or money exchanged in one transaction from being used in another transaction until and unless the first transaction is successfully concluded. Consider a building contractor who orders cement from a subcontractor for one job and then uses that cement in another job before completing the earlier transaction. If the first transaction is cancelled, it may not be easy for the subcontractor to recover the cement. While it is normally feasible to rollback database transactions, it is not easy to `undo' the foundation of a house.

Note that the relational properties of atomicity and isolation are also familiar from classical database theory [3], where they provide for computational separation of transactions.

Verifiable causality allows the sender or receiver of a message to demonstrate the sequence of messages that could have caused that message. In other words, it allows the order in which messages were sent or received during a transaction to be proven.

If some of these data messages constitute a negotiation between the processes of the transaction, then verifiable causality ensures that each process can prove exactly how the negotiation proceeded. More formally, one of the basic requirements for legal contracts is the demonstration of a causal relationship between the items being exchanged.

1.3 Structural Properties

The structure of a transaction protocol can also limit its applicability for electronic commerce. The structural requirements we believe are important are:
scalability
The number of participants in the protocol is not fixed by the protocol definition.
layering
Protocol functions may be arbitrarily composed or invoked by other protocols.
separation of roles
Protocol functions are logically separate so that each can be performed by a separate process.

Multi-party transactions are common in commerce. Consider the case of the building contractor described above. The contractor would not wish to be responsible for purchasing the cement if the buyer should decide not to build the house, and so would want any commitments made during each subtransaction to be dependent upon the successful conclusion of the entire transaction.

The agreements made between the primary contractor and the subcontractor are part of the same economic transaction, and so need to be part of the same electronic transaction as well. Since the SSL, SET and NetBill protocols are all based upon two primary parties, the customer and the merchant, these protocols could not be used for multi-party electronic commerce.

Note that the transaction properties, such as atomicity, are even more important for multi-party transactions. In two party transactions, either physical proximity or trust based upon long standing relationships can lessen the need for protocol-enforced atomicity. But neither of these are likely to apply in multi-party transactions, where many parties may be unacquainted.

Commercial transactions vary considerably in semantics, and many are unique. Using a layered approach allows the semantics of exchange to be separated from the security and transaction properties, so that these mechanisms can be invoked according to the requirements of each type of commerce. In addition, layering enables these mechanisms to be shared with other distributed applications.[7]

This approach is more general than designing entirely separate protocols for each type of transaction. In SET, for instance, the structure and security properties of the protocol are specific to purchases made with credit cards. Thus, this protocol is not suited to other forms of commerce, which would require their own protocols.

The last structural issue we would like to discuss is separation of roles. This property, common in government and also found in secure computer systems, allows for independent adjudication of disputes.

For example, the building contractor and the cement subcontractor may disagree about the price or deadlines for the foundation work. Without a record of their agreement which can be verified by an independent party, there would be no fair way to resolve the dispute.

For electronic commerce, the party that verifies and enforces agreement on transactions is a commit authority. In NetBill, for example, the commit authority is the bank. But the bank is involved in the transaction since it is supplying one of the exchange media. Moreover, the bank is likely to have different relationships with the parties to the transactions. Thus the bank cannot be an impartial arbitrator.

An additional benefit of the logical separation of transaction commitment and exchange is that the protocol applies to forms of commerce such as barter where the exchange medium is ad hoc or unique. If these functions are not separated, however, the protocol would need to be modified each time the exchange medium changes.

In the second section of this paper we further discuss the protocol transaction and structural properties, and describe how they are supported in our protocol. In the third section, we describe our secure transaction protocol.

In later work we provide a more formal description and an implementation of our protocol. We also expect to explore the layering of specific forms of commerce on top of our protocol.

2. Protocol Properties

2.1 Atomicity and Isolation

Atomicity and isolation are ensured in classical database transactions by using a commit protocol. This protocol is used to turn temporary storage into permanent storage - that is, the updates to the transaction's data are not visible until the commit protocol validates the stored data. Note that it is the presence of a commit record in the database log which effectively validates the transaction's data.

With secure transaction protocols, of course, we are not concerned with the correctness of data in persistent storage, but rather that data messages are not used or referred to unless their corresponding transaction has been properly committed. This can be accomplished by:

1.
including a transaction identifier within each data message that effectively ties the message to the transaction
2.
using a commit protocol to conclude each transaction
3.
requiring a valid commit record for a transaction prior to the use of a message from that transaction.
The protocol that we define in this paper addresses the first two of these; the last would require the complete definition of the system to ensure that all message references are properly constrained.

Atomicity is described more fully in [15], where it is incorporated into the NetBill protocol. The approach in this paper is more general, using a separate two-phase commit protocol which does not depend upon the nature of the transaction.

Isolation is only implicitly addressed in NetBill, since nothing of value is exchanged until the transaction is committed by the NetBill server. The validity of this approach depends upon a limited transaction model. For more general forms of commerce, we believe that transaction isolation can only be achieved by a systematic mechanism that effectively limits message propagation until and unless the message's transaction is successfully committed.

2.2 Verifiable Causality

We treat causality as a weak implication of ordering. The ordering of messages in distributed systems can be a function of message time or message context.

The time of a message can be defined by associating a physical or logical timestamp with each message. Physical clocks define a total order, but are problematic due to clock synchronization errors. Logical clocks define a partial order which is sufficient to demonstrate causal relationships.[5]

The context of a message can be defined by including in each message unpredictable and unique elements from earlier messages. These elements could be the message itself[1,6] or a random number bound to the message. The first approach is inefficient and may violate the privacy policy for multi-party transactions, but these issues can be addressed by using message digests[10]. Random numbers, on the other hand, are difficult to generate correctly.

For effective use of causality in electronic commerce where the parties are usually distrustful, the protocol must enable verification of causal claims, both by the receiver, which may wish to reject invalid messages, and by independent arbiters, in order to settle disputes.

There are two types of causal claims: assertion, where a causal link between two messages is claimed, and denial, where a causal link between two messages is disclaimed. Causal assertion may be verified by having the causal information (e.g. logical clock) authenticated by its originator and by having the message sender authenticate the association of this information with the message.

In [12], the authors define a secure causality protocol based upon vector timestamps. When a process sends a message, it updates and signs its component of the vector timestamp that is included in each message. When a process receives a message, it updates any outdated components of its clock from the timestamp included in the message. In [8], the authors define a similar secure causality protocol based upon message contexts. When a process sends a message, it signs the message digest, which is included in the message along with the set of digests the process had previously received. When a process receives a message, it adds the included digests to its own set.

Both of these protocols implement the first requirement for verifying causal assertions, since the causal information is always signed by its originator. They, however, do not do not have the sender authenticate the association between the message and the causal information.

For instance, in the protocol described in [8], the receiver of a message could use the sender's signed message context to prove that the sender did, in fact, send this message. But since the signature does not include the set of other message digests, the causal relationship between the message digests and the message itself cannot be verified by either the receiver or an independent arbiter.

Causal denial is more difficult to verify than causal assertion. In the general case, it would seem to require a protocol in which all messages are delivered by a trusted third party that would safely record the message sequence. This would introduce both performance and reliability problems. We have not, however, found the verification of causal denial to be important for electronic commerce, and thus do not address it in our protocol.

Our protocol is based upon message context, because this allows for the verification of the reception and transmission of specific messages rather than a specific number of messages. Each message includes authenticated context information which meets both of the above requirements for verifiable causal assertions.

At the conclusion of the transaction, the context is used in the commit protocol in order to ensure agreement among all parties. The committed context can then be used later to resolve any disputes that might occur regarding message ordering.

2.3 Scalability

Since many business relationships involve multiple participants, we believe that secure transaction protocols must be scalable to permit multiple processes to participate in each transaction. We incorporate this into our protocol by allowing an unlimited number of processes to join each transaction (processes join in pairs, forming a new subtransaction), and by having successful commitment of the transaction depend upon successful commitment of each subtransaction.

2.4 Layering

Business negotiations and contracts are often both complex and ad hoc. In order to provide secure transaction protocols that are general enough to be used for all forms of commerce, the protocol must not impose its own semantics or constraints - instead the semantics of the commercial transaction should be layered on top of the secure transaction protocol.

The semantics of a protocol are defined by its allowed sequences and types of messages. Our protocol does not define the type of data that can be transferred - only the messages used for transaction initiation and termination are specifically defined. In addition, data messages are sent and received non-deterministically, so that any sequence of messages is allowable using our protocol. Thus, our protocol is semantically neutral.

2.5 Separation of Roles

In electronic commerce, the commit authority is responsible for managing transaction termination and for reporting transaction status to interested parties, such as the transaction participants or exchange authorities (banks, stores) which will distribute resources (money or goods or services) upon successful termination.

When the transaction finishes, the commit authority runs a commit protocol to determine whether the transaction was successful. If the transaction is successfully committed, then the parties can safely exchange the goods, services or money according to the transaction.

By separating the role of commit authority from that of the parties involved in the exchange, arbitration of disputes can be performed by a neutral party. Separation of roles is achieved in our protocol by defining a logically separate commit authority process, which performs only functions relating to transaction initiation and termination.

3. The Secure Transaction Protocol

3.1 Overview

The Secure Transaction Protocol (STP) implements the properties described in the previous section.1 It contains two types of processes. A secure transacting (ST) process may engage in many concurrent secure transactions with other ST processes. The commit authority (CA) process is used by the ST processes for transaction initiation, verification and commitment. Each system contains one CA process and many ST processes.

Each process has a unique identity (UID), a signature key that can be used to sign messages and a verification key that can be used by other processes to verify its message signatures.

An ST process knows its own UID and signature key. It also knows the UID and the verification key for the CA process. ST processes obtain the verification keys for other ST processes from the CA during transaction initialization. Each message is authenticated by the sender by signing the message digest of the message (including message type).

Each transaction in the system has a unique identifier (TID). A transaction contains one or more subtransactions, and may have a separate subtransaction for each process-pair in the system. A subtransaction is identified by its TID and by the unordered UIDs of the two processes in the subtransaction.

Each ST process maintains context for each subtransaction in which it is participating. The context defines the message order in the subtransaction and is computed when a new message is sent or received by taking the message digest of the concatenation of the old context and the new message. The context is included in all data messages so that the data being sent is effectively represented as the result of previous messages.

3.1.1 The ST process

A transaction begins when one process attempts to begin a subtransaction for an unused TID. If both parties accept, the transaction begins with a single subtransaction. Each party can then have other processes join the transactions by beginning new subtransactions.

For each subtransaction the process stores the current state of that subtransaction, the data messages sent and received, and the other process's verification key.

Within a subtransaction message transfer is half duplex, controlled by a send token. Only the party with the send token can transmit messages or choose to end the subtransaction. This limitation makes it easy to define the total order of messages necessary for correct commitment.

The message sequence as well as the data format and content are not defined or constrained by this protocol. This makes it possible to use STP as the basis for general forms of commerce.

At the end of the subtransaction, each process can choose to commit or abort. An abort will end the whole transaction. Commitment is done on a per subtransaction basis, and is dependent upon both the commitment of the processes and their agreement on the subtransaction context.

These message transfers are depicted in Figure 1. In this figure, P and Q are ST processes, while CA is the commit authority.

  
Figure 1: Basic protocol
\begin{figure}
\centering
\begin{picture}
(210,420)
\thicklines
\put(0,0){\fram...
...48,58){\em T-commit}
\put(145,60){\vector(-4,-1){40}}
\end{picture}
\end{figure}

This protocol assumes that the underlying message transport mechanism will provide reliable, ordered communication except in the presence of severe media failures or in the event of an adversarial attack. If the communication channel cannot confirm the correct delivery of a message, it will return a fault exception to the process.

3.1.2 The CA process

The CA process in the system manages transaction commitment. The CA maintains the state of each transaction in the system as well as the state of each ST process with regard to the transaction.

ST processes communicate with the CA only when they begin or end a subtransaction. At the beginning of a subtransaction, each process must notify the CA whether they wish to accept or reject the subtransaction. Once the CA has heard from both processes, it will notify them of the transaction status and, if both have accepted, pass one of them the send token for the subtransaction.

At the termination of the subtransaction, both ST processes must notify the CA whether they wish to commit or abort the subtransaction. In the commit message, each process must include the final context for that subtransaction, which defines the state of the subtransaction. If both processes commit and both processes report the same context, then the CA will mark that subtransaction as committed.

If any subtransaction is aborted, then the CA will abort the entire transaction. If all subtransactions eventually commit, the CA will commit the transaction.

The CA can also be queried for the status of any transaction. This information can be used by exchange authorities to determine if the exchange of goods, services or money should proceed.

In the following sections, we define STP, in terms of protocol messages, states and and state transitions.

3.2 Protocol Messages

3.2.1 The ST Process

The ST process can send the following messages:
transaction begin
The T-begin message is used to initiate a new transaction or to initiate a subtransaction for a transaction in which the process is already a participant. It is sent from one ST process to the CA. This message contains:
1.
the transaction identifier (TID)
2.
the UID of the other process in the subtransaction.
3.
the message signature
transaction accept
An ST process can either accept or reject a T-join request. To accept, it sends a T-accept message to the CA. This message contains:
1.
the TID
2.
the UID of the other process
3.
the message signature
transaction reject
To reject a T-join request, the process sends a T-reject message to the CA. This message contains:
1.
the TID
2.
the UID of the other process.
3.
the message signature
transaction data
Once the transaction has been established, the ST processes exchange data by sending T-data messages to each other. These messages contain:
1.
the TID
2.
the UID of the recipient
3.
the data
4.
the context
5.
the message signature
transaction token
Communication in STP is half duplex. When one ST process is through sending T-data messages, it will send a T-token message to allow the other ST process to transmit. This message contains:
1.
the TID
2.
the UID of the recipient
3.
the message signature
transaction end
When a process wishes to end a subtransaction, it sends a T-end message to the CA. This message contains:
1.
the TID
2.
the UID of the other process
3.
the message signature
transaction commit
In response to a T-prepare message, an ST process can either commit or abort the subtransaction. To commit, the process sends a T-commit message to the CA. This message contains:
1.
the TID
2.
the UID of the other process
3.
the context
4.
the message signature
transaction abort
In response to a T-prepare message, a process can terminate the subtransaction without commitment by sending a T-abort message to the CA. This message contains:
1.
the TID
2.
the UID of the other process
3.
the message signature
transaction query
A process can determine the status of a transaction at any time by sending a T-query message to the CA. This message contains:
1.
the TID
2.
the message signature

3.2.2 The CA Process

The CA process can send the following messages:
transaction join
If the CA receives a T-begin message from a process for a new subtransaction, it sends T-join messages to both processes. This message contains:
1.
the TID
2.
the UID of the other process
3.
the UID of the recipient
4.
the message signature
transaction accepted
If the CA receives valid T-accept messages from two ST processes for a new subtransaction, it will return a T-accepted message to both processes. This message contains:
1.
the TID
2.
the UID of the other process.
3.
the UID of the recipient
4.
the verification key for the other process
5.
the initial state (sending or receiving)
6.
the message signature
transaction rejected
In order to reject a new subtransaction, the CA will send T-rejected messages to both ST processes. This message contains:
1.
the TID
2.
the UID of the other process
3.
the UID of the recipient
4.
the message signature
transaction prepare
If the CA receives a T-end message from a process for a subtransaction, it sends T-prepare messages to both processes in the subtransaction. This message contains:
1.
the TID
2.
the UID of the other process
3.
the UID of the recipient
4.
the message signature
transaction status
The CA responds to T-query messages from ST processes by sending a T-status message. This message contains:
1.
the TID
2.
the status
3.
the message signature

3.2.3 System Messages

The system can send the following message:
transaction fault
If there is a failure in communications, the communication system will `send' a T-fault message to the process for each message sent by that process which cannot be delivered with the defined semantics. This message contains the TID and the UID for the transaction during which the message was sent.

3.3 Protocol States and Transitions

3.3.1 The ST Process

Each ST process maintains state for all subtransactions and transactions in which it is involved.

Subtransactions move between states according to messages sent or received. Invalid messages (those without a verifiable signature or that are not acceptable in the current state of the subtransaction) are discarded. The subtransaction state machine for the ST process, excluding certain less important message types and states, is depicted in Figure 2. The ST subtransaction states and state transitions are:

  
Figure 2: ST State Machine
\begin{figure*}
\centering
\begin{picture}
(420,320)
\thicklines
\put(0,0){\fra...
...(72,15){\bf recv({\em T-accepted})}}
\par\normalsize
\end{picture}
\end{figure*}

null
ST processes begin each subtransaction in the null state. For a subtransaction in this state, processes may send the following message:
T-begin
indicates that the process wishes to begin a new subtransaction and will cause the subtransaction to enter the beginning state.
Processes may also receive the following message:
T-join
will cause the process to send one of the following messages:
T-accept
will cause the subtransaction to move to the accepting state.
T-reject
will cause the subtransaction to move to the void state.

beginning
If a process decides to begin a new subtransaction, the subtransaction moves to the beginning state while the process waits for the CA to complete the subtransaction initialization. For a subtransaction in this state, processes may send no new messages and may receive the following messages:
T-join
will cause the process to send one of the following messages:
T-accept
will cause the subtransaction to move to the accepting state.
T-reject
will cause the subtransaction to move to the void state.
T-fault
will cause the process to resend the T-begin message.

accepting
If a process has decided to accept the new subtransaction, the subtransaction will move to the accepting state while the process waits for the CA to either accept or reject the subtransaction. For a subtransaction in this state, processes may send no new messages and may receive the following messages:
T-accepted
will cause the subtransaction to move to the sending or receiving state.
T-rejected
will cause the subtransaction to move to the void state.
T-fault
will cause the process to resend the T-accept message.

void
If a subtransaction is rejected by either ST process or by the CA, the subtransaction moves to the void state, a terminal state. For a subtransaction in this state, processes may receive the following message:
T-fault
will cause the process to resend the T-reject message.

sending
If a subtransaction is active, the process may either send or receive date messages. If a subtransaction is in the sending state, a process may send the following messages:
T-data
will cause the subtransaction to remain in the sending state.
T-token
will cause the subtransaction to move to the receiving state.
T-end
will cause the subtransaction to move to the ending state.
A sending process may receive the following message:
T-fault
will cause the process to send the T-end message and move the subtransaction to the ending state.

receiving
For a subtransaction in the receiving state, a process may receive the following messages:
T-data
will cause the subtransaction to remain in the receiving state.
T-token
will cause the subtransaction to move to the sending state.
T-fault
will cause the process to send the T-end message and move the subtransaction to the ending state.
T-prepare
will cause the process to send one of the the following messages:
T-commit
will cause the subtransaction to move to the committed state.
T-abort
will cause the subtransaction to move to the aborted state.

ending
If a process has decided to end the subtransaction, the subtransaction will move to the ending state while the process waits for the CA to terminate the subtransaction. For a subtransaction in this state, the process may send no new messages and may receive the following messages:
T-prepare
will cause the process to send one of the following messages:
T-commit
will cause the subtransaction to move to the committed state.
T-abort
will cause the subtransaction to move to the aborted state.
T-fault
will cause the process to resend the T-end message.

aborted
For a subtransaction in this terminal state, processes may receive the following message:
T-fault
will cause the process to resend the T-abort message.

committed
For a subtransaction in this terminal state, processes may receive the following message:
T-fault
will cause the process to resend the T-commit message.

Each ST process also maintains state for each transaction. The transaction state changes according to local process subtransaction state changes and global transaction state changes at the CA. The ST transaction states and state transitions are:

null
if the process has not joined the transaction.
active
if the process is active (sending or receiving) for one or more subtransactions.
ending
if the process has committed all of its subtransactions and is waiting for the CA to commit or abort the transaction as a whole. In this state the ST process will repeatedly query the CA for transaction status.
committed
if the CA has committed the transaction successfully and notified the ST process with a T-status message.
aborted
if the CA has aborted the transaction and notified the ST process with a T-status message.

3.3.2 The CA Process

The CA process maintains state for all subtransactions and transactions in the system. The subtransaction state is per process.

Subtransactions move between states according to messages sent or received. Invalid messages (those without a verifiable signature or that are not acceptable in the current state of the subtransaction) are discarded. The CA subtransaction states and state transitions are:

null
This is the initial state for each subtransaction. In this state, the CA may receive the following message:
T-begin
will set the state for both processes in the subtransaction to beginning if either the transaction state is null or the transaction state is active and the sender is a member of the transaction; the CA will also send T-join messages to both processes.

beginning
In the beginning state, one ST process has decided to initialize the subtransaction and the CA is waiting for both ST processes to either accept or reject the subtransaction. In this state, the CA may receive the following messages:
T-accept
if the other process is in the:
beginning
state will set the state for this process to accepting.
accepting
state will set the subtransaction state for both processes to active and the CA will send T-accepted messages to both processes.
T-reject
will set the subtransaction state for both processes to void and the CA will send T-reject messages to both processes.

void
The subtransaction enters this state if either process decided not to join. This state is terminal, and the CA cannot receive or send any messages in this state.

active
In the active state, both ST processes joined the subtransaction and are exchanging data. In this state, the CA may receive the following message:
T-end
will set the subtransaction state for both processes to ending and the CA will send T-prepare messages to both processes.

ending
In the ending state, one ST process has decided to end the subtransaction and the CA is waiting for both ST processes to either commit or abort the subtransaction. In this state, the CA may receive the following messages:
T-commit
if the other process is in the:
ending
state will set the state for this process to committed.
committed
state will set the subtransaction state for both processes to committed if the committed subtransaction contexts agree; otherwise the CA sets the state for both processes to aborted.
T-abort
will set the subtransaction state for this process to aborted.

committed
This state is terminal, and the CA cannot receive or send any messages in this state.

aborted
This state is terminal, and the CA cannot receive or send any messages in this state.

The CA also maintains state for each transaction. The transaction state changes according to subtransaction state changes. The CA transaction states and state transitions are:

null
This is the initial transaction state. It will move to the beginning state if any process attempts to initialize a new subtransaction for this transaction.

beginning
This is an initialization state. If both process accept the new subtransaction, the transaction moves to the active state. Otherwise, the process will return to the null state.

active
A transaction will remain in the active state until one of its subtransactions is aborted or until all of its active subtransactions have committed. The former condition causes the transaction to move to the aborted state while the latter causes the transaction to move to the committed state.

committed
This is a terminal state for the transaction.

aborted
This is a terminal state for the transaction.

4. Conclusion

In this paper we have presented a protocol for secure transactions that provides the new or extended properties of atomicity, isolation, verifiable causality, scalability, layering and separation of roles, as well as existing properties of integrity, authentication and non-repudiation. This protocol can be used to enable electronic transactions for more complex forms of commerce than are currently supported by existing electronic commerce protocols.

This protocol is complementary to existing secure message protocols, in that existing elements like cryptographic signatures used in a compatible manner, and new elements like context are orthogonal to the other elements in existing protocols. Thus, the properties can also be added easily to these protocols.

Bibliography

1
Kenneth P. Birman and Robbert van Renesse.
Reliable Distributed Computing with the Isis Toolkit.
IEEE Computer Society Press, Los Alamitos, CA, 1994.

2
Alan O. Freier, Philip Karlton, and Paul C. Kocher.
The SSL Protocol v3.0.
Internet Draft, March 1996.

3
Jim Gray and Andreas Reuter.
Transaction Processing: Concepts and Techniques.
Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1993.

4
Charlie Kaufman, Radia Perlman, and Mike Speciner.
Network Security: Private Communication in a Public World.
Prentice Hall, Englewood Cliffs, NJ, 1995.

5
L. Lamport.
Time, Clocks and the Ordering of Events in a Distributed System.
Communications of the ACM, 21(7):558-565, July 1978.

6
Larry L. Peterson, Nick C. Buchholz, and Richard D. Schlichting.
Preserving and Using Context Information in Interprocess Communication.
Technical Report TR 88-23, The University of Arizona, Tucson, AZ, 1988.

7
Larry L. Peterson and Bruce S. Davie.
Computer Networks: A Systems Approach.
Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1996.

8
Michael Reiter and Li Gong.
Securing Causal Relationships in Distributed Systems.
The Computer Journal, January 1996.

9
Bruce Schneier.
E-Mail Security: How to Keep Your Electronic Messages Private.
John Wiley and Sons, Inc., New York, NY, 1995.

10
Bruce Schneier.
Applied Cryptography.
John Wiley and Sons, Inc., New York, NY, second edition, 1996.

11
M. Sirbu and J. D. Tygar.
Netbill: An Internet Commerce System Optimized for Network Delivered Services.
IEEE Personal Communications, 2(4):34-39, August 1995.

12
Sean W. Smith and J. D. Tygar.
Signed Vector Timestamps: A Secure Protocol for Partial Order Time.
Technical Report CMU-CS-93-116, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, February 1993.

13
Douglas H. Steves, Chris Edmondson-Yurkanan, and Mohamed Gouda.
A Protocol for Secure Transactions.
In The Second USENIX Workshop on Electronic Commerce, pages 201-212, November 1996.

14
Jiawen Su and J. D. Tygar.
Building Blocks for Atomicity in Electronic Commerce.
In The 6th Usenix Security Symposium, pages 97-102, July 1996.

15
J. D. Tygar.
Atomicity in Electronic Commerce.
In Proceedings of the Fifteen ACM Symposium on Principles of Distributed Computing, pages 8-26, May 1996.

16
VISA and MasterCard and others.
Secure Electronic Transaction Specification, Books 1-3, version 1.0 edition, May 1997.

Author Information

Douglas Steves is a graduate student at the University of Texas. He has a B.A. in Classics and a B.S. in Mathematics from the University of Toledo and an M.A. in Computer Sciences from the University of Texas.

Chris Edmondson-Yurkanan is a senior lecturer at the University of Texas. She has a B.A. in Mathematics and Computer Sciences and an M.A. in Computer Sciences from the University of Texas.

Mohamed Gouda is the Mike A. Myers Centennial Professor at the University of Texas. He has a B.S. in Engineering and a B.S. in Mathematics from the University of Cairo, an M.S. in Mathematics from York University (Ontario, Canada), and an M.Math. and a Ph.D. in Computer Science from the University of Waterloo.

About this document ...

Properties of
Secure Transaction Protocols

This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)

Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 -no_navigation -show_section_numbers -no_auto_link -toc_depth 4 pstp.

The translation was initiated by Douglas H. Steves on 1998-12-17


Footnotes

... section.1
Privacy is omitted to enhance clarity.


Douglas H. Steves
1998-12-17