DBMS

The SET Protocol

By Kurt Indermaur
DBMS, September 1997

New standards for ensuring safe payment card transmissions across the Internet.


Early last year, Visa and MasterCard joined forces to develop a single standard to secure payment card transactions over insecure networks. They released the first draft of the standards last summer, and since then they have been working feverishly to educate potential users and software developers. The final version of the specification came out May 31, and Secure Electronic Transactions (SET)-compliant applications should appear by the end of the year. Other major card brands, including American Express and NOVUS (Discover), have also endorsed the SET standard.

SET's goals are to provide confidentiality, authentication, and integrity of payment card transmissions. To do this, SET uses a variety of cryptographic techniques, including encryption, digital signatures, and certificates.

Certificates

The first thing all SET participants need -- cardholders, card issuers, merchants, and "acquirers" (like an issuer, but for merchants) -- is a set of public/private key pairs. Once you've generated these, you must get your public key guaranteed in a certificate issued by a trusted third party or certificate authority. The certificate authority's certificate is in turn guaranteed by another certificate authority, up a hierarchy of trust that culminates in a "root" certificate authority. Should any certificate become compromised (including the root), the standard has procedures in place to revoke and reissue certificates.

To help maintain security, cardholder certificates contain a one-way hashed value of the card number, expiration date, and a secret value generated by the cardholder's software. The information cannot be recovered directly from the certificate, but the cardholder can prove the certificate is his or hers by providing account information. For most cardholders, their certificate authority will be the same company that issues their card. How a certificate authority verifies the identity of the certificate holder is outside the scope of the standard, but the process is likely to be similar to opening an account at a bank.

The developers of the SET standard are aware that most cardholders don't know, or care, about certificates right now, and educating them and building the infrastructure to issue and maintain large numbers of certificates takes time. As a result, they have allowed "interim" implementations to temporarily forgo issuing cardholder certificates (all other certificates are required). In this case, messages back to the cardholder (order status, for example) are not encrypted, but the integrity of messages from the cardholder is still ensured by the use of a message digest.

Transactions

Now armed with the necessary keys and certificates, a cardholder can start adding to his or her debt. Most SET transactions consist of two rounds of requests and responses. First, the requester and responder exchange certificates and verify each other's authentication information. Then, if the first round succeeds, the actual request and response take place.

Let's say you've decided what you want to buy, your software has completed the round of certificate exchanges successfully, and now you're ready to send your purchase on its way. From the certificate exchange, you have the merchant's public key, the payment processor's key, and a unique transaction identifier issued by the merchant. How does SET deliver your purchase securely?

First, you create the necessary order information (OI) and payment instructions (PI). Both include the merchant-assigned transaction identifier. Next, you apply a one-way hashing function to make digests of both the order information and payment instructions. Then you create a "dual signature." This allows both the merchant and payment processor to independently verify that your payment instructions and order information belong together without requiring either processor to see the other's data. SET's dual signature is a digest of the concatenation of the OI and PI message digests, encrypted with your private key. For better encryption/decryption performance, you select a random symmetric key and encrypt the payment instructions with it; and, finally, you encrypt the random symmetric key and your account number with the payment processor's public key. When you're done, you have a message containing:

Safe ... For Now

As you can see, SET messages can be quite complex, and the specified key sizes (1,024- and 2,048-bit) are quite secure for now; but that in itself is not enough to guarantee security. As we've learned from the experiences of Netscape and others, the devil is in the details when it comes to implementing cryptographic algorithms. On paper, SET has gone a long way toward making payment card purchases more secure than they've ever been. For more information on SET, see either MasterCard's Web site, at www.mastercard.com/set or Visa's, at www.visa.com/cgi-bin/vee/sf/standard.html?2+0 .


Kurt Indermaur is former webmaster and current senior systems architect at Intuit Inc. You can email Kurt at Kurt_Indermaur@intuit.com.

What did you think of this article? Send a letter to the editor.


Subscribe to DBMS and Internet Systems -- It's free for qualified readers in the United States
September 1997 Table of Contents | Other Contents | Article Index | Search | Site Index | Home

DBMS and Internet Systems (http://www.dbmsmag.com)
Copyright © 1997 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.
Please send questions or comments to dbms@mfi.com
Updated Friday, August 8, 1997