diff options
Diffstat (limited to 'doc/rfc/rfc1898.txt')
-rw-r--r-- | doc/rfc/rfc1898.txt | 2915 |
1 files changed, 2915 insertions, 0 deletions
diff --git a/doc/rfc/rfc1898.txt b/doc/rfc/rfc1898.txt new file mode 100644 index 0000000..fe8a18c --- /dev/null +++ b/doc/rfc/rfc1898.txt @@ -0,0 +1,2915 @@ + + + + + + +Network Working Group D. Eastlake 3rd +Request for Comments: 1898 CyberCash +Category: Informational B. Boesch + CyberCash + S. Crocker + CyberCash + M. Yesil + CyberCash + February 1996 + + + CyberCash Credit Card Protocol Version 0.8 + +Status of this Memo + + This memo provides information for the Internet community. This memo + does not specify an Internet standard of any kind. Distribution of + this memo is unlimited. + +Abstract + + CyberCash is developing a general payments system for use over the + Internet. The structure and communications protocols of version 0.8 + are described. This version includes credit card payments only. + Additional capabilities are planned for future versions. + + This document covers only the current CyberCash system which is one + of the few operational systems in the rapidly evolving area of + Internet payments. CyberCash is committed to the further development + of its system and to cooperation with the Internet Engineering Task + Force and other standards organizations. + +Acknowledgements + + The significant contributions of the following persons (in alphabetic + order) to this protocol are gratefully acknowledged: + + Bruce Binder, Judith Grass, Alden Hart, Steve Kiser, Steve + Klebe, Garry Knox, Tom Lee, Bob Lindenberg, Jim Lum, Bill + Melton, Denise Paredes, Prasad Chintamaneni, Fred Silverman, + Bruce Wilson, Garland Wong, Wei Wu, Mark Zalewski. + + In addition, Jeff Stapleton and Peter Wagner made useful comments on + the first version of this memo. + + + + + + + +Eastlake, et al Informational [Page 1] + +RFC 1898 CyberCash Version 0.8 February 1996 + + +History + + For historic purposes, it should be noted that this document was + first posted as an Internet draft, and thus made publicly available, + on 8 July 1995. + +Table of Contents + + 1. Overall System..........................................3 + 1.1 System Overview........................................3 + 1.2 Security Approach......................................5 + 1.2.1 Authentication and Persona Identity..................5 + 1.2.2 Privacy..............................................6 + 1.3 Credit Card Operation..................................6 + 2. General Message Wrapper Format..........................7 + 2.1 Message Format.........................................7 + 2.2 Details of Format......................................8 + 2.3 Body Parts.............................................8 + 2.4 Transparent Part.......................................9 + 2.5 Opaque Part...........................................10 + 2.6 Trailer...............................................10 + 2.7 Example Messages......................................11 + 3. Signatures and Hashes..................................12 + 3.1 Digital Signatures....................................12 + 3.2 Hash Codes............................................13 + 4. Specific Message Formats...............................13 + 4.1 Persona Registration and Application Retrieval........14 + 4.1.1 R1 - registration...................................14 + 4.1.2 R2 - registration-response..........................15 + 4.1.3 GA1 - get-application...............................16 + 4.1.4 GA2 - get-application-response......................17 + 4.2 Binding Credit Cards..................................18 + 4.2.1 BC1 - bind-credit-card..............................18 + 4.2.2 BC4 - bind-credit-card-response.....................20 + 4.3 Customer Credit Card Purchasing Messages..............21 + 4.3.1 PR1 - payment-request...............................21 + 4.3.2 CH1 - credit-card-payment...........................23 + 4.3.3 CH2 - charge-card-response..........................24 + 4.4 Merchant Credit Card Purchasing Messages..............25 + 4.4.1 CM1 - auth-only.....................................26 + 4.4.2 CM2 - auth-capture..................................28 + 3.4.3 CM3 - post-auth-capture.............................28 + 4.4.4 CM4 - void..........................................30 + 4.4.5 CM5 - return........................................32 + 4.4.6 CM6 - charge-action-response........................32 + 4.4.7 The MM* Message Series..............................34 + 4.4.8 CD1 - card-data-request.............................35 + 4.4.9 CD2 - card-data-response............................37 + + + +Eastlake, et al Informational [Page 2] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + 4.5 Utility and Error Messges.............................38 + 4.5.1 P1 - ping...........................................39 + 4.5.2 P2 - ping-response..................................39 + 4.5.3 TQ1 - transaction-query.............................40 + 4.5.4 TQ2 - transaction-cancel............................41 + 4.5.5 TQ3 - transaction-response..........................42 + 4.5.6 UNK1 - unknown-error................................44 + 4.5.7 DL1 - diagnostic-log................................46 + 4.5.8 DL2 - merchant-diagnostic-log.......................47 + 4.6 Table of Messages Described...........................48 + 5. Future Development.....................................49 + 5.1 The Credit Card Authorization/Clearance Process.......49 + 5.2 Lessons Learned.......................................50 + 6. Security Considerations................................51 + References................................................51 + Authors' Addresses........................................52 + +1. Overall System + + CyberCash, Inc. of Reston, Virginia was founded in August of 1994 to + partner with financial institutions and providers of goods and + services to deliver a safe, convenient and inexpensive system for + making payments on the Internet. The CyberCash approach is based on + establishing a trusted link between the new world of cyberspace and + the traditional banking world. CyberCash serves as a conduit through + which payments can be transported quickly, easily and safely between + buyers, sellers and their banks. Significantly - much as it is the + real world of commerce - the buyer and seller need not have any prior + existing relationship. + + As a neutral third party whose sole concern is ensuring the delivery + of payments from one party to another, CyberCash is the linchpin in + delivering spontaneous consumer electronic commerce on the Internet. + +1.1 System Overview + + The CyberCash system will provide several separate payment services + on the Internet including credit card and electronic cash. To gain + access to CyberCash services, consumers need only a personal computer + with a network connection. Similarly, merchants and banks need make + only minimal changes to their current operating procedures in order + to process CyberCash transactions, enabling them to more quickly + integrate safe on-line payments into their existing service + offerings. Communications with banks are over existing financial + communications networks. + + + + + + +Eastlake, et al Informational [Page 3] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + To get started, consumers download free software from CyberCash on + the Internet. This software establishes the electronic link between + consumers, merchants and their banks as well as between individuals. + To make gaining access to the CyberCash system even easier, CyberCash + "PAY" buttons may be incorporated into popular on-line service and + software graphical user interfaces so that consumers using these + products can easily enter the CyberCash system when they are ready to + make payments for goods and services. Consumers need not have any + prior relationship with CyberCash to use the CyberCash system. They + can easily set up their CyberCash persona on-line. + + Transactions are automated in that once the consumer enters + appropriate information into his own computer, no manual steps are + required to process authorization or clearance transactions through + the entire system. The consumer need only initiate payment for each + transaction by exercising the pay option on an electronic form. + Transactions are safe in that they are cryptographicly protected from + tampering and modification by eavesdroppers. And they are private in + that information about the consumer not relevant to the transaction + is not visible to the merchant. + + +------------+ +------------+ + | | | | + | Internet | | Internet | + | customer +------------+ merchant + + | | | / | + +------------+ +------------+ + / + / + +------------|-+ + | CyberCash | | + | server | | + +-----+------|-+ + | | + | | + +--------------+------|---------+ + | +--------+ +--+-------+ | + | | card +-------+ / charge | | + | | issuer | | acquirer | | + | +--------+ +----------+ | + | | + | The Banking System | + +-------------------------------+ + + SYSTEM OVERVIEW + + + + + + +Eastlake, et al Informational [Page 4] + +RFC 1898 CyberCash Version 0.8 February 1996 + + +1.2 Security Approach + + The CyberCash system pays special attention to security issues. It + uses encryption technology from the world's leading sources of + security technology and is committed over time to employing new + security technologies as they emerge. + +1.2.1 Authentication and Persona Identity + + Authentication of messages is based on Public Key encryption as + developed by RSA. The CyberCash Server maintains records of the + public key associated with every customer and merchant persona. It + is thus able to authenticate any information digitally signed by a + customer or merchant regardless of the path the data followed on its + way to the server. The corresponding private key, which is needed to + create such digital signatures, will be held by the customer or + merchant and never revealed to other parties. In customer software, + the private key is only stored in an encrypted form protected by a + passphrase. + + While the true CyberCash identity of a customer or merchant is + recognized by their public/private key pair, such keys are too + cumbersome (over 100 hex digits) to be remembered or typed by people. + So, the user interface utilizes short alphanumeric ID's selected by + the user or merchant for purposes of specifying a persona. CyberCash + adds check digits to the requested ID to minimize the chance of + accidental wrong persona selection. Persona IDUs are essentially + public information. Possession of an persona ID without the + corresponding private key is of no benefit in the current system. + + Individuals or organizations may establish one or more CyberCash + customer personas directly with CyberCash. Thus, an individual may + have several unrelated CyberCash personas or share a CyberCash + persona with other individuals. This approach provides a degree of + privacy consistent with Internet presence generally and with cash + transactions specifically. However, persona holders who wish to use + a credit card for purchases in conjunction with their CyberCash + persona must first meet such on-line identification criteria as the + card issuing organization requires. + + Control over a CyberCash persona is normally available only to an + entity that possesses the private key for that persona. However, a + special provision is made to associate an emergency close out + passphrase with a CyberCash persona. On receipt of the emergency + close out passphrase, even if received over insecure channels such as + a telephone call or ordinary email, CyberCash will suspend activity + for the CyberCash persona. This emergency close-out passphrase can + be stored separately from and with somewhat less security than the + + + +Eastlake, et al Informational [Page 5] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + private key for the persona since the emergency passphrase can not be + used to divert funds to others. This provides some protection against + loss or misappropriation of the private key or the passphrase under + which the private key in kept encrypted. In the cash system, the + emergency close-out passpharase may also transfer the persona balance + to a designated bank account. + +1.2.2 Privacy + + Encryption of messages use the Digital Encryption Standard (DES), + commonly used in electronic payment systems today. It is planned to + superencrypt (i.e., encrypted more than one level) particularly + sensitive information, such as PIN numbers, and handle them so that + the plain text readable version never exists in the CyberCash system + except momentarily, within special purpose secure cryptographic + hardware that is part of the server, before being re-encrypted under + another key. + + The processing of card charges through the CyberCash system is + organized so that the merchant never learns the customerUs credit + card number unless the merchantUs bank chooses to release this + information to the merchant or it is required for dispute resolution. + In addition, the server maintains no permanent storage of card + numbers. They are only present while a transaction involving that + card is in progress. These practices greatly reduce the chance of + card number misappropriation. + +1.3 Credit Card Operation + + Using the CyberCash system for credit card transactions, once price + has been negotiated and the consumer is ready to purchase, the + consumer simply clicks on the CyberCash "PAY" button displayed on the + merchant interface, which invokes the merchant CyberCash software. + The merchant sends the consumer an on-line invoice that includes + relevant purchase information which appears on the customerUs screen. + (See PR1 message.) The consumer adds his credit card number and + other information by simply selecting from a list of credit cards he + has registered to his CyberCash persona. All this information is + digitally signed by the customer's CyberCash software, encrypted, and + passed, along with a hash code of the invoice as seen by the + customer, to the merchant. (See CH1 message.) + + Upon receipt, the merchant adds additional authorization information + which is then encrypted, electronically signed by the merchant, and + sent to the CyberCash Server. (See CM1 & CM2 messages.) The + CyberCash Server can authenticate all the signatures and be sure that + the customer and merchant agree on the invoice and charge amount. + The CyberCash Server then forwards the relevant information to the + + + +Eastlake, et al Informational [Page 6] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + acquiring bank along with a request on behalf of the merchant for a + specific banking operation such as charge authorization. The bank + decrypts and then processes the received data as it would normally + process a credit card transaction. The bank's response is returned + to the CyberCash Server which returns an electronic receipt to the + merchant (see CM6 message) part of which the merchant is expected to + forward to the customer (see CH2 message). The transaction is + complete. + +2. General Message Wrapper Format + + Version 0.8 of the external format for the encoding of CyberCash + messages is described below. CyberCash messages are stylized + documents for the transmission of financial data over the Internet. + + While there are numerous schemes for sending information over the + Internet (HTTP, SMTP, and others), each is attached to a specific + transmission mechanism. Because CyberCash messages will need to + travel over each of these media (as well as others) a transmission + independent mechanism is needed. + +2.1 Message Format + + CyberCash messages consist of the following components: + + 1. Header - defines the start of the CyberCash message and includes + version information. + + 2. Transparent Part - contains information that is not private. + + 3. Opaque Part(s) - contains the financial information in the + message and is both privacy protected as well as tamper protected. + An opaque part is not present in some messages. When present, the + opaque part usually provides tamper protection for the transparent + part. + + 4. Trailer - defines the end of the CyberCash message and includes a + check value to enable the receiver to determine that the message + has arrived undamaged. Note: this check value is intended only to + detect accidental damage to the message, not deliberate tampering. + + No null characters (zero value) or characters with the eighth bit + on are permitted inside a CyberCash message. "Binary" quantities + that might have such byte values in them are encoded in base64 as + described in RFC 1521. + + + + + + +Eastlake, et al Informational [Page 7] + +RFC 1898 CyberCash Version 0.8 February 1996 + + +2.2 Details of Format + + The header consists of a single line which looks approximately like + this + + $$-CyberCash-0.8-$$ + + or like this + + $$-CyberCash-1.2.3-Extra-$$ + + It includes a number of fields separated with the minus character "-" + + 1. "$$" - the literal string with the initial $ in column 1. + + 2. "CyberCash" - the literal string (case insensitive) + + 3. x.y or x.y.z - the version number of the message format. x is the + primary version number. y is a subversion number. z, if present, is + a subsubversion number. + + 4. "Extra" - an optional additional alphanumeric string. + + 5. "$$" - the literal string + + Version numbers start at 0.7 and count up. The ".z" is omitted when + z is zero. 0.7 and 0.8 are the test and initial shipped version of + the credit card system. 0.9 and 1.0 are expected to also incorporate + the test and initial shipped versions of the cash facilities as well + as improvements to the credit card system. + + The "Extra" string is used within secure environments so that one + subcomponent can scribble a note to another with minimum overhead. + For example, a server firewall could put "HTTP" or "SMTP" here before + forwarding the message to the core server within the firewall + perimeter. + +2.3 Body Parts + + The body parts of the message (both transparent and opaque) consist + of attribute value pairs in formats that are reminiscent of the + standard electronic mail header (RFC822) format. However, there are + some differences. + + Attribute names start with and are composed predominantly of letters + and internal hyphens except that they sometimes end with a hyphen + followed by a number. Such a trailing number is used when there is + logically an indexed vector of values. Attribute names are + + + +Eastlake, et al Informational [Page 8] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + frequently referred to as labels. + + If the label ends with a ":", then RFC822 processing is done. While + the existence of trailing white space is significant, all leading + white space on continuation lines is stripped. Such lines are + wrapped at 64 characters in length, excluding any line termination + character(s). + + However, if the label is terminated with a ";", this indicates a + free-form field where new-line characters and any leading white + space, after the initial space that indicates a continuation line, is + significant. Such lines should not be wrapped except that, to avoid + other processing problems, they are forcibly wrapped at 200 + characters. + + Blank lines are ignored and do not signify a change to a different + mode of line handling. + + Another way of looking at the above is as follows: after having found + an initial $$ start line, you can treat any following lines according + to the first character. If it is alphanumeric, it is a new label + which should be terminated with a ":" or ";" and indicates a new + label-value pair. If it is a white space character, it indicates the + continuation of the value for the preceding new label line. (Exactly + how the continuation is processed depends on the label termination + character.) If it is "$", it should be the end line for the message. + If it is #, it is a comment line and should be ignored. Other + initial characters are undefined. (As of this date, no software + sends CyberCash messages with # lines but they are convenient for + commenting messages stored in files.) + +2.4 Transparent Part + + The transparent part includes any clear-text data associated with the + financial transaction as well as information needed by CyberCash and + others to decrypt the opaque part(s). It always includes a + transaction field which is the transaction number generated by the + requester and which is repeated in the response. It always includes + a date field that is the local date and time at the requester and is + repeated in the response. In all cases other than an initial + registration to establish a persona ID, it includes the requester's + persona ID. + + On messages bound for the server, there is a "cyberkey:" field that + identifies which server public key was used to encrypt the session + key. + + + + + +Eastlake, et al Informational [Page 9] + +RFC 1898 CyberCash Version 0.8 February 1996 + + +2.5 Opaque Part + + The opaque part consists of a single block of characters encoded + using base64 encoding (see RFC 1521). The data in the opaque section + is always encrypted before encoding. + + The label "opaque" or "merchant-opaque" precedes the opaque part + depending on whether the data was encrypted by the client or merchant + software. + + On messages inbound to the server, the data to be opaqued is DES CBC + encrypted under a random transacton key and then that DES key is RSA + encrypted under one of the server's public keys. The RSA encrypted + DES key appears as the first part of the base64 encoded field and is + not broken out as a separate value in the message. The corresponding + outbound reply from the server can simply be DES encrypted under this + transaction key as there is enough plain text information to identify + the transaction and the customer or merchant will have remembered the + transaction key from the inbound message. + + A signature is not generally necessary in the opaque part of a reply + message. Knowledge of the transaction key is adequate + authentication. In order for someone to forge the response, they + would have to know the server's private key to be able to get at the + transaction key. It is assumed that if anyone tampered with the + response opaque part, the probability that it would decrypt to + something that would parse is insignificant. (Just the fact that the + 8th bit has to be off means a chance of 1 in 2**n where there are n + characters and that's ignoring the rest of the formatting.) While + someone can tamper with the transparent part, this usually either has + no effect or means that the client won't find the transaction key, in + which case it's just a particular example of denial of service by + damaging a message. + +2.6 Trailer + + The trailer is intended to close the message and provide a definitive + and parseable end of the message. + + The trailer consists of several fields separated by "-" as in header. + + 1. "$$" - literal string. + + 2. "CyberCash" - literal string (case insensitive). + + 3. "End" - literal string (case insensitive). + + 4. transmission checksum. + + + +Eastlake, et al Informational [Page 10] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + 5. "$$" - literal string. + + The transmission checksum is the MD5 has of all printable characters + in the version number in the start line and those appearing after the + second $$ of the start line and before the first $$ of the trailer + line as transmitted. Note that all white space is left out of this + hash, including any new-lines, spaces, tabs, carriage returns, etc. + The exact label terminators actually used (: or ;) are included as + would any # comment line. Note that the optional "Extra" string in + the $ start line is not included. The idea is to check correct + transmission while avoiding sensitivity to gateways or processing + that might change the line terminator sequence, convert tabs to + spaces, or the like. + +2.7 Example Messages + + Simple message from a client: + + $$-CyberCash-0.8-$$ + id: DONALD-69 + transaction: 918273645 + date: 199512250102 + cyberkey:CC1001 + opaque: + GpOJvDpLH62z+eZlbVkhZJXtTneZH32Qj4T4IwJqv6kjAeMRZw6nR4f0OhvbTFfPm+GG + aXmoxyUlwVnFkYcOyTbSOidqrwOjnAwLEVGJ/wa4ciKKI2PsNPA4sThpV2leFp2Vmkm4 + elmZdS0Qe350g6OPrkC7TKpqQKHjzczRRytWbFvE+zSi44wMF/ngzmiVsUCW01FXc8T9 + EB8KjHEzVSRfZDn+lP/c1nTLTwPrQ0DYiN1lGy9nwM1ImXifijHR19LZIHlRXy8= + $$-End-CyberCash-End-jkn38fD3+/DFDF3434mn10==-$$ + + + Message from a merchant: + + $$-CyberCash-a.b.c-extra-$$ + merchant-ccid: acme-69 + merchant-date: 19951231115959 + merchant-transaction: 987654321 + label: value + + labelx: multiple line + value... + # comment + # another comment line + label; text with a real + multi-line + format ! + merchant-cyberkey: CC1001 + merchant-opaque: + + + +Eastlake, et al Informational [Page 11] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + C1Q96lU7n9snKN5nv+1SWpDZumJPJY+QNXGAm3SPgB/dlXlTDHwYJ4HDWKZMat+VIJ8y + /iomz6/+LgX+Dn0smoAge7W+ESJ6d6Ge3kRAQKVCSpbOVLXF6E7mshlyXgQYmtwIVN2J + 66fJMQpo31ErrdPVdtq6MufynN8rJyJtu8xSNolXlqIYNQy5G2I3XCc6D3UnSErPx1VJ + 6cbwjLuIHHv58Nk+xxt/FyW7yAMwUb9YNcmOj//6Ru0NiOA9P/IiWczDe2mJRK1uqVpC + sDrWehG/UbFTPD26trlYRnnY + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + +3. Signatures and Hashes + + Inbound CyberCash request messages normally have a signature, as + described below, of all of the messages fields outside of the + signature. This signature is transmitted inside the opaque part of + the message. It enables the server to authenticate the source of the + message. + + Messages from a merchant to a client initiating a purchase sequence + have fields signed by the merchant. These fields and this signature + are included by the client in the opaque part of their card purchase + message to the merchant so that, when all is passed on to the server, + it can verify that the client saw the information the merchant + intended. + + More information on CyberCash signatures and the hash codes they are + based on, is given below. + +3.1 Digital Signatures + + Digital signatures are a means of authenticating information. In + CyberCash messages, they are calculated by first taking the hash of + the data to be authenticated, as described below, and then encoding + the hash using an RSA private key. + + Anyone possessing the corresponding public key can then decrypt the + hash and compare it with the message hash. If they match, then you + can be sure that the signature was generated by someone possessing + the private key which corresponded with the public key you used and + that the message was not tampered with. + + In the CyberCash system, clients, merchants, and the server have + public-private key pairs. By keeping the private key secret and + registering their public key with the server (for a merchant or + client) or publishing their public key or keys (for the server), they + can provide high quality authentication by signing parts of messages. + + An RSA digital signature is approximately the size of the modulus + used. For example, if that is 768 bits long, then the binary digital + signature would be 768 bits or 96 bytes long and its base 64 encoding + would be 128 bytes. + + + +Eastlake, et al Informational [Page 12] + +RFC 1898 CyberCash Version 0.8 February 1996 + + +3.2 Hash Codes + + The hashes used in CyberCash messages are message digests. That is, + a non-invertable fingerprint of a message such that it is + computationally infeasible to find an alternate message with the same + hash. Thus the relatively small hash can be used to secure a larger + message. If you are confident in the authenticity of the hash and + are presented with a message which matches the hash, you can be sure + it is the original message, at least as regards all aspects that have + been included in the hash. + + The hash is calculated using the MD5 algorithm (see RFC 1321) on a + synthetic message. The synthetic message is composed of the labels + and values specified in a list for the particular hash. Since the + hash is input order dependent, it is essential that the label-value + pairs be assembled in the order specified. In some cases, a range of + matching labels is specified. For example, "card*" to match card- + number, card-expiration-date, and all other labels starting with + "card". In such cases, all existing matching labels are used in + ascending alphabetic order by ASCII character code. + + If a label is specified in a signature list but is not present in the + label-value data on which the hash is being calculated, it is not + included in the hash at all. That is, even the label and label + terminator are omitted from the synthetic message. + + Before being hashed, the text of the synthetic message is processed + to remove all "white space" characters. White space characters are + defined as any with an ASCII value of 32 (space) or less or 127 + (rubout) or greater. Thus all forms of new-line/carriage-return and + distinctions such as blank lines, trailing spaces, replacement of a + horizontal tab character by multiple spaces, etc., are ignored for + hash purposes. + + MD5 hashes are 16 bytes long. This means that the base 64 encoding + of such a hash will be 24 characters (of which the last two will + always be padding equal signs). + +4. Specific Message Formats + + This section describes the formats of the Verison 0.8 CyberCash + messages by example with comments. The reader in assumed to be + familiar with terms such as "acquirer", "PAN" (primary account + number), etc., defined in ISO 8583, and currency designations as + defined in ISO 4217. A few fields not relevant to current operations + have been removed to simplify this exposition. + + + + + +Eastlake, et al Informational [Page 13] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + In the following example messages, signatures, hashes, and encrypted + sections are fake nonsense text and ids are fictitious. + +4.1 Persona Registration and Application Retrieval + + The first step in customer use of CyberCash is registering a persona + using the customer application. This is done with the R1 message + defined below. The CyberCash server responds with the R2 message. + + When the customer application learns that it is out of date, it can + use the GA1 request message to the server and its GA2 response to + download a new signed version of itself. + +4.1.1 R1 - registration + + Description: This is the initial message sent to create a new + CyberCash persona. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + transaction: 123123213 + date: 19950121100505.nnn + cyberkey: CC1001 + opaque: + FrYOQrD16lEfrvkrqGWkajM1IZOsLbcouB43A4HzIpV3/EBQM5WzkRJGzYPM1r3noBUc + MJ4zvpG0xlroY1de6DccwO9j/0aAZgDi9bcQWV4PFLjsN604j3qxWdYn9evIGQGbqGjF + vn1qI1Ckrz/4/eT1oRkBBILbrWsuwTltFd84plvTy+bo5WE3WnhVKsCUJAlkKpXMaX73 + JRPoOEVQ3YEmhmD8itutafqvC90atX7ErkfUGDNqcB9iViRQ7HSvGDnKwaihRyfirkgN + +lhOg6xSEw2AmYlNiFL5d/Us9eNG8cZM5peTow== + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + + Opaque Key: Generated using CyberCash encrypting public key + identified in CyberKey. + + ##################################################################### + Opaque Section Contents: + + type: registration + swversion: 0.8win + content-language: en-us + requested-id: MyRequestedCCID + + + +Eastlake, et al Informational [Page 14] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + email: myemail@myemailhost.com + pubkey: + 0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX + E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94 + signature: + v6JGmxIwRiB6iXUK7XAIiHZRQsZwkbLV0L0OpVEvan9l59hVJ3nia/cZc/r5arkLIYEU + dw6Uj/R4Z7ZdqO/fZZHldpd9+XPaqNHw/y8Arih6VbwrO5pKerLQfuuPbIom + + ##################################################################### + signature is of the following fields: transaction, date, cyberkey, + type, swversion, content-language, requested-id, email, pubkey + + ##################################################################### + Explanation: + content-language is taken from the MIME header field (see RFC1766) + and is the language text messages should be generated in. (only + en-us implemented at this time. + swversion used to check if client application is old. + + +4.1.2 R2 - registration-response + + Description: This message gives the success/failure response to R1. + + ##################################################################### + Sender: CyberServer + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + transaction: 12312313 + date: 19950121100505.nnn + opaque: + r1XfjSQt+KJYUVOGU60r7voFrm55A8fP5DjJZuPzWdPQjGBIu3B6Geya8AlJfHsW11u8 + dIv1yQeeYj/+l9TD1dXW21/1cUDFFK++J2gUMVv8mX1Z6Mi4OU8AfsgoCliwSkWmjSOb + kE62sAlZTnw998cKzMFp70TSlI3PEBtvIfpLq5lDCNbWidX8vFZV0ENUmMQ9DTP3du9w + fsFGvz1mvtHLT/Gj8GNQRYKF4xiyx4HYzTkSMhgU5B/QDLPS/SawIJuR86b9X0mwsr0a + gbGTzECPJTiKkrhxxMG/eymptsVQSLqNaTCx6w== + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + Opaque Key: Same as session key for R1 for same Transaction and + connection (there may be no ID!). + + ##################################################################### + Opaque Section Contents: + + + + +Eastlake, et al Informational [Page 15] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + type: registration-response + server-date: 19950121100506.nnn + requested-id: MyRequestedCCID + response-id: CyberCashHandle + email: myemail@myemailhost.com + response-code: success/failure/etc. + pubkey: + 0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX + E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94 + swseverity: fatal/warning [absent if ok] + swmessage; Tells CyberApp that it is obsolete. Display this + text to the user. [only present if SWSeverity present] + message; + Free text of the error/success condition. + This text is to be displayed to the person + by the CyberCash application... + + In general this includes: duplicate-id, bad-signature, + or ill-formed-registration + + ##################################################################### + Signature is of the following fields: no-signature + + ##################################################################### + Explanation: + responseid is used to suggest a unique ID if the failure was due + to the requested ID being already in use... If the reason for + failure was not due to duplicate ID then this field may be + omitted. + responseid gives the actual ID with check characters appended if + success. + swseverity can warn user of old client application or indicate + failure due to old or known buggy version. + + +4.1.3 GA1 - get-application + + Description: Used by CyberApp to get an updated version. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + transaction: 123123213 + date: 19950121100505.nnn + + + +Eastlake, et al Informational [Page 16] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + cyberkey: CC1001 + opaque: + VHMS611wGkUmR6bKoI+ODoSbl7L5PKtEo6aM88LCidqN+H/8B4xM3LxdwUiLn7rMPkZi + xOGb+5d1lRV7WeTp21QYlqJr8emc6FAnGd5c0csPmcnEpTFh9xZDJaStarxxmSEwm2mw + l2VjEUODH6321vjoMAOFQWn7ER0o + $$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$ + + ##################################################################### + Opaque Key: Generated using CyberCash encrypting public key identified + in CyberKey. + + ##################################################################### + Opaque Section Contents: + + type: get-application + swversion: 0.8win + + ##################################################################### + Signature is of the following fields: no signature + + ##################################################################### + Explanation: + There may not be a customer persona so there is no ID. There + may not be a customer public/private key pair so there is + no signature. The swversion is mandatory so the server can + tell what to return. + + +4.1.4 GA2 - get-application-response + + Description: Return success and URL of up to date copy of CyberApp + or failure. + + ##################################################################### + Sender: CyberServer + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + transaction: 12312313 + date: 19950110102333.nnn + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + + + +Eastlake, et al Informational [Page 17] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + $$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$ + + + ##################################################################### + Opaque Key: session key from GA1 + + ##################################################################### + Opaque Section Contents: + + type: get-application-response + server-date: 19950110102334.nnn + response-code: success/failure/etc. + message; Text message to be displayed to the user providing more + information on the success/failure. + swversion: 0.8win + application-url: http://foo.cybercash.com/server/0.8WIN.EXE + application-hash: lSLzs/vFQ0BXfU98LZNWhQ== + + ##################################################################### + Signature: none. + + ##################################################################### + Explanation: + application-hash is the MD5 of the binary of the application. + application-url & application-hash omitted on failure. + swversion is the version being transmitted to the customer. + + +4.2 Binding Credit Cards + + The CyberCash system is design to give the card issuing organization + control over whether a card may be used via the CyberCash system. + The customer, after having registered a persona with CyberCash as + described above, can then bind each credit card they wish to use to + their CyberCash persona. This is done via the BC1 message from the + customer to their CyberCash server and the BC4 response from the + server. + +4.2.1 BC1 - bind-credit-card + + Description: This is the initial message in the process of binding a + credit card to a CyberCash persona. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + + +Eastlake, et al Informational [Page 18] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + $$-CyberCash-0.8-$$ + id: MyCyberCashID + date: 19950121100505.nnn + transaction: 12312314 + cyberkey: CC1001 + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + Opaque Key: generated from CyberCash encryption key identified in + CyberKey + + ##################################################################### + Opaque Section Contents: + + type: bind-credit-card + swversion: 0.8win + card-number: 1234567887654321 + card-type: mastercard + card-salt: 46735210 + card-expiration-date: 05/99 + card-name: John Q. Public + card-street: + card-city: + card-state: + card-postal-code: + card-country: + signature: + tX3odBF2xPHqvhN4KVQZZBIXDveNi0eWA7717DNfcyqh2TpXqgCxlDjcKqdJXgsNLkY7 + GkyuDyTF/m3SZif64giCLjJRKg0I6mqI1k/Dcm58D9hKCUttz4rFWRqhlFaj + + ##################################################################### + signature is of the following fields: id, date, transaction, + cyberkey, type, swversion, card-number, card-salt, + card-expiration-date, card-name, card-street, card-city, + card-state, card-postal-code, card-country + + ##################################################################### + Explanation: + salt is needed so that the hash stored at the server is less + informative. Server just remembers the "prefix" of the card + number and the hash of the combined card number and salt. If it + just hashed the card number, it would be recoverable with modest + + + +Eastlake, et al Informational [Page 19] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + effort by trying to hash all plausible numbers. We don't want + to store the card numbers on the server because it would make + the server files too valuable to bad guys. + + +4.2.2 BC4 - bind-credit-card-response + + Description: Indicates that the process of binding a credit card + terminated. Returns success or failure. + + ##################################################################### + Sender: CyberServer + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + id: mycybercashid + transaction: 12312314 + date: 19950121100505.nnn + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + Opaque Key: Session key from BC1 with same Transaction and ID + + ##################################################################### + Opaque Section Contents: + + type: bind-credit-card-response + server-date: 19950121100506.nnn + swseverity: fatal/warning [absent if ok] + swmessage; message about obsoleteness of customer software + to be shown to the customer. [only present if SWSeverity present] + response-code: success/failure/etc. + card-number: 1234567887654321 + card-type: visa + card-salt: 47562310 + card-expiration-date: 01/99 + card*: [other card* lines to also be given in CH.1 message] + message; Plain text for the user + can be multiple lines + + + + +Eastlake, et al Informational [Page 20] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + ##################################################################### + Signature is of the following fields: no-signature + + ##################################################################### + Explanation: All the card* lines can be saved as a blob to be + submitted in CH.1. card-expiration-date, card-number, card-salt, + and card-type should always be present. + Depending on reason for failure, not all fields may be present. + + +4.3 Customer Credit Card Purchasing Messages + + In general, CyberCash involvement in the credit card purchasing cycle + starts after the user has determined what they are buying. When they + click on the CyberCash payment button, a PR1 message is sent by the + merchant to the customer as the body of a message of MIME type + application/cybercash. + + If the customer wishes to proceed, they respond to the merchant with + a CH1. The merchant responds with a CH2 but between the receipt of + the CH1 and issuance of the CH2, the merchant usually communicates + with the CyberCash server via the CM* messages. + + +4.3.1 PR1 - payment-request + + Description: This message is the first message that is defined + by CyberCash in the purchase-from-a-merchant process. The + shopping has completed. Now we are at the point of paying + for the purchases. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + type: payment-request + merchant-ccid: ACME-012 + merchant-order-id: 1231-3424-234242 + merchant-date: 19950121100505.nnn + note; + ACME Products + + Purchase of 4 pairs "Rocket Shoes" at $39.95 ea. + Shipping and handling $5.00 + + + + +Eastlake, et al Informational [Page 21] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + Total Price: 164.80 + + Ship to: + Wily Coyote + 1234 South St. + Somewhere, VA 12345 + merchant-amount: usd 164.80 + accepts: visa:CC001, master:CC001,amex:CC001,JCPenny:VK005,macy:VK006 + url-pay-to: http://www.ACME.com/CybercashPayment + url-success: http://www.ACME.com/ordersuccess + url-fail: http://www.ACME.com/orderfail + merchant-signed-hash: + a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh + Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD + $$-CyberCash-End-lSLzs/vFQ0BXfU98LZNWhQ==-$$ + + ##################################################################### + Opaque Key: no opaque section + + ##################################################################### + Opaque Section Contents: no opaque section + + ##################################################################### + merchant-signed-hash is the signature under the merchant's + private key of the hash of the following fields: type, + merchant-ccid, merchant-order-id, date, note, merchant-amount, + accepts, url-pay-to, url-success, url-fail + + ##################################################################### + Explanation: + This message is signed by the merchant but the customer cannot + directly verify this signature. When the payment is made, the + Customer includes the signature with the hash (derived by the + customer directly) in the payment. If these do not match, the + CyberCash will not perform the payment function. + accepts: The client software will only recognized single word card + name in the accepts field of PR1. For example, + MasterCard + AmericanExpress + are recognized where as + Master card + American express + are not recognized. MasterCard and masterCard are both + recognized as master card. + Card type followed by key designator. For main line credit cards, + this will be a CC*. Client can use or ignore the * number as + it chooses. For proprietary card, this will be VK* where * is + the CheckFree key to use (1 based). Cards separated by comma, + + + +Eastlake, et al Informational [Page 22] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + key designator follows card type and colon. + url-pay-to is where the CH1 should be sent. url-fail and url-success + are where the browser should look after failure or success. + + +4.3.2 CH1 - credit-card-payment + + Description: This message represents the presentation of a "credit + card for payment". + + ##################################################################### + Sender: CyberApp + Receiver: MerchantApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + type: card-payment + id: myCyberCashID + order-id: 1231-3424-234242 + merchant-ccid: ACME-012 + transaction: 78784567 + date: 19950121100505.nnn + pr-hash: c77VU/1umPKH2kpMR2QVKg== + pr-signed-hash: + a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh + Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD + cyberkey: CC1001 + opaque: + iff/tPf99+Tm5P7s3d61jOWK94nq9/+1jOWK9+vr9+b+94n3tYzmiveJ9/+09/334ubg + 3rWM5Ir3ier3/7WM5Ir36+v35v73ife1jOWK94n3/7T3/ffm5uD+7N339/f39/eq3ff3 + 9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3 + 5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw + 3ard3Q== + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Opaque Key: Created using CyberCash encrypting public key in + CyberKey. + + ##################################################################### + Opaque Section Contents: + swversion: 0.8win + amount: usd 10.00 + card*: [from successful BC4 (includes card-expiration-date, + card-number, card-type, and card-salt)] + signature: + meO38aULnoP09VhTS2E56tnuZBRRlGfbwqaleZ9zNnv7YjExJKBFxuaqYTUDEj427HHh + + + +Eastlake, et al Informational [Page 23] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + mm9BVmHRwCq6+8ylZXixGHI1I9A/ufAMrpqMIi6DS3PRlc8WC3CCWoAHyAqr + + ##################################################################### + signature is under client private key of the following fields: + type, id, order-id, merchant-ccid, transaction, date, + pr-hash, pr-signed-hash, cyberkey, swversion, amount, + card* + + ##################################################################### + Explanation: + The pr-signed-hash field is the same as the merchant-signed-hash in + the PR1 message but has a different name for historic reasons. + + +4.3.3 CH2 - charge-card-response + + Description: Return to customer from a CH1 attempt to pay via credit + card. Indicates success/failure. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + type: charge-card-response + merchant-ccid: ACME-012 + id: myCyberCashID + transaction: 78784567 + date: 1995121100500.nnn + merchant-date: 19950121100505.nnn + merchant-response-code: failure/success/etc. + pr-hash: 7Tm/djB05pLIw3JAyy5E7A== + pr-signed-hash: + a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh + Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD + merchant-message; This is a message to display to the user from the + merchant. Can be multiple lines... Is not secure. + opaque: [might not be present, see explanation] + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + + + +Eastlake, et al Informational [Page 24] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + Opaque Key: Same customer session key from CH1 passed through CM1 + for ID and Transaction + + ##################################################################### + Opaque Section Contents (from CM.6): + + server-date: 19950121100706.nnn + amount: usd 10.00 + order-id: 1231-3424-234242 + card*: [from successful BC4] + response-code: failure/success/etc. + swseverity: fatal/warning + swmessage; Tells CyberApp that it is obsolete. Display this + text to the user. [only present if SWSeverity present] + message; + Free text of the error/success condition. + This text is to be displayed to the customer + by the CyberCash application... + + ##################################################################### + Signature is of the following fields: no signature + + ##################################################################### + Explanation: + Opaque section optional because the CH1 to the merchant can fail due + to bad order-id, date, wrong merchant-ccid, etc., etc. So the + server may not be involved at all in which case there is no + mechanism for generating a secure opaque section. (It could even + be that merchant attempt to contact the server times out.) + If transaction makes it through server (via CM*) then + Response-Code at top level should mirror response-code to + merchant from server. (Hopefully the same as the + response-code to customer from server but the merchant can't + tell that.) + Note that there can be two messages, one from merchant and one + from the server. + + +4.4 Merchant Credit Card Purchasing Messages + + The merchant presents credit card purchases, makes adjustments, and + the like via the CM* series. In general, the credit card cycle is + one of getting authorization for a purchase, then capturing the + purchase in a batch for clearance, then performing the clearance. It + is also possible to void a capture (i.e., remove an item from a + batch), and process credits (returns). (See section 5.1.) + + + + + +Eastlake, et al Informational [Page 25] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + Authorizations always come from an acquirer via the response to a CM1 + or CM2 message. If capture is being performed by the acquirer or some + entity between the CyberCash server and the acquirer, this is done + via a CM3 or CM2 message depending on the arrangement between the + merchant and the entity doing the capture. Returns (credits) are + handled via message CM5. Message CM4 is provided for voiding a + capture or return before the batch is cleared. CM6 is the message + format used for responses to all the other CM* messages. + + An MM* series has also been implemented for purely merchant + originated CyberCash charges as described in section 3.4.7 + + Current credit card dispute resolution systems assume that the + merchant knows the card number. Thus, to work with these systems, + special bypass messages have been set up that allow the merchant to + obtain, for a particular transaction, the information that CyberCash + otherwise goes to lengths to hide from the merchant. See sections + 3.4.8 and 3.4.9. This makes the obtaining os such information by the + merchant an auditable event. + + Many present day merchants operate in a "terminal capture" mode where + the authorizations are captured by the merchant and the merchant + later submits the settlement batch. Messages have been defined and + are being implemented so that such merchant captured batches can be + submitted via CyberCash. + + +4.4.1 CM1 - auth-only + + Description: This message is used by the merchant to perform an + authorization operation on the credit card sent in by the + customer. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: ACME-69 + merchant-transaction: 123123 + merchant-date: 19950121100705.nnn + merchant-cyberkey: CC1001 + cyberkey: CC1001 + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + + + +Eastlake, et al Informational [Page 26] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + merchant-opaque: + 6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf + aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO + dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj + j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84 + F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ + mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr + mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y= + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Merchant-Opaque Section Contents: + + type: auth-only + order-id: 12313424234242 + merchant-amount: usd 10.00 + pr-hash: 7Tm/djB05pLIw3JAyy5E7A== + pr-signed-hash: + a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh + Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD + id: myCyberCashID + transaction: 78784567 + date: 19950121100505.nnn + merchant-signature: + v4qZMe2d7mUXztVdC3ZPMmMgYHlBA7bhR96LSehKP15ylqR/1KwwbBAX8CEqns55UIYY + GGMwPMGoF+GDPM7GlC6fReQ5wyvV1PnETSVO9/LAyRz0zzRYuyVueOjWDlr5 + + ##################################################################### + merchant-opaque key is generated from the CyberCash encrypting public + key identified in merchant-cyberkey. + + Customer opaque section (Opaque) - see CH1. + + ##################################################################### + Opaque Section Contents & Signature: (exactly as in CH1) + + swversion: 0.8win + amount: usd 10.00 + card*: [from successful BC4 (includes card-expiration-date, + card-number, and card-salt)] + signature: + 48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK + +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs + + ##################################################################### + + + +Eastlake, et al Informational [Page 27] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + merchant-signature is on the following fields: merchant-ccid, + merchant-transaction, merchant-date, merchant-cyberkey, type, + order-id, merchant-amount, pr-hash, pr-signed-hash, id, + transaction, date, cyberkey + + Customer Signature: see CH1 + + ##################################################################### + Explanation: + The merchant signature ensures integrity of the majority of the + message. validation of the customer signature ensures that the + customer opaque part was not tampered or replaced. + + +4.4.2 CM2 - auth-capture + + Description: Do authorization and actually enters charge for + clearance. Message just like CM1 except for different + type. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + [exactly the same as CM1 except + + type: auth-capture + + ] + + +4.4.3 CM3 - post-auth-capture + + Description: Captures a charge previously authorized. Message is + the same as CM1 except that it also has an authorization-code + field (which is also included in the signature) and the type + is different. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: ACME-012 + + + +Eastlake, et al Informational [Page 28] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + merchant-transaction: 123123 + merchant-date: 19950121100705.nnn + merchant-cyberkey: CC1001 + cyberkey: CC1001 + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + merchant-opaque: + 6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf + aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO + dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj + j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84 + F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ + mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr + mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y= + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Merchant-Opaque Section Contents: + + type: post-auth-capture + authorization-code: a12323 + order-id: 1231-3424-234242 + merchant-amount: usd 10.00 + pr-hash: 7Tm/djB05pLIw3JAyy5E7A== + pr-signed-hash: + a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh + Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD + id: myCyberCashID + transaction: 78784567 + date: 19950121100505.nnn + merchant-signature: + vxyEF1ZHn5Rgmtms3H3t/+UB6RAvZQA1AdddjvlS0H75N1x83FyJuh8V9Ok6t4EUQQZ6 + Mnptzc6phJi3Ar0s0oumELsdc8upJdXpNpJV021PGJXfDKfHP0heJIWLodXr + + ##################################################################### + merchant-opaque key is generated from the CyberCash encrypting public + key identified in merchant-cyberkey. + + Customer opaque section (Opaque) - see CH1. + + ##################################################################### + Opaque Section Contents & Signature: (exactly as in CH1) + + swversion: 0.8win + + + +Eastlake, et al Informational [Page 29] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + amount: usd 10.00 + card*: [from successful BC4 (includes card-salt, card-number, + and card-expiration)] + signature: + 48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK + +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs + + ##################################################################### + merchant-signature is on the following fields: merchant-ccid, + merchant-transaction, merchant-date, merchant-cyberkey, type, + authorization-code, order-id, merchant-amount, pr-hash, + pr-signed-hash, id, transaction, date, cyberkey + + ##################################################################### + Explanation: + The merchant signature ensures integrity of the majority of the + message validation of the customer signature ensures that the + customer opaque part was not tampered or replaced. + + +4.4.4 CM4 - void + + Description: Voids out a charge/return if received before + clearance. Message is the same as CM1 except that it also has + a retrieval-reference-number field (which is also included in the + signature) and the type is different. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: ACME-012 + merchant-transaction: 123123 + merchant-date: 19950121100705.nnn + merchant-cyberkey: CC1001 + cyberkey: CC1001 + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + merchant-opaque: + 6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf + aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO + + + +Eastlake, et al Informational [Page 30] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj + j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84 + F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ + mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr + mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y= + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Merchant-Opaque Section Contents: + + type: void + retrieval-reference-number: 432112344321 + order-id: 1231-3424-234242 + merchant-amount: usd 10.00 + pr-hash: WATCQuH2q17lRuoxD78YBg== + pr-signed-hash: + 8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC + kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov + id: myCyberCashID + transaction: 78784567 + date: 19950121100505.nnn + Merchant-Signature: lkjladjslkjflsakjflkjsdljflsakjflkjsdljflsakjflkj + flsakjflkjsdljflsakjflkjsdljflsajflksdjflksdjflsdjssf= + + ##################################################################### + Merchant-Opaque key is generated from the CyberCash encrypting public + key identified in Merchant-CyberKey. + + Customer opaque section (Opaque) - see CH1. + + ##################################################################### + Opaque Section Contents & Signature: (exactly as in CH1) + + swversion: 0.8win + amount: usd 10.00 + card*: [from successful bc4 (includes card-salt, card-number, + and card-expiration)] + signature: + 48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK + +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs + + ##################################################################### + merchant-signature is on the following fields: merchant-ccid, + merchant-transaction, merchant-date, merchant-cyberkey, type, + retrieval-reference-number, order-id, merchant-amount, pr-hash, + pr-signed-hash, id, transaction, date, cyberkey + + ##################################################################### + + + +Eastlake, et al Informational [Page 31] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + Explanation: + The merchant signature ensures integrity of the majority of the + message. Validation of the customer signature ensures that the + customer opaque part was not tampered or replaced. + + +4.4.5 CM5 - return + + Description: Reverse a previous charge. Really sort of a negative + charge. Message just like CM1 except for different type. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + [exactly the same as CM1 except + + type: return + + ] + + +4.4.6 CM6 - charge-action-response + + Description: This receipt is given to the merchant as a receipt + for a completed charge action. Indicates success/failure/etc. + + ##################################################################### + Sender: CyberServer + Receiver: MerchantApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: ACME-012 + merchant-transaction: 123123 + merchant-date: 19950121100705.nnn + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + merchant-opaque: + 6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf + aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO + + + +Eastlake, et al Informational [Page 32] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj + j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84 + F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ + mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr + mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y= + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Merchant-Opaque Key: Session key same as that of CM1/2/3/4/5 for + same Merchant-Transaction and Merchant-CCID. + + Opaque Key: Same customer session key from CH1 passed through CM* + for ID and Transaction + + ##################################################################### + Merchant-Opaque Section Contents: + + type: charge-action-response + server-date: 19950121100706.nnn + action-code: XXX [per ISO 8583] + response-code: failure/success/etc. + order-id: 1231-3424-234242 + pr-hash: 7Tm/djB05pLIw3JAyy5E7A== + pr-signed-hash: + 8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC + kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov + retrieval-reference-number: 432112344321 + authorization-code: a12323 + card-hash: 7Tm/djB05pLIw3JAyy5E7A== + { + card-prefix: nnxxxx [Returned if merchant is not full-PAN] + } + or + { + card-number: 1234567890123456 [Returned if merchant is full-PAN] + } + expiration-date: 12/34 [always present] + merchant-swseverity: fatal/warning + merchant-swmessage; Message for merchant about out of date + protocol number in $$ start line of merchant message. + merchant-message; + Free text of the error/success condition. + This text is for the merchant from the server... + id: myCyberCashID + transaction: 78784567 + date: 19950121100505.nnn + + Opaque (Customer) contents: + + + +Eastlake, et al Informational [Page 33] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + server-date: 19950121100706.nnn + amount: usd 10.00 + order-id: 1231-3424-234242 + card*: [from successful BC4] + response-code: failure/success/etc. + swseverity: fatal/warning + swmessage; Tells CyberApp that it is obsolete display this + text to the user. [only present if SWSeverity present] + message; + Free text of the error/success condition. + This text is to be displayed to the customer + by the CyberCash application... + + ##################################################################### + Signature is of the following fields: no signature + + ##################################################################### + Explanation: + retrieval-reference-number is needed for voids. authorization-code + is needed for post-auth-capture. These fields are each only + present in the CM6 if they were returned by the bank which + depends on what operation was being done. + card-prefix is first two and last four digits of card-number. + At merchant's bank's discretion the card-number or card-prefix is + returned. + card-hash is really the hash of the full card number and the salt + provided by the customer. card-hash is needed so the merchant + can, if they wish, sort customer transactions by card without + knowing the card number. + card* is the card* fields delivered in the CM* messages being + responded to. They appear in alphabetic order. + server-date duplicated in customer opaque area for security. + {}'s in column one just for clarity of alternatives and do not + actually appear in the message. + []ed comments appear after some fields. + + +4.4.7 The MM* Message Series + + The CM* message series above is the primary CyberCash credit card + purchase system for securely handling charges from CyberCash + customers. However, merchants, who are authorized by their acquiring + bank to accept such charges, may also receive telephone, mail, and + over-the-counter sales. To avoid any necessity for the merchant to + have a second parallel system to handle these charges, an MM1 through + MM6 message series is defined and has been implemented for these less + secure transactions. + + + + +Eastlake, et al Informational [Page 34] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + The MM* messages look very similar to the CM* series but the + "customer opaque" section is actually signed by the merchant and no + separate customer CyberCash ID or prior card binding is required. + The MM* message examples are omitted here in the interests of + brevity. + +4.4.8 CD1 - card-data-request + + Description: Used by merchant to get card-number, etc., if + information needed by merchant to resolve a dispute. + + ##################################################################### + Sender: MerchantApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: ACME-69 + merchant-transaction: 123123 + merchant-date: 19950121100705.nnn + merchant-cyberkey: CC1001 + cyberkey: CC1001 + opaque: + EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb + nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV + 4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs + rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo + QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg== + merchant-opaque: + 6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf + aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO + dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj + j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84 + F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ + mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr + mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y= + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Merchant-Opaque Section Contents: + + type: card-data-request + password: xyzzy + server-date: 19950121100505.nnn [optional] + order-id: 12313424234242 + merchant-amount: usd 10.00 + pr-hash: 7Tm/djB05pLIw3JAyy5E7A== + + + +Eastlake, et al Informational [Page 35] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + pr-signed-hash: + IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy + +X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK + id: myCyberCashID + transaction: 78784567 + date: 19950121100505.nnn + merchant-signature: + 8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC + kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov + + ##################################################################### + merchant-opaque key is generated from the CyberCash encrypting public + key identified in merchant-cyberkey. + + Customer opaque section (Opaque) - see CH1. + + ##################################################################### + Opaque Section Contents & Signature: (exactly as in CH1) + + swversion: 0.8win + amount: usd 10.00 + card*: [from successful BC4 (includes card-expiration-date, + card-number, and card-salt)] + signature: + 48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK + +IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs + + ##################################################################### + merchant-signature is on the following fields: merchant-ccid, + merchant-transaction, merchant-date, merchant-cyberkey, type, + password, server-date, order-id, merchant-amount, pr-hash, + pr-signed-hash, id, transaction, date, cyberkey + + Customer Signature: see CH1 + + ##################################################################### + Explanation: + [see also CM1 explanation] + The merchant may need to know the card involved and other + information in order to resolve a disputed transaction. This + information is all contained in the original CH1 embedded in the + CM1 for the transaction. If the merchant saves the CM1 and other + transaction information, they can send this CD1 message to the + server. While this reduces the pass through confidentiality of + the system, the merchant is then on record as asking for this + particular credit card number and excessive CD1's from a merchant + can be flagged. + password is an extra level of security intended to be manually entered + + + +Eastlake, et al Informational [Page 36] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + at the merchant to authorize the unusual action. Server stores a + hash of the merchant-ccid and the password. + + +4.4.9 CD2 - card-data-response + + Description: Respond to CD1 with failure or with success and card + data. + + ##################################################################### + Sender: CyberServer + Receiver: MerchantApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: ACME-012 + merchant-transaction: 123123 + merchant-date: 19950121100705.nnn + merchant-opaque: + t731/86R72ZLrqHLIf0VG6m3ybvs+dG6K705L8LFKEXgCti0NGjK83CwDsUdiso7U1JP + 2Z0BClVHLmhIBY7+QXx5iCEGHy8JKC9IWyNNi2O/OOIDgLeJAkMSZYbNQrSKViY34imS + 0s7Q6uDk9wV0fixjvRBuNO2B7urWWsqfkLOYDnHy0RvhyUzYxLrMaTX+/6IkyU5Z0lH3 + BXYBUNV8DgitEjgLXmyWuXRDlEBN02yeZgsFRm9GmuBHfCTySm2XqnifizpmKMUa9UiH + onNx9W86fuBdcJF7CJgH5Gct2M/dx/f2VpoRkmeSmWxFrYi8wgtvddSXF9my40NZ8WZz + CEUEvQhcmruopwEeehv+bejc3fDDZ23JKrbhlZ17lSvFR14PKFsi32pXFqTO0ej9GTc5 + L6c8nM3tI1qdHNCe0N5f7ASdKS0tYSxAYJLIR6MqPrXjNJEaRx7Vu1odMlkgrzGOV1fo + 5w33BQHK3U2h+1e5zYBeHY3ZYG4nmylYYXIye4xpuPN4QU0dGrWZoImYE44QOwjd5ozl + xulPBjj6cpEI/9wTwR3tpkBb4ZfYirxxnoj9JUkPK9Srv9iJ + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Opaque Key: session key from CD1. + + ##################################################################### + Opaque Section Contents: + + type: card-data-response + server-date: 19950121100706.nnn + response-code: failure/success/etc. + order-id: 1231-3424-234242 + pr-hash: 7Tm/djB05pLIw3JAyy5E7A== + pr-signed-hash: + IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy + +X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK + card-hash: 7Tm/djB05pLIw3JAyy5E7A== + card-number: 4811123456781234 + card-type: visa + + + +Eastlake, et al Informational [Page 37] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + card-name: John Q. Public + expiration-date: 01/99 + merchant-swseverity: fatal/warning + merchant-swmessage; Message for merchant about out of date + protocol number in $$ start line of merchant message. + merchant-message; + Free text of the error/success condition. + This text is for the merchant from the server... + id: myCyberCashID + transaction: 78784567 + date: 19950121100505.nnn + + ##################################################################### + Signature is of the following fields: no signature. + + ##################################################################### + Explanation: + This normally returns selected fields from the decoding of the + opaque part of a CH1 as sent to the server in a CD1. + + +4.5 Utility and Error Messges + + A number of utility, status query, and special error reporting + messages have also been found necessary in implementing the CyberCash + system. + + It is desirable to be able to test connectivity, roughly synchronize + clocks, and get an initial determination of what client protocol and + software versions are accepted. This is done via the P1 client to + server message and its P2 server to client response. + + Clients need to be able to determine the status of earlier + transactions when the client or merchant has crashed during or has + suffered data loss since the transaction. Two transaction query + messages are defined, TQ1 and TQ2. One just queries and the other + also cancels the transaction, if it has not yet completed. The + response to both of these messages is a TQ3 response from the server. + + Since the system operates in a query response mode, there are two + cases where special error messages are needed. If a query seems to + be of an undeterminable or unknown type, the UNK1 response error + message is sent. If a response seems to be of an undeterminable or + unknown type or other serious error conditions occur at the client or + merchant which should be logged at the CyberCash server, the DL1 or + DL2 diagnostic log message is submitted by the client or merchant in + question respectively. + + + + +Eastlake, et al Informational [Page 38] + +RFC 1898 CyberCash Version 0.8 February 1996 + + +4.5.1 P1 - ping + + Description: Very light weight check that we have connectivity from + the customer to the server. Does no crypto to minimize + overhead. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + $$-CyberCash-0.8-$$ + type: ping + id: myCyberCashID [optional] + transaction: 123123213 + date: 19950121100505.nnn + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Explanation: + id optional as persona may not have been set up yet. + + +4.5.2 P2 - ping-response + + Description: Response to the P1 light weight ping. Does no + crypto to minimize overhead. + + ##################################################################### + Sender: CyberServer + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + type: ping-response + id: myCyberCashID [if present in P1] + transaction: 12312313 + date: 19950121100505.nnn + server-date: 19950121100506.nnn + swseverity: fatal/warning [absent if ok] + swmessage; Tells CyberApp that it is using an obsolete protocol. + Display this text to the user. [only present if SWSeverity + present] + response-code: success/failure/etc. + message; + Free text of the error/success condition. + This text is to be displayed to the sender + + + +Eastlake, et al Informational [Page 39] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + by their CyberCash application... + supported-versions: 08.win, 0.81win, 0.8mac + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Explanation: + swversion does not appear in P1 for security reasons so + swseverity and swmessage appear only if the server can tell + that things are old from the $$ header protocol version. + supported-versions lets client know as soon as possible what + versions are supported and, by implication, which are not. Does + not compromise security by having client say what version it + is. + + +4.5.3 TQ1 - transaction-query + + Description: Client query to server for Transaction status. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + id: MyCyberCashID + date: 19950121100505.nnn + transaction: 12312314 + cyberkey: CC1001 + opaque: + VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl + 21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V + L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur + 3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c + bnf+muO0+kiNPXVvEzRrO8o= + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + Opaque Key: generated from CyberCash encryption key identified in + CyberKey + + ##################################################################### + Opaque Section Contents: + + type: transaction-query + swversion: 0.8win + begin-transaction: 1234 + + + +Eastlake, et al Informational [Page 40] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + end-transaction: 4321 + signature: + jJfFsKvOxLaV87gxu7lIPet3wIDwh1H2F61reYC9jmUrS6WAtUVFG9aCNuTEBoMixF0X + vD5oPfyheJRIlnL6i0c4o/bfyO3edKAacmWjTmKt6/4y9p3qgvKkSX8r9aym + + ##################################################################### + signature is of the following fields: id, date, transaction, + cyberkey, type, swversion, begin-transaction, + end-transaction + + ##################################################################### + Explanation: + This is a client status query of a previous transaction or + transactions. + begin-transaction and end-transaction can be the same. + + +4.5.4 TQ2 - transaction-cancel + + Description: Client query to server for Transaction + cancellation/status. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + id: MyCyberCashID + date: 19950121100505.nnn + transaction: 12312314 + cyberkey: CC1001 + opaque: + VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl + 21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V + L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur + 3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c + bnf+muO0+kiNPXVvEzRrO8o= + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + Opaque Key: generated from CyberCash encryption key identified in + CyberKey + + ##################################################################### + Opaque Section Contents: + + + + +Eastlake, et al Informational [Page 41] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + type: transaction-cancel + swversion: 0.8win + begin-transaction: 1234 + end-transaction: 4321 + signature: + kD7DEav2uLQIYMtP9gbhYaBUpB2a5whNwnK2eXbbyTCf56F6dl3DIVf7D8Z4WxbY2YZn + ByRIKeqlhmss7fbdnBiDYmKfOuc+I4bi/Oslml5riaciQhTd2JdHG+PCcHwZ + + ##################################################################### + signature is of the following fields: id, date, transaction, + cyberkey, type, swversion, begin-transaction, end-transaction + + ##################################################################### + Explanation: + This is a client attempt to cancel a previous transaction or + transactions. + begin-transaction and end-transaction can be the same. + + The transaction-cancel transaction (TQ.2) is defined between the + client and the server. This transaction permits the client to + query the status of an operation and to stop the operation from + occurring if it has not already occurred. + + +4.5.5 TQ3 - transaction-response + + Description: Reports generated by a TQ1 or TQ2 + + ##################################################################### + Sender: CyberServer + Receiver: CyberApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + id: mycybercashid + date: 19950121100505.nnn + transaction: 12312314 + server-date: 19950121100505.nnn + opaque: + eFXRL+H0J5q318M21wRdtcbhu9WCyLysQkeF9oIcjtbstymx343bbt0EAtU1gcJaUKJZ + 3skgvwrhcxU4bFcE68OPlUXAvLq10I3MczPYPsiGrsU0K4bZtQvDZmn727QQAfONBm5s + s1yjIha+Fj481BJQs0CTYc3ju90lAjCYgirXtnnR6yJXoDO75b7UjthvHSnrTWVZvktX + PvTuUCYzbXSFoYvwFM3Y+yHqSHlmWutYKQpYze8zbUSDQfmwTCJyw3aY2JasZ+xMP/CD + JWbCA+gCLBYCnvzM/ExKTZTFD3xr5JBfNbV4p6CiK6lsfRFD7maAK6TSVnWjwCEJNpOv + fyllfWD04fT7LINQcjJiQK1Pk/912Tk6Q35eRaQZorwv2hnY/7By2OkPyFdAqFL+D0H6 + TqzxmdEjEFKxi/PPT1+Cs/Nszy8wZzaGg8iWATfARY6stl+02dDhwOoFXSBNvchlVrcI + IlvhumSIQs29Pntj3DbkYo4IEmmN/qi1vnzld22q7lA1q/CQakyc7jlQUFISx76buqwy + + + +Eastlake, et al Informational [Page 42] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + 35XiC9Yn8flE4Va14UxMf2RCR1B/XoV6AEd64KwPeCYyOYvwbRcYpRMBXFLyYgWM+ME1 + +yp7c66SrCBhW4Q8AJYQ+5j5uyO7uKyyq7OhrV0IMpRDPjiQXZMooLZOifJPmpvJ66hC + VZuWMuA6LR+TJzWUm4sUP9Zb6zMQShedUyOPrtw1vkJXU1vZ5aI8OJAgUcLEitcD+dsY + Df4CzA00fC10POkJ58HZB/pSBfUrHAa+IqMHyZkV/HBi9TjTwmktJi+8T9orXS0jSvor + dMTGWn0ifETy2VXt + $$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$ + + + ##################################################################### + Opaque Key: Session key from TQ1/TQ2 with same Transaction and ID. + + ##################################################################### + Opaque Section Contents: + + type: transaction-response + response-code: success/failure/etc. + message; general free form text message from server to + customer.... + swseverity: fatal/warning + swmessage; Message indicating that CyberApp software is obsolete. + May be multiple lines. + report-fee: usd 0.15 [if non-zero] + + transaction-1: old-transaction-number + transaction-status-1: success/failure/pending/cancelled/etc. + server-date-1: 19951212125959.nnn + date-1: 19950121100505.nnn + type-1: auth-only/etc. + + ##################################################################### + Signature is of the following fields: no signature + + ##################################################################### + Explanation: + Report-fee is the notification that this report cost a fee and is + only present if there is a fee. + There can be multiple transaction for the same transaction number as + there could have been a auth, post-auth-capture, void, etc. + + Terms + "original transaction" refers to the payment or other transaction + that is being queried or canceled. + Note: this transaction may not actually reside at the server. + "request" refers to the requesting TQ.2 or TQ.1 message + + id: id from the request message + date: date from the request message + transaction: transaction from the request message + + + +Eastlake, et al Informational [Page 43] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + server-date: current date/time + type: transaction-response + response-code: response code for request message, can be one of: + "success" means the request message was processed. Does not imply + query or cancellation status of the request. + "failure-hard" means that the request message was not processed + due to being ill-formed or otherwise inoperable. + "failure-swversion" means that the request message was not + processed due to software revision problems. + message: the message applies only to the TQ transaction, not to the + status of the transactions being queried or canceled. The + message is provided according to the response-code as: "success" + - message is omitted. "failure-hard" - use standard hard failure + message. "failure-swversion" - use standard swversion message for + fatal + swseverity: applies to request message + swmessage: applies to request message + -- per query/cancel fields ('N' is a series from 1 to N) -- + transaction-N: transaction number of original transaction, or if + the original transaction is not present in server the transaction + number that the query / cancel request refers to + transaction-status-N: status of original transaction, may be one of: + "success" the original transaction was successfully processed. + If request was TQ.2, cancellation is not performed. + "failure" the original transaction was not successfully processed. + If request was TQ.2, cancellation is not performed (however, + there is nothing to cancel, so it's all the same to the customer + app). + "pending" the original transaction is still being processed and + final disposition is not known. + "canceled" the original transaction has been canceled by the server. + Later arrival of the original transaction will not be processed, + but will be returned with a "failure-canceled" returned. + server-date-1: server-date field from original transaction or + omitted if original transaction is not present in the server" + date-1: date field from original transaction or omitted if original + transaction is not present in the server" + type-1: type field from original transaction or omitted if original + transaction is not present in the server" + + +4.5.6 UNK1 - unknown-error + + Description: This is the response sent when the request is so + bad off you can't determine what type it is or the type is + unknown to you. Sent from Merchant to Client or from Server + to Merchant or from Server to Client. + + + + +Eastlake, et al Informational [Page 44] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + ##################################################################### + Sender: MerchantApp or CyberServer + Receiver: CyberApp or MerchantApp + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + type: unknown-error + unknown-error-message: + Text message of error condition to display to user. (CyberCash + wrapper not found, wrapper integrity check fails, unknown protocol + version specified, unknown type specified, etc.) + { + server-date: 19950121100506.nnn [if sent by server] + } + or + { + merchant-date: 19950121100506.nnn [if sent by merchant] + } + x-id: mycybercashID + x-transaction: 123123213 + x-date: 19950121100505.nnn + x-cyberkey: CC1001 + x-opaque: + 2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G + 9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7 + TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw + 5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX + GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm + lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy + Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW + $$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$ + + ##################################################################### + Opaque Key: see explanation + + ##################################################################### + Opaque Section Contents: see explanation + + ##################################################################### + Signature is of the following fields: see explanation + + ##################################################################### + Explanation: + This message is sent as a response when you can't find or understand + even the type of a message to you. It will always have type and + unknown-error-message fields at the beginning. Any fields from + the request that are parseable are simply echoed back in the UNK1 + + + +Eastlake, et al Informational [Page 45] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + message with "x-" prefixed to it. Thus, if an x-opaque appears, + it was whatever the opaque was in the original request, etc. If + you can decrypt the opaque section, you don't want to put the + results here in the clear! + {}'s in the first column are to group alternatives only and do not + appear in the message. + Since the customer originates exchanges with merchant and server + and merchant originates exchanges with server, this message + will only be emitted from the merchant to the customer or the + server to the customer or merchant. It should generally just + be logged for debugging purposes. + You may need to watch out for denial of service via forged or + replayed UNK1 messages. + + +4.5.7 DL1 - diagnostic-log + + Description: Client diagnostic log of bad message from either + merchant or server. + + ##################################################################### + Sender: CyberApp + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + id: MyCyberCashID + date: 19950121100505.nnn + transaction: 1234 + cyberkey: CC1001 + opaque: + 2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G + 9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7 + TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw + 5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX + GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm + lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy + Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + Opaque Key: generated from CyberCash encryption key identified in + CyberKey + + ##################################################################### + Opaque Section Contents: + + + + +Eastlake, et al Informational [Page 46] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + type: diagnostic-log + message: incorrect order-id + swversion: 0.8win + + x-type: original-message-type + x-transaction: original-transaction-number + x-opaque: [if can't decrypt] + 9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3 + 5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw + + ##################################################################### + Explanation: + Client application does not expect a response for this message. The + decrypted original message will be in the opaque section unless + decryption fails. If decryption fails then un-decrypted opaque + in the original will be sent. + This message will be sent to a different script or socket or host + than normal messages so that it will just be absorbed and never + generate an UNK1 response or anything, even if this message + itself is screwed up. + + +4.5.8 DL2 - merchant-diagnostic-log + + Description: Merchant diagnostic log of bad message from server. + + ##################################################################### + Sender: CyberMerchant + Receiver: CyberServer + ##################################################################### + Sample Message: + + $$-CyberCash-0.8-$$ + merchant-ccid: MyCyberCashID + merchant-transaction: 1234 + merchant-date: 19950121100505.nnn + merchant-cyberkey: CC1001 + merchant-opaque: + 2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G + 9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7 + TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw + 5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX + GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm + lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy + Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW + $$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$ + + ##################################################################### + + + +Eastlake, et al Informational [Page 47] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + Opaque Key: generated from CyberCash encryption key identified in + CyberKey + + ##################################################################### + Opaque Section Contents: + + type: merchant-diagnostic-log + server-date: 19950121100505.nnn [optional] + message: incorrect order-id + + x-type: original-message-type + x-transaction: original-transaction-number + x-opaque: [if can't decrypt] + 9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3 + 5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw + + ##################################################################### + Explanation: + Merchant application does not expect a response for this message. The + decrypted original message will be in the opaque section unless + decryption fails. If decryption fails then un-decrypted message + will be sent. + This message will be sent to a different script or socket or host + than normal messages so that it will just be absorbed and never + generate an UNK1 response or anything even if this message + itself is screwed up. + + +4.6 Table of Messages Described + + The following 31 messages are described in this document. + + C = Customer App, M = Merchant App, S = CyberCash Server + + FLOW SECTION NAME + + C->S 4.2.1 BC.1 bind-credit-card + S->C 4.2.2 BC.4 bind-credit-card-response + + C->M 4.3.2 CH.1 credit-card-payment + M->C 4.3.3 CH.2 credit-card-response + + M->S 4.4.8 CD.1 card-data-request + S->M 4.4.9 CD.2 card-data-response + + M->S 4.4.1 CM.1 auth-only + M->S 4.4.2 CM.2 auth-capture + M->S 4.4.3 CM.3 post-auth-capture + + + +Eastlake, et al Informational [Page 48] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + M->S 4.4.4 CM.4 void + M->S 4.4.5 CM.5 return + S->M 4.4.6 CM.6 charge-action-response + + C->S 4.5.7 DL.1 diagnostic-log + M->S 4.5.7 DL.2 merchant-diagnostic-log + + C->S 4.1.3 GA.1 get-application + S->C 4.1.4 GA.2 get-application-response + + M->S 4.4.7 MM.1 merchant-auth-only + M->S 4.4.7 MM.2 merchant-auth-capture + M->S 4.4.7 MM.3 merchant-post-auth-capture + M->S 4.4.7 MM.4 merchant-void + M->S 4.4.7 MM.5 merchant-return + S->M 4.4.7 MM.6 merchant-charge-action-response + + C->S 4.5.1 P.1 ping + S->C 4.5.2 P.2 ping-response + + M->C 4.3.1 PR.1 payment-request + + C->S 4.1.1 R.1 registration + S->C 4.1.2 R.2 registration-response + C->S 4.5.3 TQ.1 transaction-query + C->S 4.5.4 TQ.2 transaction-cancel + S->C 4.5.5 TQ.3 transaction-response + + S->C, S->M, M->C + 4.5.6 UNK.1 unknown-error + +5. Future Development + + CyberCash is extending the facilities available through the CyberCash + system. We are committed to implementing a full cash system, + including efficient transfer of small amounts of money, the extension + of the credit card system to handle terminal capture and clearances, + and other improvements. + +5.1 The Credit Card Authorization/Clearance Process + + There are six steps in credit card processing as listed below. The + first four are always involved if a transacation is completed. The + fifth and sixth are optional. + + (1) authorization: merchant contacts their acquiring back which + normally contacts the card issung bank and returns to the + merchant an approval/guarantee or a disapproval. This + + + +Eastlake, et al Informational [Page 49] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + temporarily decreases the available credit on the card. + (2) capture: the charge information for a purchase is entered by + the merchant into a batch. + (3) clearance: a batch of items is processed. This actually causes + the items in the batch to appear on credit card statements as + sent by the issuing bank to its carholders. + (4) settlement: the actual interbank transfer of net funds. + (5) void: the merchant undoes step 2 (or 6) and causes a charge (or + credit) to be removed from a batch. Must be done before the + batch is processed. + (6) credit: the merchant causes a "negative charge" or credit to be + entered into a batch. This will appear on the cardholders + statement. + + The fourth step, settlement, is entirely within the banking community + and does not concern us here. CyberCash 0.8 provides messages to do + 1, 1&2, 2, 5, and 6. This is adequate for credit card processor + systems where the batch is accumulated at the bank or between the + bank and the merchant. CyberCash 0.8 supports such "host capture" + systems. Other credit card processor systems require the merchant to + accumulate the batch. Such systems are frequently referred to as + "terminal capture". This makes actions 2, 5, and 6 internal to the + merchant but requires messages to perform action 3. Such batch + clearance messages will be included in future versions of the + CyberCash merchant and server software. + +5.2 Lessons Learned + + The continuing rapid development of the CyberCash system is an + interesting experience. The system must deal with many existing + browsers and legacy banking systems. Existing credit card processors + that convey transactions to acquiring banks have complex and varied + interfaces. The sophistication of security attacks on the Internet + is growing rapidly. + + In the face of such a rapidly changing environment, it was essential + to adopt a general message framework so that messages and fields + could be added as they were found necessary. Any attempt to reduce + the system to a small number of perfectly opimized messages in + advance would have doomed the system to failure. (As of mid-October + 1995, the total number of CyberCash messages defined, including those + planned for cash and microcash, enhancements to the credit card + system, and some old messages being phased out in favor of improved + replacements, is just over a hundred.) + + Flexible operational and error handing facilities are also, as usual, + the bulk of the system. Version numbering and tracking has proved to + be quite important and merchant versioning is being added. + + + +Eastlake, et al Informational [Page 50] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + Use of text for messages has proven very beneficial. This makes it + possible to easily deal with messages using common everyday tools + such as text editors and spead sheets. Use of binary TLV (type, + length, value) encoding or the like is certainly possible but imposes + a significantly higher level of complexity on every tool that has to + deal with the messages. + + Encryption and decryption impose some difficulties in development. + Any confusion about decryption keys or algorithms will render + encrypted material meaningless and tools are needed to provide + decyrption for debugging outside of normal program operation. But + this pales compared with the stringencies imposed by signatures. All + parts of the system must have absolutely identical ideas as to the + exact bit patterns to be hashed or signed and their exact order. + Seemingly trivial differences in capitalization, punctuation, + framing, order, or the like, in addition to any disagreement about + keys or algorithms, will lead to frustrating failures of signatures + to match. Passing signatures through an intermediate system and + checking them at a third system, as is done when a customer's + signature is passed through a merchant and checked at the CyberCash + server, compounds the problem. + +6. Security Considerations + + The CyberCash Version 0.8 Credit Card system provides substantial + protection to payment messages as described above in sections 1.2, + 2.2.4, and 2.2.5. However, it provides no privacy to the shopping + interaction which is essentially outside of its purview. It also + provides no protection against dishonest merchants other than those + normally available with credit card purchases. Care must be taken to + avoid loss of control of the machines on which parts of this system + runs or security may be compromised. + + Current credit card dispute resolution systems require deliberate + bypasses be implemented for some of the security normally established + by CyberCash as described in section 3.4. + +References + + [ISO 4217] - Codes for the representation of currencies and funds + + [ISO 8583] - Financial transaction card originated messages - + Interchange message specifications, 1993-12-15. + + [RFC 822] - Crocker, D., "Standard for the format of ARPA Internet + text messages", STD 11, RFC 822, UDEL, August 1982. + + + + + +Eastlake, et al Informational [Page 51] + +RFC 1898 CyberCash Version 0.8 February 1996 + + + [RFC 1521] - Borenstein, N., and N. Freed, "MIME (Multipurpose + Internet Mail Extensions) Part One: Mechanisms for Specifying and + Describing the Format of Internet Message Bodies", RFC 1521, + Bellcore, Innosoft, September 1993. + + [RFC 1766] - Alvestrand, H., "Tags for the Identification of + Languages", UNINETT, March 1995. + +Authors' Addresses + + Donald E. Eastlake 3rd + CyberCash, Inc. + 318 Acton Street + Carlisle, MA 01741 USA + + Phone: +1 508 287 4877 + EMail: dee@cybercash.com + + + Brian Boesch + CyberCash, Inc. + 2100 Reston Parkway, Suite 430 + Reston, VA 22091 USA + + Phone: +1 703-620-4200 + EMail: boesch@cybercash.com + + + Steve Crocker + CyberCash, Inc. + 2100 Reston Parkway, Suite 430 + Reston, VA 22091 USA + + Phone: +1 703-620-4200 + EMail: crocker@cybercash.com + + + Magdalena Yesil + CyberCash, Inc. + 555 Twin Dolphin Drive, Suite 570 + Redwood City, CA 94065 USA + + Phone: +1 415-594-0800 + EMail: magdalen@cybercash.com + + + + + + + +Eastlake, et al Informational [Page 52] + |